summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2020-09-30 12:24:38 +0200
committerTor Egge <Tor.Egge@broadpark.no>2020-09-30 12:24:38 +0200
commit2d0b7bdf3469302a9359aa42c7c11efa644613a2 (patch)
tree47ff5733955db02283a65afdfeca4ea6c0a5b3e2 /searchlib
parentff205ce5e2eccafeb0957007fb2671f1488e57c3 (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.cpp11
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_attribute.h2
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;