aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2021-12-10 09:21:35 +0100
committerGitHub <noreply@github.com>2021-12-10 09:21:35 +0100
commit5f322411d90b9ac855772a4a7a5321ae7ba53afb (patch)
tree7355742db599616f2a464f9b2326d4d6e22f9e2a /searchcore
parentb2e40c664a36e237a02bf98078d87ee50fc949e1 (diff)
parent66a12314e0350f877a6335cc5338210db6a00d34 (diff)
Merge pull request #20443 from vespa-engine/toregge/calculate-need-for-compaction-when-updating-stats
Calculate need for compaction when updating stats.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp11
-rw-r--r--searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h2
2 files changed, 7 insertions, 6 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp
index 641108ea46b..28234730f7b 100644
--- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp
+++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp
@@ -197,8 +197,7 @@ DocumentMetaStore::consider_compact_gid_to_lid_map()
if (_gidToLidMap.getAllocator().getNodeStore().has_held_buffers()) {
return false;
}
- auto &compaction_strategy = getConfig().getCompactionStrategy();
- return compaction_strategy.should_compact_memory(_cached_gid_to_lid_map_memory_usage);
+ return _should_compact_gid_to_lid_map;
}
void
@@ -221,13 +220,15 @@ DocumentMetaStore::onCommit()
void
DocumentMetaStore::onUpdateStat()
{
+ auto &compaction_strategy = getConfig().getCompactionStrategy();
vespalib::MemoryUsage usage = _metaDataStore.getMemoryUsage();
usage.incAllocatedBytesOnHold(getGenerationHolder().getHeldBytes());
size_t bvSize = _lidAlloc.getUsedLidsSize();
usage.incAllocatedBytes(bvSize);
usage.incUsedBytes(bvSize);
- _cached_gid_to_lid_map_memory_usage = _gidToLidMap.getMemoryUsage();
- usage.merge(_cached_gid_to_lid_map_memory_usage);
+ auto gid_to_lid_map_memory_usage = _gidToLidMap.getMemoryUsage();
+ _should_compact_gid_to_lid_map = compaction_strategy.should_compact_memory(gid_to_lid_map_memory_usage);
+ usage.merge(gid_to_lid_map_memory_usage);
// the free lists are not taken into account here
updateStatistics(_metaDataStore.size(),
_metaDataStore.size(),
@@ -422,7 +423,7 @@ DocumentMetaStore::DocumentMetaStore(BucketDBOwnerSP bucketDB,
_trackDocumentSizes(true),
_changesSinceCommit(0),
_op_listener(),
- _cached_gid_to_lid_map_memory_usage()
+ _should_compact_gid_to_lid_map(false)
{
ensureSpace(0); // lid 0 is reserved
setCommittedDocIdLimit(1u); // lid 0 is reserved
diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h
index d78e98713ff..9e4977c65e1 100644
--- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h
+++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h
@@ -77,7 +77,7 @@ private:
bool _trackDocumentSizes;
size_t _changesSinceCommit;
OperationListenerSP _op_listener;
- vespalib::MemoryUsage _cached_gid_to_lid_map_memory_usage;
+ bool _should_compact_gid_to_lid_map;
DocId getFreeLid();
DocId peekFreeLid();