diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-10-10 18:01:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-10 18:01:28 +0200 |
commit | 26d9e5da4de4425cbb75cd8fff4374053073b19d (patch) | |
tree | bab1c9ca156af7d94b3583d6244a1c09c72e2a81 /searchlib | |
parent | 08f7a121fff008dd1307b106bd1b7d7a84433fe6 (diff) | |
parent | ab10d27bd029f73d82dabd1f3fdb839edae29e61 (diff) |
Merge pull request #24380 from vespa-engine/geirst/generation-holder-new-implv8.66.20
Implement GenerationHolder in terms of the generic generation hold list.
Diffstat (limited to 'searchlib')
15 files changed, 43 insertions, 43 deletions
diff --git a/searchlib/src/tests/common/bitvector/bitvector_test.cpp b/searchlib/src/tests/common/bitvector/bitvector_test.cpp index 79af28d20be..7a26202682b 100644 --- a/searchlib/src/tests/common/bitvector/bitvector_test.cpp +++ b/searchlib/src/tests/common/bitvector/bitvector_test.cpp @@ -654,8 +654,8 @@ TEST("requireThatGrowWorks") EXPECT_EQUAL(4095u, v.writer().capacity()); EXPECT_EQUAL(3u, v.writer().countTrueBits()); - g.transferHoldLists(1); - g.trimHoldLists(2); + g.assign_generation(1); + g.reclaim(2); } TEST("require that growable bit vectors keeps memory allocator") @@ -676,8 +676,8 @@ TEST("require that growable bit vectors keeps memory allocator") EXPECT_EQUAL(AllocStats(4, 1), stats); v.writer().resize(1); // DO NOT TRY THIS AT HOME EXPECT_EQUAL(AllocStats(5, 2), stats); - g.transferHoldLists(1); - g.trimHoldLists(2); + g.assign_generation(1); + g.reclaim(2); } TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchlib/src/tests/predicate/simple_index_test.cpp b/searchlib/src/tests/predicate/simple_index_test.cpp index dfa8c12deec..7bf52680782 100644 --- a/searchlib/src/tests/predicate/simple_index_test.cpp +++ b/searchlib/src/tests/predicate/simple_index_test.cpp @@ -74,7 +74,7 @@ struct Fixture { Fixture() : _generation_holder(), _limit_provider(), _index(_generation_holder, _limit_provider, config) {} ~Fixture() { - _generation_holder.clearHoldLists(); + _generation_holder.reclaim_all(); } SimpleIndex<MyData> &index() { return _index; diff --git a/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp b/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp index ef796d3f3d2..df75b0ab4e5 100644 --- a/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp @@ -223,7 +223,7 @@ FlagAttributeT<B>::resizeBitVectors(uint32_t neededSize) } } _bitVectorSize = newSize; - _bitVectorHolder.transferHoldLists(this->getCurrentGeneration()); + _bitVectorHolder.assign_generation(this->getCurrentGeneration()); } @@ -232,7 +232,7 @@ void FlagAttributeT<B>::removeOldGenerations(vespalib::GenerationHandler::generation_t firstUsed) { B::removeOldGenerations(firstUsed); - _bitVectorHolder.trimHoldLists(firstUsed); + _bitVectorHolder.reclaim(firstUsed); } template class FlagAttributeT<FlagBaseImpl>; diff --git a/searchlib/src/vespa/searchlib/attribute/load_utils.hpp b/searchlib/src/vespa/searchlib/attribute/load_utils.hpp index 62d645326ce..463a62ab01a 100644 --- a/searchlib/src/vespa/searchlib/attribute/load_utils.hpp +++ b/searchlib/src/vespa/searchlib/attribute/load_utils.hpp @@ -68,7 +68,7 @@ loadFromEnumeratedSingleValue(Vector &vector, using ValueType = typename Vector::ValueType; using NonAtomicValueType = atomic_utils::NonAtomicValue_t<ValueType>; uint32_t numDocs = attrReader.getEnumCount(); - genHolder.clearHoldLists(); + genHolder.reclaim_all(); vector.reset(); vector.unsafe_reserve(numDocs); for (uint32_t doc = 0; doc < numDocs; ++doc) { diff --git a/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp index c1897c71366..f2e07bba853 100644 --- a/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp @@ -89,7 +89,7 @@ PredicateAttribute::PredicateAttribute(const vespalib::string &base_file_name, c PredicateAttribute::~PredicateAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); } void PredicateAttribute::populateIfNeeded() { @@ -118,7 +118,7 @@ PredicateAttribute::onUpdateStat() combined.merge(_min_feature.getMemoryUsage()); combined.merge(_interval_range_vector.getMemoryUsage()); combined.merge(_index->getMemoryUsage()); - combined.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + combined.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); this->updateStatistics(_min_feature.size(), _min_feature.size(), combined.allocatedBytes(), combined.usedBytes(), combined.deadBytes(), combined.allocatedBytesOnHold()); @@ -127,14 +127,14 @@ PredicateAttribute::onUpdateStat() void PredicateAttribute::removeOldGenerations(generation_t firstUsed) { - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); _index->trimHoldLists(firstUsed); } void PredicateAttribute::onGenerationChange(generation_t generation) { - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); _index->transferHoldLists(generation - 1); } diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp index 0ebef4af8b0..36fb02f4c4b 100644 --- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp @@ -165,7 +165,7 @@ ReferenceAttribute::removeOldGenerations(generation_t firstUsed) { _referenceMappings.trimHoldLists(firstUsed); _store.trimHoldLists(firstUsed); - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); } void @@ -175,7 +175,7 @@ ReferenceAttribute::onGenerationChange(generation_t generation) _store.freeze(); _referenceMappings.transferHoldLists(generation - 1); _store.transferHoldLists(generation - 1); - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); } void @@ -203,7 +203,7 @@ ReferenceAttribute::onUpdateStat() _compaction_spec = ReferenceAttributeCompactionSpec(compaction_strategy.should_compact_memory(total), compaction_strategy.should_compact_memory(dictionary_memory_usage)); total.merge(dictionary_memory_usage); - total.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + total.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); total.merge(_indices.getMemoryUsage()); total.merge(_referenceMappings.getMemoryUsage()); updateStatistics(getTotalValueCount(), getUniqueValueCount(), diff --git a/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp b/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp index 7574508517d..6e07a9e658e 100644 --- a/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp @@ -29,7 +29,7 @@ SingleBoolAttribute(const vespalib::string &baseFileName, const GrowStrategy & g SingleBoolAttribute::~SingleBoolAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); } void @@ -95,7 +95,7 @@ SingleBoolAttribute::onUpdateStat() { vespalib::MemoryUsage usage; usage.setAllocatedBytes(_bv.writer().extraByteSize()); usage.setUsedBytes(_bv.writer().sizeBytes()); - usage.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + usage.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); usage.merge(this->getChangeVectorMemoryUsage()); this->updateStatistics(_bv.writer().size(), _bv.writer().size(), usage.allocatedBytes(), usage.usedBytes(), usage.deadBytes(), usage.allocatedBytesOnHold()); @@ -191,7 +191,7 @@ SingleBoolAttribute::onLoad(vespalib::Executor *) bool ok(attrReader.hasData()); if (ok) { setCreateSerialNum(attrReader.getCreateSerialNum()); - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _bv.writer().clear(); uint32_t numDocs = attrReader.getNextData(); _bv.extend(numDocs); @@ -258,12 +258,12 @@ SingleBoolAttribute::getEstimatedSaveByteSize() const void SingleBoolAttribute::removeOldGenerations(generation_t firstUsed) { - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); } void SingleBoolAttribute::onGenerationChange(generation_t generation) { - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); } } diff --git a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp index c4abcfbc25a..11742bf8f48 100644 --- a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp @@ -25,7 +25,7 @@ SingleValueEnumAttribute(const vespalib::string &baseFileName, template <typename B> SingleValueEnumAttribute<B>::~SingleValueEnumAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); } template <typename B> @@ -128,7 +128,7 @@ SingleValueEnumAttribute<B>::onUpdateStat() // update statistics vespalib::MemoryUsage total = _enumIndices.getMemoryUsage(); auto& compaction_strategy = this->getConfig().getCompactionStrategy(); - total.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + total.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); total.merge(this->_enumStore.update_stat(compaction_strategy)); total.merge(this->getChangeVectorMemoryUsage()); mergeMemoryStats(total); @@ -218,7 +218,7 @@ SingleValueEnumAttribute<B>::fillValues(LoadedVector & loaded) { if constexpr (!std::is_same_v<LoadedVector, NoLoadedVector>) { uint32_t numDocs = this->getNumDocs(); - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _enumIndices.reset(); _enumIndices.unsafe_reserve(numDocs); for (DocId doc = 0; doc < numDocs; ++doc, loaded.next()) { @@ -267,7 +267,7 @@ void SingleValueEnumAttribute<B>::removeOldGenerations(generation_t firstUsed) { this->_enumStore.trim_hold_lists(firstUsed); - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); } template <typename B> @@ -281,7 +281,7 @@ SingleValueEnumAttribute<B>::onGenerationChange(generation_t generation) * sufficiently new frozen tree. */ freezeEnumDictionary(); - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); this->_enumStore.transfer_hold_lists(generation - 1); } diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp index b9c1c3686de..bbacc10e79c 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp @@ -32,7 +32,7 @@ SingleValueNumericAttribute(const vespalib::string & baseFileName, const Attribu template <typename B> SingleValueNumericAttribute<B>::~SingleValueNumericAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); } template <typename B> @@ -65,7 +65,7 @@ void SingleValueNumericAttribute<B>::onUpdateStat() { vespalib::MemoryUsage usage = _data.getMemoryUsage(); - usage.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + usage.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); usage.merge(this->getChangeVectorMemoryUsage()); this->updateStatistics(_data.size(), _data.size(), usage.allocatedBytes(), usage.usedBytes(), usage.deadBytes(), usage.allocatedBytesOnHold()); @@ -97,14 +97,14 @@ template <typename B> void SingleValueNumericAttribute<B>::removeOldGenerations(generation_t firstUsed) { - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); } template <typename B> void SingleValueNumericAttribute<B>::onGenerationChange(generation_t generation) { - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); } template <typename B> @@ -143,7 +143,7 @@ SingleValueNumericAttribute<B>::onLoad(vespalib::Executor *) return onLoadEnumerated(attrReader); const size_t sz(attrReader.getDataCount()); - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _data.reset(); _data.unsafe_reserve(sz); for (uint32_t i = 0; i < sz; ++i) { diff --git a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp index b69ed017b52..02ab5798f9f 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp @@ -36,7 +36,7 @@ SingleValueSmallNumericAttribute(const vespalib::string & baseFileName, SingleValueSmallNumericAttribute::~SingleValueSmallNumericAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); } void @@ -97,7 +97,7 @@ void SingleValueSmallNumericAttribute::onUpdateStat() { vespalib::MemoryUsage usage = _wordData.getMemoryUsage(); - usage.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + usage.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); uint32_t numDocs = B::getNumDocs(); updateStatistics(numDocs, numDocs, usage.allocatedBytes(), usage.usedBytes(), @@ -108,14 +108,14 @@ SingleValueSmallNumericAttribute::onUpdateStat() void SingleValueSmallNumericAttribute::removeOldGenerations(generation_t firstUsed) { - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); } void SingleValueSmallNumericAttribute::onGenerationChange(generation_t generation) { - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); } @@ -127,7 +127,7 @@ SingleValueSmallNumericAttribute::onLoad(vespalib::Executor *) if (ok) { setCreateSerialNum(attrReader.getCreateSerialNum()); const size_t sz(attrReader.getDataCount()); - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _wordData.reset(); _wordData.unsafe_reserve(sz - 1); Word numDocs = attrReader.getNextData(); diff --git a/searchlib/src/vespa/searchlib/common/growablebitvector.cpp b/searchlib/src/vespa/searchlib/common/growablebitvector.cpp index e3334be3fd9..5f971e21cd3 100644 --- a/searchlib/src/vespa/searchlib/common/growablebitvector.cpp +++ b/searchlib/src/vespa/searchlib/common/growablebitvector.cpp @@ -72,7 +72,7 @@ bool GrowableBitVector::hold(GenerationHeldBase::UP v) { if (v) { - _generationHolder.hold(std::move(v)); + _generationHolder.insert(std::move(v)); return true; } return false; diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp index 636c949be08..0c797fa7fe1 100644 --- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp +++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp @@ -172,7 +172,7 @@ DenseTensorAttribute::DenseTensorAttribute(vespalib::stringref baseFileName, con DenseTensorAttribute::~DenseTensorAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _tensorStore.clearHoldLists(); } diff --git a/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp index d9fe025b4e5..a68f7fcc3da 100644 --- a/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp +++ b/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp @@ -15,7 +15,7 @@ DirectTensorAttribute::DirectTensorAttribute(stringref name, const Config &cfg) DirectTensorAttribute::~DirectTensorAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _tensorStore.clearHoldLists(); } diff --git a/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp index 52ccb4c91b1..d2153ac93ad 100644 --- a/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp +++ b/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp @@ -23,7 +23,7 @@ SerializedFastValueAttribute::SerializedFastValueAttribute(stringref name, const SerializedFastValueAttribute::~SerializedFastValueAttribute() { - getGenerationHolder().clearHoldLists(); + getGenerationHolder().reclaim_all(); _tensorStore.clearHoldLists(); } diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp index 99a30b59bd1..b233960e339 100644 --- a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp +++ b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp @@ -113,13 +113,13 @@ void TensorAttribute::removeOldGenerations(generation_t firstUsed) { _tensorStore.trimHoldLists(firstUsed); - getGenerationHolder().trimHoldLists(firstUsed); + getGenerationHolder().reclaim(firstUsed); } void TensorAttribute::onGenerationChange(generation_t generation) { - getGenerationHolder().transferHoldLists(generation - 1); + getGenerationHolder().assign_generation(generation - 1); _tensorStore.transferHoldLists(generation - 1); } @@ -169,7 +169,7 @@ TensorAttribute::update_stat() { vespalib::MemoryUsage result = _refVector.getMemoryUsage(); result.merge(_tensorStore.update_stat(getConfig().getCompactionStrategy())); - result.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + result.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); return result; } @@ -178,7 +178,7 @@ TensorAttribute::memory_usage() const { vespalib::MemoryUsage result = _refVector.getMemoryUsage(); result.merge(_tensorStore.getMemoryUsage()); - result.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); + result.mergeGenerationHeldBytes(getGenerationHolder().get_held_bytes()); return result; } |