@nxtedition/rocksdb 6.0.0-alpha.0 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILDING.md +10 -0
- package/binding.cc +14 -17
- package/binding.gyp +2 -2
- package/deps/rocksdb/build_version.cc +4 -10
- package/deps/rocksdb/rocksdb/CMakeLists.txt +17 -3
- package/deps/rocksdb/rocksdb/Makefile +57 -86
- package/deps/rocksdb/rocksdb/TARGETS +4 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
- package/deps/rocksdb/rocksdb/common.mk +30 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/builder.cc +11 -4
- package/deps/rocksdb/rocksdb/db/c.cc +45 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +25 -2
- package/deps/rocksdb/rocksdb/db/column_family.cc +4 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +25 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +6 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +69 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +21 -21
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +135 -32
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +9 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +12 -12
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +15 -14
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +44 -42
- package/deps/rocksdb/rocksdb/db/db_test2.cc +23 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +95 -17
- package/deps/rocksdb/rocksdb/db/db_test_util.h +48 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +34 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +3 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +18 -4
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
- package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
- package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -4
- package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_set.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_set.h +3 -3
- package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +31 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +359 -275
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
- package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
- package/deps/rocksdb/rocksdb/env/env.cc +0 -60
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
- package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
- package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -1
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +69 -45
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +28 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +2 -8
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +34 -38
- package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
- package/deps/rocksdb/rocksdb/options/db_options.cc +38 -17
- package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +82 -39
- package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +115 -59
- package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
- package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +14 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +85 -41
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +42 -72
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +7 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +6 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -5
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/format.cc +22 -20
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +14 -11
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
- package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
- package/deps/rocksdb/rocksdb/table/unique_id.cc +57 -25
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +34 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +254 -98
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +17 -3
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
- package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
- package/deps/rocksdb/rocksdb/util/compression.h +7 -7
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
- package/deps/rocksdb/rocksdb/util/heap.h +5 -3
- package/deps/rocksdb/rocksdb/util/random.cc +1 -5
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
- package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
- package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +40 -31
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/python.mk +0 -9
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-arm64/node.napi.node +0 -0
|
@@ -84,7 +84,8 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
84
84
|
}
|
|
85
85
|
// Build file
|
|
86
86
|
for (int i = 0; i < 10 + table; ++i) {
|
|
87
|
-
ASSERT_OK(
|
|
87
|
+
ASSERT_OK(
|
|
88
|
+
db_->Put(WriteOptions(), std::to_string(table * 100 + i), "val"));
|
|
88
89
|
}
|
|
89
90
|
ASSERT_OK(db_->Flush(FlushOptions()));
|
|
90
91
|
}
|
|
@@ -113,7 +114,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
113
114
|
// fetch key from 1st and 2nd table, which will internally place that table to
|
|
114
115
|
// the table cache.
|
|
115
116
|
for (int i = 0; i < 2; ++i) {
|
|
116
|
-
Get(
|
|
117
|
+
Get(std::to_string(i * 100 + 0));
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
VerifyTableProperties(db_, 10 + 11 + 12 + 13);
|
|
@@ -122,7 +123,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
122
123
|
Reopen(options);
|
|
123
124
|
// fetch key from all tables, which will place them in table cache.
|
|
124
125
|
for (int i = 0; i < 4; ++i) {
|
|
125
|
-
Get(
|
|
126
|
+
Get(std::to_string(i * 100 + 0));
|
|
126
127
|
}
|
|
127
128
|
VerifyTableProperties(db_, 10 + 11 + 12 + 13);
|
|
128
129
|
|
|
@@ -156,7 +157,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
156
157
|
} else {
|
|
157
158
|
bool found_corruption = false;
|
|
158
159
|
for (int i = 0; i < 4; ++i) {
|
|
159
|
-
std::string result = Get(
|
|
160
|
+
std::string result = Get(std::to_string(i * 100 + 0));
|
|
160
161
|
if (result.find_first_of("Corruption: block checksum mismatch") !=
|
|
161
162
|
std::string::npos) {
|
|
162
163
|
found_corruption = true;
|
|
@@ -187,7 +188,7 @@ TEST_F(DBTablePropertiesTest, InvalidIgnored) {
|
|
|
187
188
|
|
|
188
189
|
// Build file
|
|
189
190
|
for (int i = 0; i < 10; ++i) {
|
|
190
|
-
ASSERT_OK(db_->Put(WriteOptions(),
|
|
191
|
+
ASSERT_OK(db_->Put(WriteOptions(), std::to_string(i), "val"));
|
|
191
192
|
}
|
|
192
193
|
ASSERT_OK(db_->Flush(FlushOptions()));
|
|
193
194
|
|
|
@@ -2427,8 +2427,8 @@ TEST_F(DBTest, SnapshotFiles) {
|
|
|
2427
2427
|
|
|
2428
2428
|
// Also test GetLiveFilesStorageInfo
|
|
2429
2429
|
std::vector<LiveFileStorageInfo> new_infos;
|
|
2430
|
-
ASSERT_OK(
|
|
2431
|
-
|
|
2430
|
+
ASSERT_OK(db_->GetLiveFilesStorageInfo(LiveFilesStorageInfoOptions(),
|
|
2431
|
+
&new_infos));
|
|
2432
2432
|
|
|
2433
2433
|
// Close DB (while deletions disabled)
|
|
2434
2434
|
Close();
|
|
@@ -2734,7 +2734,7 @@ TEST_P(MultiThreadedDBTest, MultiThreaded) {
|
|
|
2734
2734
|
Options options = CurrentOptions(options_override);
|
|
2735
2735
|
std::vector<std::string> cfs;
|
|
2736
2736
|
for (int i = 1; i < kColumnFamilies; ++i) {
|
|
2737
|
-
cfs.push_back(
|
|
2737
|
+
cfs.push_back(std::to_string(i));
|
|
2738
2738
|
}
|
|
2739
2739
|
Reopen(options);
|
|
2740
2740
|
CreateAndReopenWithCF(cfs, options);
|
|
@@ -2786,7 +2786,7 @@ static void GCThreadBody(void* arg) {
|
|
|
2786
2786
|
WriteOptions wo;
|
|
2787
2787
|
|
|
2788
2788
|
for (int i = 0; i < kGCNumKeys; ++i) {
|
|
2789
|
-
std::string kv(
|
|
2789
|
+
std::string kv(std::to_string(i + id * kGCNumKeys));
|
|
2790
2790
|
ASSERT_OK(db->Put(wo, kv, kv));
|
|
2791
2791
|
}
|
|
2792
2792
|
t->done = true;
|
|
@@ -2822,7 +2822,7 @@ TEST_F(DBTest, GroupCommitTest) {
|
|
|
2822
2822
|
|
|
2823
2823
|
std::vector<std::string> expected_db;
|
|
2824
2824
|
for (int i = 0; i < kGCNumThreads * kGCNumKeys; ++i) {
|
|
2825
|
-
expected_db.push_back(
|
|
2825
|
+
expected_db.push_back(std::to_string(i));
|
|
2826
2826
|
}
|
|
2827
2827
|
std::sort(expected_db.begin(), expected_db.end());
|
|
2828
2828
|
|
|
@@ -3591,7 +3591,7 @@ TEST_P(DBTestWithParam, FIFOCompactionTest) {
|
|
|
3591
3591
|
Random rnd(301);
|
|
3592
3592
|
for (int i = 0; i < 6; ++i) {
|
|
3593
3593
|
for (int j = 0; j < 110; ++j) {
|
|
3594
|
-
ASSERT_OK(Put(
|
|
3594
|
+
ASSERT_OK(Put(std::to_string(i * 100 + j), rnd.RandomString(980)));
|
|
3595
3595
|
}
|
|
3596
3596
|
// flush should happen here
|
|
3597
3597
|
ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable());
|
|
@@ -3607,7 +3607,7 @@ TEST_P(DBTestWithParam, FIFOCompactionTest) {
|
|
|
3607
3607
|
ASSERT_EQ(NumTableFilesAtLevel(0), 5);
|
|
3608
3608
|
for (int i = 0; i < 50; ++i) {
|
|
3609
3609
|
// these keys should be deleted in previous compaction
|
|
3610
|
-
ASSERT_EQ("NOT_FOUND", Get(
|
|
3610
|
+
ASSERT_EQ("NOT_FOUND", Get(std::to_string(i)));
|
|
3611
3611
|
}
|
|
3612
3612
|
}
|
|
3613
3613
|
}
|
|
@@ -3629,7 +3629,7 @@ TEST_F(DBTest, FIFOCompactionTestWithCompaction) {
|
|
|
3629
3629
|
for (int i = 0; i < 60; i++) {
|
|
3630
3630
|
// Generate and flush a file about 20KB.
|
|
3631
3631
|
for (int j = 0; j < 20; j++) {
|
|
3632
|
-
ASSERT_OK(Put(
|
|
3632
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3633
3633
|
}
|
|
3634
3634
|
ASSERT_OK(Flush());
|
|
3635
3635
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3640,7 +3640,7 @@ TEST_F(DBTest, FIFOCompactionTestWithCompaction) {
|
|
|
3640
3640
|
for (int i = 0; i < 60; i++) {
|
|
3641
3641
|
// Generate and flush a file about 20KB.
|
|
3642
3642
|
for (int j = 0; j < 20; j++) {
|
|
3643
|
-
ASSERT_OK(Put(
|
|
3643
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j + 2000), rnd.RandomString(980)));
|
|
3644
3644
|
}
|
|
3645
3645
|
ASSERT_OK(Flush());
|
|
3646
3646
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3670,27 +3670,27 @@ TEST_F(DBTest, FIFOCompactionStyleWithCompactionAndDelete) {
|
|
|
3670
3670
|
Random rnd(301);
|
|
3671
3671
|
for (int i = 0; i < 3; i++) {
|
|
3672
3672
|
// Each file contains a different key which will be dropped later.
|
|
3673
|
-
ASSERT_OK(Put("a" +
|
|
3674
|
-
ASSERT_OK(Put("key" +
|
|
3675
|
-
ASSERT_OK(Put("z" +
|
|
3673
|
+
ASSERT_OK(Put("a" + std::to_string(i), rnd.RandomString(500)));
|
|
3674
|
+
ASSERT_OK(Put("key" + std::to_string(i), ""));
|
|
3675
|
+
ASSERT_OK(Put("z" + std::to_string(i), rnd.RandomString(500)));
|
|
3676
3676
|
ASSERT_OK(Flush());
|
|
3677
3677
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3678
3678
|
}
|
|
3679
3679
|
ASSERT_EQ(NumTableFilesAtLevel(0), 1);
|
|
3680
3680
|
for (int i = 0; i < 3; i++) {
|
|
3681
|
-
ASSERT_EQ("", Get("key" +
|
|
3681
|
+
ASSERT_EQ("", Get("key" + std::to_string(i)));
|
|
3682
3682
|
}
|
|
3683
3683
|
for (int i = 0; i < 3; i++) {
|
|
3684
3684
|
// Each file contains a different key which will be dropped later.
|
|
3685
|
-
ASSERT_OK(Put("a" +
|
|
3686
|
-
ASSERT_OK(Delete("key" +
|
|
3687
|
-
ASSERT_OK(Put("z" +
|
|
3685
|
+
ASSERT_OK(Put("a" + std::to_string(i), rnd.RandomString(500)));
|
|
3686
|
+
ASSERT_OK(Delete("key" + std::to_string(i)));
|
|
3687
|
+
ASSERT_OK(Put("z" + std::to_string(i), rnd.RandomString(500)));
|
|
3688
3688
|
ASSERT_OK(Flush());
|
|
3689
3689
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3690
3690
|
}
|
|
3691
3691
|
ASSERT_EQ(NumTableFilesAtLevel(0), 2);
|
|
3692
3692
|
for (int i = 0; i < 3; i++) {
|
|
3693
|
-
ASSERT_EQ("NOT_FOUND", Get("key" +
|
|
3693
|
+
ASSERT_EQ("NOT_FOUND", Get("key" + std::to_string(i)));
|
|
3694
3694
|
}
|
|
3695
3695
|
}
|
|
3696
3696
|
|
|
@@ -3759,7 +3759,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3759
3759
|
for (int i = 0; i < 10; i++) {
|
|
3760
3760
|
// Generate and flush a file about 10KB.
|
|
3761
3761
|
for (int j = 0; j < 10; j++) {
|
|
3762
|
-
ASSERT_OK(Put(
|
|
3762
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3763
3763
|
}
|
|
3764
3764
|
ASSERT_OK(Flush());
|
|
3765
3765
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3791,7 +3791,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3791
3791
|
for (int i = 0; i < 10; i++) {
|
|
3792
3792
|
// Generate and flush a file about 10KB.
|
|
3793
3793
|
for (int j = 0; j < 10; j++) {
|
|
3794
|
-
ASSERT_OK(Put(
|
|
3794
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3795
3795
|
}
|
|
3796
3796
|
ASSERT_OK(Flush());
|
|
3797
3797
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3807,7 +3807,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3807
3807
|
// Create 1 more file to trigger TTL compaction. The old files are dropped.
|
|
3808
3808
|
for (int i = 0; i < 1; i++) {
|
|
3809
3809
|
for (int j = 0; j < 10; j++) {
|
|
3810
|
-
ASSERT_OK(Put(
|
|
3810
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3811
3811
|
}
|
|
3812
3812
|
ASSERT_OK(Flush());
|
|
3813
3813
|
}
|
|
@@ -3833,7 +3833,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3833
3833
|
for (int i = 0; i < 3; i++) {
|
|
3834
3834
|
// Generate and flush a file about 10KB.
|
|
3835
3835
|
for (int j = 0; j < 10; j++) {
|
|
3836
|
-
ASSERT_OK(Put(
|
|
3836
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3837
3837
|
}
|
|
3838
3838
|
ASSERT_OK(Flush());
|
|
3839
3839
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3848,7 +3848,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3848
3848
|
|
|
3849
3849
|
for (int i = 0; i < 5; i++) {
|
|
3850
3850
|
for (int j = 0; j < 140; j++) {
|
|
3851
|
-
ASSERT_OK(Put(
|
|
3851
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3852
3852
|
}
|
|
3853
3853
|
ASSERT_OK(Flush());
|
|
3854
3854
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3871,7 +3871,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3871
3871
|
for (int i = 0; i < 10; i++) {
|
|
3872
3872
|
// Generate and flush a file about 10KB.
|
|
3873
3873
|
for (int j = 0; j < 10; j++) {
|
|
3874
|
-
ASSERT_OK(Put(
|
|
3874
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3875
3875
|
}
|
|
3876
3876
|
ASSERT_OK(Flush());
|
|
3877
3877
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3890,7 +3890,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3890
3890
|
// Create 10 more files. The old 5 files are dropped as their ttl expired.
|
|
3891
3891
|
for (int i = 0; i < 10; i++) {
|
|
3892
3892
|
for (int j = 0; j < 10; j++) {
|
|
3893
|
-
ASSERT_OK(Put(
|
|
3893
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3894
3894
|
}
|
|
3895
3895
|
ASSERT_OK(Flush());
|
|
3896
3896
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3915,7 +3915,7 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3915
3915
|
for (int i = 0; i < 60; i++) {
|
|
3916
3916
|
// Generate and flush a file about 20KB.
|
|
3917
3917
|
for (int j = 0; j < 20; j++) {
|
|
3918
|
-
ASSERT_OK(Put(
|
|
3918
|
+
ASSERT_OK(Put(std::to_string(i * 20 + j), rnd.RandomString(980)));
|
|
3919
3919
|
}
|
|
3920
3920
|
ASSERT_OK(Flush());
|
|
3921
3921
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -3926,7 +3926,8 @@ TEST_F(DBTest, FIFOCompactionWithTTLTest) {
|
|
|
3926
3926
|
for (int i = 0; i < 60; i++) {
|
|
3927
3927
|
// Generate and flush a file about 20KB.
|
|
3928
3928
|
for (int j = 0; j < 20; j++) {
|
|
3929
|
-
ASSERT_OK(
|
|
3929
|
+
ASSERT_OK(
|
|
3930
|
+
Put(std::to_string(i * 20 + j + 2000), rnd.RandomString(980)));
|
|
3930
3931
|
}
|
|
3931
3932
|
ASSERT_OK(Flush());
|
|
3932
3933
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -4207,7 +4208,7 @@ TEST_F(DBTest, ConcurrentFlushWAL) {
|
|
|
4207
4208
|
std::vector<port::Thread> threads;
|
|
4208
4209
|
threads.emplace_back([&] {
|
|
4209
4210
|
for (size_t i = 0; i < cnt; i++) {
|
|
4210
|
-
auto istr =
|
|
4211
|
+
auto istr = std::to_string(i);
|
|
4211
4212
|
ASSERT_OK(db_->Put(wopt, db_->DefaultColumnFamily(), "a" + istr,
|
|
4212
4213
|
"b" + istr));
|
|
4213
4214
|
}
|
|
@@ -4215,7 +4216,7 @@ TEST_F(DBTest, ConcurrentFlushWAL) {
|
|
|
4215
4216
|
if (two_write_queues) {
|
|
4216
4217
|
threads.emplace_back([&] {
|
|
4217
4218
|
for (size_t i = cnt; i < 2 * cnt; i++) {
|
|
4218
|
-
auto istr =
|
|
4219
|
+
auto istr = std::to_string(i);
|
|
4219
4220
|
WriteBatch batch;
|
|
4220
4221
|
ASSERT_OK(batch.Put("a" + istr, "b" + istr));
|
|
4221
4222
|
ASSERT_OK(
|
|
@@ -4236,7 +4237,7 @@ TEST_F(DBTest, ConcurrentFlushWAL) {
|
|
|
4236
4237
|
Reopen(options);
|
|
4237
4238
|
for (size_t i = 0; i < cnt; i++) {
|
|
4238
4239
|
PinnableSlice pval;
|
|
4239
|
-
auto istr =
|
|
4240
|
+
auto istr = std::to_string(i);
|
|
4240
4241
|
ASSERT_OK(
|
|
4241
4242
|
db_->Get(ropt, db_->DefaultColumnFamily(), "a" + istr, &pval));
|
|
4242
4243
|
ASSERT_TRUE(pval == ("b" + istr));
|
|
@@ -4259,7 +4260,7 @@ TEST_F(DBTest, ManualFlushWalAndWriteRace) {
|
|
|
4259
4260
|
|
|
4260
4261
|
port::Thread writeThread([&]() {
|
|
4261
4262
|
for (int i = 0; i < 100; i++) {
|
|
4262
|
-
auto istr =
|
|
4263
|
+
auto istr = std::to_string(i);
|
|
4263
4264
|
ASSERT_OK(dbfull()->Put(wopts, "key_" + istr, "value_" + istr));
|
|
4264
4265
|
}
|
|
4265
4266
|
});
|
|
@@ -4607,7 +4608,7 @@ TEST_P(DBTestWithParam, ThreadStatusSingleCompaction) {
|
|
|
4607
4608
|
// The Put Phase.
|
|
4608
4609
|
for (int file = 0; file < kNumL0Files; ++file) {
|
|
4609
4610
|
for (int key = 0; key < kEntriesPerBuffer; ++key) {
|
|
4610
|
-
ASSERT_OK(Put(
|
|
4611
|
+
ASSERT_OK(Put(std::to_string(key + file * kEntriesPerBuffer),
|
|
4611
4612
|
rnd.RandomString(kTestValueSize)));
|
|
4612
4613
|
}
|
|
4613
4614
|
ASSERT_OK(Flush());
|
|
@@ -4758,7 +4759,7 @@ TEST_P(DBTestWithParam, PreShutdownMultipleCompaction) {
|
|
|
4758
4759
|
int operation_count[ThreadStatus::NUM_OP_TYPES] = {0};
|
|
4759
4760
|
for (int file = 0; file < 16 * kNumL0Files; ++file) {
|
|
4760
4761
|
for (int k = 0; k < kEntriesPerBuffer; ++k) {
|
|
4761
|
-
ASSERT_OK(Put(
|
|
4762
|
+
ASSERT_OK(Put(std::to_string(key++), rnd.RandomString(kTestValueSize)));
|
|
4762
4763
|
}
|
|
4763
4764
|
|
|
4764
4765
|
ASSERT_OK(env_->GetThreadList(&thread_list));
|
|
@@ -4845,7 +4846,7 @@ TEST_P(DBTestWithParam, PreShutdownCompactionMiddle) {
|
|
|
4845
4846
|
int operation_count[ThreadStatus::NUM_OP_TYPES] = {0};
|
|
4846
4847
|
for (int file = 0; file < 16 * kNumL0Files; ++file) {
|
|
4847
4848
|
for (int k = 0; k < kEntriesPerBuffer; ++k) {
|
|
4848
|
-
ASSERT_OK(Put(
|
|
4849
|
+
ASSERT_OK(Put(std::to_string(key++), rnd.RandomString(kTestValueSize)));
|
|
4849
4850
|
}
|
|
4850
4851
|
|
|
4851
4852
|
ASSERT_OK(env_->GetThreadList(&thread_list));
|
|
@@ -5156,8 +5157,9 @@ TEST_F(DBTest, DynamicCompactionOptions) {
|
|
|
5156
5157
|
// Writing to 64KB L0 files should trigger a compaction. Since these
|
|
5157
5158
|
// 2 L0 files have the same key range, compaction merge them and should
|
|
5158
5159
|
// result in 2 32KB L1 files.
|
|
5159
|
-
ASSERT_OK(
|
|
5160
|
-
|
|
5160
|
+
ASSERT_OK(
|
|
5161
|
+
dbfull()->SetOptions({{"level0_file_num_compaction_trigger", "2"},
|
|
5162
|
+
{"target_file_size_base", std::to_string(k32KB)}}));
|
|
5161
5163
|
|
|
5162
5164
|
gen_l0_kb(0, 64, 1);
|
|
5163
5165
|
ASSERT_EQ("1,1", FilesPerLevel());
|
|
@@ -5176,8 +5178,8 @@ TEST_F(DBTest, DynamicCompactionOptions) {
|
|
|
5176
5178
|
// Increase level base size to 256KB and write enough data that will
|
|
5177
5179
|
// fill L1 and L2. L1 size should be around 256KB while L2 size should be
|
|
5178
5180
|
// around 256KB x 4.
|
|
5179
|
-
ASSERT_OK(
|
|
5180
|
-
|
|
5181
|
+
ASSERT_OK(dbfull()->SetOptions(
|
|
5182
|
+
{{"max_bytes_for_level_base", std::to_string(k1MB)}}));
|
|
5181
5183
|
|
|
5182
5184
|
// writing 96 x 64KB => 6 * 1024KB
|
|
5183
5185
|
// (L1 + L2) = (1 + 4) * 1024KB
|
|
@@ -5196,9 +5198,9 @@ TEST_F(DBTest, DynamicCompactionOptions) {
|
|
|
5196
5198
|
// max_bytes_for_level_base. Now, reduce both mulitplier and level base,
|
|
5197
5199
|
// After filling enough data that can fit in L1 - L3, we should see L1 size
|
|
5198
5200
|
// reduces to 128KB from 256KB which was asserted previously. Same for L2.
|
|
5199
|
-
ASSERT_OK(
|
|
5200
|
-
|
|
5201
|
-
|
|
5201
|
+
ASSERT_OK(dbfull()->SetOptions(
|
|
5202
|
+
{{"max_bytes_for_level_multiplier", "2"},
|
|
5203
|
+
{"max_bytes_for_level_base", std::to_string(k128KB)}}));
|
|
5202
5204
|
|
|
5203
5205
|
// writing 20 x 64KB = 10 x 128KB
|
|
5204
5206
|
// (L1 + L2 + L3) = (1 + 2 + 4) * 128KB
|
|
@@ -5854,7 +5856,7 @@ TEST_P(DBTestWithParam, FilterCompactionTimeTest) {
|
|
|
5854
5856
|
// put some data
|
|
5855
5857
|
for (int table = 0; table < 4; ++table) {
|
|
5856
5858
|
for (int i = 0; i < 10 + table; ++i) {
|
|
5857
|
-
ASSERT_OK(Put(
|
|
5859
|
+
ASSERT_OK(Put(std::to_string(table * 100 + i), "val"));
|
|
5858
5860
|
++n;
|
|
5859
5861
|
}
|
|
5860
5862
|
ASSERT_OK(Flush());
|
|
@@ -6238,7 +6240,7 @@ TEST_F(DBTest, LargeBatchWithColumnFamilies) {
|
|
|
6238
6240
|
(write_size / 1024 / 1024), pass);
|
|
6239
6241
|
for (;;) {
|
|
6240
6242
|
std::string data(3000, j++ % 127 + 20);
|
|
6241
|
-
data +=
|
|
6243
|
+
data += std::to_string(j);
|
|
6242
6244
|
ASSERT_OK(batch.Put(handles_[0], Slice(data), Slice(data)));
|
|
6243
6245
|
if (batch.GetDataSize() > write_size) {
|
|
6244
6246
|
break;
|
|
@@ -38,10 +38,10 @@ class DBTest2 : public DBTestBase {
|
|
|
38
38
|
#ifndef ROCKSDB_LITE
|
|
39
39
|
uint64_t GetSstSizeHelper(Temperature temperature) {
|
|
40
40
|
std::string prop;
|
|
41
|
-
EXPECT_TRUE(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
EXPECT_TRUE(dbfull()->GetProperty(
|
|
42
|
+
DB::Properties::kLiveSstFilesSizeAtTemperature +
|
|
43
|
+
std::to_string(static_cast<uint8_t>(temperature)),
|
|
44
|
+
&prop));
|
|
45
45
|
return static_cast<uint64_t>(std::atoi(prop.c_str()));
|
|
46
46
|
}
|
|
47
47
|
#endif // ROCKSDB_LITE
|
|
@@ -1694,9 +1694,9 @@ class CompactionCompressionListener : public EventListener {
|
|
|
1694
1694
|
int bottommost_level = 0;
|
|
1695
1695
|
for (int level = 0; level < db->NumberLevels(); level++) {
|
|
1696
1696
|
std::string files_at_level;
|
|
1697
|
-
ASSERT_TRUE(
|
|
1698
|
-
"rocksdb.num-files-at-level" +
|
|
1699
|
-
|
|
1697
|
+
ASSERT_TRUE(
|
|
1698
|
+
db->GetProperty("rocksdb.num-files-at-level" + std::to_string(level),
|
|
1699
|
+
&files_at_level));
|
|
1700
1700
|
if (files_at_level != "0") {
|
|
1701
1701
|
bottommost_level = level;
|
|
1702
1702
|
}
|
|
@@ -2492,14 +2492,14 @@ TEST_F(DBTest2, TestPerfContextIterCpuTime) {
|
|
|
2492
2492
|
|
|
2493
2493
|
const size_t kNumEntries = 10;
|
|
2494
2494
|
for (size_t i = 0; i < kNumEntries; ++i) {
|
|
2495
|
-
ASSERT_OK(Put("k" +
|
|
2495
|
+
ASSERT_OK(Put("k" + std::to_string(i), "v" + std::to_string(i)));
|
|
2496
2496
|
}
|
|
2497
2497
|
ASSERT_OK(Flush());
|
|
2498
2498
|
for (size_t i = 0; i < kNumEntries; ++i) {
|
|
2499
|
-
ASSERT_EQ("v" +
|
|
2499
|
+
ASSERT_EQ("v" + std::to_string(i), Get("k" + std::to_string(i)));
|
|
2500
2500
|
}
|
|
2501
|
-
std::string last_key = "k" +
|
|
2502
|
-
std::string last_value = "v" +
|
|
2501
|
+
std::string last_key = "k" + std::to_string(kNumEntries - 1);
|
|
2502
|
+
std::string last_value = "v" + std::to_string(kNumEntries - 1);
|
|
2503
2503
|
env_->now_cpu_count_.store(0);
|
|
2504
2504
|
env_->SetMockSleep();
|
|
2505
2505
|
|
|
@@ -3987,12 +3987,14 @@ TEST_F(DBTest2, RateLimitedCompactionReads) {
|
|
|
3987
3987
|
|
|
3988
3988
|
// should be slightly above 512KB due to non-data blocks read. Arbitrarily
|
|
3989
3989
|
// chose 1MB as the upper bound on the total bytes read.
|
|
3990
|
-
size_t rate_limited_bytes =
|
|
3991
|
-
options.rate_limiter->GetTotalBytesThrough(Env::IO_TOTAL);
|
|
3992
|
-
//
|
|
3990
|
+
size_t rate_limited_bytes = static_cast<size_t>(
|
|
3991
|
+
options.rate_limiter->GetTotalBytesThrough(Env::IO_TOTAL));
|
|
3992
|
+
// The charges can exist for `IO_LOW` and `IO_USER` priorities.
|
|
3993
|
+
size_t rate_limited_bytes_by_pri =
|
|
3994
|
+
options.rate_limiter->GetTotalBytesThrough(Env::IO_LOW) +
|
|
3995
|
+
options.rate_limiter->GetTotalBytesThrough(Env::IO_USER);
|
|
3993
3996
|
ASSERT_EQ(rate_limited_bytes,
|
|
3994
|
-
static_cast<size_t>(
|
|
3995
|
-
options.rate_limiter->GetTotalBytesThrough(Env::IO_LOW)));
|
|
3997
|
+
static_cast<size_t>(rate_limited_bytes_by_pri));
|
|
3996
3998
|
// Include the explicit prefetch of the footer in direct I/O case.
|
|
3997
3999
|
size_t direct_io_extra = use_direct_io ? 512 * 1024 : 0;
|
|
3998
4000
|
ASSERT_GE(
|
|
@@ -4010,9 +4012,11 @@ TEST_F(DBTest2, RateLimitedCompactionReads) {
|
|
|
4010
4012
|
}
|
|
4011
4013
|
delete iter;
|
|
4012
4014
|
// bytes read for user iterator shouldn't count against the rate limit.
|
|
4015
|
+
rate_limited_bytes_by_pri =
|
|
4016
|
+
options.rate_limiter->GetTotalBytesThrough(Env::IO_LOW) +
|
|
4017
|
+
options.rate_limiter->GetTotalBytesThrough(Env::IO_USER);
|
|
4013
4018
|
ASSERT_EQ(rate_limited_bytes,
|
|
4014
|
-
static_cast<size_t>(
|
|
4015
|
-
options.rate_limiter->GetTotalBytesThrough(Env::IO_LOW)));
|
|
4019
|
+
static_cast<size_t>(rate_limited_bytes_by_pri));
|
|
4016
4020
|
}
|
|
4017
4021
|
}
|
|
4018
4022
|
}
|
|
@@ -5553,7 +5557,7 @@ TEST_F(DBTest2, MultiDBParallelOpenTest) {
|
|
|
5553
5557
|
Options options = CurrentOptions();
|
|
5554
5558
|
std::vector<std::string> dbnames;
|
|
5555
5559
|
for (int i = 0; i < kNumDbs; ++i) {
|
|
5556
|
-
dbnames.emplace_back(test::PerThreadDBPath(env_, "db" +
|
|
5560
|
+
dbnames.emplace_back(test::PerThreadDBPath(env_, "db" + std::to_string(i)));
|
|
5557
5561
|
ASSERT_OK(DestroyDB(dbnames.back(), options));
|
|
5558
5562
|
}
|
|
5559
5563
|
|
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
#include "db/db_test_util.h"
|
|
11
11
|
|
|
12
|
+
#include "cache/cache_reservation_manager.h"
|
|
12
13
|
#include "db/forward_iterator.h"
|
|
13
14
|
#include "env/mock_env.h"
|
|
15
|
+
#include "port/lang.h"
|
|
16
|
+
#include "rocksdb/cache.h"
|
|
14
17
|
#include "rocksdb/convenience.h"
|
|
15
18
|
#include "rocksdb/env_encryption.h"
|
|
16
19
|
#include "rocksdb/unique_id.h"
|
|
@@ -360,6 +363,17 @@ Options DBTestBase::GetOptions(
|
|
|
360
363
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearCallBack(
|
|
361
364
|
"NewWritableFile:O_DIRECT");
|
|
362
365
|
#endif
|
|
366
|
+
// kMustFreeHeapAllocations -> indicates ASAN build
|
|
367
|
+
if (kMustFreeHeapAllocations && !options_override.full_block_cache) {
|
|
368
|
+
// Detecting block cache use-after-free is normally difficult in unit
|
|
369
|
+
// tests, because as a cache, it tends to keep unreferenced entries in
|
|
370
|
+
// memory, and we normally want unit tests to take advantage of block
|
|
371
|
+
// cache for speed. However, we also want a strong chance of detecting
|
|
372
|
+
// block cache use-after-free in unit tests in ASAN builds, so for ASAN
|
|
373
|
+
// builds we use a trivially small block cache to which entries can be
|
|
374
|
+
// added but are immediately freed on no more references.
|
|
375
|
+
table_options.block_cache = NewLRUCache(/* too small */ 1);
|
|
376
|
+
}
|
|
363
377
|
|
|
364
378
|
bool can_allow_mmap = IsMemoryMappedAccessSupported();
|
|
365
379
|
switch (option_config) {
|
|
@@ -831,7 +845,7 @@ std::vector<std::string> DBTestBase::MultiGet(std::vector<int> cfs,
|
|
|
831
845
|
std::vector<Status> s;
|
|
832
846
|
if (!batched) {
|
|
833
847
|
s = db_->MultiGet(options, handles, keys, &result);
|
|
834
|
-
for (
|
|
848
|
+
for (size_t i = 0; i < s.size(); ++i) {
|
|
835
849
|
if (s[i].IsNotFound()) {
|
|
836
850
|
result[i] = "NOT_FOUND";
|
|
837
851
|
} else if (!s[i].ok()) {
|
|
@@ -844,13 +858,16 @@ std::vector<std::string> DBTestBase::MultiGet(std::vector<int> cfs,
|
|
|
844
858
|
s.resize(cfs.size());
|
|
845
859
|
db_->MultiGet(options, cfs.size(), handles.data(), keys.data(),
|
|
846
860
|
pin_values.data(), s.data());
|
|
847
|
-
for (
|
|
861
|
+
for (size_t i = 0; i < s.size(); ++i) {
|
|
848
862
|
if (s[i].IsNotFound()) {
|
|
849
863
|
result[i] = "NOT_FOUND";
|
|
850
864
|
} else if (!s[i].ok()) {
|
|
851
865
|
result[i] = s[i].ToString();
|
|
852
866
|
} else {
|
|
853
867
|
result[i].assign(pin_values[i].data(), pin_values[i].size());
|
|
868
|
+
// Increase likelihood of detecting potential use-after-free bugs with
|
|
869
|
+
// PinnableSlices tracking the same resource
|
|
870
|
+
pin_values[i].Reset();
|
|
854
871
|
}
|
|
855
872
|
}
|
|
856
873
|
}
|
|
@@ -863,23 +880,25 @@ std::vector<std::string> DBTestBase::MultiGet(const std::vector<std::string>& k,
|
|
|
863
880
|
options.verify_checksums = true;
|
|
864
881
|
options.snapshot = snapshot;
|
|
865
882
|
std::vector<Slice> keys;
|
|
866
|
-
std::vector<std::string> result;
|
|
883
|
+
std::vector<std::string> result(k.size());
|
|
867
884
|
std::vector<Status> statuses(k.size());
|
|
868
885
|
std::vector<PinnableSlice> pin_values(k.size());
|
|
869
886
|
|
|
870
|
-
for (
|
|
887
|
+
for (size_t i = 0; i < k.size(); ++i) {
|
|
871
888
|
keys.push_back(k[i]);
|
|
872
889
|
}
|
|
873
890
|
db_->MultiGet(options, dbfull()->DefaultColumnFamily(), keys.size(),
|
|
874
891
|
keys.data(), pin_values.data(), statuses.data());
|
|
875
|
-
|
|
876
|
-
for (auto iter = result.begin(); iter != result.end(); ++iter) {
|
|
877
|
-
iter->assign(pin_values[iter - result.begin()].data(),
|
|
878
|
-
pin_values[iter - result.begin()].size());
|
|
879
|
-
}
|
|
880
|
-
for (unsigned int i = 0; i < statuses.size(); ++i) {
|
|
892
|
+
for (size_t i = 0; i < statuses.size(); ++i) {
|
|
881
893
|
if (statuses[i].IsNotFound()) {
|
|
882
894
|
result[i] = "NOT_FOUND";
|
|
895
|
+
} else if (!statuses[i].ok()) {
|
|
896
|
+
result[i] = statuses[i].ToString();
|
|
897
|
+
} else {
|
|
898
|
+
result[i].assign(pin_values[i].data(), pin_values[i].size());
|
|
899
|
+
// Increase likelihood of detecting potential use-after-free bugs with
|
|
900
|
+
// PinnableSlices tracking the same resource
|
|
901
|
+
pin_values[i].Reset();
|
|
883
902
|
}
|
|
884
903
|
}
|
|
885
904
|
return result;
|
|
@@ -1068,12 +1087,12 @@ int DBTestBase::NumTableFilesAtLevel(int level, int cf) {
|
|
|
1068
1087
|
std::string property;
|
|
1069
1088
|
if (cf == 0) {
|
|
1070
1089
|
// default cfd
|
|
1071
|
-
EXPECT_TRUE(db_->GetProperty(
|
|
1072
|
-
|
|
1090
|
+
EXPECT_TRUE(db_->GetProperty(
|
|
1091
|
+
"rocksdb.num-files-at-level" + std::to_string(level), &property));
|
|
1073
1092
|
} else {
|
|
1074
|
-
EXPECT_TRUE(db_->GetProperty(
|
|
1075
|
-
|
|
1076
|
-
|
|
1093
|
+
EXPECT_TRUE(db_->GetProperty(
|
|
1094
|
+
handles_[cf], "rocksdb.num-files-at-level" + std::to_string(level),
|
|
1095
|
+
&property));
|
|
1077
1096
|
}
|
|
1078
1097
|
return atoi(property.c_str());
|
|
1079
1098
|
}
|
|
@@ -1083,10 +1102,12 @@ double DBTestBase::CompressionRatioAtLevel(int level, int cf) {
|
|
|
1083
1102
|
if (cf == 0) {
|
|
1084
1103
|
// default cfd
|
|
1085
1104
|
EXPECT_TRUE(db_->GetProperty(
|
|
1086
|
-
"rocksdb.compression-ratio-at-level" +
|
|
1105
|
+
"rocksdb.compression-ratio-at-level" + std::to_string(level),
|
|
1106
|
+
&property));
|
|
1087
1107
|
} else {
|
|
1088
1108
|
EXPECT_TRUE(db_->GetProperty(
|
|
1089
|
-
handles_[cf],
|
|
1109
|
+
handles_[cf],
|
|
1110
|
+
"rocksdb.compression-ratio-at-level" + std::to_string(level),
|
|
1090
1111
|
&property));
|
|
1091
1112
|
}
|
|
1092
1113
|
return std::stod(property);
|
|
@@ -1663,4 +1684,61 @@ void VerifySstUniqueIds(const TablePropertiesCollection& props) {
|
|
|
1663
1684
|
}
|
|
1664
1685
|
}
|
|
1665
1686
|
|
|
1687
|
+
template <CacheEntryRole R>
|
|
1688
|
+
TargetCacheChargeTrackingCache<R>::TargetCacheChargeTrackingCache(
|
|
1689
|
+
std::shared_ptr<Cache> target)
|
|
1690
|
+
: CacheWrapper(std::move(target)),
|
|
1691
|
+
cur_cache_charge_(0),
|
|
1692
|
+
cache_charge_peak_(0),
|
|
1693
|
+
cache_charge_increment_(0),
|
|
1694
|
+
last_peak_tracked_(false),
|
|
1695
|
+
cache_charge_increments_sum_(0) {}
|
|
1696
|
+
|
|
1697
|
+
template <CacheEntryRole R>
|
|
1698
|
+
Status TargetCacheChargeTrackingCache<R>::Insert(
|
|
1699
|
+
const Slice& key, void* value, size_t charge,
|
|
1700
|
+
void (*deleter)(const Slice& key, void* value), Handle** handle,
|
|
1701
|
+
Priority priority) {
|
|
1702
|
+
Status s = target_->Insert(key, value, charge, deleter, handle, priority);
|
|
1703
|
+
if (deleter == kNoopDeleter) {
|
|
1704
|
+
if (last_peak_tracked_) {
|
|
1705
|
+
cache_charge_peak_ = 0;
|
|
1706
|
+
cache_charge_increment_ = 0;
|
|
1707
|
+
last_peak_tracked_ = false;
|
|
1708
|
+
}
|
|
1709
|
+
if (s.ok()) {
|
|
1710
|
+
cur_cache_charge_ += charge;
|
|
1711
|
+
}
|
|
1712
|
+
cache_charge_peak_ = std::max(cache_charge_peak_, cur_cache_charge_);
|
|
1713
|
+
cache_charge_increment_ += charge;
|
|
1714
|
+
}
|
|
1715
|
+
|
|
1716
|
+
return s;
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1719
|
+
template <CacheEntryRole R>
|
|
1720
|
+
bool TargetCacheChargeTrackingCache<R>::Release(Handle* handle,
|
|
1721
|
+
bool erase_if_last_ref) {
|
|
1722
|
+
auto deleter = GetDeleter(handle);
|
|
1723
|
+
if (deleter == kNoopDeleter) {
|
|
1724
|
+
if (!last_peak_tracked_) {
|
|
1725
|
+
cache_charge_peaks_.push_back(cache_charge_peak_);
|
|
1726
|
+
cache_charge_increments_sum_ += cache_charge_increment_;
|
|
1727
|
+
last_peak_tracked_ = true;
|
|
1728
|
+
}
|
|
1729
|
+
cur_cache_charge_ -= GetCharge(handle);
|
|
1730
|
+
}
|
|
1731
|
+
bool is_successful = target_->Release(handle, erase_if_last_ref);
|
|
1732
|
+
return is_successful;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
template <CacheEntryRole R>
|
|
1736
|
+
const Cache::DeleterFn TargetCacheChargeTrackingCache<R>::kNoopDeleter =
|
|
1737
|
+
CacheReservationManagerImpl<R>::TEST_GetNoopDeleterForRole();
|
|
1738
|
+
|
|
1739
|
+
template class TargetCacheChargeTrackingCache<
|
|
1740
|
+
CacheEntryRole::kFilterConstruction>;
|
|
1741
|
+
template class TargetCacheChargeTrackingCache<
|
|
1742
|
+
CacheEntryRole::kBlockBasedTableReader>;
|
|
1743
|
+
|
|
1666
1744
|
} // namespace ROCKSDB_NAMESPACE
|