diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-09-30 15:22:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-30 15:22:12 +0200 |
commit | 48432ae2bf96f10263c5ed9a77c3b1ec2b664da2 (patch) | |
tree | 8659dcbcbc292ee6766d027452c3b9352c2f0c9b /vespalib | |
parent | 48b87fd2d6d6d3fcf777f5b106988d86d3508d58 (diff) | |
parent | 5f41e744749e4808c10526cf2f45ba69a1f32e32 (diff) |
Merge pull request #14628 from vespa-engine/toregge/reconsider-allocation-stats
Consider a buffer on hold to have zero dead elements
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/datastore/datastore/datastore_test.cpp | 7 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/datastore/bufferstate.cpp | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/vespalib/src/tests/datastore/datastore/datastore_test.cpp b/vespalib/src/tests/datastore/datastore/datastore_test.cpp index 448df2d24bd..a5bb51e5074 100644 --- a/vespalib/src/tests/datastore/datastore/datastore_test.cpp +++ b/vespalib/src/tests/datastore/datastore/datastore_test.cpp @@ -422,7 +422,8 @@ TEST(DataStoreTest, require_that_memory_stats_are_calculated) s.holdBuffer(r.bufferId()); s.transferHoldLists(100); m._usedElems += 2; - m._holdElems += 2; // used - dead + m._holdElems = m._usedElems; + m._deadElems = 0; m._activeBuffers--; m._holdBuffers++; assertMemStats(m, s.getMemStats()); @@ -474,8 +475,8 @@ TEST(DataStoreTest, require_that_memory_usage_is_calculated) vespalib::MemoryUsage m = s.getMemoryUsage(); EXPECT_EQ(MyRef::offsetSize() * sizeof(int), m.allocatedBytes()); EXPECT_EQ(5 * sizeof(int), m.usedBytes()); - EXPECT_EQ(2 * sizeof(int), m.deadBytes()); - EXPECT_EQ(3 * sizeof(int), m.allocatedBytesOnHold()); + EXPECT_EQ(0 * sizeof(int), m.deadBytes()); + EXPECT_EQ(5 * sizeof(int), m.allocatedBytesOnHold()); s.trimHoldLists(101); } diff --git a/vespalib/src/vespa/vespalib/datastore/bufferstate.cpp b/vespalib/src/vespa/vespalib/datastore/bufferstate.cpp index acebe8d0db6..eb301556c4b 100644 --- a/vespalib/src/vespa/vespalib/datastore/bufferstate.cpp +++ b/vespalib/src/vespa/vespalib/datastore/bufferstate.cpp @@ -137,7 +137,8 @@ BufferState::onHold() _compacting = false; assert(_deadElems <= _usedElems); assert(_holdElems <= (_usedElems - _deadElems)); - _holdElems = _usedElems - _deadElems; // Put everyting not dead on hold + _deadElems = 0; + _holdElems = _usedElems; // Put everyting on hold _typeHandler->onHold(&_usedElems); if (!_freeList.empty()) { removeFromFreeListList(); |