diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-23 11:19:30 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-23 11:19:30 +0000 |
commit | 31006e5945dd26d28d0157829862f61c405435ca (patch) | |
tree | 39dfe6a95b4489c1d61f0fad2023d2cb2ebf2de7 /searchcore/src/tests | |
parent | 9190653f24b07563ca70d1fb0263b8f3e9c8440f (diff) |
Add metirc for buckets pending move.
Diffstat (limited to 'searchcore/src/tests')
-rw-r--r-- | searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h | 1 | ||||
-rw-r--r-- | searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_v2_test.cpp | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h b/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h index e2cd5e268d7..b74a2410fa0 100644 --- a/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h +++ b/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h @@ -27,6 +27,7 @@ struct MyMoveOperationLimiter : public IMoveOperationLimiter { ++beginOpCount; return {}; } + size_t numPending() const override { return beginOpCount; } }; struct MyMoveHandler : public IDocumentMoveHandler { diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_v2_test.cpp b/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_v2_test.cpp index 9db18091268..78232663eae 100644 --- a/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_v2_test.cpp +++ b/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_v2_test.cpp @@ -6,6 +6,8 @@ #include <vespa/vespalib/gtest/gtest.h> #include <vespa/log/log.h> +#include <vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h> + LOG_SETUP("document_bucket_mover_test"); using namespace proton; @@ -35,6 +37,7 @@ struct ControllerFixtureBase : public ::testing::Test ExecutorThreadService _master; DummyBucketExecutor _bucketExecutor; MyMoveHandler _moveHandler; + DocumentDBTaggedMetrics _metrics; BucketMoveJobV2 _bmj; MyCountJobRunner _runner; ControllerFixtureBase(const BlockableMaintenanceJobConfig &blockableConfig, bool storeMoveDoneContexts); @@ -73,6 +76,10 @@ struct ControllerFixtureBase : public ::testing::Test const BucketId::List &calcAsked() const { return _calc->asked(); } + size_t numPending() { + _bmj.updateMetrics(_metrics); + return _metrics.bucketMove.bucketsPending.getValue(); + } void runLoop() { while (!_bmj.isBlocked() && !_bmj.run()) { } @@ -98,6 +105,7 @@ ControllerFixtureBase::ControllerFixtureBase(const BlockableMaintenanceJobConfig _master(_singleExecutor), _bucketExecutor(4), _moveHandler(*_bucketDB, storeMoveDoneContexts), + _metrics("test", 1), _bmj(_calc, _moveHandler, _modifiedHandler, _master, _bucketExecutor, _ready._subDb, _notReady._subDb, _bucketCreateNotifier, _clusterStateHandler, _bucketHandler, _diskMemUsageNotifier, blockableConfig, @@ -156,11 +164,15 @@ TEST_F(ControllerFixture, require_that_not_ready_bucket_is_moved_to_ready_if_buc addReady(_ready.bucket(1)); addReady(_ready.bucket(2)); addReady(_notReady.bucket(4)); + + EXPECT_EQ(0, numPending()); _bmj.recompute(); + EXPECT_EQ(1, numPending()); EXPECT_FALSE(_bmj.done()); EXPECT_TRUE(_bmj.scanAndMove(4, 3)); EXPECT_TRUE(_bmj.done()); sync(); + EXPECT_EQ(0, numPending()); EXPECT_EQ(3u, docsMoved().size()); assertEqual(_notReady.bucket(4), _notReady.docs(4)[0], 2, 1, docsMoved()[0]); assertEqual(_notReady.bucket(4), _notReady.docs(4)[1], 2, 1, docsMoved()[1]); @@ -194,27 +206,32 @@ TEST_F(ControllerFixture, require_that_we_move_buckets_in_several_steps) addReady(_notReady.bucket(4)); _bmj.recompute(); + EXPECT_EQ(3, numPending()); EXPECT_FALSE(_bmj.done()); EXPECT_FALSE(_bmj.scanAndMove(1, 2)); EXPECT_FALSE(_bmj.done()); sync(); + EXPECT_EQ(2, numPending()); EXPECT_EQ(2u, docsMoved().size()); EXPECT_FALSE(_bmj.scanAndMove(1, 2)); EXPECT_FALSE(_bmj.done()); sync(); + EXPECT_EQ(2, numPending()); EXPECT_EQ(4u, docsMoved().size()); EXPECT_FALSE(_bmj.scanAndMove(1, 2)); EXPECT_FALSE(_bmj.done()); sync(); + EXPECT_EQ(1, numPending()); EXPECT_EQ(6u, docsMoved().size()); // move bucket 4, docs 3 EXPECT_TRUE(_bmj.scanAndMove(1,2)); EXPECT_TRUE(_bmj.done()); sync(); + EXPECT_EQ(0, numPending()); EXPECT_EQ(7u, docsMoved().size()); EXPECT_EQ(3u, bucketsModified().size()); EXPECT_EQ(_ready.bucket(2), bucketsModified()[0]); |