Summary: The PR is targeting to resolve the issue of: https://github.com/facebook/rocksdb/issues/3972#issue-330771918 We have a rocksdb created with leveled-compaction with multiple column families (CFs), some of CFs are using HDD to store big and less frequently accessed data and others are using SSD. When there are continuously write traffics going on to all CFs, the compaction thread pool is mostly occupied by those slow HDD compactions, which blocks fully utilize SSD bandwidth. Since atomic write and transaction is needed across CFs, so splitting it to multiple rocksdb instance is not an option for us. With the compaction thread control, we got 30%+ HDD write throughput gain, and also a lot smooth SSD write since less write stall happening. ConcurrentTaskLimiter can be shared with multi-CFs across rocksdb instances, so the feature does not only work for multi-CFs scenarios, but also for multi-rocksdbs scenarios, who need disk IO resource control per tenant. The usage is straight forward: e.g.: // // Enable compaction thread limiter thru ColumnFamilyOptions // std::shared_ptr<ConcurrentTaskLimiter> ctl(NewConcurrentTaskLimiter("foo_limiter", 4)); Options options; ColumnFamilyOptions cf_opt(options); cf_opt.compaction_thread_limiter = ctl; ... // // Compaction thread limiter can be tuned or disabled on-the-fly // ctl->SetMaxOutstandingTask(12); // enlarge to 12 tasks ... ctl->ResetMaxOutstandingTask(); // disable (bypass) thread limiter ctl->SetMaxOutstandingTask(-1); // Same as above ... ctl->SetMaxOutstandingTask(0); // full throttle (0 task) // // Sharing compaction thread limiter among CFs (to resolve multiple storage perf issue) // std::shared_ptr<ConcurrentTaskLimiter> ctl_ssd(NewConcurrentTaskLimiter("ssd_limiter", 8)); std::shared_ptr<ConcurrentTaskLimiter> ctl_hdd(NewConcurrentTaskLimiter("hdd_limiter", 4)); Options options; ColumnFamilyOptions cf_opt_ssd1(options); ColumnFamilyOptions cf_opt_ssd2(options); ColumnFamilyOptions cf_opt_hdd1(options); ColumnFamilyOptions cf_opt_hdd2(options); ColumnFamilyOptions cf_opt_hdd3(options); // SSD CFs cf_opt_ssd1.compaction_thread_limiter = ctl_ssd; cf_opt_ssd2.compaction_thread_limiter = ctl_ssd; // HDD CFs cf_opt_hdd1.compaction_thread_limiter = ctl_hdd; cf_opt_hdd2.compaction_thread_limiter = ctl_hdd; cf_opt_hdd3.compaction_thread_limiter = ctl_hdd; ... // // The limiter is disabled by default (or set to nullptr explicitly) // Options options; ColumnFamilyOptions cf_opt(options); cf_opt.compaction_thread_limiter = nullptr; Pull Request resolved: https://github.com/facebook/rocksdb/pull/4332 Differential Revision: D13226590 Pulled By: siying fbshipit-source-id: 14307aec55b8bd59c8223d04aa6db3c03d1b0c1d
1137 lines
28 KiB
Plaintext
1137 lines
28 KiB
Plaintext
load("@fbcode_macros//build_defs:auto_headers.bzl", "AutoHeaders")
|
|
|
|
REPO_PATH = package_name() + "/"
|
|
|
|
BUCK_BINS = "buck-out/gen/" + REPO_PATH
|
|
|
|
TEST_RUNNER = REPO_PATH + "buckifier/rocks_test_runner.sh"
|
|
|
|
rocksdb_compiler_flags = [
|
|
"-fno-builtin-memcmp",
|
|
"-DROCKSDB_PLATFORM_POSIX",
|
|
"-DROCKSDB_LIB_IO_POSIX",
|
|
"-DROCKSDB_FALLOCATE_PRESENT",
|
|
"-DROCKSDB_MALLOC_USABLE_SIZE",
|
|
"-DROCKSDB_RANGESYNC_PRESENT",
|
|
"-DROCKSDB_SCHED_GETCPU_PRESENT",
|
|
"-DROCKSDB_SUPPORT_THREAD_LOCAL",
|
|
"-DOS_LINUX",
|
|
# Flags to enable libs we include
|
|
"-DSNAPPY",
|
|
"-DZLIB",
|
|
"-DBZIP2",
|
|
"-DLZ4",
|
|
"-DZSTD",
|
|
"-DGFLAGS=gflags",
|
|
"-DNUMA",
|
|
"-DTBB",
|
|
# Needed to compile in fbcode
|
|
"-Wno-expansion-to-defined",
|
|
# Added missing flags from output of build_detect_platform
|
|
"-DROCKSDB_PTHREAD_ADAPTIVE_MUTEX",
|
|
"-DROCKSDB_BACKTRACE",
|
|
"-Wnarrowing",
|
|
]
|
|
|
|
rocksdb_external_deps = [
|
|
("bzip2", None, "bz2"),
|
|
("snappy", None, "snappy"),
|
|
("zlib", None, "z"),
|
|
("gflags", None, "gflags"),
|
|
("lz4", None, "lz4"),
|
|
("zstd", None),
|
|
("tbb", None),
|
|
("numa", None, "numa"),
|
|
("googletest", None, "gtest"),
|
|
]
|
|
|
|
rocksdb_preprocessor_flags = [
|
|
# Directories with files for #include
|
|
"-I" + REPO_PATH + "include/",
|
|
"-I" + REPO_PATH,
|
|
]
|
|
|
|
rocksdb_arch_preprocessor_flags = {
|
|
"x86_64": [
|
|
"-DHAVE_SSE42",
|
|
"-DHAVE_PCLMUL",
|
|
],
|
|
}
|
|
|
|
build_mode = read_config("fbcode", "build_mode")
|
|
|
|
is_opt_mode = build_mode.startswith("opt")
|
|
|
|
# -DNDEBUG is added by default in opt mode in fbcode. But adding it twice
|
|
# doesn't harm and avoid forgetting to add it.
|
|
if is_opt_mode:
|
|
rocksdb_compiler_flags.append("-DNDEBUG")
|
|
|
|
default_allocator = read_config("fbcode", "default_allocator")
|
|
|
|
sanitizer = read_config("fbcode", "sanitizer")
|
|
|
|
# Let RocksDB aware of jemalloc existence.
|
|
# Do not enable it if sanitizer presents.
|
|
if is_opt_mode and default_allocator.startswith("jemalloc") and sanitizer == "":
|
|
rocksdb_compiler_flags.append("-DROCKSDB_JEMALLOC")
|
|
rocksdb_external_deps.append(("jemalloc", None, "headers"))
|
|
|
|
cpp_library(
|
|
name = "rocksdb_lib",
|
|
srcs = [
|
|
"cache/clock_cache.cc",
|
|
"cache/lru_cache.cc",
|
|
"cache/sharded_cache.cc",
|
|
"db/builder.cc",
|
|
"db/c.cc",
|
|
"db/column_family.cc",
|
|
"db/compacted_db_impl.cc",
|
|
"db/compaction.cc",
|
|
"db/compaction_iterator.cc",
|
|
"db/compaction_job.cc",
|
|
"db/compaction_picker.cc",
|
|
"db/compaction_picker_fifo.cc",
|
|
"db/compaction_picker_universal.cc",
|
|
"db/convenience.cc",
|
|
"db/db_filesnapshot.cc",
|
|
"db/db_impl.cc",
|
|
"db/db_impl_compaction_flush.cc",
|
|
"db/db_impl_debug.cc",
|
|
"db/db_impl_experimental.cc",
|
|
"db/db_impl_files.cc",
|
|
"db/db_impl_open.cc",
|
|
"db/db_impl_readonly.cc",
|
|
"db/db_impl_write.cc",
|
|
"db/db_info_dumper.cc",
|
|
"db/db_iter.cc",
|
|
"db/dbformat.cc",
|
|
"db/error_handler.cc",
|
|
"db/event_helpers.cc",
|
|
"db/experimental.cc",
|
|
"db/external_sst_file_ingestion_job.cc",
|
|
"db/file_indexer.cc",
|
|
"db/flush_job.cc",
|
|
"db/flush_scheduler.cc",
|
|
"db/forward_iterator.cc",
|
|
"db/internal_stats.cc",
|
|
"db/log_reader.cc",
|
|
"db/log_writer.cc",
|
|
"db/logs_with_prep_tracker.cc",
|
|
"db/malloc_stats.cc",
|
|
"db/memtable.cc",
|
|
"db/memtable_list.cc",
|
|
"db/merge_helper.cc",
|
|
"db/merge_operator.cc",
|
|
"db/range_del_aggregator.cc",
|
|
"db/range_del_aggregator_v2.cc",
|
|
"db/range_tombstone_fragmenter.cc",
|
|
"db/repair.cc",
|
|
"db/snapshot_impl.cc",
|
|
"db/table_cache.cc",
|
|
"db/table_properties_collector.cc",
|
|
"db/transaction_log_impl.cc",
|
|
"db/version_builder.cc",
|
|
"db/version_edit.cc",
|
|
"db/version_set.cc",
|
|
"db/wal_manager.cc",
|
|
"db/write_batch.cc",
|
|
"db/write_batch_base.cc",
|
|
"db/write_controller.cc",
|
|
"db/write_thread.cc",
|
|
"env/env.cc",
|
|
"env/env_chroot.cc",
|
|
"env/env_encryption.cc",
|
|
"env/env_hdfs.cc",
|
|
"env/env_posix.cc",
|
|
"env/io_posix.cc",
|
|
"env/mock_env.cc",
|
|
"memtable/alloc_tracker.cc",
|
|
"memtable/hash_cuckoo_rep.cc",
|
|
"memtable/hash_linklist_rep.cc",
|
|
"memtable/hash_skiplist_rep.cc",
|
|
"memtable/skiplistrep.cc",
|
|
"memtable/vectorrep.cc",
|
|
"memtable/write_buffer_manager.cc",
|
|
"monitoring/histogram.cc",
|
|
"monitoring/histogram_windowing.cc",
|
|
"monitoring/instrumented_mutex.cc",
|
|
"monitoring/iostats_context.cc",
|
|
"monitoring/perf_context.cc",
|
|
"monitoring/perf_level.cc",
|
|
"monitoring/statistics.cc",
|
|
"monitoring/thread_status_impl.cc",
|
|
"monitoring/thread_status_updater.cc",
|
|
"monitoring/thread_status_updater_debug.cc",
|
|
"monitoring/thread_status_util.cc",
|
|
"monitoring/thread_status_util_debug.cc",
|
|
"options/cf_options.cc",
|
|
"options/db_options.cc",
|
|
"options/options.cc",
|
|
"options/options_helper.cc",
|
|
"options/options_parser.cc",
|
|
"options/options_sanity_check.cc",
|
|
"port/port_posix.cc",
|
|
"port/stack_trace.cc",
|
|
"table/adaptive_table_factory.cc",
|
|
"table/block.cc",
|
|
"table/block_based_filter_block.cc",
|
|
"table/block_based_table_builder.cc",
|
|
"table/block_based_table_factory.cc",
|
|
"table/block_based_table_reader.cc",
|
|
"table/block_builder.cc",
|
|
"table/block_fetcher.cc",
|
|
"table/block_prefix_index.cc",
|
|
"table/bloom_block.cc",
|
|
"table/cuckoo_table_builder.cc",
|
|
"table/cuckoo_table_factory.cc",
|
|
"table/cuckoo_table_reader.cc",
|
|
"table/data_block_footer.cc",
|
|
"table/data_block_hash_index.cc",
|
|
"table/flush_block_policy.cc",
|
|
"table/format.cc",
|
|
"table/full_filter_block.cc",
|
|
"table/get_context.cc",
|
|
"table/index_builder.cc",
|
|
"table/iterator.cc",
|
|
"table/merging_iterator.cc",
|
|
"table/meta_blocks.cc",
|
|
"table/partitioned_filter_block.cc",
|
|
"table/persistent_cache_helper.cc",
|
|
"table/plain_table_builder.cc",
|
|
"table/plain_table_factory.cc",
|
|
"table/plain_table_index.cc",
|
|
"table/plain_table_key_coding.cc",
|
|
"table/plain_table_reader.cc",
|
|
"table/sst_file_reader.cc",
|
|
"table/sst_file_writer.cc",
|
|
"table/table_properties.cc",
|
|
"table/two_level_iterator.cc",
|
|
"tools/dump/db_dump_tool.cc",
|
|
"tools/ldb_cmd.cc",
|
|
"tools/ldb_tool.cc",
|
|
"tools/sst_dump_tool.cc",
|
|
"util/arena.cc",
|
|
"util/auto_roll_logger.cc",
|
|
"util/bloom.cc",
|
|
"util/build_version.cc",
|
|
"util/coding.cc",
|
|
"util/compaction_job_stats_impl.cc",
|
|
"util/comparator.cc",
|
|
"util/compression_context_cache.cc",
|
|
"util/concurrent_arena.cc",
|
|
"util/concurrent_task_limiter_impl.cc",
|
|
"util/crc32c.cc",
|
|
"util/delete_scheduler.cc",
|
|
"util/dynamic_bloom.cc",
|
|
"util/event_logger.cc",
|
|
"util/file_reader_writer.cc",
|
|
"util/file_util.cc",
|
|
"util/filename.cc",
|
|
"util/filter_policy.cc",
|
|
"util/hash.cc",
|
|
"util/jemalloc_nodump_allocator.cc",
|
|
"util/log_buffer.cc",
|
|
"util/murmurhash.cc",
|
|
"util/random.cc",
|
|
"util/rate_limiter.cc",
|
|
"util/slice.cc",
|
|
"util/sst_file_manager_impl.cc",
|
|
"util/status.cc",
|
|
"util/string_util.cc",
|
|
"util/sync_point.cc",
|
|
"util/sync_point_impl.cc",
|
|
"util/thread_local.cc",
|
|
"util/threadpool_imp.cc",
|
|
"util/trace_replay.cc",
|
|
"util/transaction_test_util.cc",
|
|
"util/xxhash.cc",
|
|
"utilities/backupable/backupable_db.cc",
|
|
"utilities/blob_db/blob_compaction_filter.cc",
|
|
"utilities/blob_db/blob_db.cc",
|
|
"utilities/blob_db/blob_db_impl.cc",
|
|
"utilities/blob_db/blob_db_impl_filesnapshot.cc",
|
|
"utilities/blob_db/blob_dump_tool.cc",
|
|
"utilities/blob_db/blob_file.cc",
|
|
"utilities/blob_db/blob_log_format.cc",
|
|
"utilities/blob_db/blob_log_reader.cc",
|
|
"utilities/blob_db/blob_log_writer.cc",
|
|
"utilities/cassandra/cassandra_compaction_filter.cc",
|
|
"utilities/cassandra/format.cc",
|
|
"utilities/cassandra/merge_operator.cc",
|
|
"utilities/checkpoint/checkpoint_impl.cc",
|
|
"utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc",
|
|
"utilities/convenience/info_log_finder.cc",
|
|
"utilities/date_tiered/date_tiered_db_impl.cc",
|
|
"utilities/debug.cc",
|
|
"utilities/document/document_db.cc",
|
|
"utilities/document/json_document.cc",
|
|
"utilities/document/json_document_builder.cc",
|
|
"utilities/env_mirror.cc",
|
|
"utilities/env_timed.cc",
|
|
"utilities/geodb/geodb_impl.cc",
|
|
"utilities/leveldb_options/leveldb_options.cc",
|
|
"utilities/lua/rocks_lua_compaction_filter.cc",
|
|
"utilities/memory/memory_util.cc",
|
|
"utilities/merge_operators/bytesxor.cc",
|
|
"utilities/merge_operators/max.cc",
|
|
"utilities/merge_operators/put.cc",
|
|
"utilities/merge_operators/string_append/stringappend.cc",
|
|
"utilities/merge_operators/string_append/stringappend2.cc",
|
|
"utilities/merge_operators/uint64add.cc",
|
|
"utilities/option_change_migration/option_change_migration.cc",
|
|
"utilities/options/options_util.cc",
|
|
"utilities/persistent_cache/block_cache_tier.cc",
|
|
"utilities/persistent_cache/block_cache_tier_file.cc",
|
|
"utilities/persistent_cache/block_cache_tier_metadata.cc",
|
|
"utilities/persistent_cache/persistent_cache_tier.cc",
|
|
"utilities/persistent_cache/volatile_tier_impl.cc",
|
|
"utilities/redis/redis_lists.cc",
|
|
"utilities/simulator_cache/sim_cache.cc",
|
|
"utilities/spatialdb/spatial_db.cc",
|
|
"utilities/table_properties_collectors/compact_on_deletion_collector.cc",
|
|
"utilities/trace/file_trace_reader_writer.cc",
|
|
"utilities/transactions/optimistic_transaction.cc",
|
|
"utilities/transactions/optimistic_transaction_db_impl.cc",
|
|
"utilities/transactions/pessimistic_transaction.cc",
|
|
"utilities/transactions/pessimistic_transaction_db.cc",
|
|
"utilities/transactions/snapshot_checker.cc",
|
|
"utilities/transactions/transaction_base.cc",
|
|
"utilities/transactions/transaction_db_mutex_impl.cc",
|
|
"utilities/transactions/transaction_lock_mgr.cc",
|
|
"utilities/transactions/transaction_util.cc",
|
|
"utilities/transactions/write_prepared_txn.cc",
|
|
"utilities/transactions/write_prepared_txn_db.cc",
|
|
"utilities/transactions/write_unprepared_txn.cc",
|
|
"utilities/transactions/write_unprepared_txn_db.cc",
|
|
"utilities/ttl/db_ttl_impl.cc",
|
|
"utilities/write_batch_with_index/write_batch_with_index.cc",
|
|
"utilities/write_batch_with_index/write_batch_with_index_internal.cc",
|
|
],
|
|
auto_headers = AutoHeaders.RECURSIVE_GLOB,
|
|
arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
|
|
compiler_flags = rocksdb_compiler_flags,
|
|
preprocessor_flags = rocksdb_preprocessor_flags,
|
|
deps = [],
|
|
external_deps = rocksdb_external_deps,
|
|
)
|
|
|
|
cpp_library(
|
|
name = "rocksdb_test_lib",
|
|
srcs = [
|
|
"db/db_test_util.cc",
|
|
"table/mock_table.cc",
|
|
"tools/trace_analyzer_tool.cc",
|
|
"util/fault_injection_test_env.cc",
|
|
"util/testharness.cc",
|
|
"util/testutil.cc",
|
|
"utilities/cassandra/test_utils.cc",
|
|
"utilities/col_buf_decoder.cc",
|
|
"utilities/col_buf_encoder.cc",
|
|
"utilities/column_aware_encoding_util.cc",
|
|
],
|
|
auto_headers = AutoHeaders.RECURSIVE_GLOB,
|
|
arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
|
|
compiler_flags = rocksdb_compiler_flags,
|
|
preprocessor_flags = rocksdb_preprocessor_flags,
|
|
deps = [":rocksdb_lib"],
|
|
external_deps = rocksdb_external_deps,
|
|
)
|
|
|
|
cpp_library(
|
|
name = "rocksdb_tools_lib",
|
|
srcs = [
|
|
"tools/db_bench_tool.cc",
|
|
"tools/trace_analyzer_tool.cc",
|
|
"util/testutil.cc",
|
|
],
|
|
auto_headers = AutoHeaders.RECURSIVE_GLOB,
|
|
arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
|
|
compiler_flags = rocksdb_compiler_flags,
|
|
preprocessor_flags = rocksdb_preprocessor_flags,
|
|
deps = [":rocksdb_lib"],
|
|
external_deps = rocksdb_external_deps,
|
|
)
|
|
|
|
cpp_library(
|
|
name = "env_basic_test_lib",
|
|
srcs = ["env/env_basic_test.cc"],
|
|
auto_headers = AutoHeaders.RECURSIVE_GLOB,
|
|
arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
|
|
compiler_flags = rocksdb_compiler_flags,
|
|
preprocessor_flags = rocksdb_preprocessor_flags,
|
|
deps = [":rocksdb_test_lib"],
|
|
external_deps = rocksdb_external_deps,
|
|
)
|
|
|
|
# [test_name, test_src, test_type]
|
|
ROCKS_TESTS = [
|
|
[
|
|
"arena_test",
|
|
"util/arena_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"auto_roll_logger_test",
|
|
"util/auto_roll_logger_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"autovector_test",
|
|
"util/autovector_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"backupable_db_test",
|
|
"utilities/backupable/backupable_db_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"blob_db_test",
|
|
"utilities/blob_db/blob_db_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"block_based_filter_block_test",
|
|
"table/block_based_filter_block_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"block_test",
|
|
"table/block_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"bloom_test",
|
|
"util/bloom_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"c_test",
|
|
"db/c_test.c",
|
|
"serial",
|
|
],
|
|
[
|
|
"cache_test",
|
|
"cache/cache_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cassandra_format_test",
|
|
"utilities/cassandra/cassandra_format_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cassandra_functional_test",
|
|
"utilities/cassandra/cassandra_functional_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cassandra_row_merge_test",
|
|
"utilities/cassandra/cassandra_row_merge_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cassandra_serialize_test",
|
|
"utilities/cassandra/cassandra_serialize_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"checkpoint_test",
|
|
"utilities/checkpoint/checkpoint_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cleanable_test",
|
|
"table/cleanable_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"coding_test",
|
|
"util/coding_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"column_aware_encoding_test",
|
|
"utilities/column_aware_encoding_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"column_family_test",
|
|
"db/column_family_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"compact_files_test",
|
|
"db/compact_files_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"compact_on_deletion_collector_test",
|
|
"utilities/table_properties_collectors/compact_on_deletion_collector_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"compaction_iterator_test",
|
|
"db/compaction_iterator_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"compaction_job_stats_test",
|
|
"db/compaction_job_stats_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"compaction_job_test",
|
|
"db/compaction_job_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"compaction_picker_test",
|
|
"db/compaction_picker_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"comparator_db_test",
|
|
"db/comparator_db_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"corruption_test",
|
|
"db/corruption_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"crc32c_test",
|
|
"util/crc32c_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cuckoo_table_builder_test",
|
|
"table/cuckoo_table_builder_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cuckoo_table_db_test",
|
|
"db/cuckoo_table_db_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"cuckoo_table_reader_test",
|
|
"table/cuckoo_table_reader_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"data_block_hash_index_test",
|
|
"table/data_block_hash_index_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"date_tiered_test",
|
|
"utilities/date_tiered/date_tiered_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_basic_test",
|
|
"db/db_basic_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_blob_index_test",
|
|
"db/db_blob_index_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_block_cache_test",
|
|
"db/db_block_cache_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_bloom_filter_test",
|
|
"db/db_bloom_filter_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_compaction_filter_test",
|
|
"db/db_compaction_filter_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_compaction_test",
|
|
"db/db_compaction_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_dynamic_level_test",
|
|
"db/db_dynamic_level_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_encryption_test",
|
|
"db/db_encryption_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_flush_test",
|
|
"db/db_flush_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_inplace_update_test",
|
|
"db/db_inplace_update_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_io_failure_test",
|
|
"db/db_io_failure_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_iter_stress_test",
|
|
"db/db_iter_stress_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_iter_test",
|
|
"db/db_iter_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_iterator_test",
|
|
"db/db_iterator_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_log_iter_test",
|
|
"db/db_log_iter_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_memtable_test",
|
|
"db/db_memtable_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_merge_operator_test",
|
|
"db/db_merge_operator_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_options_test",
|
|
"db/db_options_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_properties_test",
|
|
"db/db_properties_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_range_del_test",
|
|
"db/db_range_del_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_sst_test",
|
|
"db/db_sst_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_statistics_test",
|
|
"db/db_statistics_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_table_properties_test",
|
|
"db/db_table_properties_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_tailing_iter_test",
|
|
"db/db_tailing_iter_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_test",
|
|
"db/db_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_test2",
|
|
"db/db_test2.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"db_universal_compaction_test",
|
|
"db/db_universal_compaction_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_wal_test",
|
|
"db/db_wal_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"db_write_test",
|
|
"db/db_write_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"dbformat_test",
|
|
"db/dbformat_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"delete_scheduler_test",
|
|
"util/delete_scheduler_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"deletefile_test",
|
|
"db/deletefile_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"document_db_test",
|
|
"utilities/document/document_db_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"dynamic_bloom_test",
|
|
"util/dynamic_bloom_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"env_basic_test",
|
|
"env/env_basic_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"env_test",
|
|
"env/env_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"env_timed_test",
|
|
"utilities/env_timed_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"error_handler_test",
|
|
"db/error_handler_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"event_logger_test",
|
|
"util/event_logger_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"external_sst_file_basic_test",
|
|
"db/external_sst_file_basic_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"external_sst_file_test",
|
|
"db/external_sst_file_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"fault_injection_test",
|
|
"db/fault_injection_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"file_indexer_test",
|
|
"db/file_indexer_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"file_reader_writer_test",
|
|
"util/file_reader_writer_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"filelock_test",
|
|
"util/filelock_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"filename_test",
|
|
"db/filename_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"flush_job_test",
|
|
"db/flush_job_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"full_filter_block_test",
|
|
"table/full_filter_block_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"geodb_test",
|
|
"utilities/geodb/geodb_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"hash_table_test",
|
|
"utilities/persistent_cache/hash_table_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"hash_test",
|
|
"util/hash_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"heap_test",
|
|
"util/heap_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"histogram_test",
|
|
"monitoring/histogram_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"inlineskiplist_test",
|
|
"memtable/inlineskiplist_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"iostats_context_test",
|
|
"monitoring/iostats_context_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"json_document_test",
|
|
"utilities/document/json_document_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"ldb_cmd_test",
|
|
"tools/ldb_cmd_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"listener_test",
|
|
"db/listener_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"log_test",
|
|
"db/log_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"lru_cache_test",
|
|
"cache/lru_cache_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"manual_compaction_test",
|
|
"db/manual_compaction_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"memory_test",
|
|
"utilities/memory/memory_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"memtable_list_test",
|
|
"db/memtable_list_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"merge_helper_test",
|
|
"db/merge_helper_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"merge_test",
|
|
"db/merge_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"merger_test",
|
|
"table/merger_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"mock_env_test",
|
|
"env/mock_env_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"object_registry_test",
|
|
"utilities/object_registry_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"obsolete_files_test",
|
|
"db/obsolete_files_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"optimistic_transaction_test",
|
|
"utilities/transactions/optimistic_transaction_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"option_change_migration_test",
|
|
"utilities/option_change_migration/option_change_migration_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"options_file_test",
|
|
"db/options_file_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"options_settable_test",
|
|
"options/options_settable_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"options_test",
|
|
"options/options_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"options_util_test",
|
|
"utilities/options/options_util_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"partitioned_filter_block_test",
|
|
"table/partitioned_filter_block_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"perf_context_test",
|
|
"db/perf_context_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"persistent_cache_test",
|
|
"utilities/persistent_cache/persistent_cache_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"plain_table_db_test",
|
|
"db/plain_table_db_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"prefix_test",
|
|
"db/prefix_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"range_del_aggregator_test",
|
|
"db/range_del_aggregator_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"range_del_aggregator_v2_test",
|
|
"db/range_del_aggregator_v2_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"range_tombstone_fragmenter_test",
|
|
"db/range_tombstone_fragmenter_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"rate_limiter_test",
|
|
"util/rate_limiter_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"reduce_levels_test",
|
|
"tools/reduce_levels_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"repair_test",
|
|
"db/repair_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"repeatable_thread_test",
|
|
"util/repeatable_thread_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"sim_cache_test",
|
|
"utilities/simulator_cache/sim_cache_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"skiplist_test",
|
|
"memtable/skiplist_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"slice_transform_test",
|
|
"util/slice_transform_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"spatial_db_test",
|
|
"utilities/spatialdb/spatial_db_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"sst_dump_test",
|
|
"tools/sst_dump_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"sst_file_reader_test",
|
|
"table/sst_file_reader_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"statistics_test",
|
|
"monitoring/statistics_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"stringappend_test",
|
|
"utilities/merge_operators/string_append/stringappend_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"table_properties_collector_test",
|
|
"db/table_properties_collector_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"table_test",
|
|
"table/table_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"thread_list_test",
|
|
"util/thread_list_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"thread_local_test",
|
|
"util/thread_local_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"timer_queue_test",
|
|
"util/timer_queue_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"trace_analyzer_test",
|
|
"tools/trace_analyzer_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"transaction_test",
|
|
"utilities/transactions/transaction_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"ttl_test",
|
|
"utilities/ttl/ttl_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"util_merge_operators_test",
|
|
"utilities/util_merge_operators_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"version_builder_test",
|
|
"db/version_builder_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"version_edit_test",
|
|
"db/version_edit_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"version_set_test",
|
|
"db/version_set_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"wal_manager_test",
|
|
"db/wal_manager_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"write_batch_test",
|
|
"db/write_batch_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"write_batch_with_index_test",
|
|
"utilities/write_batch_with_index/write_batch_with_index_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"write_buffer_manager_test",
|
|
"memtable/write_buffer_manager_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"write_callback_test",
|
|
"db/write_callback_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"write_controller_test",
|
|
"db/write_controller_test.cc",
|
|
"serial",
|
|
],
|
|
[
|
|
"write_prepared_transaction_test",
|
|
"utilities/transactions/write_prepared_transaction_test.cc",
|
|
"parallel",
|
|
],
|
|
[
|
|
"write_unprepared_transaction_test",
|
|
"utilities/transactions/write_unprepared_transaction_test.cc",
|
|
"parallel",
|
|
],
|
|
]
|
|
|
|
# Generate a test rule for each entry in ROCKS_TESTS
|
|
# Do not build the tests in opt mode, since SyncPoint and other test code
|
|
# will not be included.
|
|
if not is_opt_mode:
|
|
for test_cfg in ROCKS_TESTS:
|
|
test_name = test_cfg[0]
|
|
test_cc = test_cfg[1]
|
|
ttype = "gtest" if test_cfg[2] == "parallel" else "simple"
|
|
test_bin = test_name + "_bin"
|
|
|
|
cpp_binary(
|
|
name = test_bin,
|
|
srcs = [test_cc],
|
|
arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
|
|
compiler_flags = rocksdb_compiler_flags,
|
|
preprocessor_flags = rocksdb_preprocessor_flags,
|
|
deps = [":rocksdb_test_lib"],
|
|
external_deps = rocksdb_external_deps,
|
|
)
|
|
|
|
custom_unittest(
|
|
name = test_name,
|
|
command = [TEST_RUNNER, BUCK_BINS + test_bin],
|
|
type = ttype,
|
|
deps = [":" + test_bin],
|
|
)
|