diff options
author | Vojislav Stojkovic <vojislav.stojkovic@mongodb.com> | 2022-05-05 05:41:22 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-05-05 07:05:25 +0000 |
commit | e6547d5561be2e0fe51f5f7a317a094732f77c2c (patch) | |
tree | d5687ad5233198162eced951631a52a360118a12 /src/mongo/executor | |
parent | 489307691e3029900580db9cb54f707bb59e5172 (diff) | |
download | mongo-e6547d5561be2e0fe51f5f7a317a094732f77c2c.tar.gz |
SERVER-65131 Disable opportunistic read targeting
Diffstat (limited to 'src/mongo/executor')
-rw-r--r-- | src/mongo/executor/network_interface_tl.cpp | 5 | ||||
-rw-r--r-- | src/mongo/executor/network_interface_tl.idl | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/mongo/executor/network_interface_tl.cpp b/src/mongo/executor/network_interface_tl.cpp index 34dea94ee5c..8e14bd1a849 100644 --- a/src/mongo/executor/network_interface_tl.cpp +++ b/src/mongo/executor/network_interface_tl.cpp @@ -569,6 +569,11 @@ Status NetworkInterfaceTL::startCommand(const TaskExecutor::CallbackHandle& cbHa }); } + if ((request.target.size() > 1) && !request.hedgeOptions && + !gOpportunisticSecondaryTargeting.load()) { + request.target.resize(1); + } + auto [cmdState, future] = CommandState::make(this, request, cbHandle); if (cmdState->requestOnAny.timeout != cmdState->requestOnAny.kNoTimeout) { cmdState->deadline = cmdState->stopwatch.start() + cmdState->requestOnAny.timeout; diff --git a/src/mongo/executor/network_interface_tl.idl b/src/mongo/executor/network_interface_tl.idl index b71850511f4..b6d7d2088ac 100644 --- a/src/mongo/executor/network_interface_tl.idl +++ b/src/mongo/executor/network_interface_tl.idl @@ -34,3 +34,12 @@ feature_flags: description: Suppress network interface transport layer exceptions cpp_varname: gSuppressNetworkInterfaceTransportLayerExceptions default: false + +server_parameters: + opportunisticSecondaryTargeting: + description: >- + Allows attempting to establish connections to multiple secondaries and directing the request + to the first secondary that accepts the connection. + set_at: [ startup, runtime ] + cpp_vartype: AtomicWord<bool> + cpp_varname: gOpportunisticSecondaryTargeting |