summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/start_chunk_clone_request.cpp
diff options
context:
space:
mode:
authorMatthew Saltz <matthew.saltz@mongodb.com>2019-11-22 18:58:48 +0000
committerevergreen <evergreen@mongodb.com>2019-11-22 18:58:48 +0000
commit9d6f438e6cb6f51c260727f876423fa2a19ca8c4 (patch)
tree29e97df07781128c0edcb66db8bd6aab58acc3f4 /src/mongo/db/s/start_chunk_clone_request.cpp
parentdfe9a2f8776a0d5cae7eb2e894fc3fefc7ff2c9a (diff)
downloadmongo-9d6f438e6cb6f51c260727f876423fa2a19ca8c4.tar.gz
SERVER-44161 Add migration UUID to StartChunkCloneRequest
Diffstat (limited to 'src/mongo/db/s/start_chunk_clone_request.cpp')
-rw-r--r--src/mongo/db/s/start_chunk_clone_request.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/db/s/start_chunk_clone_request.cpp b/src/mongo/db/s/start_chunk_clone_request.cpp
index 6fddc248baa..ad350452346 100644
--- a/src/mongo/db/s/start_chunk_clone_request.cpp
+++ b/src/mongo/db/s/start_chunk_clone_request.cpp
@@ -34,12 +34,15 @@
#include "mongo/base/status_with.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/bson/util/bson_extract.h"
+#include "mongo/db/commands/feature_compatibility_version.h"
namespace mongo {
namespace {
const char kRecvChunkStart[] = "_recvChunkStart";
const char kFromShardConnectionString[] = "from";
+// Note: The UUID parsing code relies on this field being named 'uuid'.
+const char kMigrationId[] = "uuid";
const char kFromShardId[] = "fromShardName";
const char kToShardId[] = "toShardName";
const char kChunkMinKey[] = "min";
@@ -71,6 +74,12 @@ StatusWith<StartChunkCloneRequest> StartChunkCloneRequest::createFromCommand(Nam
std::move(sessionIdStatus.getValue()),
std::move(secondaryThrottleStatus.getValue()));
+ // TODO (SERVER-44787): Remove this FCV check after 4.4 is released.
+ if (serverGlobalParams.featureCompatibility.getVersion() ==
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo44) {
+ request._migrationId = UUID::parse(obj);
+ }
+
{
std::string fromShardConnectionString;
Status status =
@@ -153,6 +162,7 @@ StatusWith<StartChunkCloneRequest> StartChunkCloneRequest::createFromCommand(Nam
void StartChunkCloneRequest::appendAsCommand(
BSONObjBuilder* builder,
const NamespaceString& nss,
+ const UUID& migrationId,
const MigrationSessionId& sessionId,
const ConnectionString& fromShardConnectionString,
const ShardId& fromShardId,
@@ -166,6 +176,7 @@ void StartChunkCloneRequest::appendAsCommand(
invariant(fromShardConnectionString.isValid());
builder->append(kRecvChunkStart, nss.ns());
+ migrationId.appendToBuilder(builder, kMigrationId);
sessionId.append(builder);
builder->append(kFromShardConnectionString, fromShardConnectionString.toString());
builder->append(kFromShardId, fromShardId.toString());