diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-12 14:04:32 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-12 14:06:04 +0000 |
commit | 854ecccb1ea9fbe2d1e1be4e9bbe234b6c1e60f7 (patch) | |
tree | 89d6a8b9976c4391ddbb6eed8b62243983638683 /searchcore | |
parent | f370d1e0a6a9fae3d0cb2b5240562f61703f25f7 (diff) |
Test that up -> retired -> up is reflectd correctly in document subdbs.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp | 25 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h | 3 |
2 files changed, 26 insertions, 2 deletions
diff --git a/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp b/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp index 60d5f57ac8c..bd356973841 100644 --- a/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp +++ b/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp @@ -305,7 +305,7 @@ struct FixtureBase _bucketDBHandler(*_bucketDB), _ctx(_writeService, _bucketDB, _bucketDBHandler), _baseSchema(), - _snapshot(new MyConfigSnapshot(_baseSchema, Traits::ConfigDir::dir())), + _snapshot(std::make_unique<MyConfigSnapshot>(_baseSchema, Traits::ConfigDir::dir())), _baseDir(BASE_DIR + "/" + SUB_NAME, BASE_DIR), _subDb(_cfg._cfg, _ctx._ctx), _tmpFeedView() @@ -557,6 +557,29 @@ TEST_F("require that attribute manager can be reconfigured", SearchableFixture) requireThatAttributeManagerCanBeReconfigured(f); } +TEST_F("require that subdb reflect retirement", FastAccessFixture) +{ + search::CompactionStrategy cfg(0.1, 0.3); + + EXPECT_FALSE(f._subDb.isNodeRetired()); + auto unretired_cfg = f._subDb.computeCompactionStrategy(cfg); + EXPECT_TRUE(cfg == unretired_cfg); + + auto calc = std::make_shared<proton::test::BucketStateCalculator>(); + calc->setNodeRetired(true); + f._subDb.setBucketStateCalculator(calc); + EXPECT_TRUE(f._subDb.isNodeRetired()); + auto retired_cfg = f._subDb.computeCompactionStrategy(cfg); + EXPECT_TRUE(cfg != retired_cfg); + EXPECT_TRUE(search::CompactionStrategy(0.5, 0.5) == retired_cfg); + + calc->setNodeRetired(false); + f._subDb.setBucketStateCalculator(calc); + EXPECT_FALSE(f._subDb.isNodeRetired()); + unretired_cfg = f._subDb.computeCompactionStrategy(cfg); + EXPECT_TRUE(cfg == unretired_cfg); +} + template <typename Fixture> void requireThatReconfiguredAttributesAreAccessibleViaFeedView(Fixture &f) diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h index 10ef88d0eaa..7051722f605 100644 --- a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h +++ b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h @@ -182,7 +182,6 @@ protected: StoreOnlyFeedView::Context getStoreOnlyFeedViewContext(const DocumentDBConfig &configSnapshot); StoreOnlyFeedView::PersistentParams getFeedViewPersistentParams(); vespalib::string getSubDbName() const; - bool isNodeRetired() const { return _nodeRetired; } void reconfigure(const search::LogDocumentStore::Config & protonConfig, const AllocStrategy& alloc_strategy); void reconfigureAttributesConsideringNodeState(); public: @@ -236,6 +235,8 @@ public: void tearDownReferences(IDocumentDBReferenceResolver &resolver) override; PendingLidTrackerBase & getUncommittedLidsTracker() override { return *_pendingLidsForCommit; } search::CompactionStrategy computeCompactionStrategy(search::CompactionStrategy strategy) const; + bool isNodeRetired() const { return _nodeRetired; } + }; } |