summaryrefslogtreecommitdiffstats
path: root/storage/src/tests/distributor/mergeoperationtest.cpp
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2021-11-30 13:51:45 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2021-11-30 13:51:45 +0000
commit2465ce1befaa41f5fce7c9491f913f5b2dac1467 (patch)
tree05ed94a6195de7c68e33543982c7247562ee2b35 /storage/src/tests/distributor/mergeoperationtest.cpp
parent01897e85ce899c9649e9e0b60d9cca9d3c5c3273 (diff)
Reduce default bucket delete pri and fix priority inheritance for merge deletion
Since deletes are now async in the backend, make them FIFO-order with client feed by default to avoid swamping the queues with deletes. Also, explicitly inherit priority for bucket deletion triggered by bucket merging. This was actually missing previously and meant such deletes got the default, very low priority.
Diffstat (limited to 'storage/src/tests/distributor/mergeoperationtest.cpp')
-rw-r--r--storage/src/tests/distributor/mergeoperationtest.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/storage/src/tests/distributor/mergeoperationtest.cpp b/storage/src/tests/distributor/mergeoperationtest.cpp
index 54bd06c98e0..e2b733c0a29 100644
--- a/storage/src/tests/distributor/mergeoperationtest.cpp
+++ b/storage/src/tests/distributor/mergeoperationtest.cpp
@@ -68,6 +68,7 @@ MergeOperationTest::setup_simple_merge_op(const std::vector<uint16_t>& nodes)
auto op = std::make_shared<MergeOperation>(BucketAndNodes(makeDocumentBucket(document::BucketId(16, 1)), nodes));
op->setIdealStateManager(&getIdealStateManager());
+ op->setPriority(api::StorageMessage::Priority(125));
op->start(_sender, framework::MilliSecTime(0));
return op;
}
@@ -603,4 +604,14 @@ TEST_F(MergeOperationTest, unordered_merges_only_sent_iff_config_enabled_and_all
_sender.getLastCommand(true));
}
+TEST_F(MergeOperationTest, delete_bucket_inherits_merge_priority) {
+ auto op = setup_simple_merge_op();
+ ASSERT_NO_FATAL_FAILURE(assert_simple_merge_bucket_command());
+ sendReply(*op);
+ ASSERT_NO_FATAL_FAILURE(assert_simple_delete_bucket_command());
+ auto del_cmd = std::dynamic_pointer_cast<api::DeleteBucketCommand>(_sender.commands().back());
+ ASSERT_TRUE(del_cmd);
+ EXPECT_EQ(int(del_cmd->getPriority()), int(op->getPriority()));
+}
+
} // storage::distributor