From 389aeebfbe39856f0f21ad455795d41c7eedd801 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Thu, 21 Sep 2017 09:57:11 +0000 Subject: Make attribute disk usage estimate more robust. Use cached values instead of calling methods that require an attribute guard being held. --- searchlib/src/tests/attribute/attribute_test.cpp | 1 + searchlib/src/vespa/searchlib/attribute/attributevector.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'searchlib') diff --git a/searchlib/src/tests/attribute/attribute_test.cpp b/searchlib/src/tests/attribute/attribute_test.cpp index e13c419e68e..b406afa7e7b 100644 --- a/searchlib/src/tests/attribute/attribute_test.cpp +++ b/searchlib/src/tests/attribute/attribute_test.cpp @@ -459,6 +459,7 @@ void AttributeTest::testReload(const AttributePtr & a, const AttributePtr & b, c (*(static_cast(a.get())), *(static_cast(b.get()))); a->setCreateSerialNum(43u); EXPECT_TRUE( a->saveAs(b->getBaseFileName()) ); + a->commit(true); if (preciseEstimatedSize(*a)) { EXPECT_EQUAL(statSize(*b), a->getEstimatedSaveByteSize()); } else { diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp index 5735ddfd923..8b3af9bddd3 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp @@ -805,8 +805,8 @@ uint64_t AttributeVector::getEstimatedSaveByteSize() const { uint64_t headerSize = 4096; - uint64_t totalValueCount = getTotalValueCount(); - uint64_t uniqueValueCount = getUniqueValueCount(); + uint64_t totalValueCount = _status.getNumValues(); + uint64_t uniqueValueCount = _status.getNumUniqueValues(); uint64_t docIdLimit = getCommittedDocIdLimit(); uint64_t datFileSize = 0; uint64_t weightFileSize = 0; -- cgit v1.2.3