summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanika Phanse <sanika.phanse@mongodb.com>2022-03-31 17:21:06 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-31 19:34:08 +0000
commit128760e188aa4dfb122f35a801eab446a862c4ba (patch)
tree2a01edd9eabc879a3ecb68a5b5168417a05ec45b
parent8711aedfc3e06626309eaed6a854c72a056ff2d8 (diff)
downloadmongo-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.idl5
-rw-r--r--src/mongo/s/commands/cluster_find_and_modify_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_write_cmd.cpp2
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())) {