diff options
author | Tor Egge <Tor.Egge@oath.com> | 2017-09-21 09:57:11 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@oath.com> | 2017-09-21 09:57:11 +0000 |
commit | 389aeebfbe39856f0f21ad455795d41c7eedd801 (patch) | |
tree | c571a2652cf40bbb12487edbb2f5842c82fc037c /searchlib | |
parent | 59a94a6cc5e0c76d7f34a0835f80b86033261651 (diff) |
Make attribute disk usage estimate more robust. Use cached values instead
of calling methods that require an attribute guard being held.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/tests/attribute/attribute_test.cpp | 1 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/attributevector.cpp | 4 |
2 files changed, 3 insertions, 2 deletions
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<VectorType *>(a.get())), *(static_cast<VectorType *>(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; |