@nxtedition/rocksdb 8.2.0 → 8.2.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/binding.cc +3 -3
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
- package/deps/rocksdb/rocksdb/Makefile +10 -5
- package/deps/rocksdb/rocksdb/TARGETS +8 -345
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
- package/deps/rocksdb/rocksdb/db/builder.h +2 -2
- package/deps/rocksdb/rocksdb/db/c.cc +76 -5
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
- package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
- package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
- package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
- package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
- package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
- package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
- package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
- package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
- package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
- package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
- package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
- package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
- package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
- package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
- package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
- package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/options.cc +12 -53
- package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
- package/deps/rocksdb/rocksdb/port/lang.h +27 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
- package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
- package/deps/rocksdb/rocksdb/table/format.cc +4 -4
- package/deps/rocksdb/rocksdb/table/format.h +1 -1
- package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
- package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
- package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/compression.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
- package/deps/rocksdb/rocksdb/util/math.h +12 -7
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
- package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- /package/deps/rocksdb/rocksdb/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
|
@@ -3044,7 +3044,7 @@ TEST_F(DBTest2, PausingManualCompaction1) {
|
|
|
3044
3044
|
.IsManualCompactionPaused());
|
|
3045
3045
|
|
|
3046
3046
|
// Wait for compactions to get scheduled and stopped
|
|
3047
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3047
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3048
3048
|
|
|
3049
3049
|
// Get file names after compaction is stopped
|
|
3050
3050
|
files_meta.clear();
|
|
@@ -3064,7 +3064,7 @@ TEST_F(DBTest2, PausingManualCompaction1) {
|
|
|
3064
3064
|
files_before_compact, 0)
|
|
3065
3065
|
.IsManualCompactionPaused());
|
|
3066
3066
|
// Wait for manual compaction to get scheduled and finish
|
|
3067
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3067
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3068
3068
|
|
|
3069
3069
|
files_meta.clear();
|
|
3070
3070
|
files_after_compact.clear();
|
|
@@ -3097,7 +3097,7 @@ TEST_F(DBTest2, PausingManualCompaction2) {
|
|
|
3097
3097
|
}
|
|
3098
3098
|
ASSERT_OK(Flush());
|
|
3099
3099
|
}
|
|
3100
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3100
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3101
3101
|
|
|
3102
3102
|
std::vector<LiveFileMetaData> files_meta;
|
|
3103
3103
|
dbfull()->GetLiveFilesMetaData(&files_meta);
|
|
@@ -3139,7 +3139,7 @@ TEST_F(DBTest2, PausingManualCompaction3) {
|
|
|
3139
3139
|
ASSERT_TRUE(dbfull()
|
|
3140
3140
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3141
3141
|
.IsManualCompactionPaused());
|
|
3142
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3142
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3143
3143
|
// As manual compaction disabled, not even reach sync point
|
|
3144
3144
|
ASSERT_EQ(run_manual_compactions, 0);
|
|
3145
3145
|
ASSERT_EQ("2,3,4,5,6,7,8", FilesPerLevel());
|
|
@@ -3148,7 +3148,7 @@ TEST_F(DBTest2, PausingManualCompaction3) {
|
|
|
3148
3148
|
"CompactionJob::Run():PausingManualCompaction:1");
|
|
3149
3149
|
dbfull()->EnableManualCompaction();
|
|
3150
3150
|
ASSERT_OK(dbfull()->CompactRange(compact_options, nullptr, nullptr));
|
|
3151
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3151
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3152
3152
|
ASSERT_EQ("0,0,0,0,0,0,2", FilesPerLevel());
|
|
3153
3153
|
|
|
3154
3154
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
@@ -3203,14 +3203,14 @@ TEST_F(DBTest2, PausingManualCompaction4) {
|
|
|
3203
3203
|
ASSERT_TRUE(dbfull()
|
|
3204
3204
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3205
3205
|
.IsManualCompactionPaused());
|
|
3206
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3206
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3207
3207
|
ASSERT_EQ(run_manual_compactions, 1);
|
|
3208
3208
|
ASSERT_EQ("2,3,4,5,6,7,8", FilesPerLevel());
|
|
3209
3209
|
|
|
3210
3210
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearCallBack(
|
|
3211
3211
|
"CompactionJob::Run():PausingManualCompaction:2");
|
|
3212
3212
|
ASSERT_OK(dbfull()->CompactRange(compact_options, nullptr, nullptr));
|
|
3213
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3213
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3214
3214
|
ASSERT_EQ("0,0,0,0,0,0,2", FilesPerLevel());
|
|
3215
3215
|
|
|
3216
3216
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
@@ -3262,7 +3262,7 @@ TEST_F(DBTest2, CancelManualCompaction1) {
|
|
|
3262
3262
|
ASSERT_TRUE(dbfull()
|
|
3263
3263
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3264
3264
|
.IsManualCompactionPaused());
|
|
3265
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3265
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3266
3266
|
|
|
3267
3267
|
// Since compactions are disabled, we shouldn't start compacting.
|
|
3268
3268
|
// E.g. we should call the compaction function exactly one time.
|
|
@@ -3286,7 +3286,7 @@ TEST_F(DBTest2, CancelManualCompaction1) {
|
|
|
3286
3286
|
ASSERT_TRUE(dbfull()
|
|
3287
3287
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3288
3288
|
.IsManualCompactionPaused());
|
|
3289
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3289
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3290
3290
|
|
|
3291
3291
|
ASSERT_EQ(compactions_run, 3);
|
|
3292
3292
|
|
|
@@ -3298,7 +3298,7 @@ TEST_F(DBTest2, CancelManualCompaction1) {
|
|
|
3298
3298
|
// Compactions should work again if we re-enable them..
|
|
3299
3299
|
compact_options.canceled->store(false, std::memory_order_relaxed);
|
|
3300
3300
|
ASSERT_OK(dbfull()->CompactRange(compact_options, nullptr, nullptr));
|
|
3301
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3301
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3302
3302
|
ASSERT_EQ("0,0,0,0,0,0,2", FilesPerLevel());
|
|
3303
3303
|
|
|
3304
3304
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
@@ -3362,7 +3362,7 @@ TEST_F(DBTest2, CancelManualCompaction2) {
|
|
|
3362
3362
|
ASSERT_TRUE(dbfull()
|
|
3363
3363
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3364
3364
|
.IsManualCompactionPaused());
|
|
3365
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3365
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3366
3366
|
|
|
3367
3367
|
// NOTE: as we set compact_options.max_subcompacitons = 1, and store true to
|
|
3368
3368
|
// the canceled variable from the single compacting thread (via callback),
|
|
@@ -3380,7 +3380,7 @@ TEST_F(DBTest2, CancelManualCompaction2) {
|
|
|
3380
3380
|
// Compactions should work again if we re-enable them..
|
|
3381
3381
|
compact_options.canceled->store(false, std::memory_order_relaxed);
|
|
3382
3382
|
ASSERT_OK(dbfull()->CompactRange(compact_options, nullptr, nullptr));
|
|
3383
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3383
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3384
3384
|
ASSERT_EQ("0,0,0,0,0,0,2", FilesPerLevel());
|
|
3385
3385
|
|
|
3386
3386
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
@@ -3455,7 +3455,7 @@ TEST_F(DBTest2, CancelManualCompactionWithListener) {
|
|
|
3455
3455
|
ASSERT_TRUE(dbfull()
|
|
3456
3456
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3457
3457
|
.IsManualCompactionPaused());
|
|
3458
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3458
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3459
3459
|
|
|
3460
3460
|
ASSERT_GT(listener->num_compaction_started_, 0);
|
|
3461
3461
|
ASSERT_EQ(listener->num_compaction_started_, listener->num_compaction_ended_);
|
|
@@ -3470,7 +3470,7 @@ TEST_F(DBTest2, CancelManualCompactionWithListener) {
|
|
|
3470
3470
|
ASSERT_TRUE(dbfull()
|
|
3471
3471
|
->CompactRange(compact_options, nullptr, nullptr)
|
|
3472
3472
|
.IsManualCompactionPaused());
|
|
3473
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3473
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3474
3474
|
|
|
3475
3475
|
ASSERT_EQ(listener->num_compaction_started_, 0);
|
|
3476
3476
|
ASSERT_EQ(listener->num_compaction_started_, listener->num_compaction_ended_);
|
|
@@ -3492,7 +3492,7 @@ TEST_F(DBTest2, CancelManualCompactionWithListener) {
|
|
|
3492
3492
|
|
|
3493
3493
|
compact_options.canceled->store(false, std::memory_order_release);
|
|
3494
3494
|
ASSERT_OK(dbfull()->CompactRange(compact_options, nullptr, nullptr));
|
|
3495
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
3495
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
3496
3496
|
|
|
3497
3497
|
ASSERT_GT(listener->num_compaction_started_, 0);
|
|
3498
3498
|
ASSERT_EQ(listener->num_compaction_started_, listener->num_compaction_ended_);
|
|
@@ -5298,88 +5298,6 @@ TEST_F(DBTest2, DISABLED_IteratorPinnedMemory) {
|
|
|
5298
5298
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
5299
5299
|
}
|
|
5300
5300
|
|
|
5301
|
-
TEST_F(DBTest2, TestBBTTailPrefetch) {
|
|
5302
|
-
std::atomic<bool> called(false);
|
|
5303
|
-
size_t expected_lower_bound = 512 * 1024;
|
|
5304
|
-
size_t expected_higher_bound = 512 * 1024;
|
|
5305
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
5306
|
-
"BlockBasedTable::Open::TailPrefetchLen", [&](void* arg) {
|
|
5307
|
-
size_t* prefetch_size = static_cast<size_t*>(arg);
|
|
5308
|
-
EXPECT_LE(expected_lower_bound, *prefetch_size);
|
|
5309
|
-
EXPECT_GE(expected_higher_bound, *prefetch_size);
|
|
5310
|
-
called = true;
|
|
5311
|
-
});
|
|
5312
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->EnableProcessing();
|
|
5313
|
-
|
|
5314
|
-
ASSERT_OK(Put("1", "1"));
|
|
5315
|
-
ASSERT_OK(Put("9", "1"));
|
|
5316
|
-
ASSERT_OK(Flush());
|
|
5317
|
-
|
|
5318
|
-
expected_lower_bound = 0;
|
|
5319
|
-
expected_higher_bound = 8 * 1024;
|
|
5320
|
-
|
|
5321
|
-
ASSERT_OK(Put("1", "1"));
|
|
5322
|
-
ASSERT_OK(Put("9", "1"));
|
|
5323
|
-
ASSERT_OK(Flush());
|
|
5324
|
-
|
|
5325
|
-
ASSERT_OK(Put("1", "1"));
|
|
5326
|
-
ASSERT_OK(Put("9", "1"));
|
|
5327
|
-
ASSERT_OK(Flush());
|
|
5328
|
-
|
|
5329
|
-
// Full compaction to make sure there is no L0 file after the open.
|
|
5330
|
-
ASSERT_OK(db_->CompactRange(CompactRangeOptions(), nullptr, nullptr));
|
|
5331
|
-
|
|
5332
|
-
ASSERT_TRUE(called.load());
|
|
5333
|
-
called = false;
|
|
5334
|
-
|
|
5335
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
5336
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
5337
|
-
|
|
5338
|
-
std::atomic<bool> first_call(true);
|
|
5339
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
5340
|
-
"BlockBasedTable::Open::TailPrefetchLen", [&](void* arg) {
|
|
5341
|
-
size_t* prefetch_size = static_cast<size_t*>(arg);
|
|
5342
|
-
if (first_call) {
|
|
5343
|
-
EXPECT_EQ(4 * 1024, *prefetch_size);
|
|
5344
|
-
first_call = false;
|
|
5345
|
-
} else {
|
|
5346
|
-
EXPECT_GE(4 * 1024, *prefetch_size);
|
|
5347
|
-
}
|
|
5348
|
-
called = true;
|
|
5349
|
-
});
|
|
5350
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->EnableProcessing();
|
|
5351
|
-
|
|
5352
|
-
Options options = CurrentOptions();
|
|
5353
|
-
options.max_file_opening_threads = 1; // one thread
|
|
5354
|
-
BlockBasedTableOptions table_options;
|
|
5355
|
-
table_options.cache_index_and_filter_blocks = true;
|
|
5356
|
-
options.table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
5357
|
-
options.max_open_files = -1;
|
|
5358
|
-
Reopen(options);
|
|
5359
|
-
|
|
5360
|
-
ASSERT_OK(Put("1", "1"));
|
|
5361
|
-
ASSERT_OK(Put("9", "1"));
|
|
5362
|
-
ASSERT_OK(Flush());
|
|
5363
|
-
|
|
5364
|
-
ASSERT_OK(Put("1", "1"));
|
|
5365
|
-
ASSERT_OK(Put("9", "1"));
|
|
5366
|
-
ASSERT_OK(Flush());
|
|
5367
|
-
|
|
5368
|
-
ASSERT_TRUE(called.load());
|
|
5369
|
-
called = false;
|
|
5370
|
-
|
|
5371
|
-
// Parallel loading SST files
|
|
5372
|
-
options.max_file_opening_threads = 16;
|
|
5373
|
-
Reopen(options);
|
|
5374
|
-
|
|
5375
|
-
ASSERT_OK(db_->CompactRange(CompactRangeOptions(), nullptr, nullptr));
|
|
5376
|
-
|
|
5377
|
-
ASSERT_TRUE(called.load());
|
|
5378
|
-
|
|
5379
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
5380
|
-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
5381
|
-
}
|
|
5382
|
-
|
|
5383
5301
|
TEST_F(DBTest2, TestGetColumnFamilyHandleUnlocked) {
|
|
5384
5302
|
// Setup sync point dependency to reproduce the race condition of
|
|
5385
5303
|
// DBImpl::GetColumnFamilyHandleUnlocked
|
|
@@ -5905,7 +5823,7 @@ TEST_F(DBTest2, SameSmallestInSameLevel) {
|
|
|
5905
5823
|
ASSERT_OK(Flush());
|
|
5906
5824
|
ASSERT_OK(db_->Merge(WriteOptions(), "key", "8"));
|
|
5907
5825
|
ASSERT_OK(Flush());
|
|
5908
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
5826
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
5909
5827
|
ASSERT_EQ("0,4,1", FilesPerLevel());
|
|
5910
5828
|
|
|
5911
5829
|
ASSERT_EQ("2,3,4,5,6,7,8", Get("key"));
|
|
@@ -6074,17 +5992,15 @@ TEST_F(DBTest2, ChangePrefixExtractor) {
|
|
|
6074
5992
|
iterator->Seek("xa");
|
|
6075
5993
|
ASSERT_TRUE(iterator->Valid());
|
|
6076
5994
|
ASSERT_EQ("xb", iterator->key().ToString());
|
|
6077
|
-
// It's a bug that the counter BLOOM_FILTER_PREFIX_CHECKED is not
|
|
6078
|
-
// correct in this case. So don't check counters in this case.
|
|
6079
5995
|
if (expect_filter_check) {
|
|
6080
|
-
|
|
5996
|
+
EXPECT_EQ(0, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6081
5997
|
}
|
|
6082
5998
|
|
|
6083
5999
|
iterator->Seek("xz");
|
|
6084
6000
|
ASSERT_TRUE(iterator->Valid());
|
|
6085
6001
|
ASSERT_EQ("xz1", iterator->key().ToString());
|
|
6086
6002
|
if (expect_filter_check) {
|
|
6087
|
-
|
|
6003
|
+
EXPECT_EQ(0, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6088
6004
|
}
|
|
6089
6005
|
}
|
|
6090
6006
|
|
|
@@ -6102,7 +6018,7 @@ TEST_F(DBTest2, ChangePrefixExtractor) {
|
|
|
6102
6018
|
ASSERT_TRUE(iterator->Valid());
|
|
6103
6019
|
ASSERT_EQ("xb", iterator->key().ToString());
|
|
6104
6020
|
if (expect_filter_check) {
|
|
6105
|
-
|
|
6021
|
+
EXPECT_EQ(0, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6106
6022
|
}
|
|
6107
6023
|
}
|
|
6108
6024
|
|
|
@@ -6116,14 +6032,14 @@ TEST_F(DBTest2, ChangePrefixExtractor) {
|
|
|
6116
6032
|
ASSERT_TRUE(iterator->Valid());
|
|
6117
6033
|
ASSERT_EQ("xb", iterator->key().ToString());
|
|
6118
6034
|
if (expect_filter_check) {
|
|
6119
|
-
|
|
6035
|
+
EXPECT_EQ(0, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6120
6036
|
}
|
|
6121
6037
|
|
|
6122
6038
|
iterator->Seek("xx0");
|
|
6123
6039
|
ASSERT_TRUE(iterator->Valid());
|
|
6124
6040
|
ASSERT_EQ("xx1", iterator->key().ToString());
|
|
6125
6041
|
if (expect_filter_check) {
|
|
6126
|
-
|
|
6042
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6127
6043
|
}
|
|
6128
6044
|
}
|
|
6129
6045
|
|
|
@@ -6141,21 +6057,21 @@ TEST_F(DBTest2, ChangePrefixExtractor) {
|
|
|
6141
6057
|
ASSERT_TRUE(iterator->Valid());
|
|
6142
6058
|
ASSERT_EQ("xb", iterator->key().ToString());
|
|
6143
6059
|
if (expect_filter_check) {
|
|
6144
|
-
|
|
6060
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6145
6061
|
}
|
|
6146
6062
|
|
|
6147
6063
|
iterator->Seek("xg");
|
|
6148
6064
|
ASSERT_TRUE(iterator->Valid());
|
|
6149
6065
|
ASSERT_EQ("xx1", iterator->key().ToString());
|
|
6150
6066
|
if (expect_filter_check) {
|
|
6151
|
-
|
|
6067
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6152
6068
|
}
|
|
6153
6069
|
|
|
6154
6070
|
iterator->Seek("xz");
|
|
6155
6071
|
ASSERT_TRUE(iterator->Valid());
|
|
6156
6072
|
ASSERT_EQ("xz1", iterator->key().ToString());
|
|
6157
6073
|
if (expect_filter_check) {
|
|
6158
|
-
|
|
6074
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6159
6075
|
}
|
|
6160
6076
|
|
|
6161
6077
|
ASSERT_OK(iterator->status());
|
|
@@ -6167,14 +6083,14 @@ TEST_F(DBTest2, ChangePrefixExtractor) {
|
|
|
6167
6083
|
ASSERT_TRUE(iterator->Valid());
|
|
6168
6084
|
ASSERT_EQ("xb", iterator->key().ToString());
|
|
6169
6085
|
if (expect_filter_check) {
|
|
6170
|
-
|
|
6086
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6171
6087
|
}
|
|
6172
6088
|
|
|
6173
6089
|
iterator->Seek("xx0");
|
|
6174
6090
|
ASSERT_TRUE(iterator->Valid());
|
|
6175
6091
|
ASSERT_EQ("xx1", iterator->key().ToString());
|
|
6176
6092
|
if (expect_filter_check) {
|
|
6177
|
-
|
|
6093
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6178
6094
|
}
|
|
6179
6095
|
|
|
6180
6096
|
ASSERT_OK(iterator->status());
|
|
@@ -6188,7 +6104,7 @@ TEST_F(DBTest2, ChangePrefixExtractor) {
|
|
|
6188
6104
|
ASSERT_TRUE(iterator->Valid());
|
|
6189
6105
|
ASSERT_EQ("xb", iterator->key().ToString());
|
|
6190
6106
|
if (expect_filter_check) {
|
|
6191
|
-
|
|
6107
|
+
EXPECT_EQ(1, PopTicker(options, NON_LAST_LEVEL_SEEK_FILTER_MATCH));
|
|
6192
6108
|
}
|
|
6193
6109
|
ASSERT_OK(iterator->status());
|
|
6194
6110
|
}
|
|
@@ -6262,13 +6178,19 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6262
6178
|
ro.total_order_seek = false;
|
|
6263
6179
|
ro.auto_prefix_mode = true;
|
|
6264
6180
|
|
|
6265
|
-
const auto
|
|
6181
|
+
const auto hit_stat = options.num_levels == 1
|
|
6182
|
+
? LAST_LEVEL_SEEK_FILTER_MATCH
|
|
6183
|
+
: NON_LAST_LEVEL_SEEK_FILTER_MATCH;
|
|
6184
|
+
const auto miss_stat = options.num_levels == 1
|
|
6185
|
+
? LAST_LEVEL_SEEK_FILTERED
|
|
6186
|
+
: NON_LAST_LEVEL_SEEK_FILTERED;
|
|
6266
6187
|
{
|
|
6267
6188
|
std::unique_ptr<Iterator> iterator(db_->NewIterator(ro));
|
|
6268
6189
|
iterator->Seek("b1");
|
|
6269
6190
|
ASSERT_TRUE(iterator->Valid());
|
|
6270
6191
|
ASSERT_EQ("x1", iterator->key().ToString());
|
|
6271
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6192
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6193
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6272
6194
|
ASSERT_OK(iterator->status());
|
|
6273
6195
|
}
|
|
6274
6196
|
|
|
@@ -6280,7 +6202,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6280
6202
|
std::unique_ptr<Iterator> iterator(db_->NewIterator(ro));
|
|
6281
6203
|
iterator->Seek("b1");
|
|
6282
6204
|
ASSERT_FALSE(iterator->Valid());
|
|
6283
|
-
EXPECT_EQ(
|
|
6205
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6206
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6284
6207
|
ASSERT_OK(iterator->status());
|
|
6285
6208
|
}
|
|
6286
6209
|
|
|
@@ -6290,7 +6213,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6290
6213
|
iterator->Seek("b1");
|
|
6291
6214
|
ASSERT_TRUE(iterator->Valid());
|
|
6292
6215
|
ASSERT_EQ("x1", iterator->key().ToString());
|
|
6293
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6216
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6217
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6294
6218
|
ASSERT_OK(iterator->status());
|
|
6295
6219
|
}
|
|
6296
6220
|
|
|
@@ -6299,7 +6223,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6299
6223
|
std::unique_ptr<Iterator> iterator(db_->NewIterator(ro));
|
|
6300
6224
|
iterator->Seek("b1");
|
|
6301
6225
|
ASSERT_FALSE(iterator->Valid());
|
|
6302
|
-
EXPECT_EQ(
|
|
6226
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6227
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6303
6228
|
ASSERT_OK(iterator->status());
|
|
6304
6229
|
}
|
|
6305
6230
|
|
|
@@ -6308,7 +6233,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6308
6233
|
std::unique_ptr<Iterator> iterator(db_->NewIterator(ro));
|
|
6309
6234
|
iterator->Seek("b1");
|
|
6310
6235
|
ASSERT_FALSE(iterator->Valid());
|
|
6311
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6236
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6237
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6312
6238
|
ASSERT_OK(iterator->status());
|
|
6313
6239
|
}
|
|
6314
6240
|
|
|
@@ -6319,25 +6245,29 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6319
6245
|
ub = "b9";
|
|
6320
6246
|
iterator->Seek("b1");
|
|
6321
6247
|
ASSERT_FALSE(iterator->Valid());
|
|
6322
|
-
EXPECT_EQ(
|
|
6248
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6249
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6323
6250
|
ASSERT_OK(iterator->status());
|
|
6324
6251
|
|
|
6325
6252
|
ub = "z";
|
|
6326
6253
|
iterator->Seek("b1");
|
|
6327
6254
|
ASSERT_TRUE(iterator->Valid());
|
|
6328
6255
|
ASSERT_EQ("x1", iterator->key().ToString());
|
|
6329
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6256
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6257
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6330
6258
|
|
|
6331
6259
|
ub = "c";
|
|
6332
6260
|
iterator->Seek("b1");
|
|
6333
6261
|
ASSERT_FALSE(iterator->Valid());
|
|
6334
|
-
EXPECT_EQ(
|
|
6262
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6263
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6335
6264
|
|
|
6336
6265
|
ub = "b9";
|
|
6337
6266
|
iterator->SeekForPrev("b1");
|
|
6338
6267
|
ASSERT_TRUE(iterator->Valid());
|
|
6339
6268
|
ASSERT_EQ("a1", iterator->key().ToString());
|
|
6340
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6269
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6270
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6341
6271
|
|
|
6342
6272
|
ub = "zz";
|
|
6343
6273
|
iterator->SeekToLast();
|
|
@@ -6369,26 +6299,30 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6369
6299
|
ub = "b1";
|
|
6370
6300
|
iterator->Seek("b9");
|
|
6371
6301
|
ASSERT_FALSE(iterator->Valid());
|
|
6372
|
-
EXPECT_EQ(
|
|
6302
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6303
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6373
6304
|
ASSERT_OK(iterator->status());
|
|
6374
6305
|
|
|
6375
6306
|
ub = "b1";
|
|
6376
6307
|
iterator->Seek("z");
|
|
6377
6308
|
ASSERT_TRUE(iterator->Valid());
|
|
6378
6309
|
ASSERT_EQ("y1", iterator->key().ToString());
|
|
6379
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6310
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6311
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6380
6312
|
|
|
6381
6313
|
ub = "b1";
|
|
6382
6314
|
iterator->Seek("c");
|
|
6383
6315
|
ASSERT_FALSE(iterator->Valid());
|
|
6384
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6316
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6317
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6385
6318
|
|
|
6386
6319
|
ub = "b";
|
|
6387
6320
|
iterator->Seek("c9");
|
|
6388
6321
|
ASSERT_FALSE(iterator->Valid());
|
|
6389
6322
|
// Fails if ReverseBytewiseComparator::IsSameLengthImmediateSuccessor
|
|
6390
6323
|
// is "correctly" implemented.
|
|
6391
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6324
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6325
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6392
6326
|
|
|
6393
6327
|
ub = "a";
|
|
6394
6328
|
iterator->Seek("b9");
|
|
@@ -6396,7 +6330,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6396
6330
|
// is "correctly" implemented.
|
|
6397
6331
|
ASSERT_TRUE(iterator->Valid());
|
|
6398
6332
|
ASSERT_EQ("a1", iterator->key().ToString());
|
|
6399
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6333
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6334
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6400
6335
|
|
|
6401
6336
|
ub = "b";
|
|
6402
6337
|
iterator->Seek("a");
|
|
@@ -6404,7 +6339,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6404
6339
|
// Fails if ReverseBytewiseComparator::IsSameLengthImmediateSuccessor
|
|
6405
6340
|
// matches BytewiseComparator::IsSameLengthImmediateSuccessor. Upper
|
|
6406
6341
|
// comparing before seek key prevents a real bug from surfacing.
|
|
6407
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6342
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6343
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6408
6344
|
|
|
6409
6345
|
ub = "b1";
|
|
6410
6346
|
iterator->SeekForPrev("b9");
|
|
@@ -6412,7 +6348,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6412
6348
|
// Fails if ReverseBytewiseComparator::IsSameLengthImmediateSuccessor
|
|
6413
6349
|
// is "correctly" implemented.
|
|
6414
6350
|
ASSERT_EQ("x1", iterator->key().ToString());
|
|
6415
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6351
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6352
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6416
6353
|
|
|
6417
6354
|
ub = "a";
|
|
6418
6355
|
iterator->SeekToLast();
|
|
@@ -6454,7 +6391,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6454
6391
|
std::unique_ptr<Iterator> iterator(db_->NewIterator(ro));
|
|
6455
6392
|
iterator->Seek(Slice(a_end_stuff, 2));
|
|
6456
6393
|
ASSERT_FALSE(iterator->Valid());
|
|
6457
|
-
EXPECT_EQ(
|
|
6394
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6395
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6458
6396
|
ASSERT_OK(iterator->status());
|
|
6459
6397
|
|
|
6460
6398
|
// test, cannot be validly optimized with auto_prefix_mode
|
|
@@ -6464,7 +6402,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6464
6402
|
iterator->Seek(Slice(a_end_stuff, 2));
|
|
6465
6403
|
// !!! BUG !!! See "BUG" section of auto_prefix_mode.
|
|
6466
6404
|
ASSERT_FALSE(iterator->Valid());
|
|
6467
|
-
EXPECT_EQ(
|
|
6405
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6406
|
+
EXPECT_EQ(1, TestGetAndResetTickerCount(options, miss_stat));
|
|
6468
6407
|
ASSERT_OK(iterator->status());
|
|
6469
6408
|
|
|
6470
6409
|
// To prove that is the wrong result, now use total order seek
|
|
@@ -6475,7 +6414,8 @@ TEST_F(DBTest2, AutoPrefixMode1) {
|
|
|
6475
6414
|
iterator->Seek(Slice(a_end_stuff, 2));
|
|
6476
6415
|
ASSERT_TRUE(iterator->Valid());
|
|
6477
6416
|
ASSERT_EQ("b", iterator->key().ToString());
|
|
6478
|
-
EXPECT_EQ(0, TestGetAndResetTickerCount(options,
|
|
6417
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, hit_stat));
|
|
6418
|
+
EXPECT_EQ(0, TestGetAndResetTickerCount(options, miss_stat));
|
|
6479
6419
|
ASSERT_OK(iterator->status());
|
|
6480
6420
|
}
|
|
6481
6421
|
} while (ChangeOptions(kSkipPlainTable));
|
|
@@ -1074,6 +1074,24 @@ size_t DBTestBase::TotalLiveFiles(int cf) {
|
|
|
1074
1074
|
return num_files;
|
|
1075
1075
|
}
|
|
1076
1076
|
|
|
1077
|
+
size_t DBTestBase::TotalLiveFilesAtPath(int cf, const std::string& path) {
|
|
1078
|
+
ColumnFamilyMetaData cf_meta;
|
|
1079
|
+
if (cf == 0) {
|
|
1080
|
+
db_->GetColumnFamilyMetaData(&cf_meta);
|
|
1081
|
+
} else {
|
|
1082
|
+
db_->GetColumnFamilyMetaData(handles_[cf], &cf_meta);
|
|
1083
|
+
}
|
|
1084
|
+
size_t num_files = 0;
|
|
1085
|
+
for (auto& level : cf_meta.levels) {
|
|
1086
|
+
for (auto& f : level.files) {
|
|
1087
|
+
if (f.directory == path) {
|
|
1088
|
+
num_files++;
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
return num_files;
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1077
1095
|
size_t DBTestBase::CountLiveFiles() {
|
|
1078
1096
|
std::vector<LiveFileMetaData> metadata;
|
|
1079
1097
|
db_->GetLiveFilesMetaData(&metadata);
|
|
@@ -1192,6 +1192,8 @@ class DBTestBase : public testing::Test {
|
|
|
1192
1192
|
|
|
1193
1193
|
size_t TotalLiveFiles(int cf = 0);
|
|
1194
1194
|
|
|
1195
|
+
size_t TotalLiveFilesAtPath(int cf, const std::string& path);
|
|
1196
|
+
|
|
1195
1197
|
size_t CountLiveFiles();
|
|
1196
1198
|
|
|
1197
1199
|
int NumTableFilesAtLevel(int level, int cf = 0);
|
|
@@ -1316,6 +1318,10 @@ class DBTestBase : public testing::Test {
|
|
|
1316
1318
|
Tickers ticker_type) {
|
|
1317
1319
|
return options.statistics->getAndResetTickerCount(ticker_type);
|
|
1318
1320
|
}
|
|
1321
|
+
// Short name for TestGetAndResetTickerCount
|
|
1322
|
+
uint64_t PopTicker(const Options& options, Tickers ticker_type) {
|
|
1323
|
+
return options.statistics->getAndResetTickerCount(ticker_type);
|
|
1324
|
+
}
|
|
1319
1325
|
|
|
1320
1326
|
// Note: reverting this setting within the same test run is not yet
|
|
1321
1327
|
// supported
|
|
@@ -1850,31 +1850,31 @@ TEST_P(DBTestUniversalManualCompactionOutputPathId,
|
|
|
1850
1850
|
compact_options.exclusive_manual_compaction = exclusive_manual_compaction_;
|
|
1851
1851
|
ASSERT_OK(db_->CompactRange(compact_options, handles_[1], nullptr, nullptr));
|
|
1852
1852
|
ASSERT_EQ(1, TotalLiveFiles(1));
|
|
1853
|
-
ASSERT_EQ(0,
|
|
1854
|
-
ASSERT_EQ(1,
|
|
1853
|
+
ASSERT_EQ(0, TotalLiveFilesAtPath(1, options.db_paths[0].path));
|
|
1854
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[1].path));
|
|
1855
1855
|
|
|
1856
1856
|
ReopenWithColumnFamilies({kDefaultColumnFamilyName, "pikachu"}, options);
|
|
1857
1857
|
ASSERT_EQ(1, TotalLiveFiles(1));
|
|
1858
|
-
ASSERT_EQ(0,
|
|
1859
|
-
ASSERT_EQ(1,
|
|
1858
|
+
ASSERT_EQ(0, TotalLiveFilesAtPath(1, options.db_paths[0].path));
|
|
1859
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[1].path));
|
|
1860
1860
|
|
|
1861
1861
|
MakeTables(1, "p", "q", 1);
|
|
1862
1862
|
ASSERT_EQ(2, TotalLiveFiles(1));
|
|
1863
|
-
ASSERT_EQ(1,
|
|
1864
|
-
ASSERT_EQ(1,
|
|
1863
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[0].path));
|
|
1864
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[1].path));
|
|
1865
1865
|
|
|
1866
1866
|
ReopenWithColumnFamilies({kDefaultColumnFamilyName, "pikachu"}, options);
|
|
1867
1867
|
ASSERT_EQ(2, TotalLiveFiles(1));
|
|
1868
|
-
ASSERT_EQ(1,
|
|
1869
|
-
ASSERT_EQ(1,
|
|
1868
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[0].path));
|
|
1869
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[1].path));
|
|
1870
1870
|
|
|
1871
1871
|
// Full compaction to DB path 0
|
|
1872
1872
|
compact_options.target_path_id = 0;
|
|
1873
1873
|
compact_options.exclusive_manual_compaction = exclusive_manual_compaction_;
|
|
1874
1874
|
ASSERT_OK(db_->CompactRange(compact_options, handles_[1], nullptr, nullptr));
|
|
1875
1875
|
ASSERT_EQ(1, TotalLiveFiles(1));
|
|
1876
|
-
ASSERT_EQ(1,
|
|
1877
|
-
ASSERT_EQ(0,
|
|
1876
|
+
ASSERT_EQ(1, TotalLiveFilesAtPath(1, options.db_paths[0].path));
|
|
1877
|
+
ASSERT_EQ(0, TotalLiveFilesAtPath(1, options.db_paths[1].path));
|
|
1878
1878
|
|
|
1879
1879
|
// Fail when compacting to an invalid path ID
|
|
1880
1880
|
compact_options.target_path_id = 2;
|
|
@@ -2399,6 +2399,31 @@ TEST_F(DBWALTest, GetCompressedWalsAfterSync) {
|
|
|
2399
2399
|
Status s = dbfull()->GetSortedWalFiles(wals);
|
|
2400
2400
|
ASSERT_OK(s);
|
|
2401
2401
|
}
|
|
2402
|
+
|
|
2403
|
+
TEST_F(DBWALTest, EmptyWalReopenTest) {
|
|
2404
|
+
Options options = CurrentOptions();
|
|
2405
|
+
options.env = env_;
|
|
2406
|
+
CreateAndReopenWithCF({"pikachu"}, options);
|
|
2407
|
+
|
|
2408
|
+
// make sure we can re-open it.
|
|
2409
|
+
ASSERT_OK(TryReopenWithColumnFamilies({"default", "pikachu"}, options));
|
|
2410
|
+
|
|
2411
|
+
{
|
|
2412
|
+
std::vector<std::string> files;
|
|
2413
|
+
int num_wal_files = 0;
|
|
2414
|
+
ASSERT_OK(env_->GetChildren(dbname_, &files));
|
|
2415
|
+
for (const auto& file : files) {
|
|
2416
|
+
uint64_t number = 0;
|
|
2417
|
+
FileType type = kWalFile;
|
|
2418
|
+
if (ParseFileName(file, &number, &type) && type == kWalFile) {
|
|
2419
|
+
num_wal_files++;
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
|
|
2423
|
+
ASSERT_EQ(num_wal_files, 1);
|
|
2424
|
+
}
|
|
2425
|
+
}
|
|
2426
|
+
|
|
2402
2427
|
} // namespace ROCKSDB_NAMESPACE
|
|
2403
2428
|
|
|
2404
2429
|
int main(int argc, char** argv) {
|