aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-01-09 19:41:21 +0100
committerGitHub <noreply@github.com>2023-01-09 19:41:21 +0100
commit57a96d0006038bec9a35ab42ed761ccf1b198bf2 (patch)
tree755ec18b4cc68a2390673f5fe242bd515f333800
parent0737c627732a4f07d9aff3ccd160a0f6ebc624e3 (diff)
parent57b9b54286be922494eb13b1deec7928a9a46854 (diff)
Merge pull request #25462 from vespa-engine/balder/initialize-in-constructor-where-possiblev8.108.22
Initialize in constructor where possible.
-rw-r--r--searchlib/src/tests/diskindex/bitvector/bitvector_test.cpp50
-rw-r--r--searchlib/src/tests/diskindex/fieldwriter/fieldwriter_test.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/field_merger.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/field_merger.h10
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp13
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/fieldwriter.h22
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp4
7 files changed, 43 insertions, 66 deletions
diff --git a/searchlib/src/tests/diskindex/bitvector/bitvector_test.cpp b/searchlib/src/tests/diskindex/bitvector/bitvector_test.cpp
index a9f3f91c57e..9bc0382f3ab 100644
--- a/searchlib/src/tests/diskindex/bitvector/bitvector_test.cpp
+++ b/searchlib/src/tests/diskindex/bitvector/bitvector_test.cpp
@@ -14,44 +14,32 @@ LOG_SETUP("bitvector_test");
using namespace search::index;
using search::index::schema::DataType;
-namespace search {
-namespace diskindex {
+namespace search::diskindex {
struct FieldWriterWrapper
{
FieldWriter _writer;
- FieldWriterWrapper(uint32_t docIdLimit, uint64_t numWordIds);
+ FieldWriterWrapper(uint32_t docIdLimit, uint64_t numWordIds, vespalib::stringref path);
+ FieldWriterWrapper & newWord(vespalib::stringref word);
+ FieldWriterWrapper & add(uint32_t docId);
- FieldWriterWrapper &
- newWord(vespalib::stringref word);
-
- FieldWriterWrapper &
- add(uint32_t docId);
-
- bool
- open(const std::string &path,
- const Schema &schema,
- const uint32_t indexId,
- const TuneFileSeqWrite &tuneFileWrite,
- const common::FileHeaderContext &fileHeaderContext);
+ bool open(const Schema &schema, const uint32_t indexId,
+ const TuneFileSeqWrite &tuneFileWrite, const common::FileHeaderContext &fileHeaderContext);
};
-FieldWriterWrapper::FieldWriterWrapper(uint32_t docIdLimit, uint64_t numWordIds)
- : _writer(docIdLimit, numWordIds)
+FieldWriterWrapper::FieldWriterWrapper(uint32_t docIdLimit, uint64_t numWordIds, vespalib::stringref path)
+ : _writer(docIdLimit, numWordIds, path)
{
+ std::filesystem::create_directory(std::filesystem::path(path));
}
bool
-FieldWriterWrapper::open(const std::string &path,
- const Schema &schema,
- const uint32_t indexId,
- const TuneFileSeqWrite &tuneFileWrite,
- const common::FileHeaderContext &fileHeaderContext)
+FieldWriterWrapper::open(const Schema &schema, const uint32_t indexId,
+ const TuneFileSeqWrite &tuneFileWrite, const common::FileHeaderContext &fileHeaderContext)
{
- std::filesystem::create_directory(std::filesystem::path(path));
- return _writer.open(path, 64, 10000, false, false, schema, indexId, FieldLengthInfo(), tuneFileWrite, fileHeaderContext);
+ return _writer.open(64, 10000, false, false, schema, indexId, FieldLengthInfo(), tuneFileWrite, fileHeaderContext);
}
FieldWriterWrapper &
@@ -104,10 +92,9 @@ Test::requireThatDictionaryHandlesNoEntries(bool directio, bool readmmap)
}
if (readmmap)
tuneFileRead.setWantMemoryMap();
- FieldWriterWrapper fww(5, 2);
std::filesystem::create_directory(std::filesystem::path("dump"));
- EXPECT_TRUE(fww.open("dump/1/", _schema, _indexId, tuneFileWrite,
- fileHeaderContext));
+ FieldWriterWrapper fww(5, 2, "dump/1/");
+ EXPECT_TRUE(fww.open(_schema, _indexId, tuneFileWrite, fileHeaderContext));
fww.newWord("1").add(1);
fww.newWord("2").add(2).add(3);
EXPECT_TRUE(fww._writer.close());
@@ -134,9 +121,8 @@ Test::requireThatDictionaryHandlesMultipleEntries(bool directio, bool readmmap)
}
if (readmmap)
tuneFileRead.setWantMemoryMap();
- FieldWriterWrapper fww(64, 6);
- EXPECT_TRUE(fww.open("dump/2/", _schema, _indexId, tuneFileWrite,
- fileHeaderContext));
+ FieldWriterWrapper fww(64, 6, "dump/2/");
+ EXPECT_TRUE(fww.open(_schema, _indexId, tuneFileWrite, fileHeaderContext));
// must have >16 docs in order to create bitvector for a word
// 17 docs for word 1
BitVector::UP bv1exp(BitVector::create(64));
@@ -202,9 +188,6 @@ Test::Main()
{
TEST_INIT("bitvector_test");
- TuneFileSeqWrite tuneFileWrite;
- TuneFileRandRead tuneFileRead;
-
if (_argc > 0) {
DummyFileHeaderContext::setCreator(_argv[0]);
}
@@ -219,6 +202,5 @@ Test::Main()
}
}
-}
TEST_APPHOOK(search::diskindex::Test);
diff --git a/searchlib/src/tests/diskindex/fieldwriter/fieldwriter_test.cpp b/searchlib/src/tests/diskindex/fieldwriter/fieldwriter_test.cpp
index 3424343b2fe..b0abfee4ab8 100644
--- a/searchlib/src/tests/diskindex/fieldwriter/fieldwriter_test.cpp
+++ b/searchlib/src/tests/diskindex/fieldwriter/fieldwriter_test.cpp
@@ -1,6 +1,5 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/searchlib/common/bitvector.h>
#include <vespa/searchlib/diskindex/fieldreader.h>
#include <vespa/searchlib/diskindex/fieldwriter.h>
#include <vespa/searchlib/diskindex/pagedict4file.h>
@@ -208,9 +207,8 @@ WrappedFieldWriter::open()
TuneFileSeqWrite tuneFileWrite;
DummyFileHeaderContext fileHeaderContext;
fileHeaderContext.disableFileName();
- _fieldWriter = std::make_unique<FieldWriter>(_docIdLimit, _numWordIds);
- _fieldWriter->open(_namepref,
- minSkipDocs, minChunkDocs,
+ _fieldWriter = std::make_unique<FieldWriter>(_docIdLimit, _numWordIds, _namepref);
+ _fieldWriter->open(minSkipDocs, minChunkDocs,
_dynamicK, _encode_interleaved_features,
_schema, _indexId,
FieldLengthInfo(4.5, 42),
diff --git a/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp b/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp
index d27ab2e7787..24d790afe74 100644
--- a/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp
+++ b/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp
@@ -321,7 +321,7 @@ FieldMerger::open_field_writer()
field_length_info = _readers.back()->get_field_length_info();
}
SchemaUtil::IndexIterator index(_fusion_out_index.get_schema(), _id);
- if (!_writer->open(_field_dir + "/", 64, 262144, _fusion_out_index.get_dynamic_k_pos_index_format(),
+ if (!_writer->open(64, 262144, _fusion_out_index.get_dynamic_k_pos_index_format(),
index.use_interleaved_features(), index.getSchema(),
index.getIndex(),
field_length_info,
@@ -414,7 +414,7 @@ void
FieldMerger::merge_postings_start()
{
/* OUTPUT */
- _writer = std::make_unique<FieldWriter>(_fusion_out_index.get_doc_id_limit(), _num_word_ids);
+ _writer = std::make_unique<FieldWriter>(_fusion_out_index.get_doc_id_limit(), _num_word_ids, _field_dir + "/");
_readers.reserve(_fusion_out_index.get_old_indexes().size());
allocate_field_length_scanner();
_open_reader_idx = 0;
diff --git a/searchlib/src/vespa/searchlib/diskindex/field_merger.h b/searchlib/src/vespa/searchlib/diskindex/field_merger.h
index 347367b3aa5..8d130052003 100644
--- a/searchlib/src/vespa/searchlib/diskindex/field_merger.h
+++ b/searchlib/src/vespa/searchlib/diskindex/field_merger.h
@@ -41,11 +41,11 @@ class FieldMerger
MERGE_DONE
};
- uint32_t _id;
- vespalib::string _field_name;
- vespalib::string _field_dir;
- const FusionOutputIndex& _fusion_out_index;
- std::shared_ptr<IFlushToken> _flush_token;
+ const uint32_t _id;
+ const vespalib::string _field_name;
+ const vespalib::string _field_dir;
+ const FusionOutputIndex & _fusion_out_index;
+ std::shared_ptr<IFlushToken> _flush_token;
std::vector<std::unique_ptr<DictionaryWordReader>> _word_readers;
std::unique_ptr<PostingPriorityQueueMerger<DictionaryWordReader, WordAggregator>> _word_heap;
std::unique_ptr<WordAggregator> _word_aggregator;
diff --git a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp
index 3442a610f4d..7f6f5c4ed15 100644
--- a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp
+++ b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp
@@ -16,12 +16,12 @@ namespace search::diskindex {
using vespalib::getLastErrorString;
using common::FileHeaderContext;
-FieldWriter::FieldWriter(uint32_t docIdLimit, uint64_t numWordIds)
+FieldWriter::FieldWriter(uint32_t docIdLimit, uint64_t numWordIds, vespalib::stringref prefix)
: _dictFile(),
_posoccfile(),
_bvc(docIdLimit),
_bmapfile(BitVectorKeyScope::PERFIELD_WORDS),
- _prefix(),
+ _prefix(prefix),
_word(),
_numWordIds(numWordIds),
_compactWordNum(0),
@@ -34,8 +34,7 @@ FieldWriter::FieldWriter(uint32_t docIdLimit, uint64_t numWordIds)
FieldWriter::~FieldWriter() = default;
bool
-FieldWriter::open(const vespalib::string &prefix,
- uint32_t minSkipDocs,
+FieldWriter::open(uint32_t minSkipDocs,
uint32_t minChunkDocs,
bool dynamicKPosOccFormat,
bool encode_interleaved_features,
@@ -45,8 +44,7 @@ FieldWriter::open(const vespalib::string &prefix,
const TuneFileSeqWrite &tuneFileWrite,
const FileHeaderContext &fileHeaderContext)
{
- _prefix = prefix;
- vespalib::string name = prefix + "posocc.dat.compressed";
+ vespalib::string name = _prefix + "posocc.dat.compressed";
PostingListParams params;
PostingListParams featureParams;
@@ -88,8 +86,7 @@ FieldWriter::open(const vespalib::string &prefix,
// Open output boolocc.bdat file
vespalib::string booloccbidxname = _prefix + "boolocc";
- _bmapfile.open(booloccbidxname.c_str(), _docIdLimit, tuneFileWrite,
- fileHeaderContext);
+ _bmapfile.open(booloccbidxname.c_str(), _docIdLimit, tuneFileWrite, fileHeaderContext);
return true;
}
diff --git a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h
index d541fd59be8..45ab32bc917 100644
--- a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h
+++ b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h
@@ -27,7 +27,7 @@ public:
FieldWriter(const FieldWriter &&rhs) = delete;
FieldWriter &operator=(const FieldWriter &rhs) = delete;
FieldWriter &operator=(const FieldWriter &&rhs) = delete;
- FieldWriter(uint32_t docIdLimit, uint64_t numWordIds);
+ FieldWriter(uint32_t docIdLimit, uint64_t numWordIds, vespalib::stringref prefix);
~FieldWriter();
void newWord(uint64_t wordNum, vespalib::stringref word);
@@ -43,7 +43,7 @@ public:
uint64_t getSparseWordNum() const { return _wordNum; }
- bool open(const vespalib::string &prefix, uint32_t minSkipDocs, uint32_t minChunkDocs,
+ bool open(uint32_t minSkipDocs, uint32_t minChunkDocs,
bool dynamicKPosOccFormat,
bool encode_interleaved_features,
const Schema &schema, uint32_t indexId,
@@ -61,15 +61,15 @@ private:
using PostingListCounts = index::PostingListCounts;
std::unique_ptr<DictionaryFileSeqWrite> _dictFile;
std::unique_ptr<PostingListFileSeqWrite> _posoccfile;
- BitVectorCandidate _bvc;
- BitVectorFileWrite _bmapfile;
- vespalib::string _prefix;
- vespalib::string _word;
- const uint64_t _numWordIds;
- uint64_t _compactWordNum;
- uint64_t _wordNum;
- uint32_t _prevDocId;
- const uint32_t _docIdLimit;
+ BitVectorCandidate _bvc;
+ BitVectorFileWrite _bmapfile;
+ const vespalib::string _prefix;
+ vespalib::string _word;
+ const uint64_t _numWordIds;
+ uint64_t _compactWordNum;
+ uint64_t _wordNum;
+ uint32_t _prevDocId;
+ const uint32_t _docIdLimit;
void flush();
static uint64_t noWordNum() { return 0u; }
};
diff --git a/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp b/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp
index 6815db0ae0c..f552c35e941 100644
--- a/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp
+++ b/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp
@@ -97,9 +97,9 @@ FileHandle::open(vespalib::stringref dir,
{
assert(_fieldWriter.get() == nullptr);
- _fieldWriter = std::make_shared<FieldWriter>(docIdLimit, numWordIds);
+ _fieldWriter = std::make_shared<FieldWriter>(docIdLimit, numWordIds, dir + "/");
- if (!_fieldWriter->open(dir + "/", 64, 262144u, false,
+ if (!_fieldWriter->open(64, 262144u, false,
index.use_interleaved_features(),
index.getSchema(), index.getIndex(),
field_length_info,