summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <tegge@oath.com>2017-08-16 13:29:54 +0000
committerTor Egge <tegge@oath.com>2017-08-16 13:29:54 +0000
commitf79ea2c1c5ae660227231143634690cffe42274e (patch)
tree2ce7b67fadf3ff50c0fc0654b12d0e041652128c /searchlib
parentacd1b850cd206474cef8de6231de6782f6e02120 (diff)
Account for memory usage in reference mappings and generation holder.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_mappings.cpp9
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_mappings.h2
3 files changed, 13 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
index 147c656ccfd..7e17ba3a808 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
@@ -179,7 +179,9 @@ ReferenceAttribute::onUpdateStat()
{
MemoryUsage total = _store.getMemoryUsage();
_cachedUniqueStoreMemoryUsage = total;
+ total.mergeGenerationHeldBytes(getGenerationHolder().getHeldBytes());
total.merge(_indices.getMemoryUsage());
+ total.merge(_referenceMappings.getMemoryUsage());
updateStatistics(getTotalValueCount(), getUniqueValueCount(),
total.allocatedBytes(),
total.usedBytes(), total.deadBytes(), total.allocatedBytesOnHold());
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_mappings.cpp b/searchlib/src/vespa/searchlib/attribute/reference_mappings.cpp
index 175dc05396d..881c0745582 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_mappings.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/reference_mappings.cpp
@@ -127,4 +127,13 @@ ReferenceMappings::shrink(uint32_t docIdLimit)
_referencedLids.shrink(docIdLimit);
}
+MemoryUsage
+ReferenceMappings::getMemoryUsage()
+{
+ MemoryUsage usage = _reverseMapping.getMemoryUsage();
+ usage.merge(_reverseMappingIndices.getMemoryUsage());
+ usage.merge(_referencedLids.getMemoryUsage());
+ return usage;
+}
+
}
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_mappings.h b/searchlib/src/vespa/searchlib/attribute/reference_mappings.h
index 9880bf44efc..631a610f773 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_mappings.h
+++ b/searchlib/src/vespa/searchlib/attribute/reference_mappings.h
@@ -67,6 +67,8 @@ public:
// Setup mapping after load
void buildReverseMapping(const Reference &entry, const std::vector<ReverseMapping::KeyDataType> &adds);
+ MemoryUsage getMemoryUsage();
+
// Reader API, reader must hold generation guard
template <typename FunctionType>
void