rocksdb/TARGETS
Levi Tamasi 29ccf2075c Store the filter bits reader alongside the filter block contents (#5936)
Summary:
Amongst other things, PR https://github.com/facebook/rocksdb/issues/5504 refactored the filter block readers so that
only the filter block contents are stored in the block cache (as opposed to the
earlier design where the cache stored the filter block reader itself, leading to
potentially dangling pointers and concurrency bugs). However, this change
introduced a performance hit since with the new code, the metadata fields are
re-parsed upon every access. This patch reunites the block contents with the
filter bits reader to eliminate this overhead; since this is still a self-contained
pure data object, it is safe to store it in the cache. (Note: this is similar to how
the zstd digest is handled.)
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5936

Test Plan:
make asan_check

filter_bench results for the old code:

```
$ ./filter_bench -quick
WARNING: Assertions are enabled; benchmarks unnecessarily slow
Building...
Build avg ns/key: 26.7153
Number of filters: 16669
Total memory (MB): 200.009
Bits/key actual: 10.0647
----------------------------
Inside queries...
  Dry run (46b) ns/op: 33.4258
  Single filter ns/op: 42.5974
  Random filter ns/op: 217.861
----------------------------
Outside queries...
  Dry run (25d) ns/op: 32.4217
  Single filter ns/op: 50.9855
  Random filter ns/op: 219.167
    Average FP rate %: 1.13993
----------------------------
Done. (For more info, run with -legend or -help.)

$ ./filter_bench -quick -use_full_block_reader
WARNING: Assertions are enabled; benchmarks unnecessarily slow
Building...
Build avg ns/key: 26.5172
Number of filters: 16669
Total memory (MB): 200.009
Bits/key actual: 10.0647
----------------------------
Inside queries...
  Dry run (46b) ns/op: 32.3556
  Single filter ns/op: 83.2239
  Random filter ns/op: 370.676
----------------------------
Outside queries...
  Dry run (25d) ns/op: 32.2265
  Single filter ns/op: 93.5651
  Random filter ns/op: 408.393
    Average FP rate %: 1.13993
----------------------------
Done. (For more info, run with -legend or -help.)
```

With the new code:

```
$ ./filter_bench -quick
WARNING: Assertions are enabled; benchmarks unnecessarily slow
Building...
Build avg ns/key: 25.4285
Number of filters: 16669
Total memory (MB): 200.009
Bits/key actual: 10.0647
----------------------------
Inside queries...
  Dry run (46b) ns/op: 31.0594
  Single filter ns/op: 43.8974
  Random filter ns/op: 226.075
----------------------------
Outside queries...
  Dry run (25d) ns/op: 31.0295
  Single filter ns/op: 50.3824
  Random filter ns/op: 226.805
    Average FP rate %: 1.13993
----------------------------
Done. (For more info, run with -legend or -help.)

$ ./filter_bench -quick -use_full_block_reader
WARNING: Assertions are enabled; benchmarks unnecessarily slow
Building...
Build avg ns/key: 26.5308
Number of filters: 16669
Total memory (MB): 200.009
Bits/key actual: 10.0647
----------------------------
Inside queries...
  Dry run (46b) ns/op: 33.2968
  Single filter ns/op: 58.6163
  Random filter ns/op: 291.434
----------------------------
Outside queries...
  Dry run (25d) ns/op: 32.1839
  Single filter ns/op: 66.9039
  Random filter ns/op: 292.828
    Average FP rate %: 1.13993
----------------------------
Done. (For more info, run with -legend or -help.)
```

Differential Revision: D17991712

Pulled By: ltamasi

fbshipit-source-id: 7ea205550217bfaaa1d5158ebd658e5832e60f29
2019-10-18 19:32:59 -07:00

1475 lines
34 KiB
Plaintext

load("@fbcode_macros//build_defs:auto_headers.bzl", "AutoHeaders")
load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library")
load(":defs.bzl", "test_binary")
REPO_PATH = package_name() + "/"
ROCKSDB_COMPILER_FLAGS = [
"-fno-builtin-memcmp",
# Needed to compile in fbcode
"-Wno-expansion-to-defined",
# Added missing flags from output of build_detect_platform
"-Wnarrowing",
"-DROCKSDB_NO_DYNAMIC_EXTENSION",
]
ROCKSDB_EXTERNAL_DEPS = [
("bzip2", None, "bz2"),
("snappy", None, "snappy"),
("zlib", None, "z"),
("gflags", None, "gflags"),
("lz4", None, "lz4"),
("zstd", None),
("tbb", None),
("googletest", None, "gtest"),
]
ROCKSDB_OS_DEPS = [
(
"linux",
["third-party//numa:numa"],
),
]
ROCKSDB_OS_PREPROCESSOR_FLAGS = [
(
"linux",
[
"-DOS_LINUX",
"-DROCKSDB_FALLOCATE_PRESENT",
"-DROCKSDB_MALLOC_USABLE_SIZE",
"-DROCKSDB_PTHREAD_ADAPTIVE_MUTEX",
"-DROCKSDB_RANGESYNC_PRESENT",
"-DROCKSDB_SCHED_GETCPU_PRESENT",
"-DHAVE_SSE42",
"-DNUMA",
],
),
(
"macos",
["-DOS_MACOSX"],
),
]
ROCKSDB_PREPROCESSOR_FLAGS = [
"-DROCKSDB_PLATFORM_POSIX",
"-DROCKSDB_LIB_IO_POSIX",
"-DROCKSDB_SUPPORT_THREAD_LOCAL",
# Flags to enable libs we include
"-DSNAPPY",
"-DZLIB",
"-DBZIP2",
"-DLZ4",
"-DZSTD",
"-DZSTD_STATIC_LINKING_ONLY",
"-DGFLAGS=gflags",
"-DTBB",
# Added missing flags from output of build_detect_platform
"-DROCKSDB_BACKTRACE",
# Directories with files for #include
"-I" + REPO_PATH + "include/",
"-I" + REPO_PATH,
]
ROCKSDB_ARCH_PREPROCESSOR_FLAGS = {
"x86_64": [
"-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.
ROCKSDB_COMPILER_FLAGS += (["-DNDEBUG"] if is_opt_mode else [])
sanitizer = read_config("fbcode", "sanitizer")
# Do not enable jemalloc if sanitizer presents. RocksDB will further detect
# whether the binary is linked with jemalloc at runtime.
ROCKSDB_OS_PREPROCESSOR_FLAGS += ([(
"linux",
["-DROCKSDB_JEMALLOC"],
)] if sanitizer == "" else [])
ROCKSDB_OS_DEPS += ([(
"linux",
["third-party//jemalloc:headers"],
)] if sanitizer == "" else [])
cpp_library(
name = "rocksdb_lib",
srcs = [
"cache/clock_cache.cc",
"cache/lru_cache.cc",
"cache/sharded_cache.cc",
"db/arena_wrapped_db_iter.cc",
"db/builder.cc",
"db/c.cc",
"db/column_family.cc",
"db/compacted_db_impl.cc",
"db/compaction/compaction.cc",
"db/compaction/compaction_iterator.cc",
"db/compaction/compaction_job.cc",
"db/compaction/compaction_picker.cc",
"db/compaction/compaction_picker_fifo.cc",
"db/compaction/compaction_picker_level.cc",
"db/compaction/compaction_picker_universal.cc",
"db/convenience.cc",
"db/db_filesnapshot.cc",
"db/db_impl/db_impl.cc",
"db/db_impl/db_impl_compaction_flush.cc",
"db/db_impl/db_impl_debug.cc",
"db/db_impl/db_impl_experimental.cc",
"db/db_impl/db_impl_files.cc",
"db/db_impl/db_impl_open.cc",
"db/db_impl/db_impl_readonly.cc",
"db/db_impl/db_impl_secondary.cc",
"db/db_impl/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/import_column_family_job.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_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/trim_history_scheduler.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",
"file/delete_scheduler.cc",
"file/file_prefetch_buffer.cc",
"file/file_util.cc",
"file/filename.cc",
"file/random_access_file_reader.cc",
"file/read_write_util.cc",
"file/readahead_raf.cc",
"file/sequence_file_reader.cc",
"file/sst_file_manager_impl.cc",
"file/writable_file_writer.cc",
"logging/auto_roll_logger.cc",
"logging/event_logger.cc",
"logging/log_buffer.cc",
"memory/arena.cc",
"memory/concurrent_arena.cc",
"memory/jemalloc_nodump_allocator.cc",
"memtable/alloc_tracker.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/in_memory_stats_history.cc",
"monitoring/instrumented_mutex.cc",
"monitoring/iostats_context.cc",
"monitoring/perf_context.cc",
"monitoring/perf_level.cc",
"monitoring/persistent_stats_history.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/adaptive_table_factory.cc",
"table/block_based/block.cc",
"table/block_based/block_based_filter_block.cc",
"table/block_based/block_based_table_builder.cc",
"table/block_based/block_based_table_factory.cc",
"table/block_based/block_based_table_reader.cc",
"table/block_based/block_builder.cc",
"table/block_based/block_prefix_index.cc",
"table/block_based/data_block_footer.cc",
"table/block_based/data_block_hash_index.cc",
"table/block_based/filter_block_reader_common.cc",
"table/block_based/flush_block_policy.cc",
"table/block_based/full_filter_block.cc",
"table/block_based/index_builder.cc",
"table/block_based/parsed_full_filter_block.cc",
"table/block_based/partitioned_filter_block.cc",
"table/block_based/uncompression_dict_reader.cc",
"table/block_fetcher.cc",
"table/cuckoo/cuckoo_table_builder.cc",
"table/cuckoo/cuckoo_table_factory.cc",
"table/cuckoo/cuckoo_table_reader.cc",
"table/format.cc",
"table/get_context.cc",
"table/iterator.cc",
"table/merging_iterator.cc",
"table/meta_blocks.cc",
"table/persistent_cache_helper.cc",
"table/plain/plain_table_bloom.cc",
"table/plain/plain_table_builder.cc",
"table/plain/plain_table_factory.cc",
"table/plain/plain_table_index.cc",
"table/plain/plain_table_key_coding.cc",
"table/plain/plain_table_reader.cc",
"table/sst_file_reader.cc",
"table/sst_file_writer.cc",
"table/table_properties.cc",
"table/two_level_iterator.cc",
"test_util/sync_point.cc",
"test_util/sync_point_impl.cc",
"test_util/transaction_test_util.cc",
"tools/dump/db_dump_tool.cc",
"tools/ldb_cmd.cc",
"tools/ldb_tool.cc",
"tools/sst_dump_tool.cc",
"trace_replay/block_cache_tracer.cc",
"trace_replay/trace_replay.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_task_limiter_impl.cc",
"util/crc32c.cc",
"util/dynamic_bloom.cc",
"util/filter_policy.cc",
"util/hash.cc",
"util/murmurhash.cc",
"util/random.cc",
"util/rate_limiter.cc",
"util/slice.cc",
"util/status.cc",
"util/string_util.cc",
"util/thread_local.cc",
"util/threadpool_imp.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/debug.cc",
"utilities/env_mirror.cc",
"utilities/env_timed.cc",
"utilities/leveldb_options/leveldb_options.cc",
"utilities/memory/memory_util.cc",
"utilities/merge_operators/bytesxor.cc",
"utilities/merge_operators/max.cc",
"utilities/merge_operators/put.cc",
"utilities/merge_operators/sortlist.cc",
"utilities/merge_operators/string_append/stringappend.cc",
"utilities/merge_operators/string_append/stringappend2.cc",
"utilities/merge_operators/uint64add.cc",
"utilities/object_registry.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/simulator_cache/cache_simulator.cc",
"utilities/simulator_cache/sim_cache.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,
os_deps = ROCKSDB_OS_DEPS,
os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_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",
"test_util/fault_injection_test_env.cc",
"test_util/testharness.cc",
"test_util/testutil.cc",
"tools/block_cache_analyzer/block_cache_trace_analyzer.cc",
"tools/trace_analyzer_tool.cc",
"utilities/cassandra/test_utils.cc",
],
auto_headers = AutoHeaders.RECURSIVE_GLOB,
arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
compiler_flags = ROCKSDB_COMPILER_FLAGS,
os_deps = ROCKSDB_OS_DEPS,
os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
deps = [":rocksdb_lib"],
external_deps = ROCKSDB_EXTERNAL_DEPS,
)
cpp_library(
name = "rocksdb_tools_lib",
srcs = [
"test_util/testutil.cc",
"tools/block_cache_analyzer/block_cache_trace_analyzer.cc",
"tools/db_bench_tool.cc",
"tools/trace_analyzer_tool.cc",
],
auto_headers = AutoHeaders.RECURSIVE_GLOB,
arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
compiler_flags = ROCKSDB_COMPILER_FLAGS,
os_deps = ROCKSDB_OS_DEPS,
os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_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,
os_deps = ROCKSDB_OS_DEPS,
os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
deps = [":rocksdb_test_lib"],
external_deps = ROCKSDB_EXTERNAL_DEPS,
)
# [test_name, test_src, test_type, extra_deps, extra_compiler_flags]
ROCKS_TESTS = [
[
"arena_test",
"memory/arena_test.cc",
"serial",
[],
[],
],
[
"auto_roll_logger_test",
"logging/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/block_based_filter_block_test.cc",
"serial",
[],
[],
],
[
"block_cache_trace_analyzer_test",
"tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc",
"serial",
[],
[],
],
[
"block_cache_tracer_test",
"trace_replay/block_cache_tracer_test.cc",
"serial",
[],
[],
],
[
"block_test",
"table/block_based/block_test.cc",
"serial",
[],
[],
],
[
"bloom_test",
"util/bloom_test.cc",
"serial",
[],
[],
],
[
"c_test",
"db/c_test.c",
"serial",
[],
[],
],
[
"cache_simulator_test",
"utilities/simulator_cache/cache_simulator_test.cc",
"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_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/compaction_iterator_test.cc",
"serial",
[],
[],
],
[
"compaction_job_stats_test",
"db/compaction/compaction_job_stats_test.cc",
"serial",
[],
[],
],
[
"compaction_job_test",
"db/compaction/compaction_job_test.cc",
"serial",
[],
[],
],
[
"compaction_picker_test",
"db/compaction/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/cuckoo_table_builder_test.cc",
"serial",
[],
[],
],
[
"cuckoo_table_db_test",
"db/cuckoo_table_db_test.cc",
"serial",
[],
[],
],
[
"cuckoo_table_reader_test",
"table/cuckoo/cuckoo_table_reader_test.cc",
"serial",
[],
[],
],
[
"data_block_hash_index_test",
"table/block_based/data_block_hash_index_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",
"parallel",
[],
[],
],
[
"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_merge_operand_test",
"db/db_merge_operand_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_secondary_test",
"db/db_impl/db_secondary_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",
"file/delete_scheduler_test.cc",
"serial",
[],
[],
],
[
"deletefile_test",
"db/deletefile_test.cc",
"serial",
[],
[],
],
[
"dynamic_bloom_test",
"util/dynamic_bloom_test.cc",
"serial",
[],
[],
],
[
"env_basic_test",
"env/env_basic_test.cc",
"serial",
[],
[],
],
[
"env_logger_test",
"logging/env_logger_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",
"logging/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",
"parallel",
[],
[],
],
[
"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/block_based/full_filter_block_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",
[],
[],
],
[
"import_column_family_test",
"db/import_column_family_test.cc",
"parallel",
[],
[],
],
[
"inlineskiplist_test",
"memtable/inlineskiplist_test.cc",
"parallel",
[],
[],
],
[
"iostats_context_test",
"monitoring/iostats_context_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/block_based/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_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",
[],
[],
],
[
"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",
[],
[],
],
[
"stats_history_test",
"monitoring/stats_history_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.
[
test_binary(
extra_compiler_flags = extra_compiler_flags,
extra_deps = extra_deps,
parallelism = parallelism,
rocksdb_arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
rocksdb_compiler_flags = ROCKSDB_COMPILER_FLAGS,
rocksdb_external_deps = ROCKSDB_EXTERNAL_DEPS,
rocksdb_os_deps = ROCKSDB_OS_DEPS,
rocksdb_os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
rocksdb_preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
test_cc = test_cc,
test_name = test_name,
)
for test_name, test_cc, parallelism, extra_deps, extra_compiler_flags in ROCKS_TESTS
if not is_opt_mode
]