summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosef Ahmad <josef.ahmad@mongodb.com>2022-09-27 15:51:51 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-27 16:53:56 +0000
commita9d6de1242318413f29ccb2b233fd7885af4d083 (patch)
treec3c9414f6aea8d7fe8346af742a6131d198069c4
parent2371fd2f3f37c26ba1b0d83db0f7f716042df2f6 (diff)
downloadmongo-a9d6de1242318413f29ccb2b233fd7885af4d083.tar.gz
SERVER-69719 Shorten the global index crud oplog entries
-rw-r--r--jstests/noPassthrough/shardsvr_global_index_crud_bulk.js8
-rw-r--r--src/mongo/db/op_observer/op_observer_impl.cpp2
-rw-r--r--src/mongo/db/repl/oplog.cpp8
-rw-r--r--src/mongo/db/repl/oplog_entry.cpp4
4 files changed, 13 insertions, 9 deletions
diff --git a/jstests/noPassthrough/shardsvr_global_index_crud_bulk.js b/jstests/noPassthrough/shardsvr_global_index_crud_bulk.js
index 2d5976d777b..d875a0ac71b 100644
--- a/jstests/noPassthrough/shardsvr_global_index_crud_bulk.js
+++ b/jstests/noPassthrough/shardsvr_global_index_crud_bulk.js
@@ -635,12 +635,12 @@ assert.commandFailedWithCode(adminDB.runCommand({_shardsvrWriteGlobalIndexKeys:
delete oplogEntryPlain.wall;
assert.docEq(oplogEntryBulk, oplogEntryPlain);
assert.eq(oplogEntryBulk["o"]["applyOps"][0]["op"], "xi");
- assert.docEq(oplogEntryBulk["o"]["applyOps"][0]["o"]["key"], {myKey: "insertAndRemove"});
- assert.docEq(oplogEntryBulk["o"]["applyOps"][0]["o"]["docKey"],
+ assert.docEq(oplogEntryBulk["o"]["applyOps"][0]["o"]["ik"], {myKey: "insertAndRemove"});
+ assert.docEq(oplogEntryBulk["o"]["applyOps"][0]["o"]["dk"],
{shardKey: "insert", _id: "andRemove"});
assert.eq(oplogEntryBulk["o"]["applyOps"][1]["op"], "xd");
- assert.docEq(oplogEntryBulk["o"]["applyOps"][1]["o"]["key"], {myKey: "insertAndRemove"});
- assert.docEq(oplogEntryBulk["o"]["applyOps"][1]["o"]["docKey"],
+ assert.docEq(oplogEntryBulk["o"]["applyOps"][1]["o"]["ik"], {myKey: "insertAndRemove"});
+ assert.docEq(oplogEntryBulk["o"]["applyOps"][1]["o"]["dk"],
{shardKey: "insert", _id: "andRemove"});
}
diff --git a/src/mongo/db/op_observer/op_observer_impl.cpp b/src/mongo/db/op_observer/op_observer_impl.cpp
index b2bf057d5a7..2a9a08e8195 100644
--- a/src/mongo/db/op_observer/op_observer_impl.cpp
+++ b/src/mongo/db/op_observer/op_observer_impl.cpp
@@ -314,6 +314,8 @@ void logGlobalIndexDDLOperation(OperationContext* opCtx,
MutableOplogEntry oplogEntry;
oplogEntry.setOpType(repl::OpTypeEnum::kCommand);
oplogEntry.setObject(builder.done());
+ // The 'ns' field is technically redundant as it can be derived from the uuid, however it's a
+ // required oplog entry field.
oplogEntry.setNss(globalIndexNss.getCommandNS());
oplogEntry.setUuid(globalIndexUUID);
diff --git a/src/mongo/db/repl/oplog.cpp b/src/mongo/db/repl/oplog.cpp
index ce7b914e8a5..3d7259d73bb 100644
--- a/src/mongo/db/repl/oplog.cpp
+++ b/src/mongo/db/repl/oplog.cpp
@@ -1868,8 +1868,8 @@ Status applyOperation_inlock(OperationContext* opCtx,
global_index::insertKey(opCtx,
*op.getUuid(),
- op.getObject().getObjectField("key"),
- op.getObject().getObjectField("docKey"));
+ op.getObject().getObjectField("ik"),
+ op.getObject().getObjectField("dk"));
break;
}
case OpTypeEnum::kDeleteGlobalIndexKey: {
@@ -1877,8 +1877,8 @@ Status applyOperation_inlock(OperationContext* opCtx,
global_index::deleteKey(opCtx,
*op.getUuid(),
- op.getObject().getObjectField("key"),
- op.getObject().getObjectField("docKey"));
+ op.getObject().getObjectField("ik"),
+ op.getObject().getObjectField("dk"));
break;
}
default: {
diff --git a/src/mongo/db/repl/oplog_entry.cpp b/src/mongo/db/repl/oplog_entry.cpp
index 0ce5be7ddc9..219dcb5be1c 100644
--- a/src/mongo/db/repl/oplog_entry.cpp
+++ b/src/mongo/db/repl/oplog_entry.cpp
@@ -131,9 +131,11 @@ ReplOperation makeGlobalIndexCrudOperation(const NamespaceString& indexNss,
const BSONObj& key,
const BSONObj& docKey) {
ReplOperation op;
+ // The 'ns' field is technically redundant as it can be derived from the uuid, however it's a
+ // required oplog entry field.
op.setNss(indexNss.getCommandNS());
op.setUuid(indexUuid);
- op.setObject(BSON("key" << key << "docKey" << docKey));
+ op.setObject(BSON("ik" << key << "dk" << docKey));
return op;
}
} // namespace