diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2020-09-30 12:24:38 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2020-09-30 12:24:38 +0200 |
commit | 2d0b7bdf3469302a9359aa42c7c11efa644613a2 (patch) | |
tree | 47ff5733955db02283a65afdfeca4ea6c0a5b3e2 /searchlib | |
parent | ff205ce5e2eccafeb0957007fb2671f1488e57c3 (diff) |
Use memory usage for unique store values but not for unique store dictionary
when checking if compaction should be performed.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp | 11 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/reference_attribute.h | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp index 53f88246a0a..51e15c26b8f 100644 --- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp @@ -44,7 +44,7 @@ ReferenceAttribute::ReferenceAttribute(const vespalib::stringref baseFileName, : NotImplementedAttribute(baseFileName, cfg), _store(), _indices(getGenerationHolder()), - _cachedUniqueStoreMemoryUsage(), + _cached_unique_store_values_memory_usage(), _gidToLidMapperFactory(), _referenceMappings(getGenerationHolder(), getCommittedDocIdLimitRef()) { @@ -188,8 +188,9 @@ ReferenceAttribute::onCommit() void ReferenceAttribute::onUpdateStat() { - vespalib::MemoryUsage total = _store.getMemoryUsage(); - _cachedUniqueStoreMemoryUsage = total; + vespalib::MemoryUsage total = _store.get_values_memory_usage(); + _cached_unique_store_values_memory_usage = total; + total.merge(_store.get_dictionary_memory_usage()); total.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes()); total.merge(_indices.getMemoryUsage()); total.merge(_referenceMappings.getMemoryUsage()); @@ -285,8 +286,8 @@ ReferenceAttribute::getReference(DocId doc) const bool ReferenceAttribute::considerCompact(const CompactionStrategy &compactionStrategy) { - size_t usedBytes = _cachedUniqueStoreMemoryUsage.usedBytes(); - size_t deadBytes = _cachedUniqueStoreMemoryUsage.deadBytes(); + size_t usedBytes = _cached_unique_store_values_memory_usage.usedBytes(); + size_t deadBytes = _cached_unique_store_values_memory_usage.deadBytes(); bool compactMemory = ((deadBytes >= DEAD_BYTES_SLACK) && (usedBytes * compactionStrategy.getMaxDeadBytesRatio() < deadBytes)); if (compactMemory) { diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.h b/searchlib/src/vespa/searchlib/attribute/reference_attribute.h index 1c138abf989..892966b16c7 100644 --- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.h +++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.h @@ -42,7 +42,7 @@ public: private: ReferenceStore _store; ReferenceStoreIndices _indices; - vespalib::MemoryUsage _cachedUniqueStoreMemoryUsage; + vespalib::MemoryUsage _cached_unique_store_values_memory_usage; std::shared_ptr<IGidToLidMapperFactory> _gidToLidMapperFactory; ReferenceMappings _referenceMappings; |