diff options
Diffstat (limited to 'searchcommon')
-rw-r--r-- | searchcommon/src/tests/attribute/config/attribute_config_test.cpp | 10 | ||||
-rw-r--r-- | searchcommon/src/vespa/searchcommon/common/growstrategy.h | 23 |
2 files changed, 20 insertions, 13 deletions
diff --git a/searchcommon/src/tests/attribute/config/attribute_config_test.cpp b/searchcommon/src/tests/attribute/config/attribute_config_test.cpp index d0a2f693473..99de79b8976 100644 --- a/searchcommon/src/tests/attribute/config/attribute_config_test.cpp +++ b/searchcommon/src/tests/attribute/config/attribute_config_test.cpp @@ -7,6 +7,7 @@ using search::attribute::Config; using search::attribute::BasicType; using search::attribute::CollectionType; using vespalib::eval::ValueType; +using search::GrowStrategy; struct Fixture @@ -100,5 +101,14 @@ TEST("test operator== on attribute config for tensor type") EXPECT_TRUE(cfg1 != cfg3); } +TEST("Test GrowStrategy consistency") { + GrowStrategy g(1024, 0.5, 17, 0.4f); + EXPECT_EQUAL(1024u, g.getDocsInitialCapacity()); + EXPECT_EQUAL(50u, g.getDocsGrowPercent()); + EXPECT_EQUAL(0.5, g.getDocsGrowFactor()); + EXPECT_EQUAL(17u, g.getDocsGrowDelta()); + EXPECT_EQUAL(0.4f, g.getMultiValueAllocGrowFactor()); +} + TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchcommon/src/vespa/searchcommon/common/growstrategy.h b/searchcommon/src/vespa/searchcommon/common/growstrategy.h index f772d9f8e10..5af9f9f16fe 100644 --- a/searchcommon/src/vespa/searchcommon/common/growstrategy.h +++ b/searchcommon/src/vespa/searchcommon/common/growstrategy.h @@ -10,32 +10,29 @@ class GrowStrategy { private: uint32_t _docsInitialCapacity; - uint32_t _docsGrowPercent; + float _docsGrowFactor; uint32_t _docsGrowDelta; float _multiValueAllocGrowFactor; public: GrowStrategy() - : GrowStrategy(1024, 50, 0, 0.2) + : GrowStrategy(1024, 0.5, 0, 0.2) {} - GrowStrategy(uint32_t docsInitialCapacity, - uint32_t docsGrowPercent, - uint32_t docsGrowDelta, - float multiValueAllocGrowFactor) + GrowStrategy(uint32_t docsInitialCapacity, float docsGrowPercent, + uint32_t docsGrowDelta, float multiValueAllocGrowFactor) : _docsInitialCapacity(docsInitialCapacity), - _docsGrowPercent(docsGrowPercent), + _docsGrowFactor(docsGrowPercent), _docsGrowDelta(docsGrowDelta), _multiValueAllocGrowFactor(multiValueAllocGrowFactor) { } - static GrowStrategy make(uint32_t docsInitialCapacity, - uint32_t docsGrowPercent, - uint32_t docsGrowDelta) { - return GrowStrategy(docsInitialCapacity, docsGrowPercent, docsGrowDelta, 0.2); + static GrowStrategy make(uint32_t docsInitialCapacity, float docsGrowFactor, uint32_t docsGrowDelta) { + return GrowStrategy(docsInitialCapacity, docsGrowFactor, docsGrowDelta, 0.2); } uint32_t getDocsInitialCapacity() const { return _docsInitialCapacity; } - uint32_t getDocsGrowPercent() const { return _docsGrowPercent; } + uint32_t getDocsGrowPercent() const { return _docsGrowFactor*100; } + float getDocsGrowFactor() const { return _docsGrowFactor; } uint32_t getDocsGrowDelta() const { return _docsGrowDelta; } float getMultiValueAllocGrowFactor() const { return _multiValueAllocGrowFactor; } void setDocsInitialCapacity(uint32_t v) { _docsInitialCapacity = v; } @@ -43,7 +40,7 @@ public: bool operator==(const GrowStrategy & rhs) const { return _docsInitialCapacity == rhs._docsInitialCapacity && - _docsGrowPercent == rhs._docsGrowPercent && + _docsGrowFactor == rhs._docsGrowFactor && _docsGrowDelta == rhs._docsGrowDelta && _multiValueAllocGrowFactor == rhs._multiValueAllocGrowFactor; } |