summaryrefslogtreecommitdiff
path: root/src/mongo/s/write_ops/batch_write_op_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/write_ops/batch_write_op_test.cpp')
-rw-r--r--src/mongo/s/write_ops/batch_write_op_test.cpp102
1 files changed, 52 insertions, 50 deletions
diff --git a/src/mongo/s/write_ops/batch_write_op_test.cpp b/src/mongo/s/write_ops/batch_write_op_test.cpp
index 3681cd77b10..da0b55eea60 100644
--- a/src/mongo/s/write_ops/batch_write_op_test.cpp
+++ b/src/mongo/s/write_ops/batch_write_op_test.cpp
@@ -119,7 +119,7 @@ using BatchWriteOpTest = WriteOpTestFixture;
TEST_F(BatchWriteOpTest, SingleOp) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -151,7 +151,7 @@ TEST_F(BatchWriteOpTest, SingleOp) {
TEST_F(BatchWriteOpTest, SingleError) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -189,7 +189,7 @@ TEST_F(BatchWriteOpTest, SingleError) {
TEST_F(BatchWriteOpTest, SingleTargetError) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterHalfRange(nss, endpoint);
@@ -223,7 +223,7 @@ TEST_F(BatchWriteOpTest, SingleTargetError) {
// concern error if one occurs.
TEST_F(BatchWriteOpTest, SingleWriteConcernErrorOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -265,7 +265,7 @@ TEST_F(BatchWriteOpTest, SingleWriteConcernErrorOrdered) {
// Single-op stale version test. We should retry the same batch until we're not stale.
TEST_F(BatchWriteOpTest, SingleStaleError) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -287,8 +287,10 @@ TEST_F(BatchWriteOpTest, SingleStaleError) {
response.addToErrDetails(write_ops::WriteError(
0,
Status{StaleConfigInfo(nss,
- ShardVersion(ChunkVersion({epoch, timestamp}, {101, 200})),
- ShardVersion(ChunkVersion({epoch, timestamp}, {105, 200})),
+ ShardVersion(ChunkVersion({epoch, timestamp}, {101, 200}),
+ CollectionIndexes({epoch, timestamp}, boost::none)),
+ ShardVersion(ChunkVersion({epoch, timestamp}, {105, 200}),
+ CollectionIndexes({epoch, timestamp}, boost::none)),
ShardId("shard")),
"mock stale error"}));
@@ -326,7 +328,7 @@ TEST_F(BatchWriteOpTest, SingleStaleError) {
// Multi-op targeting test (ordered)
TEST_F(BatchWriteOpTest, MultiOpSameShardOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -362,7 +364,7 @@ TEST_F(BatchWriteOpTest, MultiOpSameShardOrdered) {
// Multi-op targeting test (unordered)
TEST_F(BatchWriteOpTest, MultiOpSameShardUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -404,8 +406,8 @@ TEST_F(BatchWriteOpTest, MultiOpSameShardUnordered) {
// (one to each shard, one-by-one)
TEST_F(BatchWriteOpTest, MultiOpTwoShardsOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -460,7 +462,7 @@ void verifyTargetedBatches(std::map<ShardId, size_t> expected,
for (auto it = targeted.begin(); it != targeted.end(); ++it) {
ASSERT_EQUALS(expected[it->second->getEndpoint().shardName],
it->second->getWrites().size());
- ASSERT_EQUALS(ChunkVersion::IGNORED(), *it->second->getEndpoint().shardVersion);
+ ASSERT_EQUALS(ShardVersion::IGNORED(), *it->second->getEndpoint().shardVersion);
expected.erase(expected.find(it->second->getEndpoint().shardName));
}
ASSERT(expected.empty());
@@ -470,8 +472,8 @@ void verifyTargetedBatches(std::map<ShardId, size_t> expected,
// to each shard).
TEST_F(BatchWriteOpTest, MultiOpTwoShardsUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -515,8 +517,8 @@ TEST_F(BatchWriteOpTest, MultiOpTwoShardsUnordered) {
// two batches to each shard (two for each delete op).
TEST_F(BatchWriteOpTest, MultiOpTwoShardsEachOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -570,8 +572,8 @@ TEST_F(BatchWriteOpTest, MultiOpTwoShardsEachOrdered) {
// of two batches to each shard (containing writes for both ops).
TEST_F(BatchWriteOpTest, MultiOpTwoShardsEachUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -617,8 +619,8 @@ TEST_F(BatchWriteOpTest, MultiOpTwoShardsEachUnordered) {
// ops should be batched together.
TEST_F(BatchWriteOpTest, MultiOpOneOrTwoShardsOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -711,8 +713,8 @@ TEST_F(BatchWriteOpTest, MultiOpOneOrTwoShardsOrdered) {
// shards. Should batch all the ops together into two batches of four ops for each shard.
TEST_F(BatchWriteOpTest, MultiOpOneOrTwoShardsUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -764,8 +766,8 @@ TEST_F(BatchWriteOpTest, MultiOpOneOrTwoShardsUnordered) {
// one shard. There should be one set of two batches to each shard and an error reported.
TEST_F(BatchWriteOpTest, MultiOpSingleShardErrorUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -824,8 +826,8 @@ TEST_F(BatchWriteOpTest, MultiOpSingleShardErrorUnordered) {
// on each shard. There should be one set of two batches to each shard and and two errors reported.
TEST_F(BatchWriteOpTest, MultiOpTwoShardErrorsUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -881,8 +883,8 @@ TEST_F(BatchWriteOpTest, MultiOpTwoShardErrorsUnordered) {
// shard. There should be one set of two batches to each shard and an error reported.
TEST_F(BatchWriteOpTest, MultiOpPartialSingleShardErrorUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -943,8 +945,8 @@ TEST_F(BatchWriteOpTest, MultiOpPartialSingleShardErrorUnordered) {
// should not get run.
TEST_F(BatchWriteOpTest, MultiOpPartialSingleShardErrorOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1004,7 +1006,7 @@ TEST_F(BatchWriteOpTest, MultiOpPartialSingleShardErrorOrdered) {
// the error if ordered : false.
TEST_F(BatchWriteOpTest, MultiOpErrorAndWriteConcernErrorUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -1047,8 +1049,8 @@ TEST_F(BatchWriteOpTest, MultiOpErrorAndWriteConcernErrorUnordered) {
// ordered and we also have an error
TEST_F(BatchWriteOpTest, SingleOpErrorAndWriteConcernErrorOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1102,7 +1104,7 @@ TEST_F(BatchWriteOpTest, SingleOpErrorAndWriteConcernErrorOrdered) {
// Targeting failure on second op in batch op (ordered)
TEST_F(BatchWriteOpTest, MultiOpFailedTargetOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterHalfRange(nss, endpoint);
@@ -1156,7 +1158,7 @@ TEST_F(BatchWriteOpTest, MultiOpFailedTargetOrdered) {
// Targeting failure on second op in batch op (unordered)
TEST_F(BatchWriteOpTest, MultiOpFailedTargetUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterHalfRange(nss, endpoint);
@@ -1209,8 +1211,8 @@ TEST_F(BatchWriteOpTest, MultiOpFailedTargetUnordered) {
// into write errors for first affected write.
TEST_F(BatchWriteOpTest, MultiOpFailedBatchOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1256,8 +1258,8 @@ TEST_F(BatchWriteOpTest, MultiOpFailedBatchOrdered) {
// into write errors for all affected writes.
TEST_F(BatchWriteOpTest, MultiOpFailedBatchUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1312,8 +1314,8 @@ TEST_F(BatchWriteOpTest, MultiOpFailedBatchUnordered) {
// write.
TEST_F(BatchWriteOpTest, MultiOpAbortOrdered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1355,8 +1357,8 @@ TEST_F(BatchWriteOpTest, MultiOpAbortOrdered) {
// writes.
TEST_F(BatchWriteOpTest, MultiOpAbortUnordered) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1395,8 +1397,8 @@ TEST_F(BatchWriteOpTest, MultiOpAbortUnordered) {
// Multi-op targeting test where each op goes to both shards and both return a write concern error
TEST_F(BatchWriteOpTest, MultiOpTwoWCErrors) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpointA(ShardId("shardA"), ChunkVersion::IGNORED(), boost::none);
- ShardEndpoint endpointB(ShardId("shardB"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointA(ShardId("shardA"), ShardVersion::IGNORED(), boost::none);
+ ShardEndpoint endpointB(ShardId("shardB"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterSplitRange(nss, endpointA, endpointB);
@@ -1437,7 +1439,7 @@ TEST_F(BatchWriteOpTest, MultiOpTwoWCErrors) {
TEST_F(BatchWriteOpTest, AttachingStmtIds) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
const std::vector<StmtId> stmtIds{1, 2, 3};
@@ -1527,7 +1529,7 @@ using BatchWriteOpLimitTests = WriteOpTestFixture;
// Big single operation test - should go through
TEST_F(BatchWriteOpLimitTests, OneBigDoc) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -1562,7 +1564,7 @@ TEST_F(BatchWriteOpLimitTests, OneBigDoc) {
// Big doc with smaller additional doc - should go through as two batches
TEST_F(BatchWriteOpLimitTests, OneBigOneSmall) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterFullRange(nss, endpoint);
@@ -1630,7 +1632,7 @@ private:
TEST_F(BatchWriteOpTransactionTest, ThrowTargetingErrorsInTransaction_Delete) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterHalfRange(nss, endpoint);
@@ -1659,7 +1661,7 @@ TEST_F(BatchWriteOpTransactionTest, ThrowTargetingErrorsInTransaction_Delete) {
TEST_F(BatchWriteOpTransactionTest, ThrowTargetingErrorsInTransaction_Update) {
NamespaceString nss("foo.bar");
- ShardEndpoint endpoint(ShardId("shard"), ChunkVersion::IGNORED(), boost::none);
+ ShardEndpoint endpoint(ShardId("shard"), ShardVersion::IGNORED(), boost::none);
auto targeter = initTargeterHalfRange(nss, endpoint);