SERVER-127332 Extract query_knobs into a dedicated module (#54119)

GitOrigin-RevId: 45013ebe977d92ee5103a7ff44f8685736d56a4b
This commit is contained in:
Catalin Sumanaru 2026-05-25 11:59:22 +01:00 committed by MongoDB Bot
parent 01807c1a48
commit 7b7ce786db
36 changed files with 159 additions and 141 deletions

View File

@ -1875,13 +1875,13 @@ mongo_cc_library(
"//src/mongo/db/pipeline:aggregation_request_helper",
"//src/mongo/db/pipeline:lite_parsed_document_source",
"//src/mongo/db/pipeline:variable_validation",
"//src/mongo/db/query:query_knob_configuration",
"//src/mongo/db/query:query_knobs",
"//src/mongo/db/query:random_utils",
"//src/mongo/db/query/collation:collator_factory_interface",
"//src/mongo/db/query/collation:collator_interface",
"//src/mongo/db/query/compiler/dependency_analysis:dependencies",
"//src/mongo/db/query/datetime:date_time_support",
"//src/mongo/db/query/query_knobs:query_knob_configuration",
"//src/mongo/db/query/query_settings",
"//src/mongo/db/query/query_shape:query_shape_common",
"//src/mongo/db/query/util:rank_fusion_util",

View File

@ -30,7 +30,7 @@
#include "mongo/db/exec/trial_period_utils.h"
#include "mongo/db/query/find_command.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/shard_role/shard_catalog/collection.h"
#include <algorithm>

View File

@ -57,7 +57,7 @@
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_feature_flags_gen.h"
#include "mongo/db/query/query_integration_knobs_gen.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
#include "mongo/db/query/query_settings/query_settings_gen.h"
#include "mongo/db/query/tailable_mode_gen.h"

View File

@ -98,7 +98,7 @@
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_feature_flags_gen.h"
#include "mongo/db/query/query_integration_knobs_gen.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
#include "mongo/db/query/query_planner_params.h"
#include "mongo/db/query/query_request_helper.h"

View File

@ -310,100 +310,13 @@ mongo_cc_library(
],
deps = [
":on_parameter_change_updaters",
":query_knob",
"//src/mongo/db:server_base",
"//src/mongo/db/commands:test_commands_enabled",
"//src/mongo/db/query/query_knobs:query_knob",
"//src/mongo/db/topology/cluster_parameters:cluster_server_parameter",
],
)
mongo_cc_library(
name = "query_knob_configuration",
srcs = [
"query_knob_configuration.cpp",
],
deps = [
":query_knob_registry",
":query_knobs",
],
)
mongo_cc_library(
name = "query_knob",
srcs = [
"query_knob.cpp",
],
hdrs = [
"query_knob.h",
"query_knob_snapshot.h",
],
deps = [
"//src/mongo:base",
"//src/mongo/idl:idl_parser",
],
)
mongo_cc_library(
name = "query_knob_registry",
srcs = [
"query_knob_registry.cpp",
],
hdrs = [
"query_knob_registry.h",
],
deps = [
":query_knob",
"//src/mongo:base",
"//src/mongo/db:server_base",
],
)
idl_generator(
name = "query_knob_registry_test_gen",
src = "query_knob_registry_test.idl",
deps = [
"//src/mongo/db:basic_types_gen",
],
)
mongo_cc_unit_test(
name = "query_knob_registry_test",
srcs = [
"query_knob_registry_test.cpp",
":query_knob_registry_test_gen",
],
tags = ["mongo_unittest_third_group"],
deps = [
":query_knob",
":query_knob_registry",
"//src/mongo:base",
"//src/mongo/db:server_base",
],
)
idl_generator(
name = "query_knob_test_gen",
src = "query_knob_test.idl",
deps = [
"//src/mongo/db:basic_types_gen",
],
)
mongo_cc_unit_test(
name = "query_knob_test",
srcs = [
"query_knob_snapshot_test.cpp",
"query_knob_test.cpp",
":query_knob_test_gen",
],
tags = ["mongo_unittest_second_group"],
deps = [
":query_knob",
":query_knobs",
"//src/mongo/db:server_base",
],
)
idl_generator(
name = "distinct_command_gen",
src = "distinct_command.idl",
@ -802,17 +715,6 @@ mongo_cc_benchmark(
],
)
mongo_cc_benchmark(
name = "query_knob_configuration_bm",
srcs = ["query_knob_configuration_bm.cpp"],
tags = ["query_bm"],
deps = [
"query_knob_configuration",
"//src/mongo/db/query:query_fcv_environment_for_test",
"//src/mongo/db/query:query_test_service_context",
],
)
mongo_cc_benchmark(
name = "query_planner_bm",
srcs = [

View File

@ -136,9 +136,6 @@ filters:
approvers:
- 10gen/query-optimization
- 10gen/query-execution
- "query_knob_*":
approvers:
- 10gen/query-optimization
- "query_knob_descriptors_optimization.h":
approvers:
- 10gen/query-optimization

View File

@ -65,7 +65,7 @@
#include "mongo/db/query/collation/collator_interface.h"
#include "mongo/db/query/compiler/logical_model/projection/projection.h"
#include "mongo/db/query/find_command.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_request_helper.h"
#include "mongo/db/query/tree_walker.h"
#include "mongo/db/repl/read_concern_args.h"

View File

@ -44,7 +44,7 @@ mongo_cc_library(
"//src/mongo/db:common",
"//src/mongo/db/commands/server_status:server_status_core",
"//src/mongo/db/pipeline:field_path",
"//src/mongo/db/query:query_knob_configuration",
"//src/mongo/db/query/query_knobs:query_knob_configuration",
"//src/mongo/db/query/query_settings",
],
)

View File

@ -52,7 +52,7 @@
#include "mongo/db/query/plan_ranking_decision.h"
#include "mongo/db/query/plan_summary_stats.h"
#include "mongo/db/query/query_feature_flags_gen.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_settings.h"
#include "mongo/db/query/query_settings_decoration.h"
#include "mongo/util/assert_util.h"

View File

@ -33,7 +33,7 @@
#include "mongo/db/curop.h"
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_integration_knobs_gen.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
#include "mongo/db/query/stage_memory_limit_knobs/knobs.h"
#include "mongo/db/server_options.h"

View File

@ -65,7 +65,7 @@
#include "mongo/db/query/distinct_access.h"
#include "mongo/db/query/find_command.h"
#include "mongo/db/query/index_hint.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_planner_common.h"
#include "mongo/db/query/query_request_helper.h"
#include "mongo/logv2/log.h"

View File

@ -35,7 +35,7 @@
#pragma once
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
namespace mongo::query_knobs {

View File

@ -34,7 +34,7 @@
#pragma once
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
namespace mongo::query_knobs {

View File

@ -0,0 +1,111 @@
load("//bazel:mongo_src_rules.bzl", "idl_generator", "mongo_cc_benchmark", "mongo_cc_library", "mongo_cc_unit_test")
package(default_visibility = ["//visibility:public"])
exports_files(
glob([
"*.h",
"*.cpp",
]),
)
mongo_cc_library(
name = "query_knob",
srcs = [
"query_knob.cpp",
],
hdrs = [
"query_knob.h",
"query_knob_snapshot.h",
],
deps = [
"//src/mongo:base",
"//src/mongo/idl:idl_parser",
],
)
mongo_cc_library(
name = "query_knob_registry",
srcs = [
"query_knob_registry.cpp",
],
hdrs = [
"query_knob_registry.h",
],
deps = [
":query_knob",
"//src/mongo:base",
"//src/mongo/db:server_base",
],
)
idl_generator(
name = "query_knob_registry_test_gen",
src = "query_knob_registry_test.idl",
deps = [
"//src/mongo/db:basic_types_gen",
],
)
mongo_cc_unit_test(
name = "query_knob_registry_test",
srcs = [
"query_knob_registry_test.cpp",
":query_knob_registry_test_gen",
],
tags = ["mongo_unittest_first_group"],
deps = [
":query_knob",
":query_knob_registry",
"//src/mongo:base",
"//src/mongo/db:server_base",
],
)
idl_generator(
name = "query_knob_test_gen",
src = "query_knob_test.idl",
deps = [
"//src/mongo/db:basic_types_gen",
],
)
mongo_cc_library(
name = "query_knob_configuration",
srcs = [
"query_knob_configuration.cpp",
],
hdrs = [
"query_knob_configuration.h",
],
deps = [
":query_knob_registry",
"//src/mongo/db/query:query_knobs",
],
)
mongo_cc_benchmark(
name = "query_knob_configuration_bm",
srcs = ["query_knob_configuration_bm.cpp"],
tags = ["query_bm"],
deps = [
":query_knob_configuration",
"//src/mongo/db/query:query_fcv_environment_for_test",
"//src/mongo/db/query:query_test_service_context",
],
)
mongo_cc_unit_test(
name = "query_knob_test",
srcs = [
"query_knob_snapshot_test.cpp",
"query_knob_test.cpp",
":query_knob_test_gen",
],
tags = ["mongo_unittest_third_group"],
deps = [
":query_knob",
"//src/mongo/db:server_base",
"//src/mongo/db/query:query_knobs",
],
)

View File

@ -0,0 +1,8 @@
version: 1.0.0
filters:
- "*":
approvers:
- 10gen/query-execution-query-settings
- "OWNERS.yml":
approvers:
- 10gen/query-execution-staff-leads

View File

@ -27,7 +27,7 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/util/static_immortal.h"

View File

@ -27,12 +27,12 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_knob_descriptors_execution.h"
#include "mongo/db/query/query_knob_descriptors_optimization.h"
#include "mongo/db/query/query_knob_registry.h"
#include "mongo/db/query/query_knob_snapshot.h"
#include "mongo/db/query/query_knobs/query_knob_registry.h"
#include "mongo/db/query/query_knobs/query_knob_snapshot.h"
#include "mongo/db/query/query_settings/query_settings_gen.h"
namespace mongo {

View File

@ -31,8 +31,8 @@
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_integration_knobs_gen.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knob_snapshot.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob_snapshot.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
#include "mongo/db/query/query_settings/query_settings_gen.h"
#include "mongo/util/modules.h"

View File

@ -27,7 +27,7 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_fcv_environment_for_test.h"
#include "mongo/db/query/query_settings/query_settings_gen.h"

View File

@ -27,11 +27,11 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob_registry.h"
#include "mongo/db/query/query_knobs/query_knob_registry.h"
#include "mongo/base/init.h"
#include "mongo/bson/bsonobj.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/util/assert_util.h"
#include "mongo/util/static_immortal.h"
#include "mongo/util/str.h"

View File

@ -30,7 +30,7 @@
#pragma once
#include "mongo/base/string_data.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/db/server_parameter.h"
#include "mongo/util/string_map.h"
#include "mongo/util/version/releases.h"

View File

@ -27,10 +27,10 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob_registry.h"
#include "mongo/db/query/query_knobs/query_knob_registry.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knob_registry_test_gen.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob_registry_test_gen.h"
#include "mongo/db/server_parameter.h"
#include "mongo/unittest/assert.h"
#include "mongo/unittest/death_test.h"

View File

@ -29,7 +29,7 @@
#pragma once
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/util/assert_util.h"
#include <algorithm>

View File

@ -27,10 +27,10 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob_snapshot.h"
#include "mongo/db/query/query_knobs/query_knob_snapshot.h"
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/unittest/assert.h"
#include "mongo/unittest/death_test.h"
#include "mongo/unittest/framework.h"

View File

@ -27,11 +27,11 @@
* it in the license file.
*/
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/db/query/query_knob_test_gen.h"
#include "mongo/db/query/query_knobs/query_knob_test_gen.h"
#include "mongo/idl/idl_parser.h"
#include "mongo/idl/server_parameter_test_controller.h"
#include "mongo/unittest/assert.h"

View File

@ -85,7 +85,7 @@
#include "mongo/db/query/planner_analysis.h"
#include "mongo/db/query/planner_ixselect.h"
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
#include "mongo/db/query/query_planner.h"
#include "mongo/db/query/query_planner_common.h"

View File

@ -39,7 +39,7 @@ mongo_cc_library(
"//src/mongo/db:server_base",
"//src/mongo/db/query:index_hint",
# TODO SERVER-127247: Replace this with 'query_knobs' once the knob initialization is explicit.
"//src/mongo/db/query:query_knob_configuration",
"//src/mongo/db/query/query_knobs:query_knob_configuration",
"//src/mongo/db/query/query_shape:query_shape_hash",
],
)
@ -145,7 +145,7 @@ mongo_cc_library(
hdrs = ["query_knob_overrides.h"],
deps = [
"//src/mongo/db:server_base",
"//src/mongo/db/query:query_knob_registry",
"//src/mongo/db/query/query_knobs:query_knob_registry",
],
)
@ -166,7 +166,7 @@ mongo_cc_unit_test(
tags = ["mongo_unittest_first_group"],
deps = [
":query_knob_overrides",
"//src/mongo/db/query:query_knob_registry",
"//src/mongo/db/query/query_knobs:query_knob_registry",
"//src/mongo/unittest",
],
)

View File

@ -30,7 +30,7 @@
#include "mongo/db/query/query_settings/query_knob_overrides.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/db/query/query_knob_registry.h"
#include "mongo/db/query/query_knobs/query_knob_registry.h"
#include "mongo/util/assert_util.h"
#include "mongo/util/str.h"

View File

@ -30,7 +30,7 @@
#pragma once
#include "mongo/bson/bsonobj.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include <span>
#include <vector>

View File

@ -31,7 +31,7 @@
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/db/query/query_settings/query_knob_overrides_test_gen.h"
#include "mongo/unittest/assert.h"
#include "mongo/unittest/death_test.h"

View File

@ -35,7 +35,7 @@
#include "mongo/db/basic_types.h"
#include "mongo/db/query/query_execution_knobs_gen.h"
#include "mongo/db/query/query_integration_knobs_gen.h"
#include "mongo/db/query/query_knob.h"
#include "mongo/db/query/query_knobs/query_knob.h"
#include "mongo/db/query/query_optimization_knobs_gen.h"
#include "mongo/db/query/query_settings/query_knob_overrides_test_gen.h"
#include "mongo/db/query/query_settings/query_settings_gen.h"

View File

@ -41,7 +41,7 @@
#include "mongo/db/query/compiler/logical_model/projection/projection.h"
#include "mongo/db/query/find_command.h"
#include "mongo/db/query/query_feature_flags_gen.h"
#include "mongo/db/query/query_knob_configuration.h"
#include "mongo/db/query/query_knobs/query_knob_configuration.h"
#include "mongo/db/shard_role/shard_catalog/index_catalog.h"
#include "mongo/util/assert_util.h"
#include "mongo/util/string_map.h"

View File

@ -157,7 +157,6 @@ mongo_cc_library(
"//src/mongo/db/query:canonical_query_base",
"//src/mongo/db/query:collection_query_info",
"//src/mongo/db/query:plan_yield_policy_sbe",
"//src/mongo/db/query:query_knob_configuration",
"//src/mongo/db/query:query_planner",
"//src/mongo/db/query/algebra",
"//src/mongo/db/query/collation:collator_interface",
@ -169,6 +168,7 @@ mongo_cc_library(
"//src/mongo/db/query/compiler/physical_model/index_bounds",
"//src/mongo/db/query/datetime:date_time_support",
"//src/mongo/db/query/plan_cache:query_plan_cache",
"//src/mongo/db/query/query_knobs:query_knob_configuration",
"//src/mongo/db/query/search:mongot_cursor",
"//src/mongo/db/query/stage_builder/sbe/abt:abt_base",
"//src/mongo/db/query/stage_builder/sbe/abt/syntax:syntax_expr",