SERVER-95990 Convert storage_wiredtiger_core to Bazel in isolation (#28276)

GitOrigin-RevId: 8b478b68907e6df00e93a368b398bab707580da6
This commit is contained in:
Zack Winter 2024-10-18 14:21:05 -07:00 committed by MongoDB Bot
parent 665185d152
commit 411641710b
4 changed files with 154 additions and 116 deletions

View File

@ -1208,11 +1208,13 @@ MONGO_GLOBAL_INCLUDE_DIRECTORIES = [
"-Isrc/third_party/SafeInt",
"-I$(GENDIR)/src/mongo/db/modules/enterprise/src",
"-Isrc/mongo/db/modules/enterprise/src",
"-Isrc/third_party/valgrind/include",
]
MONGO_GLOBAL_ACCESSIBLE_HEADERS = [
"//src/third_party/immer:headers",
"//src/third_party/SafeInt:headers",
"//src/third_party/valgrind/include/valgrind:valgrind.h",
] + SASL_WINDOWS_INCLUDE_FILES
MONGO_GLOBAL_SRC_DEPS = [

View File

@ -9,6 +9,11 @@ exports_files(
]),
)
WIREDTIGER_TARGET_COMPATIBLE_WITH = select({
"//bazel/config:use_wiredtiger_enabled": [],
"//conditions:default": ["@platforms//:incompatible"],
})
mongo_cc_library(
name = "storage_wiredtiger_customization_hooks",
srcs = [
@ -19,6 +24,7 @@ mongo_cc_library(
"wiredtiger_customization_hooks.h",
"wiredtiger_extensions.h",
],
target_compatible_with = WIREDTIGER_TARGET_COMPATIBLE_WITH,
deps = [
"//src/mongo:base",
"//src/mongo/db:service_context",
@ -39,3 +45,144 @@ idl_generator(
name = "wiredtiger_global_options_gen",
src = "wiredtiger_global_options.idl",
)
# This is the smallest possible set of files that wraps WT
mongo_cc_library(
name = "storage_wiredtiger_core",
srcs = [
"oplog_truncate_marker_parameters_gen",
"oplog_truncate_markers_server_status_section.cpp",
"wiredtiger_begin_transaction_block.cpp",
"wiredtiger_compiled_configuration.cpp",
"wiredtiger_cursor.cpp",
"wiredtiger_cursor_helpers.cpp",
"wiredtiger_error_util.cpp",
"wiredtiger_event_handler.cpp",
"wiredtiger_global_options.cpp",
"wiredtiger_index.cpp",
"wiredtiger_index_util.cpp",
"wiredtiger_kv_engine.cpp",
"wiredtiger_oplog_data.cpp",
"wiredtiger_oplog_manager.cpp",
"wiredtiger_oplog_truncate_markers.cpp",
"wiredtiger_parameters.cpp",
"wiredtiger_parameters_gen",
"wiredtiger_prepare_conflict.cpp",
"wiredtiger_record_store.cpp",
"wiredtiger_recovery_unit.cpp",
"wiredtiger_session_cache.cpp",
"wiredtiger_size_storer.cpp",
"wiredtiger_snapshot_manager.cpp",
"wiredtiger_stats.cpp",
"wiredtiger_util.cpp",
],
hdrs = [
"wiredtiger_begin_transaction_block.h",
"wiredtiger_compiled_configuration.h",
"wiredtiger_cursor.h",
"wiredtiger_cursor_helpers.h",
"wiredtiger_error_util.h",
"wiredtiger_event_handler.h",
"wiredtiger_global_options.h",
"wiredtiger_index.h",
"wiredtiger_index_cursor_generic.h",
"wiredtiger_index_util.h",
"wiredtiger_kv_engine.h",
"wiredtiger_oplog_data.h",
"wiredtiger_oplog_manager.h",
"wiredtiger_oplog_truncate_markers.h",
"wiredtiger_prepare_conflict.h",
"wiredtiger_record_store.h",
"wiredtiger_recovery_unit.h",
"wiredtiger_session_cache.h",
"wiredtiger_session_data.h",
"wiredtiger_size_storer.h",
"wiredtiger_snapshot_manager.h",
"wiredtiger_stats.h",
"wiredtiger_util.h",
"//src/mongo/db/catalog:health_log.h",
"//src/mongo/db/concurrency:deferred_writer.h",
"//src/mongo/db/storage:journal_listener.h",
"//src/mongo/db/storage:snapshot_manager.h",
],
target_compatible_with = WIREDTIGER_TARGET_COMPATIBLE_WITH,
deps = [
"storage_wiredtiger_customization_hooks",
"//src/mongo/db:commands",
"//src/mongo/db:global_settings",
"//src/mongo/db:mongod_options",
"//src/mongo/db:prepare_conflict_tracker",
"//src/mongo/db:record_id_helpers",
"//src/mongo/db:server_base",
"//src/mongo/db:server_feature_flags",
"//src/mongo/db:service_context",
"//src/mongo/db:snapshot_window_options",
"//src/mongo/db/catalog:collection_catalog",
"//src/mongo/db/catalog:collection_options",
"//src/mongo/db/catalog:health_log_interface",
"//src/mongo/db/commands:server_status_core",
"//src/mongo/db/concurrency:exception_util",
"//src/mongo/db/query/bson:dotted_path_support",
"//src/mongo/db/repl:repl_settings",
"//src/mongo/db/stats:resource_consumption_metrics",
"//src/mongo/db/storage:backup_block",
"//src/mongo/db/storage:capped_snapshots",
"//src/mongo/db/storage:index_entry_comparison",
"//src/mongo/db/storage:record_store_base",
"//src/mongo/db/storage:recovery_unit_base",
"//src/mongo/db/storage:storage_file_util",
"//src/mongo/db/storage:storage_options",
"//src/mongo/db/storage:storage_repair_observer",
"//src/mongo/db/storage/key_string",
"//src/mongo/util:elapsed_tracker",
"//src/mongo/util:log_and_backoff",
"//src/mongo/util:processinfo",
"//src/third_party/snappy",
"//src/third_party/wiredtiger",
"//src/third_party/zlib",
],
)
mongo_cc_library(
name = "storage_wiredtiger",
srcs = [
"wiredtiger_global_options_gen",
"wiredtiger_init.cpp",
"wiredtiger_options_init.cpp",
"wiredtiger_server_status.cpp",
],
hdrs = [
"wiredtiger_server_status.h",
],
target_compatible_with = WIREDTIGER_TARGET_COMPATIBLE_WITH,
deps = [
"storage_wiredtiger_core",
"storage_wiredtiger_customization_hooks",
"//src/mongo/db/commands:server_status_core",
"//src/mongo/db/storage:storage_engine_common",
"//src/mongo/db/storage:storage_engine_impl",
"//src/mongo/db/storage:storage_engine_lock_file",
"//src/mongo/db/storage:storage_engine_metadata",
"//src/mongo/db/storage:storage_options",
"//src/mongo/util/options_parser",
],
)
mongo_cc_library(
name = "storage_wiredtiger_import",
srcs = [
"wiredtiger_import.cpp",
],
hdrs = [
"wiredtiger_import.h",
],
target_compatible_with = WIREDTIGER_TARGET_COMPATIBLE_WITH,
deps = [
"storage_wiredtiger_core",
"//src/mongo/db:shard_role",
"//src/mongo/db/catalog:catalog_helpers",
"//src/mongo/db/repl:oplog",
"//src/mongo/db/repl:tenant_migration_access_blocker",
"//src/mongo/db/storage:bson_collection_catalog_entry",
],
)

View File

@ -12,105 +12,6 @@ wtEnv.InjectThirdParty(libraries=["wiredtiger"])
wtEnv.InjectThirdParty(libraries=["zlib"])
wtEnv.InjectThirdParty(libraries=["valgrind"])
# This is the smallest possible set of files that wraps WT
wtEnv.Library(
target="storage_wiredtiger_core",
source=[
"oplog_truncate_marker_parameters_gen.cpp",
"oplog_truncate_markers_server_status_section.cpp",
"wiredtiger_begin_transaction_block.cpp",
"wiredtiger_compiled_configuration.cpp",
"wiredtiger_cursor.cpp",
"wiredtiger_cursor_helpers.cpp",
"wiredtiger_event_handler.cpp",
"wiredtiger_error_util.cpp",
"wiredtiger_global_options.cpp",
"wiredtiger_index.cpp",
"wiredtiger_index_util.cpp",
"wiredtiger_kv_engine.cpp",
"wiredtiger_stats.cpp",
"wiredtiger_oplog_data.cpp",
"wiredtiger_oplog_manager.cpp",
"wiredtiger_oplog_truncate_markers.cpp",
"wiredtiger_parameters.cpp",
"wiredtiger_prepare_conflict.cpp",
"wiredtiger_record_store.cpp",
"wiredtiger_recovery_unit.cpp",
"wiredtiger_session_cache.cpp",
"wiredtiger_snapshot_manager.cpp",
"wiredtiger_size_storer.cpp",
"wiredtiger_util.cpp",
"wiredtiger_parameters_gen.cpp",
],
LIBDEPS=[
"$BUILD_DIR/mongo/db/catalog/collection_options",
"$BUILD_DIR/mongo/db/global_settings",
"$BUILD_DIR/mongo/db/prepare_conflict_tracker",
"$BUILD_DIR/mongo/db/record_id_helpers",
"$BUILD_DIR/mongo/db/repl/repl_settings",
"$BUILD_DIR/mongo/db/service_context",
"$BUILD_DIR/mongo/db/storage/index_entry_comparison",
"$BUILD_DIR/mongo/db/storage/key_string/key_string",
"$BUILD_DIR/mongo/db/storage/record_store_base",
"$BUILD_DIR/mongo/db/storage/recovery_unit_base",
"$BUILD_DIR/mongo/db/storage/storage_file_util",
"$BUILD_DIR/mongo/util/elapsed_tracker",
"$BUILD_DIR/mongo/util/processinfo",
"$BUILD_DIR/third_party/snappy/snappy",
"$BUILD_DIR/third_party/wiredtiger/wiredtiger",
"$BUILD_DIR/third_party/zlib/zlib",
"storage_wiredtiger_customization_hooks",
],
LIBDEPS_PRIVATE=[
"$BUILD_DIR/mongo/db/catalog/collection_catalog",
"$BUILD_DIR/mongo/db/catalog/health_log_interface",
"$BUILD_DIR/mongo/db/commands",
"$BUILD_DIR/mongo/db/commands/server_status_core",
"$BUILD_DIR/mongo/db/concurrency/exception_util",
"$BUILD_DIR/mongo/db/mongod_options",
"$BUILD_DIR/mongo/db/query/bson/dotted_path_support",
"$BUILD_DIR/mongo/db/server_base",
"$BUILD_DIR/mongo/db/server_feature_flags",
"$BUILD_DIR/mongo/db/snapshot_window_options",
"$BUILD_DIR/mongo/db/stats/resource_consumption_metrics",
"$BUILD_DIR/mongo/db/storage/backup_block",
"$BUILD_DIR/mongo/db/storage/capped_snapshots",
"$BUILD_DIR/mongo/db/storage/storage_options",
"$BUILD_DIR/mongo/db/storage/storage_repair_observer",
"$BUILD_DIR/mongo/util/log_and_backoff",
],
)
wtEnv.Library(
target="storage_wiredtiger",
source=[
"wiredtiger_init.cpp",
"wiredtiger_options_init.cpp",
"wiredtiger_server_status.cpp",
"wiredtiger_global_options_gen.cpp",
],
LIBDEPS=[
"$BUILD_DIR/mongo/db/storage/storage_engine_impl",
"$BUILD_DIR/mongo/db/storage/storage_engine_lock_file",
"$BUILD_DIR/mongo/db/storage/storage_engine_metadata",
"storage_wiredtiger_core",
"storage_wiredtiger_customization_hooks",
],
LIBDEPS_PRIVATE=[
"$BUILD_DIR/mongo/db/commands/server_status_core",
"$BUILD_DIR/mongo/db/storage/storage_engine_common",
"$BUILD_DIR/mongo/db/storage/storage_options",
"$BUILD_DIR/mongo/util/options_parser/options_parser",
],
PROGDEPS_DEPENDENTS=[
"$BUILD_DIR/mongo/dbtests/dbtest",
],
LIBDEPS_TAGS=[
"lint-allow-nonprivate-on-deps-dependents",
"lint-allow-bidirectional-edges",
],
)
wtEnv.CppUnitTest(
target="storage_wiredtiger_test",
source=[
@ -179,23 +80,6 @@ wtEnv.Library(
],
)
wtEnv.Library(
target="storage_wiredtiger_import",
source=[
"wiredtiger_import.cpp",
],
LIBDEPS=[
"$BUILD_DIR/mongo/db/repl/oplog",
"$BUILD_DIR/mongo/db/repl/tenant_migration_access_blocker",
"$BUILD_DIR/mongo/db/shard_role",
"$BUILD_DIR/mongo/db/storage/bson_collection_catalog_entry",
"storage_wiredtiger_core",
],
LIBDEPS_PRIVATE=[
"$BUILD_DIR/mongo/db/catalog/catalog_helpers",
],
)
wtEnv.CppUnitTest(
target="storage_wiredtiger_record_store_and_index_test",
source=[

View File

@ -0,0 +1,5 @@
package(default_visibility = ["//visibility:public"])
exports_files([
"valgrind.h",
])