diff options
-rw-r--r-- | jstests/noPassthrough/lookup_pushdown.js | 20 | ||||
-rw-r--r-- | jstests/noPassthrough/query_knobs_validation.js | 4 | ||||
-rw-r--r-- | jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js | 1 | ||||
-rw-r--r-- | src/mongo/db/commands/run_aggregate.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/pipeline/pipeline_d.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/query/query_knobs.idl | 7 |
7 files changed, 3 insertions, 41 deletions
diff --git a/jstests/noPassthrough/lookup_pushdown.js b/jstests/noPassthrough/lookup_pushdown.js index b2a2760f99b..a918b571543 100644 --- a/jstests/noPassthrough/lookup_pushdown.js +++ b/jstests/noPassthrough/lookup_pushdown.js @@ -128,26 +128,6 @@ assert.commandWorked(foreignColl.insert(foreignDocs)); assert.commandWorked(db.createView(viewName, foreignCollName, [{$match: {b: {$gte: 0}}}])); let view = db[viewName]; -function setLookupPushdownDisabled(value) { - assert.commandWorked(db.adminCommand( - {setParameter: 1, internalQuerySlotBasedExecutionDisableLookupPushdown: value})); -} - -(function testLookupPushdownQueryKnob() { - const lookupPushdownDisabled = - assert - .commandWorked(db.adminCommand( - {getParameter: 1, internalQuerySlotBasedExecutionDisableLookupPushdown: 1})) - .internalQuerySlotBasedExecutionDisableLookupPushdown; - const pipeline = - [{$lookup: {from: foreignCollName, localField: "a", foreignField: "b", as: "out"}}]; - setLookupPushdownDisabled(true); - runTest(coll, pipeline, JoinAlgorithm.Classic /* expectedJoinAlgorithm */); - setLookupPushdownDisabled(false); - runTest(coll, pipeline, JoinAlgorithm.NLJ /* expectedJoinAlgorithm */); - setLookupPushdownDisabled(lookupPushdownDisabled); -}()); - (function testLookupPushdownBasicCases() { // Basic $lookup. runTest(coll, diff --git a/jstests/noPassthrough/query_knobs_validation.js b/jstests/noPassthrough/query_knobs_validation.js index e938cf4b390..72d16b36a50 100644 --- a/jstests/noPassthrough/query_knobs_validation.js +++ b/jstests/noPassthrough/query_knobs_validation.js @@ -56,7 +56,6 @@ const expectedParamDefaults = { internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan: 5, internalQueryMaxNumberOfFieldsToChooseFilteredColumnScan: 12, internalQueryDisableLookupExecutionUsingHashJoin: false, - internalQuerySlotBasedExecutionDisableLookupPushdown: false, }; function assertDefaultParameterValues() { @@ -231,9 +230,6 @@ assertSetParameterFails("internalQueryCollectionMaxStorageSizeBytesToChooseHashJ assertSetParameterSucceeds("internalQueryDisableLookupExecutionUsingHashJoin", true); assertSetParameterSucceeds("internalQueryDisableLookupExecutionUsingHashJoin", false); -assertSetParameterSucceeds("internalQuerySlotBasedExecutionDisableLookupPushdown", true); -assertSetParameterSucceeds("internalQuerySlotBasedExecutionDisableLookupPushdown", false); - assertSetParameterSucceeds("internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", 100); assertSetParameterSucceeds("internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", 0); assertSetParameterFails("internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", -1); diff --git a/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js b/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js index 32f00e693c7..6f148307a98 100644 --- a/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js +++ b/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js @@ -35,7 +35,6 @@ const paramList = [ {name: "internalQueryCollectionMaxDataSizeBytesToChooseHashJoin", value: 100}, {name: "internalQueryCollectionMaxStorageSizeBytesToChooseHashJoin", value: 100}, {name: "internalQueryDisableLookupExecutionUsingHashJoin", value: true}, - {name: "internalQuerySlotBasedExecutionDisableLookupPushdown", value: true}, {name: "internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", value: 100}, {name: "internalQueryMaxNumberOfFieldsToChooseFilteredColumnScan", value: 100}, ]; diff --git a/src/mongo/db/commands/run_aggregate.cpp b/src/mongo/db/commands/run_aggregate.cpp index 71356f55cda..e21bcfbffdf 100644 --- a/src/mongo/db/commands/run_aggregate.cpp +++ b/src/mongo/db/commands/run_aggregate.cpp @@ -71,7 +71,6 @@ #include "mongo/db/query/plan_executor_factory.h" #include "mongo/db/query/plan_summary_stats.h" #include "mongo/db/query/query_feature_flags_gen.h" -#include "mongo/db/query/query_knobs_gen.h" #include "mongo/db/query/query_planner_common.h" #include "mongo/db/read_concern.h" #include "mongo/db/repl/oplog.h" @@ -675,8 +674,7 @@ Status runAggregate(OperationContext* opCtx, // Taking locks over multiple collections is not supported outside of $lookup pushdown. if (serverGlobalParams.featureCompatibility.isVersionInitialized() && feature_flags::gFeatureFlagSBELookupPushdown.isEnabled( - serverGlobalParams.featureCompatibility) && - !internalQuerySlotBasedExecutionDisableLookupPushdown.load()) { + serverGlobalParams.featureCompatibility)) { secondaryExecNssList = liteParsedPipeline.getForeignExecutionNamespaces(); } diff --git a/src/mongo/db/pipeline/pipeline_d.cpp b/src/mongo/db/pipeline/pipeline_d.cpp index 03e1d0f77f5..e15dcf293f6 100644 --- a/src/mongo/db/pipeline/pipeline_d.cpp +++ b/src/mongo/db/pipeline/pipeline_d.cpp @@ -80,7 +80,6 @@ #include "mongo/db/query/plan_executor_factory.h" #include "mongo/db/query/plan_summary_stats.h" #include "mongo/db/query/query_feature_flags_gen.h" -#include "mongo/db/query/query_knobs_gen.h" #include "mongo/db/query/query_planner.h" #include "mongo/db/query/sort_pattern.h" #include "mongo/db/s/collection_sharding_state.h" @@ -160,8 +159,7 @@ std::vector<std::unique_ptr<InnerPipelineStageInterface>> extractSbeCompatibleSt !(serverGlobalParams.featureCompatibility.isVersionInitialized() && feature_flags::gFeatureFlagSBELookupPushdown.isEnabled( serverGlobalParams.featureCompatibility)) || - internalQuerySlotBasedExecutionDisableLookupPushdown.load() || isMainCollectionSharded || - collections.isAnySecondaryNamespaceAViewOrSharded(); + isMainCollectionSharded || collections.isAnySecondaryNamespaceAViewOrSharded(); for (auto itr = sources.begin(); itr != sources.end();) { // $group pushdown logic. diff --git a/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp b/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp index 216c95de3d6..b4f98346cc9 100644 --- a/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp +++ b/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp @@ -56,7 +56,6 @@ #include "mongo/db/pipeline/pipeline_d.h" #include "mongo/db/query/collection_index_usage_tracker_decoration.h" #include "mongo/db/query/collection_query_info.h" -#include "mongo/db/query/query_knobs_gen.h" #include "mongo/db/query/sbe_plan_cache.h" #include "mongo/db/repl/primary_only_service.h" #include "mongo/db/s/sharding_state.h" @@ -436,8 +435,7 @@ CommonMongodProcessInterface::attachCursorSourceToPipelineForLocalRead(Pipeline* std::vector<NamespaceStringOrUUID> secondaryNamespaces = [&]() { if (serverGlobalParams.featureCompatibility.isVersionInitialized() && feature_flags::gFeatureFlagSBELookupPushdown.isEnabled( - serverGlobalParams.featureCompatibility) && - !internalQuerySlotBasedExecutionDisableLookupPushdown.load()) { + serverGlobalParams.featureCompatibility)) { auto lpp = LiteParsedPipeline(expCtx->ns, pipeline->serializeToBson()); return lpp.getForeignExecutionNamespaces(); } else { diff --git a/src/mongo/db/query/query_knobs.idl b/src/mongo/db/query/query_knobs.idl index f6df19ee07b..3a759caf0a6 100644 --- a/src/mongo/db/query/query_knobs.idl +++ b/src/mongo/db/query/query_knobs.idl @@ -637,13 +637,6 @@ server_parameters: validator: gt: 0 - internalQuerySlotBasedExecutionDisableLookupPushdown: - description: "If true, the system will not push down $lookup to the SBE execution engine." - set_at: [ startup, runtime ] - cpp_varname: "internalQuerySlotBasedExecutionDisableLookupPushdown" - cpp_vartype: AtomicWord<bool> - default: false - internalQueryForceClassicEngine: description: "If true, the system will use the classic execution engine for all queries, otherwise eligible queries will execute using the SBE execution engine." |