diff options
author | Geir Storli <geirst@verizonmedia.com> | 2021-08-25 15:01:53 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2021-08-25 15:08:21 +0000 |
commit | f784aefb6a8694ab4d73b8cc46fb3d61a6b18fef (patch) | |
tree | b30485718ff7814eedb4078bb9f175fc2fd70420 /storage | |
parent | 13db9a04be59b3a26d78e1fa979a21abf47c9432 (diff) |
Rewrite per stripe tests that need to set pending cluster state to use DistributorStripeTestUtil.
Diffstat (limited to 'storage')
4 files changed, 103 insertions, 93 deletions
diff --git a/storage/src/tests/distributor/distributor_stripe_test_util.cpp b/storage/src/tests/distributor/distributor_stripe_test_util.cpp index 2c0b34752c7..2be74e40ad1 100644 --- a/storage/src/tests/distributor/distributor_stripe_test_util.cpp +++ b/storage/src/tests/distributor/distributor_stripe_test_util.cpp @@ -136,6 +136,16 @@ DistributorStripeTestUtil::handle_top_level_message(const std::shared_ptr<api::S } void +DistributorStripeTestUtil::simulate_set_pending_cluster_state(const lib::ClusterStateBundle& pending_state) +{ + for (auto& space : _stripe->getBucketSpaceRepo()) { + const auto& new_cluster_state = pending_state.getDerivedClusterState(space.first); + _stripe->remove_superfluous_buckets(space.first, *new_cluster_state, false); + } + _stripe->set_pending_cluster_state_bundle(pending_state); +} + +void DistributorStripeTestUtil::setTypeRepo(const std::shared_ptr<const document::DocumentTypeRepo>& repo) { _node->getComponentRegister().setDocumentTypeRepo(repo); diff --git a/storage/src/tests/distributor/distributor_stripe_test_util.h b/storage/src/tests/distributor/distributor_stripe_test_util.h index afe9e9da085..20af2b8c939 100644 --- a/storage/src/tests/distributor/distributor_stripe_test_util.h +++ b/storage/src/tests/distributor/distributor_stripe_test_util.h @@ -204,6 +204,8 @@ public: void handle_top_level_message(const std::shared_ptr<api::StorageMessage>& msg); + void simulate_set_pending_cluster_state(const lib::ClusterStateBundle& pending_state); + protected: vdstestlib::DirConfig _config; std::unique_ptr<TestDistributorApp> _node; diff --git a/storage/src/tests/distributor/putoperationtest.cpp b/storage/src/tests/distributor/putoperationtest.cpp index b75751c1270..3433b2f3ce0 100644 --- a/storage/src/tests/distributor/putoperationtest.cpp +++ b/storage/src/tests/distributor/putoperationtest.cpp @@ -1,18 +1,17 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <tests/distributor/distributor_stripe_test_util.h> #include <vespa/document/repo/documenttyperepo.h> -#include <vespa/storage/distributor/operations/external/putoperation.h> +#include <vespa/document/test/make_document_bucket.h> #include <vespa/storage/distributor/distributor.h> -#include <vespa/storage/distributor/distributor_stripe.h> #include <vespa/storage/distributor/distributor_bucket_space.h> +#include <vespa/storage/distributor/distributor_stripe.h> +#include <vespa/storage/distributor/operations/external/putoperation.h> #include <vespa/storageapi/message/bucket.h> #include <vespa/storageapi/message/persistence.h> #include <vespa/storageapi/message/state.h> -#include <tests/distributor/distributortestutil.h> -#include <tests/common/dummystoragelink.h> -#include <vespa/document/test/make_document_bucket.h> -#include <vespa/vespalib/text/stringtokenizer.h> #include <vespa/vespalib/gtest/gtest.h> +#include <vespa/vespalib/text/stringtokenizer.h> using std::shared_ptr; using config::ConfigGetter; @@ -31,7 +30,7 @@ using namespace ::testing; namespace storage::distributor { class PutOperationTest : public Test, - public DistributorTestUtil + public DistributorStripeTestUtil { public: document::TestDocMan _testDocMan; @@ -78,8 +77,7 @@ public: operation_context(), getDistributorBucketSpace(), msg, - getDistributor().getMetrics(). - puts); + metrics().puts); op->start(_sender, framework::MilliSecTime(0)); } @@ -127,7 +125,7 @@ using RequirePrimaryWritten = bool; const vespalib::duration TIMEOUT = 180ms; TEST_F(PutOperationTest, simple) { - setupDistributor(1, 1, "storage:1 distributor:1"); + setup_stripe(1, 1, "storage:1 distributor:1"); createAndSendSampleDocument(TIMEOUT); ASSERT_EQ("Put(BucketId(0x4000000000001dd4), " @@ -142,7 +140,7 @@ TEST_F(PutOperationTest, simple) { } TEST_F(PutOperationTest, bucket_database_gets_special_entry_when_CreateBucket_sent) { - setupDistributor(2, 1, "storage:1 distributor:1"); + setup_stripe(2, 1, "storage:1 distributor:1"); Document::SP doc(createDummyDocument("test", "test")); sendPut(createPut(doc)); @@ -156,9 +154,11 @@ TEST_F(PutOperationTest, bucket_database_gets_special_entry_when_CreateBucket_se } TEST_F(PutOperationTest, send_inline_split_before_put_if_bucket_too_large) { - setupDistributor(1, 1, "storage:1 distributor:1"); - getConfig().setSplitCount(1024); - getConfig().setSplitSize(1000000); + setup_stripe(1, 1, "storage:1 distributor:1"); + auto cfg = make_config(); + cfg->setSplitCount(1024); + cfg->setSplitSize(1000000); + configure_stripe(cfg); addNodesToBucketDB(document::BucketId(0x4000000000000593), "0=10000/10000/10000/t"); @@ -174,9 +174,11 @@ TEST_F(PutOperationTest, send_inline_split_before_put_if_bucket_too_large) { } TEST_F(PutOperationTest, do_not_send_inline_split_if_not_configured) { - setupDistributor(1, 1, "storage:1 distributor:1"); - getConfig().setSplitCount(1024); - getConfig().setDoInlineSplit(false); + setup_stripe(1, 1, "storage:1 distributor:1"); + auto cfg = make_config(); + cfg->setSplitCount(1024); + cfg->setDoInlineSplit(false); + configure_stripe(cfg); addNodesToBucketDB(document::BucketId(0x4000000000000593), "0=10000/10000/10000/t"); @@ -188,7 +190,7 @@ TEST_F(PutOperationTest, do_not_send_inline_split_if_not_configured) { } TEST_F(PutOperationTest, return_success_if_op_acked_on_all_replicas_even_if_bucket_concurrently_removed_from_db) { - setupDistributor(2, 2, "storage:2 distributor:1"); + setup_stripe(2, 2, "storage:2 distributor:1"); createAndSendSampleDocument(TIMEOUT); ASSERT_EQ("Put(BucketId(0x4000000000001dd4), " @@ -216,7 +218,7 @@ TEST_F(PutOperationTest, return_success_if_op_acked_on_all_replicas_even_if_buck } TEST_F(PutOperationTest, storage_failed) { - setupDistributor(2, 1, "storage:1 distributor:1"); + setup_stripe(2, 1, "storage:1 distributor:1"); createAndSendSampleDocument(TIMEOUT); @@ -228,7 +230,7 @@ TEST_F(PutOperationTest, storage_failed) { } TEST_F(PutOperationTest, multiple_copies) { - setupDistributor(3, 4, "storage:4 distributor:1"); + setup_stripe(3, 4, "storage:4 distributor:1"); Document::SP doc(createDummyDocument("test", "test")); sendPut(createPut(doc)); @@ -253,7 +255,7 @@ TEST_F(PutOperationTest, multiple_copies) { } TEST_F(PutOperationTest, multiple_copies_early_return_primary_required) { - setupDistributor(3, 4, "storage:4 distributor:1", 2, true); + setup_stripe(3, 4, "storage:4 distributor:1", 2, true); sendPut(createPut(createDummyDocument("test", "test"))); @@ -276,7 +278,7 @@ TEST_F(PutOperationTest, multiple_copies_early_return_primary_required) { } TEST_F(PutOperationTest, multiple_copies_early_return_primary_not_required) { - setupDistributor(3, 4, "storage:4 distributor:1", 2, false); + setup_stripe(3, 4, "storage:4 distributor:1", 2, false); sendPut(createPut(createDummyDocument("test", "test"))); @@ -298,7 +300,7 @@ TEST_F(PutOperationTest, multiple_copies_early_return_primary_not_required) { } TEST_F(PutOperationTest, multiple_copies_early_return_primary_required_not_done) { - setupDistributor(3, 4, "storage:4 distributor:1", 2, true); + setup_stripe(3, 4, "storage:4 distributor:1", 2, true); sendPut(createPut(createDummyDocument("test", "test"))); @@ -316,7 +318,7 @@ TEST_F(PutOperationTest, multiple_copies_early_return_primary_required_not_done) } TEST_F(PutOperationTest, do_not_revert_on_failure_after_early_return) { - setupDistributor(Redundancy(3),NodeCount(4), "storage:4 distributor:1", + setup_stripe(Redundancy(3),NodeCount(4), "storage:4 distributor:1", ReturnAfter(2), RequirePrimaryWritten(false)); sendPut(createPut(createDummyDocument("test", "test"))); @@ -344,7 +346,7 @@ TEST_F(PutOperationTest, do_not_revert_on_failure_after_early_return) { } TEST_F(PutOperationTest, revert_successful_copies_when_one_fails) { - setupDistributor(3, 4, "storage:4 distributor:1"); + setup_stripe(3, 4, "storage:4 distributor:1"); createAndSendSampleDocument(TIMEOUT); @@ -369,7 +371,7 @@ TEST_F(PutOperationTest, no_revert_if_revert_disabled) { getDirConfig().getConfig("stor-distributormanager") .set("enable_revert", "false"); SetUp(); - setupDistributor(3, 4, "storage:4 distributor:1"); + setup_stripe(3, 4, "storage:4 distributor:1"); createAndSendSampleDocument(TIMEOUT); @@ -390,7 +392,7 @@ TEST_F(PutOperationTest, no_revert_if_revert_disabled) { } TEST_F(PutOperationTest, do_not_send_CreateBucket_if_already_pending) { - setupDistributor(2, 2, "storage:2 distributor:1"); + setup_stripe(2, 2, "storage:2 distributor:1"); Document::SP doc(createDummyDocument("test", "uri")); sendPut(createPut(doc)); @@ -415,7 +417,7 @@ TEST_F(PutOperationTest, do_not_send_CreateBucket_if_already_pending) { } TEST_F(PutOperationTest, no_storage_nodes) { - setupDistributor(2, 1, "storage:0 distributor:1"); + setup_stripe(2, 1, "storage:0 distributor:1"); createAndSendSampleDocument(TIMEOUT); ASSERT_EQ("PutReply(id:test:testdoctype1::, BucketId(0x0000000000000000), " "timestamp 100) ReturnCode(NOT_CONNECTED, " @@ -424,7 +426,7 @@ TEST_F(PutOperationTest, no_storage_nodes) { } TEST_F(PutOperationTest, update_correct_bucket_on_remapped_put) { - setupDistributor(2, 2, "storage:2 distributor:1"); + setup_stripe(2, 2, "storage:2 distributor:1"); auto doc = std::make_shared<Document>(doc_type(), DocumentId("id:test:testdoctype1:n=13:uri")); addNodesToBucketDB(document::BucketId(16,13), "0=0,1=0"); @@ -502,7 +504,7 @@ PutOperationTest::getNodes(const std::string& infoString) { } TEST_F(PutOperationTest, target_nodes) { - setupDistributor(2, 6, "storage:6 distributor:1"); + setup_stripe(2, 6, "storage:6 distributor:1"); // Ideal state of bucket is 1,2. ASSERT_EQ("target( 1 2 ) create( 1 2 )", getNodes("")); @@ -516,7 +518,7 @@ TEST_F(PutOperationTest, target_nodes) { } TEST_F(PutOperationTest, replica_not_resurrected_in_db_when_node_down_in_active_state) { - setupDistributor(Redundancy(3), NodeCount(3), "distributor:1 storage:3"); + setup_stripe(Redundancy(3), NodeCount(3), "distributor:1 storage:3"); Document::SP doc(createDummyDocument("test", "uri")); document::BucketId bId = operation_context().make_split_bit_constrained_bucket_id(doc->getId()); @@ -527,7 +529,7 @@ TEST_F(PutOperationTest, replica_not_resurrected_in_db_when_node_down_in_active_ ASSERT_EQ("Put => 1,Put => 2,Put => 0", _sender.getCommands(true)); - enableDistributorClusterState("distributor:1 storage:3 .1.s:d .2.s:m"); + enable_cluster_state("distributor:1 storage:3 .1.s:d .2.s:m"); addNodesToBucketDB(bId, "0=1/2/3/t"); // This will actually remove node #1. sendReply(0, api::ReturnCode::OK, api::BucketInfo(9, 9, 9)); @@ -540,7 +542,7 @@ TEST_F(PutOperationTest, replica_not_resurrected_in_db_when_node_down_in_active_ } TEST_F(PutOperationTest, replica_not_resurrected_in_db_when_node_down_in_pending_state) { - setupDistributor(Redundancy(3), NodeCount(4), "version:1 distributor:1 storage:3"); + setup_stripe(Redundancy(3), NodeCount(4), "version:1 distributor:1 storage:3"); auto doc = createDummyDocument("test", "uri"); auto bucket = operation_context().make_split_bit_constrained_bucket_id(doc->getId()); @@ -559,9 +561,8 @@ TEST_F(PutOperationTest, replica_not_resurrected_in_db_when_node_down_in_pending // fetch here; if we just set a node down the cluster state would be immediately applied // and the distributor's "clear pending messages for downed nodes" logic would kick in // and hide the problem. - getBucketDBUpdater().onSetSystemState( - std::make_shared<api::SetSystemStateCommand>( - lib::ClusterState("version:2 distributor:1 storage:4 .0.s:d .2.s:m"))); + simulate_set_pending_cluster_state(lib::ClusterStateBundle( + lib::ClusterState("version:2 distributor:1 storage:4 .0.s:d .2.s:m"))); sendReply(0, api::ReturnCode::OK, api::BucketInfo(5, 6, 7)); sendReply(1, api::ReturnCode::OK, api::BucketInfo(6, 7, 8)); @@ -575,13 +576,12 @@ TEST_F(PutOperationTest, replica_not_resurrected_in_db_when_node_down_in_pending // TODO probably also do this for updates and removes // TODO consider if we should use the pending state verbatim for computing targets if it exists TEST_F(PutOperationTest, put_is_failed_with_busy_if_target_down_in_pending_state) { - setupDistributor(Redundancy(3), NodeCount(4), "version:1 distributor:1 storage:3"); + setup_stripe(Redundancy(3), NodeCount(4), "version:1 distributor:1 storage:3"); auto doc = createDummyDocument("test", "test"); auto bucket = operation_context().make_split_bit_constrained_bucket_id(doc->getId()); addNodesToBucketDB(bucket, "0=1/2/3/t,1=1/2/3/t,2=1/2/3/t"); - getBucketDBUpdater().onSetSystemState( - std::make_shared<api::SetSystemStateCommand>( - lib::ClusterState("version:2 distributor:1 storage:4 .0.s:d .2.s:m"))); + simulate_set_pending_cluster_state(lib::ClusterStateBundle( + lib::ClusterState("version:2 distributor:1 storage:4 .0.s:d .2.s:m"))); _sender.clear(); sendPut(createPut(doc)); @@ -593,7 +593,7 @@ TEST_F(PutOperationTest, put_is_failed_with_busy_if_target_down_in_pending_state } TEST_F(PutOperationTest, send_to_retired_nodes_if_no_up_nodes_available) { - setupDistributor(Redundancy(2), NodeCount(2), + setup_stripe(Redundancy(2), NodeCount(2), "distributor:1 storage:2 .0.s:r .1.s:r"); Document::SP doc(createDummyDocument("test", "uri")); document::BucketId bucket( @@ -606,7 +606,7 @@ TEST_F(PutOperationTest, send_to_retired_nodes_if_no_up_nodes_available) { } void PutOperationTest::do_test_creation_with_bucket_activation_disabled(bool disabled) { - setupDistributor(Redundancy(2), NodeCount(2), "distributor:1 storage:1"); + setup_stripe(Redundancy(2), NodeCount(2), "distributor:1 storage:1"); disableBucketActivationInConfig(disabled); Document::SP doc(createDummyDocument("test", "uri")); @@ -630,7 +630,7 @@ TEST_F(PutOperationTest, replica_not_implicitly_activated_when_activation_is_dis } void PutOperationTest::set_up_3_nodes_and_send_put_with_create_bucket_acks() { - setupDistributor(3, 3, "storage:3 distributor:1"); + setup_stripe(3, 3, "storage:3 distributor:1"); Document::SP doc(createDummyDocument("test", "test")); sendPut(createPut(doc)); diff --git a/storage/src/tests/distributor/visitoroperationtest.cpp b/storage/src/tests/distributor/visitoroperationtest.cpp index 011bf0e81fd..57ee965f0b0 100644 --- a/storage/src/tests/distributor/visitoroperationtest.cpp +++ b/storage/src/tests/distributor/visitoroperationtest.cpp @@ -1,18 +1,17 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/storageapi/message/bucket.h> +#include <tests/distributor/distributor_stripe_test_util.h> +#include <vespa/document/fieldset/fieldsets.h> +#include <vespa/document/test/make_bucket_space.h> +#include <vespa/storage/common/reindexing_constants.h> +#include <vespa/storage/distributor/distributor.h> +#include <vespa/storage/distributor/distributor_stripe.h> +#include <vespa/storage/distributor/distributormetricsset.h> +#include <vespa/storage/distributor/operations/external/visitoroperation.h> +#include <vespa/storage/distributor/operations/external/visitororder.h> #include <vespa/storageapi/message/bucketsplitting.h> #include <vespa/storageapi/message/datagram.h> #include <vespa/storageapi/message/persistence.h> #include <vespa/storageapi/message/state.h> -#include <vespa/storage/common/reindexing_constants.h> -#include <vespa/storage/distributor/operations/external/visitoroperation.h> -#include <vespa/storage/distributor/operations/external/visitororder.h> -#include <vespa/storage/distributor/distributormetricsset.h> -#include <tests/distributor/distributortestutil.h> -#include <vespa/storage/distributor/distributor.h> -#include <vespa/storage/distributor/distributor_stripe.h> -#include <vespa/document/fieldset/fieldsets.h> -#include <vespa/document/test/make_bucket_space.h> #include <vespa/vespalib/gtest/gtest.h> using namespace document; @@ -23,7 +22,7 @@ using document::test::makeBucketSpace; namespace storage::distributor { -struct VisitorOperationTest : Test, DistributorTestUtil { +struct VisitorOperationTest : Test, DistributorStripeTestUtil { VisitorOperationTest() : defaultConfig(100, 100) {} @@ -96,7 +95,7 @@ struct VisitorOperationTest : Test, DistributorTestUtil { } VisitorMetricSet& defaultVisitorMetrics() { - return getDistributor().getMetrics().visits; + return metrics().visits; } std::unique_ptr<VisitorOperation> createOpWithConfig( @@ -109,7 +108,7 @@ struct VisitorOperationTest : Test, DistributorTestUtil { getDistributorBucketSpace(), msg, config, - getDistributor().getMetrics().visits); + metrics().visits); } std::unique_ptr<VisitorOperation> createOpWithDefaultConfig(api::CreateVisitorCommand::SP msg) @@ -150,7 +149,7 @@ TEST_F(VisitorOperationTest, parameter_forwarding) { void VisitorOperationTest::doStandardVisitTest(const std::string& clusterState) { - enableDistributorClusterState(clusterState); + enable_cluster_state(clusterState); // Create bucket in bucketdb document::BucketId id(uint64_t(0x400000000000007b)); @@ -212,7 +211,7 @@ VisitorOperationTest::doStandardVisitTest(const std::string& clusterState) } TEST_F(VisitorOperationTest, shutdown) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Create bucket in bucketdb document::BucketId id(uint64_t(0x400000000000007b)); @@ -241,7 +240,7 @@ TEST_F(VisitorOperationTest, shutdown) { } TEST_F(VisitorOperationTest, no_bucket) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Send create visitor auto msg = std::make_shared<api::CreateVisitorCommand>( @@ -254,7 +253,7 @@ TEST_F(VisitorOperationTest, no_bucket) { } TEST_F(VisitorOperationTest, only_super_bucket_and_progress_allowed) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Send create visitor api::CreateVisitorCommand::SP msg(new api::CreateVisitorCommand( @@ -277,7 +276,7 @@ TEST_F(VisitorOperationTest, retired_storage_node) { TEST_F(VisitorOperationTest, no_resend_after_timeout_passed) { document::BucketId id(uint64_t(0x400000000000007b)); - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); addNodesToBucketDB(id, "0=1/1/1/t,1=1/1/1/t"); auto op = createOpWithDefaultConfig( @@ -297,7 +296,7 @@ TEST_F(VisitorOperationTest, no_resend_after_timeout_passed) { } TEST_F(VisitorOperationTest, distributor_not_ready) { - enableDistributorClusterState("distributor:0 storage:0"); + enable_cluster_state("distributor:0 storage:0"); document::BucketId id(uint64_t(0x400000000000007b)); EXPECT_EQ("CreateVisitorReply(last=BucketId(0x0000000000000000)) " "ReturnCode(NODE_NOT_READY, No distributors available when " @@ -307,7 +306,7 @@ TEST_F(VisitorOperationTest, distributor_not_ready) { TEST_F(VisitorOperationTest, non_existing_bucket) { document::BucketId id(uint64_t(0x400000000000007b)); - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); auto res = runEmptyVisitor( createVisitorCommand("nonExistingBucket", id, nullId)); EXPECT_EQ("CreateVisitorReply(last=BucketId(0x000000007fffffff)) " @@ -317,7 +316,7 @@ TEST_F(VisitorOperationTest, non_existing_bucket) { TEST_F(VisitorOperationTest, user_single_bucket) { document::BucketId id(uint64_t(0x400000000000007b)); document::BucketId userid(uint64_t(0x800000000000007b)); - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); addNodesToBucketDB(id, "0=1/1/1/t"); @@ -371,7 +370,7 @@ VisitorOperationTest::runVisitor(document::BucketId id, } TEST_F(VisitorOperationTest, user_inconsistently_split_bucket) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Not containing (19, 0x40001) addNodesToBucketDB(document::BucketId(17, 0x0), "0=1/1/1/t"); @@ -414,7 +413,7 @@ TEST_F(VisitorOperationTest, user_inconsistently_split_bucket) { } TEST_F(VisitorOperationTest, bucket_removed_while_visitor_pending) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Create bucket in bucketdb document::BucketId id(uint64_t(0x400000000000007b)); @@ -439,7 +438,7 @@ TEST_F(VisitorOperationTest, bucket_removed_while_visitor_pending) { } TEST_F(VisitorOperationTest, empty_buckets_visited_when_visiting_removes) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); document::BucketId id(uint64_t(0x400000000000007b)); addNodesToBucketDB(id, "0=0/0/0/1/2/t"); @@ -453,7 +452,7 @@ TEST_F(VisitorOperationTest, empty_buckets_visited_when_visiting_removes) { } TEST_F(VisitorOperationTest, resend_to_other_storage_node_on_failure) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); document::BucketId id(uint64_t(0x400000000000007b)); addNodesToBucketDB(id, "0=1/1/1/t,1=1/1/1/t"); @@ -477,7 +476,7 @@ TEST_F(VisitorOperationTest, resend_to_other_storage_node_on_failure) { // client reply and that this won't cause things to hang for indeterminate // amounts of time. TEST_F(VisitorOperationTest, timeout_only_after_reply_from_all_storage_nodes) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); // Contained in (16, 0x1) addNodesToBucketDB(document::BucketId(17, 0x00001), "0=1/1/1/t"); @@ -515,7 +514,7 @@ TEST_F(VisitorOperationTest, timeout_only_after_reply_from_all_storage_nodes) { } TEST_F(VisitorOperationTest, timeout_does_not_override_critical_error) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); addNodesToBucketDB(document::BucketId(17, 0x00001), "0=1/1/1/t"); addNodesToBucketDB(document::BucketId(17, 0x10001), "1=1/1/1/t"); @@ -544,7 +543,7 @@ TEST_F(VisitorOperationTest, timeout_does_not_override_critical_error) { } TEST_F(VisitorOperationTest, wrong_distribution) { - setupDistributor(1, 100, "distributor:100 storage:2"); + setup_stripe(1, 100, "distributor:100 storage:2"); document::BucketId id(uint64_t(0x400000000000127b)); ASSERT_EQ("CreateVisitorReply(last=BucketId(0x0000000000000000)) " @@ -555,12 +554,11 @@ TEST_F(VisitorOperationTest, wrong_distribution) { TEST_F(VisitorOperationTest, wrong_distribution_in_pending_state) { // Force bucket to belong to this distributor in currently enabled state. - setupDistributor(1, 100, "distributor:1 storage:2"); + setup_stripe(1, 100, "distributor:1 storage:2"); // Trigger pending cluster state. Note: increase in storage node count // to force resending of bucket info requests. - auto stateCmd = std::make_shared<api::SetSystemStateCommand>( - lib::ClusterState("distributor:100 storage:3")); - getBucketDBUpdater().onSetSystemState(stateCmd); + simulate_set_pending_cluster_state(lib::ClusterStateBundle( + lib::ClusterState("distributor:100 storage:3"))); document::BucketId id(uint64_t(0x400000000000127b)); ASSERT_EQ("CreateVisitorReply(last=BucketId(0x0000000000000000)) " @@ -574,7 +572,7 @@ TEST_F(VisitorOperationTest, wrong_distribution_in_pending_state) { // higher version number. // See ticket 6353382 for details. TEST_F(VisitorOperationTest, visitor_aborted_if_node_is_marked_as_down) { - setupDistributor(1, 10, "distributor:10 .0.s:s storage:10"); + setup_stripe(1, 10, "distributor:10 .0.s:s storage:10"); document::BucketId id(uint64_t(0x400000000000127b)); ASSERT_EQ("CreateVisitorReply(last=BucketId(0x0000000000000000)) " @@ -583,7 +581,7 @@ TEST_F(VisitorOperationTest, visitor_aborted_if_node_is_marked_as_down) { } TEST_F(VisitorOperationTest, bucket_high_bit_count) { - enableDistributorClusterState("distributor:1 storage:1 bits:16"); + enable_cluster_state("distributor:1 storage:1 bits:16"); document::BucketId id(18, 0x0); addNodesToBucketDB(id, "0=1/1/1/t"); @@ -609,7 +607,7 @@ TEST_F(VisitorOperationTest, bucket_high_bit_count) { } TEST_F(VisitorOperationTest, bucket_low_bit_count) { - enableDistributorClusterState("distributor:1 storage:1 bits:16"); + enable_cluster_state("distributor:1 storage:1 bits:16"); document::BucketId id(1, 0x0); addNodesToBucketDB(id, "0=1/1/1/t"); @@ -636,7 +634,7 @@ TEST_F(VisitorOperationTest, bucket_low_bit_count) { } TEST_F(VisitorOperationTest, parallel_visitors_to_one_storage_node) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Create buckets in bucketdb for (int i=0; i<32; i++) { @@ -709,7 +707,7 @@ TEST_F(VisitorOperationTest, parallel_visitors_to_one_storage_node) { } TEST_F(VisitorOperationTest, parallel_visitors_resend_only_failing) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); // Create buckets in bucketdb for (int i=0; i<32; i++) { @@ -750,7 +748,7 @@ TEST_F(VisitorOperationTest, parallel_visitors_resend_only_failing) { } TEST_F(VisitorOperationTest, parallel_visitors_to_one_storage_node_one_super_bucket) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); // Create buckets in bucketdb for (int i=0; i<8; i++) { @@ -783,7 +781,7 @@ TEST_F(VisitorOperationTest, parallel_visitors_to_one_storage_node_one_super_buc } TEST_F(VisitorOperationTest, visit_when_one_bucket_copy_is_invalid) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); document::BucketId id(16, 0); @@ -795,7 +793,7 @@ TEST_F(VisitorOperationTest, visit_when_one_bucket_copy_is_invalid) { } TEST_F(VisitorOperationTest, visiting_when_all_buckets_are_invalid) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); document::BucketId id(16, 0); @@ -807,7 +805,7 @@ TEST_F(VisitorOperationTest, visiting_when_all_buckets_are_invalid) { } TEST_F(VisitorOperationTest, inconsistency_handling) { - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); document::BucketId id(16, 0); @@ -835,7 +833,7 @@ TEST_F(VisitorOperationTest, inconsistency_handling) { TEST_F(VisitorOperationTest, visit_ideal_node) { ClusterState state("distributor:1 storage:3"); - enable_distributor_cluster_state(lib::ClusterStateBundle(state)); + enable_cluster_state(lib::ClusterStateBundle(state)); // Create buckets in bucketdb for (int i=0; i<32; i++ ) { @@ -866,7 +864,7 @@ TEST_F(VisitorOperationTest, visit_ideal_node) { } TEST_F(VisitorOperationTest, no_resending_on_critical_failure) { - enableDistributorClusterState("distributor:1 storage:3"); + enable_cluster_state("distributor:1 storage:3"); // Create buckets in bucketdb for (int i=0; i<32; i++ ) { @@ -890,7 +888,7 @@ TEST_F(VisitorOperationTest, no_resending_on_critical_failure) { } TEST_F(VisitorOperationTest, failure_on_all_nodes) { - enableDistributorClusterState("distributor:1 storage:3"); + enable_cluster_state("distributor:1 storage:3"); // Create buckets in bucketdb for (int i=0; i<32; i++ ) { @@ -921,7 +919,7 @@ TEST_F(VisitorOperationTest, failure_on_all_nodes) { } TEST_F(VisitorOperationTest, visit_in_chunks) { - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); for (int i = 0; i < 9; ++i) { addNodesToBucketDB(document::BucketId(30, i << 16), "0=1/1/1/t"); @@ -966,7 +964,7 @@ TEST_F(VisitorOperationTest, visit_in_chunks) { std::unique_ptr<VisitorOperation> VisitorOperationTest::startOperationWith2StorageNodeVisitors(bool inconsistent) { - enableDistributorClusterState("distributor:1 storage:3"); + enable_cluster_state("distributor:1 storage:3"); addNodesToBucketDB(document::BucketId(17, 1), "0=1/1/1/t"); addNodesToBucketDB(document::BucketId(17, 1ULL << 16 | 1), "1=1/1/1/t"); @@ -1026,7 +1024,7 @@ TEST_F(VisitorOperationTest, skip_failed_sub_buckets_when_visiting_inconsistent) // having it hard-coded to 2000 ms as was the case earlier. TEST_F(VisitorOperationTest, queue_timeout_is_factor_of_total_timeout) { document::BucketId id(uint64_t(0x400000000000007b)); - enableDistributorClusterState("distributor:1 storage:2"); + enable_cluster_state("distributor:1 storage:2"); addNodesToBucketDB(id, "0=1/1/1/t,1=1/1/1/t"); auto op = createOpWithDefaultConfig( @@ -1044,7 +1042,7 @@ VisitorOperationTest::do_visitor_roundtrip_with_statistics( const api::ReturnCode& result) { document::BucketId id(0x400000000000007bULL); - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); addNodesToBucketDB(id, "0=1/1/1/t"); auto op = createOpWithDefaultConfig( @@ -1073,7 +1071,7 @@ TEST_F(VisitorOperationTest, metrics_are_updated_with_visitor_statistics_upon_re } TEST_F(VisitorOperationTest, statistical_metrics_not_updated_on_wrong_distribution) { - setupDistributor(1, 100, "distributor:100 storage:2"); + setup_stripe(1, 100, "distributor:100 storage:2"); document::BucketId id(uint64_t(0x400000000000127b)); ASSERT_EQ("CreateVisitorReply(last=BucketId(0x0000000000000000)) " @@ -1092,7 +1090,7 @@ TEST_F(VisitorOperationTest, statistical_metrics_not_updated_on_wrong_distributi TEST_F(VisitorOperationTest, assigning_put_lock_access_token_sets_special_visitor_parameter) { document::BucketId id(0x400000000000007bULL); - enableDistributorClusterState("distributor:1 storage:1"); + enable_cluster_state("distributor:1 storage:1"); addNodesToBucketDB(id, "0=1/1/1/t"); auto op = createOpWithDefaultConfig(createVisitorCommand("metricstats", id, nullId)); |