diff options
author | Tor Egge <Tor.Egge@online.no> | 2021-12-09 15:36:12 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2021-12-09 17:22:09 +0100 |
commit | 66a12314e0350f877a6335cc5338210db6a00d34 (patch) | |
tree | 45cd7a410ac590326232dc736adf772d2f1c3e7b /searchcore | |
parent | 828ebd77e0a57c1da583f43f1f2bc0512ab698e9 (diff) |
Calculate need for compaction when updating stats.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp | 11 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h | 2 |
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(); |