diff options
author | Sanika Phanse <sanika.phanse@mongodb.com> | 2022-03-31 17:21:06 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-03-31 19:34:08 +0000 |
commit | 128760e188aa4dfb122f35a801eab446a862c4ba (patch) | |
tree | 2a01edd9eabc879a3ecb68a5b5168417a05ec45b | |
parent | 8711aedfc3e06626309eaed6a854c72a056ff2d8 (diff) | |
download | mongo-128760e188aa4dfb122f35a801eab446a862c4ba.tar.gz |
SERVER-64540 Add feature flag just for using txn API for updating document shard key value
-rw-r--r-- | src/mongo/db/internal_transactions_feature_flag.idl | 5 | ||||
-rw-r--r-- | src/mongo/s/commands/cluster_find_and_modify_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/s/commands/cluster_write_cmd.cpp | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/src/mongo/db/internal_transactions_feature_flag.idl b/src/mongo/db/internal_transactions_feature_flag.idl index 83fe8b1a644..61972cec8fd 100644 --- a/src/mongo/db/internal_transactions_feature_flag.idl +++ b/src/mongo/db/internal_transactions_feature_flag.idl @@ -39,3 +39,8 @@ feature_flags: description: Feature flag for enabling internal transactions. cpp_varname: gFeatureFlagInternalTransactions default: false + + featureFlagUpdateDocumentShardKeyUsingTransactionApi: + description: Feature flag to enable usage of the transaction api for update findAndModify and update commands that change a document's shard key. + cpp_varname: gFeatureFlagUpdateDocumentShardKeyUsingTransactionApi + default: false diff --git a/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp b/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp index 501a996c84b..e374f3adb5b 100644 --- a/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp +++ b/src/mongo/s/commands/cluster_find_and_modify_cmd.cpp @@ -540,7 +540,7 @@ private: } if (responseStatus.code() == ErrorCodes::WouldChangeOwningShard) { - if (feature_flags::gFeatureFlagInternalTransactions.isEnabled( + if (feature_flags::gFeatureFlagUpdateDocumentShardKeyUsingTransactionApi.isEnabled( serverGlobalParams.featureCompatibility)) { auto parsedRequest = write_ops::FindAndModifyCommandRequest::parse( IDLParserErrorContext("ClusterFindAndModify"), cmdObj); diff --git a/src/mongo/s/commands/cluster_write_cmd.cpp b/src/mongo/s/commands/cluster_write_cmd.cpp index af64f184f90..47eb18b4b0e 100644 --- a/src/mongo/s/commands/cluster_write_cmd.cpp +++ b/src/mongo/s/commands/cluster_write_cmd.cpp @@ -287,7 +287,7 @@ bool handleWouldChangeOwningShardError(OperationContext* opCtx, bool updatedShardKey = false; boost::optional<BSONObj> upsertedId; - if (feature_flags::gFeatureFlagInternalTransactions.isEnabled( + if (feature_flags::gFeatureFlagUpdateDocumentShardKeyUsingTransactionApi.isEnabled( serverGlobalParams.featureCompatibility)) { if (isRetryableWrite) { if (MONGO_unlikely(hangAfterThrowWouldChangeOwningShardRetryableWrite.shouldFail())) { |