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-31 17:04:38 +0000 |
commit | a8fd3bd540ae7c8b27689c34a3859d7aaacd4a1e (patch) | |
tree | ec2944fa463b0eb3815dc974150bdf8371e236df | |
parent | 46876f401256a3c074be156444de2893a1fcd64f (diff) | |
download | mongo-a8fd3bd540ae7c8b27689c34a3859d7aaacd4a1e.tar.gz |
SERVER-65131 Disable opportunistic read targeting
(cherry picked from commit e6547d5561be2e0fe51f5f7a317a094732f77c2c)
-rw-r--r-- | buildscripts/resmokeconfig/suites/sharding_opportunistic_secondary_targeting.yml | 16 | ||||
-rw-r--r-- | etc/evergreen.yml | 4 | ||||
-rw-r--r-- | etc/evergreen_yml_components/definitions.yml | 8 | ||||
-rw-r--r-- | src/mongo/executor/network_interface_tl.cpp | 5 | ||||
-rw-r--r-- | src/mongo/executor/network_interface_tl.idl | 9 |
5 files changed, 42 insertions, 0 deletions
diff --git a/buildscripts/resmokeconfig/suites/sharding_opportunistic_secondary_targeting.yml b/buildscripts/resmokeconfig/suites/sharding_opportunistic_secondary_targeting.yml new file mode 100644 index 00000000000..25fd82af0f7 --- /dev/null +++ b/buildscripts/resmokeconfig/suites/sharding_opportunistic_secondary_targeting.yml @@ -0,0 +1,16 @@ +test_kind: js_test + +selector: + roots: + - jstests/sharding/**/*.js + exclude_files: + - jstests/sharding/**/libs/**/*.js + +executor: + config: + shell_options: + nodb: '' + global_vars: + TestData: + setParametersMongos: + opportunisticSecondaryTargeting: true diff --git a/etc/evergreen.yml b/etc/evergreen.yml index 530ca05d62f..e6944846aff 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -265,6 +265,7 @@ buildvariants: - name: sharded_multi_stmt_txn_jscore_passthrough - name: .sharding .jscore !.wo_snapshot - name: sharding_gen + - name: sharding_opportunistic_secondary_targeting_gen - name: .stitch - name: server_discovery_and_monitoring_json_test_TG distros: @@ -878,6 +879,7 @@ buildvariants: - windows-vsCurrent-large - name: session_jscore_passthrough - name: sharding_gen + - name: sharding_opportunistic_secondary_targeting_gen - name: .stitch - name: server_discovery_and_monitoring_json_test_TG - name: server_selection_json_test_TG @@ -952,6 +954,7 @@ buildvariants: - name: sharding_auth_gen - name: sharding_auth_audit_gen - name: sharding_ese_gen + - name: sharding_opportunistic_secondary_targeting_gen - name: snmp - name: unittest_shell_hang_analyzer_gen @@ -1448,6 +1451,7 @@ buildvariants: - name: sharding_api_version_jscore_passthrough_gen - name: .sharding .txns - name: .sharding .common + - name: sharding_opportunistic_secondary_targeting_gen - name: snmp - name: .stitch - name: .crypt diff --git a/etc/evergreen_yml_components/definitions.yml b/etc/evergreen_yml_components/definitions.yml index 434dac96a56..1ec9c3f2685 100644 --- a/etc/evergreen_yml_components/definitions.yml +++ b/etc/evergreen_yml_components/definitions.yml @@ -5710,6 +5710,14 @@ tasks: vars: use_large_distro: "true" +- <<: *gen_task_template + name: sharding_opportunistic_secondary_targeting_gen + tags: ["sharding", "common"] + commands: + - func: "generate resmoke tasks" + vars: + use_large_distro: "true" + - <<: *task_template name: snmp tags: [] diff --git a/src/mongo/executor/network_interface_tl.cpp b/src/mongo/executor/network_interface_tl.cpp index 555b3677de4..1b74e1e9ee5 100644 --- a/src/mongo/executor/network_interface_tl.cpp +++ b/src/mongo/executor/network_interface_tl.cpp @@ -540,6 +540,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 |