@nxtedition/rocksdb 15.4.1 → 15.5.0
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 +24 -15
- package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
- package/deps/rocksdb/rocksdb/BUCK +42 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
- package/deps/rocksdb/rocksdb/Makefile +59 -32
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
- package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
- package/deps/rocksdb/rocksdb/db/builder.h +7 -0
- package/deps/rocksdb/rocksdb/db/c.cc +373 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
- package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
- package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
- package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
- package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
- package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
- package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
- package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
- package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
- package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
- package/deps/rocksdb/rocksdb/env/env.cc +1 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
- package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
- package/deps/rocksdb/rocksdb/folly.mk +22 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
- package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
- package/deps/rocksdb/rocksdb/options/options.cc +5 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
- package/deps/rocksdb/rocksdb/port/lang.h +4 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
- package/deps/rocksdb/rocksdb/src.mk +12 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
- package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
- package/deps/rocksdb/rocksdb/table/format.cc +27 -15
- package/deps/rocksdb/rocksdb/table/format.h +41 -15
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
- package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
- package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
- package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
- package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
- package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
- package/deps/rocksdb/rocksdb/util/coding.h +14 -27
- package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
- package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
- package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
- package/deps/rocksdb/rocksdb/util/math.h +3 -1
- package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
- package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
- package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
- package/deps/rocksdb/rocksdb/util/status.cc +3 -1
- package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
- package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
- package/deps/rocksdb/rocksdb.gyp +7 -0
- package/iterator.js +2 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
|
@@ -3596,6 +3596,14 @@ int main(int argc, char** argv) {
|
|
|
3596
3596
|
100000 ==
|
|
3597
3597
|
rocksdb_fifo_compaction_options_get_max_table_files_size(fco));
|
|
3598
3598
|
|
|
3599
|
+
rocksdb_fifo_compaction_options_set_max_data_files_size(fco, 200000);
|
|
3600
|
+
CheckCondition(
|
|
3601
|
+
200000 == rocksdb_fifo_compaction_options_get_max_data_files_size(fco));
|
|
3602
|
+
|
|
3603
|
+
rocksdb_fifo_compaction_options_set_use_kv_ratio_compaction(fco, 1);
|
|
3604
|
+
CheckCondition(
|
|
3605
|
+
1 == rocksdb_fifo_compaction_options_get_use_kv_ratio_compaction(fco));
|
|
3606
|
+
|
|
3599
3607
|
rocksdb_fifo_compaction_options_destroy(fco);
|
|
3600
3608
|
}
|
|
3601
3609
|
|
|
@@ -4447,7 +4455,7 @@ int main(int argc, char** argv) {
|
|
|
4447
4455
|
|
|
4448
4456
|
StartPhase("statistics");
|
|
4449
4457
|
{
|
|
4450
|
-
const uint32_t BYTES_WRITTEN_TICKER =
|
|
4458
|
+
const uint32_t BYTES_WRITTEN_TICKER = 61;
|
|
4451
4459
|
const uint32_t DB_WRITE_HIST = 1;
|
|
4452
4460
|
|
|
4453
4461
|
rocksdb_statistics_histogram_data_t* hist =
|
|
@@ -4717,9 +4725,86 @@ int main(int argc, char** argv) {
|
|
|
4717
4725
|
rocksdb_compaction_service_options_override_set_comparator(override_opts,
|
|
4718
4726
|
cmp);
|
|
4719
4727
|
|
|
4728
|
+
// Test file checksum gen factory
|
|
4729
|
+
rocksdb_file_checksum_gen_factory_t* checksum_factory =
|
|
4730
|
+
rocksdb_file_checksum_gen_crc32c_factory_create();
|
|
4731
|
+
CheckCondition(checksum_factory != NULL);
|
|
4732
|
+
rocksdb_compaction_service_options_override_set_file_checksum_gen_factory(
|
|
4733
|
+
override_opts, checksum_factory);
|
|
4734
|
+
|
|
4735
|
+
// Test SST partitioner factory
|
|
4736
|
+
rocksdb_sst_partitioner_factory_t* partitioner_factory =
|
|
4737
|
+
rocksdb_sst_partitioner_fixed_prefix_factory_create(4);
|
|
4738
|
+
CheckCondition(partitioner_factory != NULL);
|
|
4739
|
+
rocksdb_compaction_service_options_override_set_sst_partitioner_factory(
|
|
4740
|
+
override_opts, partitioner_factory);
|
|
4741
|
+
|
|
4742
|
+
// Test merge operator
|
|
4743
|
+
rocksdb_compaction_service_options_override_set_merge_operator(
|
|
4744
|
+
override_opts, NULL);
|
|
4745
|
+
|
|
4746
|
+
// Test compaction filter
|
|
4747
|
+
rocksdb_compaction_service_options_override_set_compaction_filter(
|
|
4748
|
+
override_opts, NULL);
|
|
4749
|
+
|
|
4750
|
+
// Test prefix extractor
|
|
4751
|
+
rocksdb_compaction_service_options_override_set_prefix_extractor(
|
|
4752
|
+
override_opts, NULL);
|
|
4753
|
+
|
|
4754
|
+
// Test table factory - block based
|
|
4755
|
+
rocksdb_block_based_table_options_t* table_opts =
|
|
4756
|
+
rocksdb_block_based_options_create();
|
|
4757
|
+
rocksdb_compaction_service_options_override_set_block_based_table_factory(
|
|
4758
|
+
override_opts, table_opts);
|
|
4759
|
+
rocksdb_block_based_options_destroy(table_opts);
|
|
4760
|
+
|
|
4761
|
+
// Test statistics via options
|
|
4762
|
+
rocksdb_options_t* stats_opts = rocksdb_options_create();
|
|
4763
|
+
rocksdb_options_enable_statistics(stats_opts);
|
|
4764
|
+
rocksdb_compaction_service_options_override_set_statistics(override_opts,
|
|
4765
|
+
stats_opts);
|
|
4766
|
+
rocksdb_options_destroy(stats_opts);
|
|
4767
|
+
|
|
4768
|
+
// Test info log
|
|
4769
|
+
rocksdb_logger_t* logger =
|
|
4770
|
+
rocksdb_logger_create_stderr_logger(1, "test_prefix");
|
|
4771
|
+
rocksdb_compaction_service_options_override_set_info_log(override_opts,
|
|
4772
|
+
logger);
|
|
4773
|
+
rocksdb_logger_destroy(logger);
|
|
4774
|
+
|
|
4775
|
+
// Test options map
|
|
4776
|
+
rocksdb_compaction_service_options_override_set_option(
|
|
4777
|
+
override_opts, "max_bytes_for_level_base", "67108864");
|
|
4778
|
+
|
|
4779
|
+
// Cleanup
|
|
4780
|
+
rocksdb_file_checksum_gen_factory_destroy(checksum_factory);
|
|
4781
|
+
rocksdb_sst_partitioner_factory_destroy(partitioner_factory);
|
|
4720
4782
|
rocksdb_compaction_service_options_override_destroy(override_opts);
|
|
4721
4783
|
}
|
|
4722
4784
|
|
|
4785
|
+
StartPhase("factory_options_on_regular_options");
|
|
4786
|
+
{
|
|
4787
|
+
// Test that the new factory types work with regular rocksdb_options_t
|
|
4788
|
+
rocksdb_options_t* test_opts = rocksdb_options_create();
|
|
4789
|
+
|
|
4790
|
+
// Test file checksum gen factory on regular options
|
|
4791
|
+
rocksdb_file_checksum_gen_factory_t* checksum_factory =
|
|
4792
|
+
rocksdb_file_checksum_gen_crc32c_factory_create();
|
|
4793
|
+
CheckCondition(checksum_factory != NULL);
|
|
4794
|
+
rocksdb_options_set_file_checksum_gen_factory(test_opts, checksum_factory);
|
|
4795
|
+
|
|
4796
|
+
// Test SST partitioner factory on regular options
|
|
4797
|
+
rocksdb_sst_partitioner_factory_t* partitioner_factory =
|
|
4798
|
+
rocksdb_sst_partitioner_fixed_prefix_factory_create(8);
|
|
4799
|
+
CheckCondition(partitioner_factory != NULL);
|
|
4800
|
+
rocksdb_options_set_sst_partitioner_factory(test_opts, partitioner_factory);
|
|
4801
|
+
|
|
4802
|
+
// Cleanup
|
|
4803
|
+
rocksdb_file_checksum_gen_factory_destroy(checksum_factory);
|
|
4804
|
+
rocksdb_sst_partitioner_factory_destroy(partitioner_factory);
|
|
4805
|
+
rocksdb_options_destroy(test_opts);
|
|
4806
|
+
}
|
|
4807
|
+
|
|
4723
4808
|
StartPhase("remote_compaction_null_callback_handling");
|
|
4724
4809
|
{
|
|
4725
4810
|
// Test that NULL callback returns are handled gracefully
|
|
@@ -4795,6 +4880,21 @@ int main(int argc, char** argv) {
|
|
|
4795
4880
|
rocksdb_sst_file_manager_destroy(sst_file_manager);
|
|
4796
4881
|
}
|
|
4797
4882
|
|
|
4883
|
+
StartPhase("create_column_family_error_returns_null");
|
|
4884
|
+
{
|
|
4885
|
+
// Creating a column family with a name that already exists should fail
|
|
4886
|
+
// and return NULL. Without the fix, the handle is leaked and a non-NULL
|
|
4887
|
+
// pointer with an indeterminate rep field is returned.
|
|
4888
|
+
char* cf_err = NULL;
|
|
4889
|
+
rocksdb_column_family_handle_t* cf_handle =
|
|
4890
|
+
rocksdb_create_column_family(db, options, "default", &cf_err);
|
|
4891
|
+
// Should have an error since "default" already exists
|
|
4892
|
+
CheckCondition(cf_err != NULL);
|
|
4893
|
+
// The handle should be NULL on error (this is the bug fix)
|
|
4894
|
+
CheckCondition(cf_handle == NULL);
|
|
4895
|
+
free(cf_err);
|
|
4896
|
+
}
|
|
4897
|
+
|
|
4798
4898
|
StartPhase("cancel_all_background_work");
|
|
4799
4899
|
rocksdb_cancel_all_background_work(db, 1);
|
|
4800
4900
|
|
|
@@ -401,7 +401,13 @@ ColumnFamilyOptions SanitizeCfOptions(const ImmutableDBOptions& db_options,
|
|
|
401
401
|
}
|
|
402
402
|
|
|
403
403
|
if (result.max_compaction_bytes == 0) {
|
|
404
|
-
|
|
404
|
+
// For FIFO with use_kv_ratio_compaction, leave max_compaction_bytes as 0
|
|
405
|
+
// to signal "auto-calculate target from capacity and SST/blob ratio."
|
|
406
|
+
// When explicitly set by the user, it overrides the auto-calculated target.
|
|
407
|
+
if (result.compaction_style != kCompactionStyleFIFO ||
|
|
408
|
+
!result.compaction_options_fifo.use_kv_ratio_compaction) {
|
|
409
|
+
result.max_compaction_bytes = result.target_file_size_base * 25;
|
|
410
|
+
}
|
|
405
411
|
}
|
|
406
412
|
|
|
407
413
|
bool is_block_based_table = (result.table_factory->IsInstanceOf(
|
|
@@ -1248,7 +1254,7 @@ Compaction* ColumnFamilyData::PickCompaction(
|
|
|
1248
1254
|
auto* result = compaction_picker_->PickCompaction(
|
|
1249
1255
|
GetName(), mutable_options, mutable_db_options, existing_snapshots,
|
|
1250
1256
|
snapshot_checker, current_->storage_info(), log_buffer,
|
|
1251
|
-
require_max_output_level);
|
|
1257
|
+
GetFullHistoryTsLow(), require_max_output_level);
|
|
1252
1258
|
if (result != nullptr) {
|
|
1253
1259
|
result->FinalizeInputInfo(current_);
|
|
1254
1260
|
}
|
|
@@ -1336,7 +1342,7 @@ Compaction* ColumnFamilyData::CompactRange(
|
|
|
1336
1342
|
GetName(), mutable_cf_options, mutable_db_options,
|
|
1337
1343
|
current_->storage_info(), input_level, output_level,
|
|
1338
1344
|
compact_range_options, begin, end, compaction_end, conflict,
|
|
1339
|
-
max_file_num_to_ignore, trim_ts);
|
|
1345
|
+
max_file_num_to_ignore, trim_ts, GetFullHistoryTsLow());
|
|
1340
1346
|
if (result != nullptr) {
|
|
1341
1347
|
result->FinalizeInputInfo(current_);
|
|
1342
1348
|
}
|
|
@@ -1563,6 +1569,28 @@ Status ColumnFamilyData::ValidateOptions(
|
|
|
1563
1569
|
"FIFO compaction only supported with max_open_files = -1.");
|
|
1564
1570
|
}
|
|
1565
1571
|
|
|
1572
|
+
if (db_options.open_files_async) {
|
|
1573
|
+
// FIFO TTL picker relies on reading the files table properties inside a
|
|
1574
|
+
// DB mutex. This can be slow if files are opened asynchronously, so we
|
|
1575
|
+
// disable it.
|
|
1576
|
+
//
|
|
1577
|
+
// TODO: consider blocking fifo compaction until async file open task
|
|
1578
|
+
// completes.
|
|
1579
|
+
if (cf_options.compaction_style == kCompactionStyleFIFO) {
|
|
1580
|
+
return Status::NotSupported(
|
|
1581
|
+
"FIFO compaction is not supported with open_files_async = true.");
|
|
1582
|
+
}
|
|
1583
|
+
// Open files async is not useful if skip_stats_update_on_db_open=true
|
|
1584
|
+
// because DB open will still block on IO.
|
|
1585
|
+
//
|
|
1586
|
+
// TODO: consider moving stats update inside async file open background
|
|
1587
|
+
// task.
|
|
1588
|
+
if (!db_options.skip_stats_update_on_db_open) {
|
|
1589
|
+
return Status::InvalidArgument(
|
|
1590
|
+
"open_files_async requires skip_stats_update_on_db_open = true.");
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1566
1594
|
std::vector<uint32_t> supported{0, 1, 2, 4, 8};
|
|
1567
1595
|
if (std::find(supported.begin(), supported.end(),
|
|
1568
1596
|
cf_options.memtable_protection_bytes_per_key) ==
|
|
@@ -118,8 +118,7 @@ class ColumnFamilyTestBase : public testing::Test {
|
|
|
118
118
|
|
|
119
119
|
for (int i = 0; i < n; i++) {
|
|
120
120
|
if (flush_every != 0 && i != 0 && i % flush_every == 0) {
|
|
121
|
-
|
|
122
|
-
dbi->TEST_FlushMemTable();
|
|
121
|
+
dbfull()->TEST_FlushMemTable();
|
|
123
122
|
}
|
|
124
123
|
|
|
125
124
|
int keyi = base + i;
|
|
@@ -177,8 +176,7 @@ class ColumnFamilyTestBase : public testing::Test {
|
|
|
177
176
|
}
|
|
178
177
|
handles_.clear();
|
|
179
178
|
names_.clear();
|
|
180
|
-
|
|
181
|
-
db_ = nullptr;
|
|
179
|
+
db_.reset();
|
|
182
180
|
}
|
|
183
181
|
|
|
184
182
|
Status TryOpen(std::vector<std::string> cf,
|
|
@@ -218,7 +216,7 @@ class ColumnFamilyTestBase : public testing::Test {
|
|
|
218
216
|
|
|
219
217
|
void Open() { Open({"default"}); }
|
|
220
218
|
|
|
221
|
-
DBImpl* dbfull() { return static_cast_with_check<DBImpl>(db_); }
|
|
219
|
+
DBImpl* dbfull() { return static_cast_with_check<DBImpl>(db_.get()); }
|
|
222
220
|
|
|
223
221
|
int GetProperty(int cf, std::string property) {
|
|
224
222
|
std::string value;
|
|
@@ -500,7 +498,7 @@ class ColumnFamilyTestBase : public testing::Test {
|
|
|
500
498
|
ColumnFamilyOptions column_family_options_;
|
|
501
499
|
DBOptions db_options_;
|
|
502
500
|
std::string dbname_;
|
|
503
|
-
DB
|
|
501
|
+
std::unique_ptr<DB> db_;
|
|
504
502
|
EnvCounter* env_;
|
|
505
503
|
std::shared_ptr<Env> env_guard_;
|
|
506
504
|
Random rnd_;
|
|
@@ -517,7 +515,7 @@ class ColumnFamilyTest
|
|
|
517
515
|
INSTANTIATE_TEST_CASE_P(FormatDef, ColumnFamilyTest,
|
|
518
516
|
testing::Values(test::kDefaultFormatVersion));
|
|
519
517
|
INSTANTIATE_TEST_CASE_P(FormatLatest, ColumnFamilyTest,
|
|
520
|
-
testing::Values(
|
|
518
|
+
testing::Values(kLatestBbtFormatVersion));
|
|
521
519
|
|
|
522
520
|
TEST_P(ColumnFamilyTest, DontReuseColumnFamilyID) {
|
|
523
521
|
for (int iter = 0; iter < 3; ++iter) {
|
|
@@ -707,8 +705,8 @@ INSTANTIATE_TEST_CASE_P(
|
|
|
707
705
|
std::make_tuple(test::kDefaultFormatVersion, false)));
|
|
708
706
|
INSTANTIATE_TEST_CASE_P(
|
|
709
707
|
FormatLatest, FlushEmptyCFTestWithParam,
|
|
710
|
-
testing::Values(std::make_tuple(
|
|
711
|
-
std::make_tuple(
|
|
708
|
+
testing::Values(std::make_tuple(kLatestBbtFormatVersion, true),
|
|
709
|
+
std::make_tuple(kLatestBbtFormatVersion, false)));
|
|
712
710
|
|
|
713
711
|
TEST_P(ColumnFamilyTest, AddDrop) {
|
|
714
712
|
Open();
|
|
@@ -3542,11 +3540,10 @@ TEST_P(ColumnFamilyTest, MultipleCFPathsTest) {
|
|
|
3542
3540
|
|
|
3543
3541
|
// Re-open and verify the keys.
|
|
3544
3542
|
Reopen({ColumnFamilyOptions(), cf_opt1, cf_opt2});
|
|
3545
|
-
DBImpl* dbi = static_cast_with_check<DBImpl>(db_);
|
|
3546
3543
|
for (int cf = 1; cf != 3; ++cf) {
|
|
3547
3544
|
ReadOptions read_options;
|
|
3548
3545
|
read_options.readahead_size = 0;
|
|
3549
|
-
auto it =
|
|
3546
|
+
auto it = db_->NewIterator(read_options, handles_[cf]);
|
|
3550
3547
|
for (it->SeekToFirst(); it->Valid(); it->Next()) {
|
|
3551
3548
|
ASSERT_OK(it->status());
|
|
3552
3549
|
Slice key(it->key());
|
|
@@ -3636,7 +3633,7 @@ TEST(ColumnFamilyTest, ValidateMemtableKVChecksumOption) {
|
|
|
3636
3633
|
// the behavior of manual flush is that it skips retaining UDTs.
|
|
3637
3634
|
class ColumnFamilyRetainUDTTest : public ColumnFamilyTestBase {
|
|
3638
3635
|
public:
|
|
3639
|
-
ColumnFamilyRetainUDTTest() : ColumnFamilyTestBase(
|
|
3636
|
+
ColumnFamilyRetainUDTTest() : ColumnFamilyTestBase(kLatestBbtFormatVersion) {}
|
|
3640
3637
|
|
|
3641
3638
|
void SetUp() override {
|
|
3642
3639
|
db_options_.allow_concurrent_memtable_write = false;
|
|
@@ -3886,7 +3883,7 @@ TEST_F(ManualFlushSkipRetainUDTTest, FlushRemovesStaleEntries) {
|
|
|
3886
3883
|
static_cast_with_check<ColumnFamilyHandleImpl>(cfh)->cfd();
|
|
3887
3884
|
for (int version = 0; version < 100; version++) {
|
|
3888
3885
|
if (version == 50) {
|
|
3889
|
-
ASSERT_OK(
|
|
3886
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable(cfd));
|
|
3890
3887
|
}
|
|
3891
3888
|
ASSERT_OK(
|
|
3892
3889
|
Put(0, "foo", EncodeAsUint64(version), "v" + std::to_string(version)));
|
|
@@ -75,10 +75,9 @@ TEST_F(CompactFilesTest, L0ConflictsFiles) {
|
|
|
75
75
|
options.level0_file_num_compaction_trigger = kLevel0Trigger;
|
|
76
76
|
options.compression = kNoCompression;
|
|
77
77
|
|
|
78
|
-
DB
|
|
78
|
+
std::unique_ptr<DB> db;
|
|
79
79
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
80
|
-
|
|
81
|
-
assert(s.ok());
|
|
80
|
+
ASSERT_OK(DB::Open(options, db_name_, &db));
|
|
82
81
|
assert(db);
|
|
83
82
|
|
|
84
83
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency({
|
|
@@ -114,7 +113,6 @@ TEST_F(CompactFilesTest, L0ConflictsFiles) {
|
|
|
114
113
|
}
|
|
115
114
|
}
|
|
116
115
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
117
|
-
delete db;
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
TEST_F(CompactFilesTest, MultipleLevel) {
|
|
@@ -128,11 +126,11 @@ TEST_F(CompactFilesTest, MultipleLevel) {
|
|
|
128
126
|
FlushedFileCollector* collector = new FlushedFileCollector();
|
|
129
127
|
options.listeners.emplace_back(collector);
|
|
130
128
|
|
|
131
|
-
DB
|
|
129
|
+
std::unique_ptr<DB> db;
|
|
132
130
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
133
131
|
Status s = DB::Open(options, db_name_, &db);
|
|
134
132
|
ASSERT_OK(s);
|
|
135
|
-
ASSERT_NE(db, nullptr);
|
|
133
|
+
ASSERT_NE(db.get(), nullptr);
|
|
136
134
|
|
|
137
135
|
// create couple files in L0, L3, L4 and L5
|
|
138
136
|
for (int i = 5; i > 2; --i) {
|
|
@@ -141,7 +139,8 @@ TEST_F(CompactFilesTest, MultipleLevel) {
|
|
|
141
139
|
ASSERT_OK(db->Flush(FlushOptions()));
|
|
142
140
|
// Ensure background work is fully finished including listener callbacks
|
|
143
141
|
// before accessing listener state.
|
|
144
|
-
ASSERT_OK(
|
|
142
|
+
ASSERT_OK(
|
|
143
|
+
static_cast_with_check<DBImpl>(db.get())->TEST_WaitForBackgroundWork());
|
|
145
144
|
auto l0_files = collector->GetFlushedFiles();
|
|
146
145
|
ASSERT_OK(db->CompactFiles(CompactionOptions(), l0_files, i));
|
|
147
146
|
|
|
@@ -191,8 +190,6 @@ TEST_F(CompactFilesTest, MultipleLevel) {
|
|
|
191
190
|
ASSERT_OK(db->CompactFiles(CompactionOptions(), files, 5));
|
|
192
191
|
SyncPoint::GetInstance()->DisableProcessing();
|
|
193
192
|
thread.join();
|
|
194
|
-
|
|
195
|
-
delete db;
|
|
196
193
|
}
|
|
197
194
|
|
|
198
195
|
TEST_F(CompactFilesTest, ObsoleteFiles) {
|
|
@@ -212,11 +209,11 @@ TEST_F(CompactFilesTest, ObsoleteFiles) {
|
|
|
212
209
|
FlushedFileCollector* collector = new FlushedFileCollector();
|
|
213
210
|
options.listeners.emplace_back(collector);
|
|
214
211
|
|
|
215
|
-
DB
|
|
212
|
+
std::unique_ptr<DB> db;
|
|
216
213
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
217
214
|
Status s = DB::Open(options, db_name_, &db);
|
|
218
215
|
ASSERT_OK(s);
|
|
219
|
-
ASSERT_NE(db, nullptr);
|
|
216
|
+
ASSERT_NE(db.get(), nullptr);
|
|
220
217
|
|
|
221
218
|
// create couple files
|
|
222
219
|
for (int i = 1000; i < 2000; ++i) {
|
|
@@ -226,13 +223,12 @@ TEST_F(CompactFilesTest, ObsoleteFiles) {
|
|
|
226
223
|
|
|
227
224
|
auto l0_files = collector->GetFlushedFiles();
|
|
228
225
|
ASSERT_OK(db->CompactFiles(CompactionOptions(), l0_files, 1));
|
|
229
|
-
ASSERT_OK(static_cast_with_check<DBImpl>(db)->TEST_WaitForCompact());
|
|
226
|
+
ASSERT_OK(static_cast_with_check<DBImpl>(db.get())->TEST_WaitForCompact());
|
|
230
227
|
|
|
231
228
|
// verify all compaction input files are deleted
|
|
232
229
|
for (const auto& fname : l0_files) {
|
|
233
230
|
ASSERT_EQ(Status::NotFound(), env_->FileExists(fname));
|
|
234
231
|
}
|
|
235
|
-
delete db;
|
|
236
232
|
}
|
|
237
233
|
|
|
238
234
|
TEST_F(CompactFilesTest, NotCutOutputOnLevel0) {
|
|
@@ -251,10 +247,9 @@ TEST_F(CompactFilesTest, NotCutOutputOnLevel0) {
|
|
|
251
247
|
FlushedFileCollector* collector = new FlushedFileCollector();
|
|
252
248
|
options.listeners.emplace_back(collector);
|
|
253
249
|
|
|
254
|
-
DB
|
|
250
|
+
std::unique_ptr<DB> db;
|
|
255
251
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
256
|
-
|
|
257
|
-
assert(s.ok());
|
|
252
|
+
ASSERT_OK(DB::Open(options, db_name_, &db));
|
|
258
253
|
assert(db);
|
|
259
254
|
|
|
260
255
|
// create couple files
|
|
@@ -262,19 +257,20 @@ TEST_F(CompactFilesTest, NotCutOutputOnLevel0) {
|
|
|
262
257
|
ASSERT_OK(db->Put(WriteOptions(), std::to_string(i),
|
|
263
258
|
std::string(1000, 'a' + (i % 26))));
|
|
264
259
|
}
|
|
265
|
-
ASSERT_OK(
|
|
260
|
+
ASSERT_OK(
|
|
261
|
+
static_cast_with_check<DBImpl>(db.get())->TEST_WaitForFlushMemTable());
|
|
266
262
|
auto l0_files_1 = collector->GetFlushedFiles();
|
|
267
263
|
collector->ClearFlushedFiles();
|
|
268
264
|
for (int i = 0; i < 500; ++i) {
|
|
269
265
|
ASSERT_OK(db->Put(WriteOptions(), std::to_string(i),
|
|
270
266
|
std::string(1000, 'a' + (i % 26))));
|
|
271
267
|
}
|
|
272
|
-
ASSERT_OK(
|
|
268
|
+
ASSERT_OK(
|
|
269
|
+
static_cast_with_check<DBImpl>(db.get())->TEST_WaitForFlushMemTable());
|
|
273
270
|
auto l0_files_2 = collector->GetFlushedFiles();
|
|
274
271
|
ASSERT_OK(db->CompactFiles(CompactionOptions(), l0_files_1, 0));
|
|
275
272
|
ASSERT_OK(db->CompactFiles(CompactionOptions(), l0_files_2, 0));
|
|
276
273
|
// no assertion failure
|
|
277
|
-
delete db;
|
|
278
274
|
}
|
|
279
275
|
|
|
280
276
|
TEST_F(CompactFilesTest, CapturingPendingFiles) {
|
|
@@ -289,7 +285,7 @@ TEST_F(CompactFilesTest, CapturingPendingFiles) {
|
|
|
289
285
|
FlushedFileCollector* collector = new FlushedFileCollector();
|
|
290
286
|
options.listeners.emplace_back(collector);
|
|
291
287
|
|
|
292
|
-
DB
|
|
288
|
+
std::unique_ptr<DB> db;
|
|
293
289
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
294
290
|
Status s = DB::Open(options, db_name_, &db);
|
|
295
291
|
ASSERT_OK(s);
|
|
@@ -303,7 +299,8 @@ TEST_F(CompactFilesTest, CapturingPendingFiles) {
|
|
|
303
299
|
|
|
304
300
|
// Ensure background work is fully finished including listener callbacks
|
|
305
301
|
// before accessing listener state.
|
|
306
|
-
ASSERT_OK(
|
|
302
|
+
ASSERT_OK(
|
|
303
|
+
static_cast_with_check<DBImpl>(db.get())->TEST_WaitForBackgroundWork());
|
|
307
304
|
auto l0_files = collector->GetFlushedFiles();
|
|
308
305
|
EXPECT_EQ(5, l0_files.size());
|
|
309
306
|
|
|
@@ -327,13 +324,12 @@ TEST_F(CompactFilesTest, CapturingPendingFiles) {
|
|
|
327
324
|
|
|
328
325
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
329
326
|
|
|
330
|
-
|
|
327
|
+
db.reset();
|
|
331
328
|
|
|
332
329
|
// Make sure we can reopen the DB.
|
|
333
330
|
s = DB::Open(options, db_name_, &db);
|
|
334
331
|
ASSERT_OK(s);
|
|
335
332
|
assert(db);
|
|
336
|
-
delete db;
|
|
337
333
|
}
|
|
338
334
|
|
|
339
335
|
TEST_F(CompactFilesTest, CompactionFilterWithGetSv) {
|
|
@@ -365,12 +361,12 @@ TEST_F(CompactFilesTest, CompactionFilterWithGetSv) {
|
|
|
365
361
|
options.create_if_missing = true;
|
|
366
362
|
options.compaction_filter = cf.get();
|
|
367
363
|
|
|
368
|
-
DB
|
|
364
|
+
std::unique_ptr<DB> db;
|
|
369
365
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
370
366
|
Status s = DB::Open(options, db_name_, &db);
|
|
371
367
|
ASSERT_OK(s);
|
|
372
368
|
|
|
373
|
-
cf->SetDB(db);
|
|
369
|
+
cf->SetDB(db.get());
|
|
374
370
|
|
|
375
371
|
// Write one L0 file
|
|
376
372
|
ASSERT_OK(db->Put(WriteOptions(), "K1", "V1"));
|
|
@@ -384,8 +380,6 @@ TEST_F(CompactFilesTest, CompactionFilterWithGetSv) {
|
|
|
384
380
|
ASSERT_OK(
|
|
385
381
|
db->CompactFiles(ROCKSDB_NAMESPACE::CompactionOptions(), {fname}, 0));
|
|
386
382
|
}
|
|
387
|
-
|
|
388
|
-
delete db;
|
|
389
383
|
}
|
|
390
384
|
|
|
391
385
|
TEST_F(CompactFilesTest, SentinelCompressionType) {
|
|
@@ -413,7 +407,7 @@ TEST_F(CompactFilesTest, SentinelCompressionType) {
|
|
|
413
407
|
options.create_if_missing = true;
|
|
414
408
|
FlushedFileCollector* collector = new FlushedFileCollector();
|
|
415
409
|
options.listeners.emplace_back(collector);
|
|
416
|
-
DB
|
|
410
|
+
std::unique_ptr<DB> db;
|
|
417
411
|
ASSERT_OK(DB::Open(options, db_name_, &db));
|
|
418
412
|
|
|
419
413
|
ASSERT_OK(db->Put(WriteOptions(), "key", "val"));
|
|
@@ -421,7 +415,8 @@ TEST_F(CompactFilesTest, SentinelCompressionType) {
|
|
|
421
415
|
|
|
422
416
|
// Ensure background work is fully finished including listener callbacks
|
|
423
417
|
// before accessing listener state.
|
|
424
|
-
ASSERT_OK(
|
|
418
|
+
ASSERT_OK(
|
|
419
|
+
static_cast_with_check<DBImpl>(db.get())->TEST_WaitForBackgroundWork());
|
|
425
420
|
auto l0_files = collector->GetFlushedFiles();
|
|
426
421
|
ASSERT_EQ(1, l0_files.size());
|
|
427
422
|
|
|
@@ -433,10 +428,10 @@ TEST_F(CompactFilesTest, SentinelCompressionType) {
|
|
|
433
428
|
ROCKSDB_NAMESPACE::TablePropertiesCollection all_tables_props;
|
|
434
429
|
ASSERT_OK(db->GetPropertiesOfAllTables(&all_tables_props));
|
|
435
430
|
for (const auto& name_and_table_props : all_tables_props) {
|
|
436
|
-
|
|
437
|
-
|
|
431
|
+
// As of format_version 7, more elaborate information is encoded into the
|
|
432
|
+
// compression_name property
|
|
433
|
+
ASSERT_EQ("BuiltinV2;02;", name_and_table_props.second->compression_name);
|
|
438
434
|
}
|
|
439
|
-
delete db;
|
|
440
435
|
}
|
|
441
436
|
}
|
|
442
437
|
|
|
@@ -461,11 +456,7 @@ TEST_F(CompactFilesTest, CompressionWithBlockAlign) {
|
|
|
461
456
|
}
|
|
462
457
|
|
|
463
458
|
std::unique_ptr<DB> db;
|
|
464
|
-
|
|
465
|
-
DB* _db = nullptr;
|
|
466
|
-
ASSERT_OK(DB::Open(options, db_name_, &_db));
|
|
467
|
-
db.reset(_db);
|
|
468
|
-
}
|
|
459
|
+
ASSERT_OK(DB::Open(options, db_name_, &db));
|
|
469
460
|
|
|
470
461
|
ASSERT_OK(db->Put(WriteOptions(), "key", "val"));
|
|
471
462
|
ASSERT_OK(db->Flush(FlushOptions()));
|
|
@@ -504,7 +495,7 @@ TEST_F(CompactFilesTest, GetCompactionJobInfo) {
|
|
|
504
495
|
FlushedFileCollector* collector = new FlushedFileCollector();
|
|
505
496
|
options.listeners.emplace_back(collector);
|
|
506
497
|
|
|
507
|
-
DB
|
|
498
|
+
std::unique_ptr<DB> db;
|
|
508
499
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
509
500
|
Status s = DB::Open(options, db_name_, &db);
|
|
510
501
|
ASSERT_OK(s);
|
|
@@ -515,7 +506,8 @@ TEST_F(CompactFilesTest, GetCompactionJobInfo) {
|
|
|
515
506
|
ASSERT_OK(db->Put(WriteOptions(), std::to_string(i),
|
|
516
507
|
std::string(1000, 'a' + (i % 26))));
|
|
517
508
|
}
|
|
518
|
-
ASSERT_OK(
|
|
509
|
+
ASSERT_OK(
|
|
510
|
+
static_cast_with_check<DBImpl>(db.get())->TEST_WaitForFlushMemTable());
|
|
519
511
|
auto l0_files_1 = collector->GetFlushedFiles();
|
|
520
512
|
CompactionOptions co;
|
|
521
513
|
co.compression = CompressionType::kLZ4Compression;
|
|
@@ -531,7 +523,6 @@ TEST_F(CompactFilesTest, GetCompactionJobInfo) {
|
|
|
531
523
|
ASSERT_EQ(compaction_job_info.output_level, 0);
|
|
532
524
|
ASSERT_OK(compaction_job_info.status);
|
|
533
525
|
// no assertion failure
|
|
534
|
-
delete db;
|
|
535
526
|
}
|
|
536
527
|
|
|
537
528
|
// Helper function to generate zero-padded keys
|
|
@@ -547,11 +538,11 @@ TEST_F(CompactFilesTest, TrivialMoveNonOverlappingFiles) {
|
|
|
547
538
|
options.compression = kNoCompression;
|
|
548
539
|
options.level_compaction_dynamic_level_bytes = false;
|
|
549
540
|
|
|
550
|
-
DB
|
|
541
|
+
std::unique_ptr<DB> db;
|
|
551
542
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
552
543
|
Status s = DB::Open(options, db_name_, &db);
|
|
553
544
|
ASSERT_OK(s);
|
|
554
|
-
ASSERT_NE(db, nullptr);
|
|
545
|
+
ASSERT_NE(db.get(), nullptr);
|
|
555
546
|
|
|
556
547
|
// Create 3 non-overlapping files in L0
|
|
557
548
|
// File 1: keys [a00-a99]
|
|
@@ -664,8 +655,6 @@ TEST_F(CompactFilesTest, TrivialMoveNonOverlappingFiles) {
|
|
|
664
655
|
ASSERT_OK(db->Get(ReadOptions(), key, &value));
|
|
665
656
|
ASSERT_EQ(value, "value_" + key);
|
|
666
657
|
}
|
|
667
|
-
|
|
668
|
-
delete db;
|
|
669
658
|
}
|
|
670
659
|
|
|
671
660
|
TEST_F(CompactFilesTest, TrivialMoveBlockedByOverlap) {
|
|
@@ -676,11 +665,11 @@ TEST_F(CompactFilesTest, TrivialMoveBlockedByOverlap) {
|
|
|
676
665
|
options.level_compaction_dynamic_level_bytes = false;
|
|
677
666
|
options.num_levels = 7;
|
|
678
667
|
|
|
679
|
-
DB
|
|
668
|
+
std::unique_ptr<DB> db;
|
|
680
669
|
ASSERT_OK(DestroyDB(db_name_, options));
|
|
681
670
|
Status s = DB::Open(options, db_name_, &db);
|
|
682
671
|
ASSERT_OK(s);
|
|
683
|
-
ASSERT_NE(db, nullptr);
|
|
672
|
+
ASSERT_NE(db.get(), nullptr);
|
|
684
673
|
|
|
685
674
|
// Create a file in L6 with keys [m00-m99] (wide range)
|
|
686
675
|
for (int i = 0; i < 100; i++) {
|
|
@@ -756,8 +745,6 @@ TEST_F(CompactFilesTest, TrivialMoveBlockedByOverlap) {
|
|
|
756
745
|
ASSERT_OK(db->Get(ReadOptions(), key, &value));
|
|
757
746
|
ASSERT_EQ(value, "updated_value_" + key);
|
|
758
747
|
}
|
|
759
|
-
|
|
760
|
-
delete db;
|
|
761
748
|
}
|
|
762
749
|
|
|
763
750
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -1310,14 +1310,14 @@ void CompactionIterator::PrepareOutput() {
|
|
|
1310
1310
|
validity_info_.rep);
|
|
1311
1311
|
assert(false);
|
|
1312
1312
|
}
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
TEST_SYNC_POINT_CALLBACK("CompactionIterator::PrepareOutput:ZeroingSeq",
|
|
1316
|
-
&ikey_);
|
|
1313
|
+
|
|
1314
|
+
bool zeroed_seqno = false;
|
|
1317
1315
|
if (!timestamp_size_) {
|
|
1318
1316
|
current_key_.UpdateInternalKey(0, ikey_.type);
|
|
1317
|
+
zeroed_seqno = true;
|
|
1319
1318
|
} else if (full_history_ts_low_ && cmp_with_history_ts_low_ < 0) {
|
|
1320
|
-
//
|
|
1319
|
+
// For UDT, the seqno and timestamp could only be zeroed out after the
|
|
1320
|
+
// key is below history_ts_low_.
|
|
1321
1321
|
// For the same user key (excluding timestamp), the timestamp-based
|
|
1322
1322
|
// history can be collapsed to save some space if the timestamp is
|
|
1323
1323
|
// older than *full_history_ts_low_.
|
|
@@ -1325,6 +1325,14 @@ void CompactionIterator::PrepareOutput() {
|
|
|
1325
1325
|
const Slice ts_slice = kTsMin;
|
|
1326
1326
|
ikey_.SetTimestamp(ts_slice);
|
|
1327
1327
|
current_key_.UpdateInternalKey(0, ikey_.type, &ts_slice);
|
|
1328
|
+
zeroed_seqno = true;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
if (zeroed_seqno) {
|
|
1332
|
+
ikey_.sequence = 0;
|
|
1333
|
+
last_key_seq_zeroed_ = true;
|
|
1334
|
+
TEST_SYNC_POINT_CALLBACK("CompactionIterator::PrepareOutput:ZeroingSeq",
|
|
1335
|
+
&ikey_);
|
|
1328
1336
|
}
|
|
1329
1337
|
}
|
|
1330
1338
|
}
|