@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
|
@@ -148,7 +148,7 @@ class CompactionPickerTestBase : public testing::Test {
|
|
|
148
148
|
smallest_seq, largest_seq, marked_for_compact, temperature,
|
|
149
149
|
kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
|
|
150
150
|
kUnknownFileCreationTime, epoch_number, kUnknownFileChecksum,
|
|
151
|
-
kUnknownFileChecksumFuncName, kNullUniqueId64x2, 0);
|
|
151
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2, 0, 0);
|
|
152
152
|
f->compensated_file_size =
|
|
153
153
|
(compensated_file_size != 0) ? compensated_file_size : file_size;
|
|
154
154
|
f->oldest_ancester_time = oldest_ancestor_time;
|
|
@@ -1005,29 +1005,28 @@ TEST_F(CompactionPickerTest, NeedsCompactionFIFO) {
|
|
|
1005
1005
|
}
|
|
1006
1006
|
}
|
|
1007
1007
|
|
|
1008
|
-
TEST_F(CompactionPickerTest,
|
|
1008
|
+
TEST_F(CompactionPickerTest, FIFOToCold1) {
|
|
1009
1009
|
NewVersionStorage(1, kCompactionStyleFIFO);
|
|
1010
1010
|
const uint64_t kFileSize = 100000;
|
|
1011
1011
|
const uint64_t kMaxSize = kFileSize * 100000;
|
|
1012
|
-
uint64_t
|
|
1012
|
+
uint64_t kColdThreshold = 2000;
|
|
1013
1013
|
|
|
1014
1014
|
fifo_options_.max_table_files_size = kMaxSize;
|
|
1015
|
-
fifo_options_.
|
|
1015
|
+
fifo_options_.file_temperature_age_thresholds = {
|
|
1016
|
+
{Temperature::kCold, kColdThreshold}};
|
|
1016
1017
|
mutable_cf_options_.compaction_options_fifo = fifo_options_;
|
|
1017
|
-
mutable_cf_options_.level0_file_num_compaction_trigger =
|
|
1018
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 100;
|
|
1018
1019
|
mutable_cf_options_.max_compaction_bytes = kFileSize * 100;
|
|
1019
1020
|
FIFOCompactionPicker fifo_compaction_picker(ioptions_, &icmp_);
|
|
1020
1021
|
|
|
1021
1022
|
int64_t current_time = 0;
|
|
1022
1023
|
ASSERT_OK(Env::Default()->GetCurrentTime(¤t_time));
|
|
1023
1024
|
uint64_t threshold_time =
|
|
1024
|
-
static_cast<uint64_t>(current_time) -
|
|
1025
|
-
Add(0
|
|
1026
|
-
Temperature::kUnknown,
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 2500, 2600, 0, true,
|
|
1030
|
-
Temperature::kUnknown, threshold_time - 2000);
|
|
1025
|
+
static_cast<uint64_t>(current_time) - kColdThreshold;
|
|
1026
|
+
Add(0 /* level */, 4U /* file_number */, "260", "300", 1 * kFileSize, 0, 2500,
|
|
1027
|
+
2600, 0, true, Temperature::kUnknown,
|
|
1028
|
+
threshold_time - 2000 /* oldest_ancestor_time */);
|
|
1029
|
+
// Qualifies for compaction to kCold.
|
|
1031
1030
|
Add(0, 3U, "200", "300", 4 * kFileSize, 0, 2300, 2400, 0, true,
|
|
1032
1031
|
Temperature::kUnknown, threshold_time - 3000);
|
|
1033
1032
|
UpdateVersionStorageInfo();
|
|
@@ -1037,33 +1036,36 @@ TEST_F(CompactionPickerTest, FIFOToWarm1) {
|
|
|
1037
1036
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1038
1037
|
&log_buffer_));
|
|
1039
1038
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1039
|
+
ASSERT_EQ(compaction->compaction_reason(),
|
|
1040
|
+
CompactionReason::kChangeTemperature);
|
|
1041
|
+
ASSERT_EQ(compaction->output_temperature(), Temperature::kCold);
|
|
1040
1042
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1041
1043
|
ASSERT_EQ(3U, compaction->input(0, 0)->fd.GetNumber());
|
|
1042
1044
|
}
|
|
1043
1045
|
|
|
1044
|
-
TEST_F(CompactionPickerTest,
|
|
1046
|
+
TEST_F(CompactionPickerTest, FIFOToCold2) {
|
|
1045
1047
|
NewVersionStorage(1, kCompactionStyleFIFO);
|
|
1046
1048
|
const uint64_t kFileSize = 100000;
|
|
1047
1049
|
const uint64_t kMaxSize = kFileSize * 100000;
|
|
1048
|
-
uint64_t
|
|
1050
|
+
uint64_t kColdThreshold = 2000;
|
|
1049
1051
|
|
|
1050
1052
|
fifo_options_.max_table_files_size = kMaxSize;
|
|
1051
|
-
fifo_options_.
|
|
1053
|
+
fifo_options_.file_temperature_age_thresholds = {
|
|
1054
|
+
{Temperature::kCold, kColdThreshold}};
|
|
1052
1055
|
mutable_cf_options_.compaction_options_fifo = fifo_options_;
|
|
1053
|
-
mutable_cf_options_.level0_file_num_compaction_trigger =
|
|
1056
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 100;
|
|
1054
1057
|
mutable_cf_options_.max_compaction_bytes = kFileSize * 100;
|
|
1055
1058
|
FIFOCompactionPicker fifo_compaction_picker(ioptions_, &icmp_);
|
|
1056
1059
|
|
|
1057
1060
|
int64_t current_time = 0;
|
|
1058
1061
|
ASSERT_OK(Env::Default()->GetCurrentTime(¤t_time));
|
|
1059
1062
|
uint64_t threshold_time =
|
|
1060
|
-
static_cast<uint64_t>(current_time) -
|
|
1063
|
+
static_cast<uint64_t>(current_time) - kColdThreshold;
|
|
1061
1064
|
Add(0, 6U, "240", "290", 2 * kFileSize, 0, 2900, 3000, 0, true,
|
|
1062
1065
|
Temperature::kUnknown, static_cast<uint64_t>(current_time) - 100);
|
|
1063
|
-
Add(0, 5U, "240", "290", 2 * kFileSize, 0, 2700, 2800, 0, true,
|
|
1064
|
-
Temperature::kUnknown, threshold_time + 100);
|
|
1065
1066
|
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 2500, 2600, 0, true,
|
|
1066
|
-
Temperature::kUnknown, threshold_time
|
|
1067
|
+
Temperature::kUnknown, threshold_time);
|
|
1068
|
+
// The following two files qualify for compaction to kCold.
|
|
1067
1069
|
Add(0, 3U, "200", "300", 4 * kFileSize, 0, 2300, 2400, 0, true,
|
|
1068
1070
|
Temperature::kUnknown, threshold_time - 3000);
|
|
1069
1071
|
Add(0, 2U, "200", "300", 4 * kFileSize, 0, 2100, 2200, 0, true,
|
|
@@ -1075,34 +1077,40 @@ TEST_F(CompactionPickerTest, FIFOToWarm2) {
|
|
|
1075
1077
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1076
1078
|
&log_buffer_));
|
|
1077
1079
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1080
|
+
ASSERT_EQ(compaction->compaction_reason(),
|
|
1081
|
+
CompactionReason::kChangeTemperature);
|
|
1082
|
+
ASSERT_EQ(compaction->output_temperature(), Temperature::kCold);
|
|
1078
1083
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1079
1084
|
ASSERT_EQ(2U, compaction->input(0, 0)->fd.GetNumber());
|
|
1080
1085
|
ASSERT_EQ(3U, compaction->input(0, 1)->fd.GetNumber());
|
|
1081
1086
|
}
|
|
1082
1087
|
|
|
1083
|
-
TEST_F(CompactionPickerTest,
|
|
1088
|
+
TEST_F(CompactionPickerTest, FIFOToColdMaxCompactionSize) {
|
|
1084
1089
|
NewVersionStorage(1, kCompactionStyleFIFO);
|
|
1085
1090
|
const uint64_t kFileSize = 100000;
|
|
1086
1091
|
const uint64_t kMaxSize = kFileSize * 100000;
|
|
1087
|
-
uint64_t
|
|
1092
|
+
uint64_t kColdThreshold = 2000;
|
|
1088
1093
|
|
|
1089
1094
|
fifo_options_.max_table_files_size = kMaxSize;
|
|
1090
|
-
fifo_options_.
|
|
1095
|
+
fifo_options_.file_temperature_age_thresholds = {
|
|
1096
|
+
{Temperature::kCold, kColdThreshold}};
|
|
1091
1097
|
mutable_cf_options_.compaction_options_fifo = fifo_options_;
|
|
1092
|
-
mutable_cf_options_.level0_file_num_compaction_trigger =
|
|
1098
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 100;
|
|
1093
1099
|
mutable_cf_options_.max_compaction_bytes = kFileSize * 9;
|
|
1094
1100
|
FIFOCompactionPicker fifo_compaction_picker(ioptions_, &icmp_);
|
|
1095
1101
|
|
|
1096
1102
|
int64_t current_time = 0;
|
|
1097
1103
|
ASSERT_OK(Env::Default()->GetCurrentTime(¤t_time));
|
|
1098
1104
|
uint64_t threshold_time =
|
|
1099
|
-
static_cast<uint64_t>(current_time) -
|
|
1105
|
+
static_cast<uint64_t>(current_time) - kColdThreshold;
|
|
1100
1106
|
Add(0, 6U, "240", "290", 2 * kFileSize, 0, 2900, 3000, 0, true,
|
|
1101
1107
|
Temperature::kUnknown, static_cast<uint64_t>(current_time) - 100);
|
|
1102
1108
|
Add(0, 5U, "240", "290", 2 * kFileSize, 0, 2700, 2800, 0, true,
|
|
1103
1109
|
Temperature::kUnknown, threshold_time + 100);
|
|
1104
1110
|
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 2500, 2600, 0, true,
|
|
1105
1111
|
Temperature::kUnknown, threshold_time - 2000);
|
|
1112
|
+
// The following two files qualify for compaction to kCold.
|
|
1113
|
+
// But only the last two should be included to respect `max_compaction_bytes`.
|
|
1106
1114
|
Add(0, 3U, "200", "300", 4 * kFileSize, 0, 2300, 2400, 0, true,
|
|
1107
1115
|
Temperature::kUnknown, threshold_time - 3000);
|
|
1108
1116
|
Add(0, 2U, "200", "300", 4 * kFileSize, 0, 2100, 2200, 0, true,
|
|
@@ -1116,40 +1124,45 @@ TEST_F(CompactionPickerTest, FIFOToWarmMaxSize) {
|
|
|
1116
1124
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1117
1125
|
&log_buffer_));
|
|
1118
1126
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1127
|
+
ASSERT_EQ(compaction->compaction_reason(),
|
|
1128
|
+
CompactionReason::kChangeTemperature);
|
|
1129
|
+
ASSERT_EQ(compaction->output_temperature(), Temperature::kCold);
|
|
1119
1130
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1120
1131
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
1121
1132
|
ASSERT_EQ(2U, compaction->input(0, 1)->fd.GetNumber());
|
|
1122
1133
|
}
|
|
1123
1134
|
|
|
1124
|
-
TEST_F(CompactionPickerTest,
|
|
1135
|
+
TEST_F(CompactionPickerTest, FIFOToColdWithExistingCold) {
|
|
1125
1136
|
NewVersionStorage(1, kCompactionStyleFIFO);
|
|
1126
1137
|
const uint64_t kFileSize = 100000;
|
|
1127
1138
|
const uint64_t kMaxSize = kFileSize * 100000;
|
|
1128
|
-
uint64_t
|
|
1139
|
+
uint64_t kColdThreshold = 2000;
|
|
1129
1140
|
|
|
1130
1141
|
fifo_options_.max_table_files_size = kMaxSize;
|
|
1131
|
-
fifo_options_.
|
|
1142
|
+
fifo_options_.file_temperature_age_thresholds = {
|
|
1143
|
+
{Temperature::kCold, kColdThreshold}};
|
|
1132
1144
|
mutable_cf_options_.compaction_options_fifo = fifo_options_;
|
|
1133
|
-
mutable_cf_options_.level0_file_num_compaction_trigger =
|
|
1145
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 100;
|
|
1134
1146
|
mutable_cf_options_.max_compaction_bytes = kFileSize * 100;
|
|
1135
1147
|
FIFOCompactionPicker fifo_compaction_picker(ioptions_, &icmp_);
|
|
1136
1148
|
|
|
1137
1149
|
int64_t current_time = 0;
|
|
1138
1150
|
ASSERT_OK(Env::Default()->GetCurrentTime(¤t_time));
|
|
1139
1151
|
uint64_t threshold_time =
|
|
1140
|
-
static_cast<uint64_t>(current_time) -
|
|
1152
|
+
static_cast<uint64_t>(current_time) - kColdThreshold;
|
|
1141
1153
|
Add(0, 6U, "240", "290", 2 * kFileSize, 0, 2900, 3000, 0, true,
|
|
1142
1154
|
Temperature::kUnknown, static_cast<uint64_t>(current_time) - 100);
|
|
1143
1155
|
Add(0, 5U, "240", "290", 2 * kFileSize, 0, 2700, 2800, 0, true,
|
|
1144
1156
|
Temperature::kUnknown, threshold_time + 100);
|
|
1145
1157
|
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 2500, 2600, 0, true,
|
|
1146
1158
|
Temperature::kUnknown, threshold_time - 2000);
|
|
1159
|
+
// The following two files qualify for compaction to kCold.
|
|
1147
1160
|
Add(0, 3U, "200", "300", 4 * kFileSize, 0, 2300, 2400, 0, true,
|
|
1148
1161
|
Temperature::kUnknown, threshold_time - 3000);
|
|
1149
1162
|
Add(0, 2U, "200", "300", 4 * kFileSize, 0, 2100, 2200, 0, true,
|
|
1150
1163
|
Temperature::kUnknown, threshold_time - 4000);
|
|
1151
1164
|
Add(0, 1U, "200", "300", 4 * kFileSize, 0, 2000, 2100, 0, true,
|
|
1152
|
-
Temperature::
|
|
1165
|
+
Temperature::kCold, threshold_time - 5000);
|
|
1153
1166
|
UpdateVersionStorageInfo();
|
|
1154
1167
|
|
|
1155
1168
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
@@ -1157,28 +1170,32 @@ TEST_F(CompactionPickerTest, FIFOToWarmWithExistingWarm) {
|
|
|
1157
1170
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1158
1171
|
&log_buffer_));
|
|
1159
1172
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1160
|
-
ASSERT_EQ(
|
|
1173
|
+
ASSERT_EQ(compaction->compaction_reason(),
|
|
1174
|
+
CompactionReason::kChangeTemperature);
|
|
1175
|
+
ASSERT_EQ(compaction->output_temperature(), Temperature::kCold);
|
|
1161
1176
|
ASSERT_EQ(2U, compaction->input(0, 0)->fd.GetNumber());
|
|
1177
|
+
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1162
1178
|
ASSERT_EQ(3U, compaction->input(0, 1)->fd.GetNumber());
|
|
1163
1179
|
}
|
|
1164
1180
|
|
|
1165
|
-
TEST_F(CompactionPickerTest,
|
|
1181
|
+
TEST_F(CompactionPickerTest, FIFOToColdWithHotBetweenCold) {
|
|
1166
1182
|
NewVersionStorage(1, kCompactionStyleFIFO);
|
|
1167
1183
|
const uint64_t kFileSize = 100000;
|
|
1168
1184
|
const uint64_t kMaxSize = kFileSize * 100000;
|
|
1169
|
-
uint64_t
|
|
1185
|
+
uint64_t kColdThreshold = 2000;
|
|
1170
1186
|
|
|
1171
1187
|
fifo_options_.max_table_files_size = kMaxSize;
|
|
1172
|
-
fifo_options_.
|
|
1188
|
+
fifo_options_.file_temperature_age_thresholds = {
|
|
1189
|
+
{Temperature::kCold, kColdThreshold}};
|
|
1173
1190
|
mutable_cf_options_.compaction_options_fifo = fifo_options_;
|
|
1174
|
-
mutable_cf_options_.level0_file_num_compaction_trigger =
|
|
1191
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 100;
|
|
1175
1192
|
mutable_cf_options_.max_compaction_bytes = kFileSize * 100;
|
|
1176
1193
|
FIFOCompactionPicker fifo_compaction_picker(ioptions_, &icmp_);
|
|
1177
1194
|
|
|
1178
1195
|
int64_t current_time = 0;
|
|
1179
1196
|
ASSERT_OK(Env::Default()->GetCurrentTime(¤t_time));
|
|
1180
1197
|
uint64_t threshold_time =
|
|
1181
|
-
static_cast<uint64_t>(current_time) -
|
|
1198
|
+
static_cast<uint64_t>(current_time) - kColdThreshold;
|
|
1182
1199
|
Add(0, 6U, "240", "290", 2 * kFileSize, 0, 2900, 3000, 0, true,
|
|
1183
1200
|
Temperature::kUnknown, static_cast<uint64_t>(current_time) - 100);
|
|
1184
1201
|
Add(0, 5U, "240", "290", 2 * kFileSize, 0, 2700, 2800, 0, true,
|
|
@@ -1186,64 +1203,78 @@ TEST_F(CompactionPickerTest, FIFOToWarmWithOngoing) {
|
|
|
1186
1203
|
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 2500, 2600, 0, true,
|
|
1187
1204
|
Temperature::kUnknown, threshold_time - 2000);
|
|
1188
1205
|
Add(0, 3U, "200", "300", 4 * kFileSize, 0, 2300, 2400, 0, true,
|
|
1189
|
-
Temperature::
|
|
1206
|
+
Temperature::kCold, threshold_time - 3000);
|
|
1207
|
+
// Qualifies for compaction to kCold.
|
|
1190
1208
|
Add(0, 2U, "200", "300", 4 * kFileSize, 0, 2100, 2200, 0, true,
|
|
1191
1209
|
Temperature::kUnknown, threshold_time - 4000);
|
|
1192
1210
|
Add(0, 1U, "200", "300", 4 * kFileSize, 0, 2000, 2100, 0, true,
|
|
1193
|
-
Temperature::
|
|
1194
|
-
file_map_[2].first->being_compacted = true;
|
|
1211
|
+
Temperature::kCold, threshold_time - 5000);
|
|
1195
1212
|
UpdateVersionStorageInfo();
|
|
1196
1213
|
|
|
1197
1214
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1198
1215
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1199
1216
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1200
1217
|
&log_buffer_));
|
|
1201
|
-
|
|
1202
|
-
|
|
1218
|
+
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1219
|
+
ASSERT_EQ(compaction->compaction_reason(),
|
|
1220
|
+
CompactionReason::kChangeTemperature);
|
|
1221
|
+
ASSERT_EQ(compaction->output_temperature(), Temperature::kCold);
|
|
1222
|
+
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1223
|
+
ASSERT_EQ(2U, compaction->input(0, 0)->fd.GetNumber());
|
|
1203
1224
|
}
|
|
1204
1225
|
|
|
1205
|
-
TEST_F(CompactionPickerTest,
|
|
1226
|
+
TEST_F(CompactionPickerTest, FIFOToColdAndWarm) {
|
|
1206
1227
|
NewVersionStorage(1, kCompactionStyleFIFO);
|
|
1207
1228
|
const uint64_t kFileSize = 100000;
|
|
1208
1229
|
const uint64_t kMaxSize = kFileSize * 100000;
|
|
1209
|
-
uint64_t kWarmThreshold =
|
|
1230
|
+
uint64_t kWarmThreshold = 10000;
|
|
1231
|
+
uint64_t kHotThreshold = 2000;
|
|
1210
1232
|
|
|
1211
1233
|
fifo_options_.max_table_files_size = kMaxSize;
|
|
1212
|
-
|
|
1234
|
+
// Test that multiple threshold works.
|
|
1235
|
+
fifo_options_.file_temperature_age_thresholds = {
|
|
1236
|
+
{Temperature::kHot, kHotThreshold}, {Temperature::kWarm, kWarmThreshold}};
|
|
1213
1237
|
mutable_cf_options_.compaction_options_fifo = fifo_options_;
|
|
1214
|
-
mutable_cf_options_.level0_file_num_compaction_trigger =
|
|
1238
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 100;
|
|
1215
1239
|
mutable_cf_options_.max_compaction_bytes = kFileSize * 100;
|
|
1216
1240
|
FIFOCompactionPicker fifo_compaction_picker(ioptions_, &icmp_);
|
|
1217
1241
|
|
|
1218
1242
|
int64_t current_time = 0;
|
|
1219
1243
|
ASSERT_OK(Env::Default()->GetCurrentTime(¤t_time));
|
|
1220
|
-
uint64_t
|
|
1244
|
+
uint64_t hot_threshold_time =
|
|
1245
|
+
static_cast<uint64_t>(current_time) - kHotThreshold;
|
|
1246
|
+
uint64_t warm_threshold_time =
|
|
1221
1247
|
static_cast<uint64_t>(current_time) - kWarmThreshold;
|
|
1222
1248
|
Add(0, 6U, "240", "290", 2 * kFileSize, 0, 2900, 3000, 0, true,
|
|
1223
1249
|
Temperature::kUnknown, static_cast<uint64_t>(current_time) - 100);
|
|
1224
1250
|
Add(0, 5U, "240", "290", 2 * kFileSize, 0, 2700, 2800, 0, true,
|
|
1225
|
-
Temperature::kUnknown,
|
|
1251
|
+
Temperature::kUnknown, hot_threshold_time + 100);
|
|
1226
1252
|
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 2500, 2600, 0, true,
|
|
1227
|
-
Temperature::kUnknown,
|
|
1253
|
+
Temperature::kUnknown, hot_threshold_time - 200);
|
|
1254
|
+
// Qualifies for Hot
|
|
1228
1255
|
Add(0, 3U, "200", "300", 4 * kFileSize, 0, 2300, 2400, 0, true,
|
|
1229
|
-
Temperature::
|
|
1256
|
+
Temperature::kUnknown, warm_threshold_time - 100);
|
|
1257
|
+
// Qualifies for Warm
|
|
1230
1258
|
Add(0, 2U, "200", "300", 4 * kFileSize, 0, 2100, 2200, 0, true,
|
|
1231
|
-
Temperature::kUnknown,
|
|
1259
|
+
Temperature::kUnknown, warm_threshold_time - 4000);
|
|
1232
1260
|
Add(0, 1U, "200", "300", 4 * kFileSize, 0, 2000, 2100, 0, true,
|
|
1233
|
-
Temperature::
|
|
1261
|
+
Temperature::kUnknown, warm_threshold_time - 5000);
|
|
1234
1262
|
UpdateVersionStorageInfo();
|
|
1235
1263
|
|
|
1236
1264
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1237
1265
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1238
1266
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1239
1267
|
&log_buffer_));
|
|
1240
|
-
// Stop if a file is being compacted
|
|
1241
1268
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1242
|
-
ASSERT_EQ(
|
|
1243
|
-
|
|
1269
|
+
ASSERT_EQ(compaction->compaction_reason(),
|
|
1270
|
+
CompactionReason::kChangeTemperature);
|
|
1271
|
+
// Assumes compaction picker picks older files first.
|
|
1272
|
+
ASSERT_EQ(compaction->output_temperature(), Temperature::kWarm);
|
|
1273
|
+
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1274
|
+
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
1275
|
+
ASSERT_EQ(2U, compaction->input(0, 1)->fd.GetNumber());
|
|
1244
1276
|
}
|
|
1245
1277
|
|
|
1246
|
-
|
|
1247
1278
|
TEST_F(CompactionPickerTest, CompactionPriMinOverlapping1) {
|
|
1248
1279
|
NewVersionStorage(6, kCompactionStyleLevel);
|
|
1249
1280
|
ioptions_.compaction_pri = kMinOverlappingRatio;
|
|
@@ -2520,6 +2551,61 @@ TEST_F(CompactionPickerTest, L0TrivialMoveWholeL0) {
|
|
|
2520
2551
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2521
2552
|
}
|
|
2522
2553
|
|
|
2554
|
+
TEST_F(CompactionPickerTest, NonL0TrivialMoveExtendBothDirection) {
|
|
2555
|
+
mutable_cf_options_.max_bytes_for_level_base = 5000;
|
|
2556
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 4;
|
|
2557
|
+
mutable_cf_options_.max_compaction_bytes = 10000000u;
|
|
2558
|
+
ioptions_.level_compaction_dynamic_level_bytes = false;
|
|
2559
|
+
NewVersionStorage(6, kCompactionStyleLevel);
|
|
2560
|
+
|
|
2561
|
+
Add(1, 1U, "300", "350", 3000U, 0, 710, 800, 3000U);
|
|
2562
|
+
Add(1, 2U, "600", "651", 3001U, 0, 610, 700, 3001U);
|
|
2563
|
+
Add(1, 3U, "700", "750", 3000U, 0, 500, 550, 3000U);
|
|
2564
|
+
Add(2, 4U, "800", "850", 4000U, 0, 150, 200, 4000U);
|
|
2565
|
+
|
|
2566
|
+
UpdateVersionStorageInfo();
|
|
2567
|
+
// File #2 should be picked first, and expand both directions to include
|
|
2568
|
+
// files #1 and #3.
|
|
2569
|
+
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2570
|
+
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2571
|
+
&log_buffer_));
|
|
2572
|
+
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2573
|
+
ASSERT_EQ(1, compaction->num_input_levels());
|
|
2574
|
+
ASSERT_EQ(3, compaction->num_input_files(0));
|
|
2575
|
+
ASSERT_EQ(1, compaction->input(0, 0)->fd.GetNumber());
|
|
2576
|
+
ASSERT_EQ(2, compaction->input(0, 1)->fd.GetNumber());
|
|
2577
|
+
ASSERT_EQ(3, compaction->input(0, 2)->fd.GetNumber());
|
|
2578
|
+
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
TEST_F(CompactionPickerTest, L0TrivialMoveToEmptyLevel) {
|
|
2582
|
+
mutable_cf_options_.max_bytes_for_level_base = 5000;
|
|
2583
|
+
mutable_cf_options_.level0_file_num_compaction_trigger = 4;
|
|
2584
|
+
mutable_cf_options_.max_compaction_bytes = 10000000u;
|
|
2585
|
+
ioptions_.level_compaction_dynamic_level_bytes = false;
|
|
2586
|
+
NewVersionStorage(6, kCompactionStyleLevel);
|
|
2587
|
+
|
|
2588
|
+
// File 2 will be picked first, which by itself is trivial movable.
|
|
2589
|
+
// There was a bug before where compaction also picks file 3 and 4,
|
|
2590
|
+
// (and then file 1 since it overlaps with the key range),
|
|
2591
|
+
// which makes the compaction not trivial movable.
|
|
2592
|
+
Add(0, 1U, "450", "599", 3000U, 0, 710, 800, 3000U);
|
|
2593
|
+
Add(0, 2U, "600", "651", 3001U, 0, 610, 700, 3001U);
|
|
2594
|
+
Add(0, 3U, "300", "350", 3000U, 0, 500, 550, 3000U);
|
|
2595
|
+
Add(0, 4U, "500", "550", 2999U, 0, 300, 350, 2999U);
|
|
2596
|
+
|
|
2597
|
+
UpdateVersionStorageInfo();
|
|
2598
|
+
|
|
2599
|
+
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2600
|
+
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2601
|
+
&log_buffer_));
|
|
2602
|
+
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2603
|
+
ASSERT_EQ(1, compaction->num_input_levels());
|
|
2604
|
+
ASSERT_EQ(1, compaction->num_input_files(0));
|
|
2605
|
+
ASSERT_EQ(2, compaction->input(0, 0)->fd.GetNumber());
|
|
2606
|
+
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2607
|
+
}
|
|
2608
|
+
|
|
2523
2609
|
TEST_F(CompactionPickerTest, IsTrivialMoveOffSstPartitioned) {
|
|
2524
2610
|
mutable_cf_options_.max_bytes_for_level_base = 10000u;
|
|
2525
2611
|
mutable_cf_options_.max_compaction_bytes = 10001u;
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
#include "file/filename.h"
|
|
20
20
|
#include "logging/log_buffer.h"
|
|
21
21
|
#include "logging/logging.h"
|
|
22
|
-
#include "monitoring/
|
|
22
|
+
#include "monitoring/statistics_impl.h"
|
|
23
23
|
#include "test_util/sync_point.h"
|
|
24
24
|
#include "util/random.h"
|
|
25
25
|
#include "util/string_util.h"
|
|
@@ -928,7 +928,7 @@ TEST_F(CompactionServiceTest, TablePropertiesCollector) {
|
|
|
928
928
|
}
|
|
929
929
|
ASSERT_OK(Flush());
|
|
930
930
|
}
|
|
931
|
-
ASSERT_OK(dbfull()->TEST_WaitForCompact(
|
|
931
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
932
932
|
|
|
933
933
|
ASSERT_OK(db_->GetPropertiesOfAllTables(&fname_to_props));
|
|
934
934
|
|
|
@@ -952,4 +952,3 @@ int main(int argc, char** argv) {
|
|
|
952
952
|
RegisterCustomObjects(argc, argv);
|
|
953
953
|
return RUN_ALL_TESTS();
|
|
954
954
|
}
|
|
955
|
-
|
|
@@ -209,7 +209,7 @@ TEST_P(TieredCompactionTest, SequenceBasedTieredStorageUniversal) {
|
|
|
209
209
|
seq_history.emplace_back(dbfull()->GetLatestSequenceNumber());
|
|
210
210
|
expect_stats[0].Add(kBasicFlushStats);
|
|
211
211
|
}
|
|
212
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
212
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
213
213
|
|
|
214
214
|
// the penultimate level file temperature is not cold, all data are output to
|
|
215
215
|
// the penultimate level.
|
|
@@ -374,7 +374,7 @@ TEST_P(TieredCompactionTest, RangeBasedTieredStorageUniversal) {
|
|
|
374
374
|
ASSERT_OK(Flush());
|
|
375
375
|
expect_stats[0].Add(kBasicFlushStats);
|
|
376
376
|
}
|
|
377
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
377
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
378
378
|
ASSERT_EQ("0,0,0,0,0,1,1", FilesPerLevel());
|
|
379
379
|
ASSERT_GT(GetSstSizeHelper(Temperature::kUnknown), 0);
|
|
380
380
|
ASSERT_GT(GetSstSizeHelper(Temperature::kCold), 0);
|
|
@@ -445,8 +445,8 @@ TEST_P(TieredCompactionTest, RangeBasedTieredStorageUniversal) {
|
|
|
445
445
|
}
|
|
446
446
|
ASSERT_OK(Flush());
|
|
447
447
|
}
|
|
448
|
-
|
|
449
|
-
|
|
448
|
+
// make sure the compaction is able to finish
|
|
449
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
450
450
|
ASSERT_EQ("0,0,0,0,0,1,1", FilesPerLevel());
|
|
451
451
|
ASSERT_GT(GetSstSizeHelper(Temperature::kUnknown), 0);
|
|
452
452
|
ASSERT_GT(GetSstSizeHelper(Temperature::kCold), 0);
|
|
@@ -911,7 +911,7 @@ TEST_P(TieredCompactionTest, SequenceBasedTieredStorageLevel) {
|
|
|
911
911
|
ASSERT_OK(Flush());
|
|
912
912
|
expect_stats[0].Add(kBasicFlushStats);
|
|
913
913
|
}
|
|
914
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
914
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
915
915
|
|
|
916
916
|
// non last level is hot
|
|
917
917
|
ASSERT_EQ("0,1", FilesPerLevel());
|
|
@@ -954,7 +954,7 @@ TEST_P(TieredCompactionTest, SequenceBasedTieredStorageLevel) {
|
|
|
954
954
|
ASSERT_OK(Flush());
|
|
955
955
|
seq_history.emplace_back(dbfull()->GetLatestSequenceNumber());
|
|
956
956
|
}
|
|
957
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
957
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
958
958
|
ASSERT_EQ("0,1,0,0,0,0,1", FilesPerLevel());
|
|
959
959
|
ASSERT_GT(GetSstSizeHelper(Temperature::kUnknown), 0);
|
|
960
960
|
ASSERT_GT(GetSstSizeHelper(Temperature::kCold), 0);
|
|
@@ -1005,7 +1005,7 @@ TEST_P(TieredCompactionTest, SequenceBasedTieredStorageLevel) {
|
|
|
1005
1005
|
ASSERT_OK(Flush());
|
|
1006
1006
|
seq_history.emplace_back(dbfull()->GetLatestSequenceNumber());
|
|
1007
1007
|
}
|
|
1008
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1008
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1009
1009
|
|
|
1010
1010
|
latest_cold_seq = seq_history[0];
|
|
1011
1011
|
ASSERT_OK(db_->CompactRange(cro, nullptr, nullptr));
|
|
@@ -1111,6 +1111,7 @@ TEST_P(TieredCompactionTest, RangeBasedTieredStorageLevel) {
|
|
|
1111
1111
|
options.num_levels = kNumLevels;
|
|
1112
1112
|
options.statistics = CreateDBStatistics();
|
|
1113
1113
|
options.max_subcompactions = 10;
|
|
1114
|
+
options.preclude_last_level_data_seconds = 10000;
|
|
1114
1115
|
DestroyAndReopen(options);
|
|
1115
1116
|
auto cmp = options.comparator;
|
|
1116
1117
|
|
|
@@ -1134,7 +1135,7 @@ TEST_P(TieredCompactionTest, RangeBasedTieredStorageLevel) {
|
|
|
1134
1135
|
}
|
|
1135
1136
|
ASSERT_OK(Flush());
|
|
1136
1137
|
}
|
|
1137
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1138
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1138
1139
|
ASSERT_EQ("0,0,0,0,0,1,1", FilesPerLevel());
|
|
1139
1140
|
ASSERT_GT(GetSstSizeHelper(Temperature::kUnknown), 0);
|
|
1140
1141
|
ASSERT_GT(GetSstSizeHelper(Temperature::kCold), 0);
|
|
@@ -1264,7 +1265,7 @@ TEST_F(PrecludeLastLevelTest, MigrationFromPreserveTimeManualCompaction) {
|
|
|
1264
1265
|
}
|
|
1265
1266
|
ASSERT_OK(Flush());
|
|
1266
1267
|
}
|
|
1267
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1268
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1268
1269
|
|
|
1269
1270
|
// all data is pushed to the last level
|
|
1270
1271
|
ASSERT_EQ("0,0,0,0,0,0,1", FilesPerLevel());
|
|
@@ -1326,7 +1327,7 @@ TEST_F(PrecludeLastLevelTest, MigrationFromPreserveTimeAutoCompaction) {
|
|
|
1326
1327
|
}
|
|
1327
1328
|
ASSERT_OK(Flush());
|
|
1328
1329
|
}
|
|
1329
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1330
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1330
1331
|
|
|
1331
1332
|
// all data is pushed to the last level
|
|
1332
1333
|
ASSERT_EQ("0,0,0,0,0,0,1", FilesPerLevel());
|
|
@@ -1359,7 +1360,7 @@ TEST_F(PrecludeLastLevelTest, MigrationFromPreserveTimeAutoCompaction) {
|
|
|
1359
1360
|
});
|
|
1360
1361
|
}
|
|
1361
1362
|
ASSERT_OK(Flush());
|
|
1362
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1363
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1363
1364
|
}
|
|
1364
1365
|
|
|
1365
1366
|
// all data is moved up to the penultimate level
|
|
@@ -1402,7 +1403,7 @@ TEST_F(PrecludeLastLevelTest, MigrationFromPreserveTimePartial) {
|
|
|
1402
1403
|
}
|
|
1403
1404
|
ASSERT_OK(Flush());
|
|
1404
1405
|
}
|
|
1405
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1406
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1406
1407
|
|
|
1407
1408
|
// all data is pushed to the last level
|
|
1408
1409
|
ASSERT_EQ("0,0,0,0,0,0,1", FilesPerLevel());
|
|
@@ -1529,7 +1530,7 @@ TEST_F(PrecludeLastLevelTest, LastLevelOnlyCompactionPartial) {
|
|
|
1529
1530
|
}
|
|
1530
1531
|
ASSERT_OK(Flush());
|
|
1531
1532
|
}
|
|
1532
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1533
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1533
1534
|
|
|
1534
1535
|
// all data is pushed to the last level
|
|
1535
1536
|
ASSERT_EQ("0,0,0,0,0,0,1", FilesPerLevel());
|
|
@@ -1608,7 +1609,7 @@ TEST_P(PrecludeLastLevelTestWithParms, LastLevelOnlyCompactionNoPreclude) {
|
|
|
1608
1609
|
}
|
|
1609
1610
|
ASSERT_OK(Flush());
|
|
1610
1611
|
}
|
|
1611
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1612
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1612
1613
|
|
|
1613
1614
|
// all data is pushed to the last level
|
|
1614
1615
|
ASSERT_EQ("0,0,0,0,0,0,1", FilesPerLevel());
|
|
@@ -1704,7 +1705,7 @@ TEST_P(PrecludeLastLevelTestWithParms, LastLevelOnlyCompactionNoPreclude) {
|
|
|
1704
1705
|
|
|
1705
1706
|
manual_compaction_thread.join();
|
|
1706
1707
|
|
|
1707
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1708
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1708
1709
|
|
|
1709
1710
|
if (enable_preclude_last_level) {
|
|
1710
1711
|
ASSERT_NE("0,0,0,0,0,1,1", FilesPerLevel());
|
|
@@ -1840,7 +1841,7 @@ TEST_P(PrecludeLastLevelTestWithParms, PeriodicCompactionToPenultimateLevel) {
|
|
|
1840
1841
|
}
|
|
1841
1842
|
ASSERT_OK(Flush());
|
|
1842
1843
|
|
|
1843
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1844
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1844
1845
|
|
|
1845
1846
|
stop_token.reset();
|
|
1846
1847
|
|
|
@@ -1939,7 +1940,7 @@ TEST_F(PrecludeLastLevelTest, PartialPenultimateLevelCompaction) {
|
|
|
1939
1940
|
ASSERT_OK(Flush());
|
|
1940
1941
|
}
|
|
1941
1942
|
|
|
1942
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
1943
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
1943
1944
|
|
|
1944
1945
|
// L5: [0,19] [20,39] [40,299]
|
|
1945
1946
|
// L6: [0, 299]
|
|
@@ -2105,7 +2106,7 @@ TEST_F(PrecludeLastLevelTest, RangeDelsCauseFileEndpointsToOverlap) {
|
|
|
2105
2106
|
Slice begin_key(begin_key_buf), end_key(end_key_buf);
|
|
2106
2107
|
ASSERT_OK(db_->SuggestCompactRange(db_->DefaultColumnFamily(), &begin_key,
|
|
2107
2108
|
&end_key));
|
|
2108
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
2109
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
2109
2110
|
ASSERT_EQ("0,0,0,0,0,3,3", FilesPerLevel());
|
|
2110
2111
|
ASSERT_EQ(1, per_key_comp_num);
|
|
2111
2112
|
verify_db();
|
|
@@ -2115,7 +2116,7 @@ TEST_F(PrecludeLastLevelTest, RangeDelsCauseFileEndpointsToOverlap) {
|
|
|
2115
2116
|
db_->ReleaseSnapshot(snap2);
|
|
2116
2117
|
ASSERT_OK(db_->SuggestCompactRange(db_->DefaultColumnFamily(), &begin_key,
|
|
2117
2118
|
&end_key));
|
|
2118
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
2119
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
2119
2120
|
ASSERT_EQ("0,0,0,0,0,3,3", FilesPerLevel());
|
|
2120
2121
|
ASSERT_EQ(2, per_key_comp_num);
|
|
2121
2122
|
verify_db();
|
|
@@ -2125,7 +2126,7 @@ TEST_F(PrecludeLastLevelTest, RangeDelsCauseFileEndpointsToOverlap) {
|
|
|
2125
2126
|
db_->ReleaseSnapshot(snap1);
|
|
2126
2127
|
ASSERT_OK(db_->SuggestCompactRange(db_->DefaultColumnFamily(), &begin_key,
|
|
2127
2128
|
&end_key));
|
|
2128
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
2129
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
2129
2130
|
ASSERT_EQ("0,0,0,0,0,2,3", FilesPerLevel());
|
|
2130
2131
|
ASSERT_EQ(3, per_key_comp_num);
|
|
2131
2132
|
verify_db();
|
|
@@ -33,7 +33,9 @@ Status DeleteFilesInRanges(DB* db, ColumnFamilyHandle* column_family,
|
|
|
33
33
|
Status VerifySstFileChecksum(const Options& options,
|
|
34
34
|
const EnvOptions& env_options,
|
|
35
35
|
const std::string& file_path) {
|
|
36
|
-
|
|
36
|
+
// TODO: plumb Env::IOActivity
|
|
37
|
+
const ReadOptions read_options;
|
|
38
|
+
return VerifySstFileChecksum(options, env_options, read_options, file_path);
|
|
37
39
|
}
|
|
38
40
|
Status VerifySstFileChecksum(const Options& options,
|
|
39
41
|
const EnvOptions& env_options,
|
|
@@ -56,13 +58,14 @@ Status VerifySstFileChecksum(const Options& options,
|
|
|
56
58
|
std::unique_ptr<RandomAccessFileReader> file_reader(
|
|
57
59
|
new RandomAccessFileReader(
|
|
58
60
|
std::move(file), file_path, ioptions.clock, nullptr /* io_tracer */,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
ioptions.stats /* stats */,
|
|
62
|
+
Histograms::SST_READ_MICROS /* hist_type */,
|
|
63
|
+
nullptr /* file_read_hist */, ioptions.rate_limiter.get()));
|
|
61
64
|
const bool kImmortal = true;
|
|
62
65
|
auto reader_options = TableReaderOptions(
|
|
63
66
|
ioptions, options.prefix_extractor, env_options, internal_comparator,
|
|
64
|
-
|
|
65
|
-
-1 /* level */);
|
|
67
|
+
options.block_protection_bytes_per_key, false /* skip_filters */,
|
|
68
|
+
!kImmortal, false /* force_direct_prefetch */, -1 /* level */);
|
|
66
69
|
reader_options.largest_seqno = largest_seqno;
|
|
67
70
|
s = ioptions.table_factory->NewTableReader(
|
|
68
71
|
reader_options, std::move(file_reader), file_size, &table_reader,
|
|
@@ -76,4 +79,3 @@ Status VerifySstFileChecksum(const Options& options,
|
|
|
76
79
|
}
|
|
77
80
|
|
|
78
81
|
} // namespace ROCKSDB_NAMESPACE
|
|
79
|
-
|
|
@@ -762,9 +762,11 @@ TEST_F(CorruptionTest, RangeDeletionCorrupted) {
|
|
|
762
762
|
fs->GetFileSize(filename, file_opts.io_options, &file_size, nullptr));
|
|
763
763
|
|
|
764
764
|
BlockHandle range_del_handle;
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
765
|
+
const ReadOptions read_options;
|
|
766
|
+
ASSERT_OK(FindMetaBlockInFile(file_reader.get(), file_size,
|
|
767
|
+
kBlockBasedTableMagicNumber,
|
|
768
|
+
ImmutableOptions(options_), read_options,
|
|
769
|
+
kRangeDelBlockName, &range_del_handle));
|
|
768
770
|
|
|
769
771
|
ASSERT_OK(TryReopen());
|
|
770
772
|
ASSERT_OK(test::CorruptFile(env_.get(), filename,
|
|
@@ -1666,4 +1668,3 @@ int main(int argc, char** argv) {
|
|
|
1666
1668
|
RegisterCustomObjects(argc, argv);
|
|
1667
1669
|
return RUN_ALL_TESTS();
|
|
1668
1670
|
}
|
|
1669
|
-
|