@nxtedition/rocksdb 15.4.1 → 16.0.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 +70 -23
- 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/index.js +70 -10
- package/iterator.js +25 -3
- package/max_rev_operator.h +9 -5
- 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
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
#pragma once
|
|
13
13
|
|
|
14
|
+
#include <variant>
|
|
15
|
+
|
|
14
16
|
#include "rocksdb/cache.h"
|
|
15
17
|
#include "rocksdb/compression_type.h"
|
|
16
18
|
#include "rocksdb/data_structure.h"
|
|
@@ -56,7 +58,64 @@ class Decompressor;
|
|
|
56
58
|
// because RocksDB is not exception-safe. This could cause undefined behavior
|
|
57
59
|
// including data loss, unreported corruption, deadlocks, and more.
|
|
58
60
|
class Compressor {
|
|
59
|
-
public:
|
|
61
|
+
public: // Auxiliary types
|
|
62
|
+
// No dictionary should be used (for a given block type).
|
|
63
|
+
struct DictDisabled {};
|
|
64
|
+
|
|
65
|
+
// A recommendation for dictionary compression by collecting samples from
|
|
66
|
+
// blocks. The caller should collect up to `max_sample_bytes` of sample data
|
|
67
|
+
// and pass it to MaybeCloneSpecialized() to create a specialized compressor.
|
|
68
|
+
struct DictSampling {
|
|
69
|
+
// Maximum total bytes of sample data to collect from blocks.
|
|
70
|
+
// This controls how much data is buffered before dictionary training.
|
|
71
|
+
size_t max_sample_bytes = 0;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// A pre-defined dictionary that is recommended or specified for direct use
|
|
75
|
+
// with MaybeCloneSpecialized(), without any sampling.
|
|
76
|
+
struct DictPreDefined {
|
|
77
|
+
// The owned raw/serialized dictionary bytes. Recommend std::move to
|
|
78
|
+
// MaybeCloneSpecialized()
|
|
79
|
+
std::string dict_data;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// The result type for GetDictGuidance() - indicates how dictionary
|
|
83
|
+
// compression should be configured for a given block type.
|
|
84
|
+
using DictConfig = std::variant<DictDisabled, DictSampling, DictPreDefined>;
|
|
85
|
+
|
|
86
|
+
// Sample data collected from blocks for dictionary training.
|
|
87
|
+
struct DictSamples {
|
|
88
|
+
// All the sample input blocks stored contiguously
|
|
89
|
+
std::string sample_data;
|
|
90
|
+
// The lengths of each of the sample blocks in `sample_data`
|
|
91
|
+
std::vector<size_t> sample_lens;
|
|
92
|
+
|
|
93
|
+
bool empty() const { return sample_data.empty(); }
|
|
94
|
+
bool Verify() const {
|
|
95
|
+
size_t total_len = 0;
|
|
96
|
+
for (auto len : sample_lens) {
|
|
97
|
+
total_len += len;
|
|
98
|
+
}
|
|
99
|
+
return total_len == sample_data.size();
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// Arguments for MaybeCloneSpecialized() - provides either samples, a
|
|
104
|
+
// pre-defined dictionary, or indicates no dictionary should be used.
|
|
105
|
+
// NOTE: DictPreDefined here is the same type as above, allowing the
|
|
106
|
+
// pre-defined dictionary from GetDictGuidance() to be passed through.
|
|
107
|
+
using DictConfigArgs =
|
|
108
|
+
std::variant<DictDisabled, DictSamples, DictPreDefined>;
|
|
109
|
+
|
|
110
|
+
// A WorkingArea is an optional structure (both for callers and
|
|
111
|
+
// implementations) that can enable optimizing repeated compressions by
|
|
112
|
+
// reusing working space or thread-local tracking of statistics or trends.
|
|
113
|
+
// This enables use of ZSTD context, for example.
|
|
114
|
+
//
|
|
115
|
+
// EXTENSIBLE or reinterpret_cast-able by custom Compressor implementations
|
|
116
|
+
struct WorkingArea {};
|
|
117
|
+
|
|
118
|
+
public: // Functions
|
|
60
119
|
Compressor() = default;
|
|
61
120
|
virtual ~Compressor() = default;
|
|
62
121
|
|
|
@@ -69,15 +128,17 @@ class Compressor {
|
|
|
69
128
|
return id;
|
|
70
129
|
}
|
|
71
130
|
|
|
72
|
-
// Returns the
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
131
|
+
// Returns the recommended dictionary configuration for the given block type.
|
|
132
|
+
// See the comments on DictConfig and variants for details.
|
|
133
|
+
//
|
|
134
|
+
// NOTE: This may be called on the "base" Compressor returned by
|
|
135
|
+
// CompressionManager, which is not yet configured with a dictionary,
|
|
136
|
+
// or it can be skipped by callers not intending to handle dictionary
|
|
137
|
+
// compression.
|
|
138
|
+
virtual DictConfig GetDictGuidance(CacheEntryRole block_type) const {
|
|
78
139
|
// Default implementation: no dictionary
|
|
79
140
|
(void)block_type;
|
|
80
|
-
return
|
|
141
|
+
return DictDisabled{};
|
|
81
142
|
}
|
|
82
143
|
|
|
83
144
|
// Returns the serialized form of the data dictionary associated with this
|
|
@@ -94,52 +155,32 @@ class Compressor {
|
|
|
94
155
|
// needed to implement MaybeCloneSpecialized() in wrapper compressors.
|
|
95
156
|
virtual std::unique_ptr<Compressor> Clone() const = 0;
|
|
96
157
|
|
|
97
|
-
// Utility struct for providing sample data for the compression dictionary.
|
|
98
|
-
// Potentially extensible by callers of Compressor (but not recommended)
|
|
99
|
-
struct DictSampleArgs {
|
|
100
|
-
// All the sample input blocks stored contiguously
|
|
101
|
-
std::string sample_data;
|
|
102
|
-
// The lengths of each of the sample blocks in `sample_data`
|
|
103
|
-
std::vector<size_t> sample_lens;
|
|
104
|
-
|
|
105
|
-
bool empty() { return sample_data.empty(); }
|
|
106
|
-
bool Verify() {
|
|
107
|
-
size_t total_len = 0;
|
|
108
|
-
for (auto len : sample_lens) {
|
|
109
|
-
total_len += len;
|
|
110
|
-
}
|
|
111
|
-
return total_len == sample_data.size();
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
|
|
115
158
|
// Create potential variants of the same Compressor that might be
|
|
116
159
|
// (a) optimized for a particular block type (does not affect correct
|
|
117
160
|
// decompression), and/or
|
|
118
|
-
// (b) configured to use a compression dictionary
|
|
119
|
-
//
|
|
120
|
-
//
|
|
161
|
+
// (b) configured to use a compression dictionary based on the provided
|
|
162
|
+
// configuration (samples or pre-defined dictionary). See the comments on
|
|
163
|
+
// DictConfigArgs and its variants for detail.
|
|
164
|
+
//
|
|
121
165
|
// Return of nullptr indicates no specialization exists or was attempted
|
|
122
|
-
// and the caller
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
// dictionary associated with a returned compressor must be read
|
|
126
|
-
// GetSerializedDict().
|
|
166
|
+
// and the caller should use the current Compressor for the desired scenario.
|
|
167
|
+
// Using CacheEntryRole::kMisc for block_type generally means "unspecified".
|
|
168
|
+
//
|
|
169
|
+
// The exact dictionary associated with a returned compressor must be read
|
|
170
|
+
// from GetSerializedDict().
|
|
127
171
|
virtual std::unique_ptr<Compressor> MaybeCloneSpecialized(
|
|
128
|
-
CacheEntryRole block_type,
|
|
172
|
+
CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
|
|
129
173
|
// Default implementation: no specialization
|
|
130
174
|
(void)block_type;
|
|
131
|
-
(void)
|
|
132
|
-
// Caller should have checked GetMaxSampleSizeIfWantDict before attempting
|
|
133
|
-
// to provide dictionary samples
|
|
134
|
-
assert(dict_samples.empty());
|
|
175
|
+
(void)dict_config;
|
|
135
176
|
return nullptr;
|
|
136
177
|
}
|
|
137
178
|
|
|
138
179
|
// A convenience function when a clone is needed and may or may not be
|
|
139
180
|
// specialized.
|
|
140
181
|
std::unique_ptr<Compressor> CloneMaybeSpecialized(
|
|
141
|
-
CacheEntryRole block_type,
|
|
142
|
-
auto clone = MaybeCloneSpecialized(block_type, std::move(
|
|
182
|
+
CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
|
|
183
|
+
auto clone = MaybeCloneSpecialized(block_type, std::move(dict_config));
|
|
143
184
|
if (clone == nullptr) {
|
|
144
185
|
clone = Clone();
|
|
145
186
|
assert(clone != nullptr);
|
|
@@ -147,14 +188,6 @@ class Compressor {
|
|
|
147
188
|
return clone;
|
|
148
189
|
}
|
|
149
190
|
|
|
150
|
-
// A WorkingArea is an optional structure (both for callers and
|
|
151
|
-
// implementations) that can enable optimizing repeated compressions by
|
|
152
|
-
// reusing working space or thread-local tracking of statistics or trends.
|
|
153
|
-
// This enables use of ZSTD context, for example.
|
|
154
|
-
//
|
|
155
|
-
// EXTENSIBLE or reinterpret_cast-able by custom Compressor implementations
|
|
156
|
-
struct WorkingArea {};
|
|
157
|
-
|
|
158
191
|
// To allow for flexible re-use / reclaimation, we have explicit Get and
|
|
159
192
|
// Release functions, and usually wrap in a special RAII smart pointer.
|
|
160
193
|
// For example, a WorkingArea could be saved/recycled in thread-local or
|
|
@@ -423,6 +456,12 @@ class CompressionManager
|
|
|
423
456
|
// which is valid at the discretion of the CompressionManager. Returning
|
|
424
457
|
// nullptr should normally be the result if preferred == kNoCompression.
|
|
425
458
|
//
|
|
459
|
+
// Compressors returned here are configured WITHOUT a dictionary, so that
|
|
460
|
+
// it's always possible to get correct compression->decompression results
|
|
461
|
+
// if not opting-in to dictionary handling. The compressors may recommend
|
|
462
|
+
// dictionary usage via GetDictGuidance() and creating a modified Compressor
|
|
463
|
+
// for that. See Compressor::GetDictGuidance() etc. for details.
|
|
464
|
+
//
|
|
426
465
|
// These functions must be thread-safe.
|
|
427
466
|
|
|
428
467
|
// Get a compressor for an SST file.
|
|
@@ -477,8 +516,8 @@ class CompressorWrapper : public Compressor {
|
|
|
477
516
|
CompressorWrapper(const CompressorWrapper&) = delete;
|
|
478
517
|
CompressorWrapper& operator=(const CompressorWrapper&) = delete;
|
|
479
518
|
|
|
480
|
-
|
|
481
|
-
return wrapped_->
|
|
519
|
+
DictConfig GetDictGuidance(CacheEntryRole block_type) const override {
|
|
520
|
+
return wrapped_->GetDictGuidance(block_type);
|
|
482
521
|
}
|
|
483
522
|
|
|
484
523
|
Slice GetSerializedDict() const override {
|
|
@@ -496,9 +535,9 @@ class CompressorWrapper : public Compressor {
|
|
|
496
535
|
// when the wrapped Compressor uses the default implementation of
|
|
497
536
|
// MaybeCloneSpecialized(). This needs to be overridden if not.
|
|
498
537
|
std::unique_ptr<Compressor> MaybeCloneSpecialized(
|
|
499
|
-
CacheEntryRole block_type,
|
|
538
|
+
CacheEntryRole block_type, DictConfigArgs&& dict_config) const override {
|
|
500
539
|
auto clone =
|
|
501
|
-
wrapped_->MaybeCloneSpecialized(block_type, std::move(
|
|
540
|
+
wrapped_->MaybeCloneSpecialized(block_type, std::move(dict_config));
|
|
502
541
|
// Assert default no-op MaybeCloneSpecialized()
|
|
503
542
|
assert(clone == nullptr);
|
|
504
543
|
return clone;
|
|
@@ -592,7 +631,14 @@ class CompressionManagerWrapper : public CompressionManager {
|
|
|
592
631
|
|
|
593
632
|
std::shared_ptr<CompressionManager> FindCompatibleCompressionManager(
|
|
594
633
|
Slice compatibility_name) override {
|
|
595
|
-
|
|
634
|
+
// NOTE: We expect that the wrapped CompressionManager will generally
|
|
635
|
+
// be preferred if compatible, so the default implementation here does
|
|
636
|
+
// not purely defer to the wrapped instance
|
|
637
|
+
if (compatibility_name == CompatibilityName()) {
|
|
638
|
+
return shared_from_this();
|
|
639
|
+
} else {
|
|
640
|
+
return wrapped_->FindCompatibleCompressionManager(compatibility_name);
|
|
641
|
+
}
|
|
596
642
|
}
|
|
597
643
|
|
|
598
644
|
bool SupportsCompressionType(CompressionType type) const override {
|
|
@@ -128,6 +128,51 @@ struct CompactionOptionsFIFO {
|
|
|
128
128
|
// not be used. The minmum buffer size must be at least 4KiB
|
|
129
129
|
uint64_t trivial_copy_buffer_size = 4096;
|
|
130
130
|
|
|
131
|
+
// When non-zero, FIFO compaction uses the combined size of SST files and
|
|
132
|
+
// blob files for size-based trimming decisions. When the total data size
|
|
133
|
+
// (SST + blob) exceeds this limit, the oldest SST files are dropped along
|
|
134
|
+
// with their associated blob files.
|
|
135
|
+
//
|
|
136
|
+
// When non-zero, this takes precedence over max_table_files_size for all
|
|
137
|
+
// FIFO compaction decisions: size-based dropping, TTL threshold checks,
|
|
138
|
+
// and compaction score computation. max_table_files_size is ignored.
|
|
139
|
+
//
|
|
140
|
+
// When zero (default), FIFO compaction uses max_table_files_size which
|
|
141
|
+
// only considers SST file sizes, maintaining backward compatibility.
|
|
142
|
+
//
|
|
143
|
+
// This option is primarily intended for use with integrated BlobDB where
|
|
144
|
+
// blob files can represent a significant portion of the total data.
|
|
145
|
+
//
|
|
146
|
+
// Dynamically changeable through SetOptions() API.
|
|
147
|
+
// Default: 0 (use max_table_files_size behavior)
|
|
148
|
+
uint64_t max_data_files_size = 0;
|
|
149
|
+
|
|
150
|
+
// When true, enables a capacity-derived intra-L0 compaction strategy
|
|
151
|
+
// optimized for BlobDB workloads where SST files are much smaller than
|
|
152
|
+
// write_buffer_size. Uses the observed key/value size ratio (SST vs blob
|
|
153
|
+
// file sizes) to compute a target compacted file size, producing uniform
|
|
154
|
+
// files for predictable FIFO trimming.
|
|
155
|
+
//
|
|
156
|
+
// Uses level0_file_num_compaction_trigger as the target max L0 file count.
|
|
157
|
+
//
|
|
158
|
+
// When max_compaction_bytes is 0, the target is auto-calculated from the
|
|
159
|
+
// data capacity and observed SST/blob ratio. When max_compaction_bytes is
|
|
160
|
+
// explicitly set to a non-zero value, it overrides the auto-calculated
|
|
161
|
+
// target.
|
|
162
|
+
//
|
|
163
|
+
// Recommends:
|
|
164
|
+
// - allow_compaction = true (master switch for intra-L0 compaction)
|
|
165
|
+
// - max_data_files_size > 0 (needed to compute the target file size)
|
|
166
|
+
// If these are not met, kv_ratio compaction is skipped and the old
|
|
167
|
+
// cost-based intra-L0 compaction algorithm is used as a fallback.
|
|
168
|
+
//
|
|
169
|
+
// When false, the old intra-L0 strategy is used if allow_compaction is
|
|
170
|
+
// true (PickCostBasedIntraL0Compaction with 1.1 * write_buffer_size guard).
|
|
171
|
+
//
|
|
172
|
+
// Dynamically changeable through SetOptions() API.
|
|
173
|
+
// Default: false
|
|
174
|
+
bool use_kv_ratio_compaction = false;
|
|
175
|
+
|
|
131
176
|
CompactionOptionsFIFO() : max_table_files_size(1 * 1024 * 1024 * 1024) {}
|
|
132
177
|
CompactionOptionsFIFO(uint64_t _max_table_files_size, bool _allow_compaction)
|
|
133
178
|
: max_table_files_size(_max_table_files_size),
|
|
@@ -168,8 +213,7 @@ enum class VerifyOutputFlags : uint32_t {
|
|
|
168
213
|
// by comparing the one inserted into a
|
|
169
214
|
// file, and what is read back.
|
|
170
215
|
|
|
171
|
-
//
|
|
172
|
-
// kVerifyFileChecksum = 1 << 2, // Verify file-level checksum
|
|
216
|
+
kVerifyFileChecksum = 1 << 2, // Verify file-level checksum
|
|
173
217
|
|
|
174
218
|
// Second set of bits: when to enable verification
|
|
175
219
|
kEnableForLocalCompaction = 1 << 10, // Enable for local compaction
|
|
@@ -643,6 +687,15 @@ struct AdvancedColumnFamilyOptions {
|
|
|
643
687
|
//
|
|
644
688
|
// Default: target_file_size_base * 25
|
|
645
689
|
//
|
|
690
|
+
// For FIFO compaction with use_kv_ratio_compaction=true:
|
|
691
|
+
// When set to 0 (and compaction_style is FIFO), the value is NOT sanitized
|
|
692
|
+
// to the default. Instead, the target compacted file size is automatically
|
|
693
|
+
// calculated from the data capacity (max_data_files_size) and observed
|
|
694
|
+
// SST/blob ratio. When explicitly set to a non-zero value, it overrides
|
|
695
|
+
// the auto-calculated target and is used directly as the max compaction
|
|
696
|
+
// input size. Note: for FIFO, this controls the output file size target,
|
|
697
|
+
// not a general compaction byte limit as in level/universal compaction.
|
|
698
|
+
//
|
|
646
699
|
// Dynamically changeable through SetOptions() API
|
|
647
700
|
uint64_t max_compaction_bytes = 0;
|
|
648
701
|
|
|
@@ -1252,6 +1305,18 @@ struct AdvancedColumnFamilyOptions {
|
|
|
1252
1305
|
// Immutable.
|
|
1253
1306
|
bool cf_allow_ingest_behind = false;
|
|
1254
1307
|
|
|
1308
|
+
// If true, use batch lookup optimization for memtable MultiGet. For skip
|
|
1309
|
+
// list memtables, after looking up each key, the search path is cached and
|
|
1310
|
+
// reused for the next key, reducing per-key cost from O(log N) to O(log d)
|
|
1311
|
+
// where d is the distance between consecutive keys.
|
|
1312
|
+
//
|
|
1313
|
+
// This optimization exploits the fact that MultiGet keys are sorted.
|
|
1314
|
+
// Non-skip-list memtable implementations fall back to per-key lookups.
|
|
1315
|
+
//
|
|
1316
|
+
// Default: false
|
|
1317
|
+
// Immutable.
|
|
1318
|
+
bool memtable_batch_lookup_optimization = false;
|
|
1319
|
+
|
|
1255
1320
|
// Create ColumnFamilyOptions with default values for all fields
|
|
1256
1321
|
AdvancedColumnFamilyOptions();
|
|
1257
1322
|
// Create ColumnFamilyOptions from Options
|
|
@@ -86,6 +86,12 @@ typedef struct rocksdb_compactionfiltercontext_t
|
|
|
86
86
|
rocksdb_compactionfiltercontext_t;
|
|
87
87
|
typedef struct rocksdb_compactionfilterfactory_t
|
|
88
88
|
rocksdb_compactionfilterfactory_t;
|
|
89
|
+
typedef struct rocksdb_file_checksum_gen_factory_t
|
|
90
|
+
rocksdb_file_checksum_gen_factory_t;
|
|
91
|
+
typedef struct rocksdb_sst_partitioner_factory_t
|
|
92
|
+
rocksdb_sst_partitioner_factory_t;
|
|
93
|
+
typedef struct rocksdb_table_properties_collector_factory_t
|
|
94
|
+
rocksdb_table_properties_collector_factory_t;
|
|
89
95
|
typedef struct rocksdb_comparator_t rocksdb_comparator_t;
|
|
90
96
|
typedef struct rocksdb_dbpath_t rocksdb_dbpath_t;
|
|
91
97
|
typedef struct rocksdb_env_t rocksdb_env_t;
|
|
@@ -944,6 +950,11 @@ extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate(
|
|
|
944
950
|
rocksdb_writebatch_t*, void* state,
|
|
945
951
|
void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
|
|
946
952
|
void (*deleted)(void*, const char* k, size_t klen));
|
|
953
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_ld(
|
|
954
|
+
rocksdb_writebatch_t*, void* state,
|
|
955
|
+
void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
|
|
956
|
+
void (*deleted)(void*, const char* k, size_t klen),
|
|
957
|
+
void (*log_data)(void*, const char* blob, size_t blob_len));
|
|
947
958
|
extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_cf(
|
|
948
959
|
rocksdb_writebatch_t*, void* state,
|
|
949
960
|
void (*put_cf)(void*, uint32_t cfid, const char* k, size_t klen,
|
|
@@ -951,6 +962,14 @@ extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_cf(
|
|
|
951
962
|
void (*deleted_cf)(void*, uint32_t cfid, const char* k, size_t klen),
|
|
952
963
|
void (*merge_cf)(void*, uint32_t cfid, const char* k, size_t klen,
|
|
953
964
|
const char* v, size_t vlen));
|
|
965
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_cf_ld(
|
|
966
|
+
rocksdb_writebatch_t*, void* state,
|
|
967
|
+
void (*put_cf)(void*, uint32_t cfid, const char* k, size_t klen,
|
|
968
|
+
const char* v, size_t vlen),
|
|
969
|
+
void (*deleted_cf)(void*, uint32_t cfid, const char* k, size_t klen),
|
|
970
|
+
void (*merge_cf)(void*, uint32_t cfid, const char* k, size_t klen,
|
|
971
|
+
const char* v, size_t vlen),
|
|
972
|
+
void (*log_data)(void*, const char* blob, size_t blob_len));
|
|
954
973
|
extern ROCKSDB_LIBRARY_API const char* rocksdb_writebatch_data(
|
|
955
974
|
rocksdb_writebatch_t*, size_t* size);
|
|
956
975
|
extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_set_save_point(
|
|
@@ -1176,6 +1195,9 @@ rocksdb_block_based_options_set_whole_key_filtering(
|
|
|
1176
1195
|
rocksdb_block_based_table_options_t*, unsigned char);
|
|
1177
1196
|
extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_format_version(
|
|
1178
1197
|
rocksdb_block_based_table_options_t*, int);
|
|
1198
|
+
extern ROCKSDB_LIBRARY_API void
|
|
1199
|
+
rocksdb_block_based_options_set_separate_key_value_in_data_block(
|
|
1200
|
+
rocksdb_block_based_table_options_t*, unsigned char);
|
|
1179
1201
|
enum {
|
|
1180
1202
|
rocksdb_block_based_table_index_type_binary_search = 0,
|
|
1181
1203
|
rocksdb_block_based_table_index_type_hash_search = 1,
|
|
@@ -1190,6 +1212,13 @@ enum {
|
|
|
1190
1212
|
extern ROCKSDB_LIBRARY_API void
|
|
1191
1213
|
rocksdb_block_based_options_set_data_block_index_type(
|
|
1192
1214
|
rocksdb_block_based_table_options_t*, int); // uses one of the above enums
|
|
1215
|
+
enum {
|
|
1216
|
+
rocksdb_block_based_table_index_block_search_type_binary = 0,
|
|
1217
|
+
rocksdb_block_based_table_index_block_search_type_interpolation = 1,
|
|
1218
|
+
};
|
|
1219
|
+
extern ROCKSDB_LIBRARY_API void
|
|
1220
|
+
rocksdb_block_based_options_set_index_block_search_type(
|
|
1221
|
+
rocksdb_block_based_table_options_t*, int); // uses one of the above enums
|
|
1193
1222
|
extern ROCKSDB_LIBRARY_API void
|
|
1194
1223
|
rocksdb_block_based_options_set_data_block_hash_ratio(
|
|
1195
1224
|
rocksdb_block_based_table_options_t* options, double v);
|
|
@@ -1225,6 +1254,8 @@ rocksdb_block_based_options_set_partition_pinning_tier(
|
|
|
1225
1254
|
extern ROCKSDB_LIBRARY_API void
|
|
1226
1255
|
rocksdb_block_based_options_set_unpartitioned_pinning_tier(
|
|
1227
1256
|
rocksdb_block_based_table_options_t*, int);
|
|
1257
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_block_align(
|
|
1258
|
+
rocksdb_block_based_table_options_t*, unsigned char);
|
|
1228
1259
|
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_write_buffer_manager(
|
|
1229
1260
|
rocksdb_options_t* opt, rocksdb_write_buffer_manager_t* wbm);
|
|
1230
1261
|
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_sst_file_manager(
|
|
@@ -1448,6 +1479,10 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_paranoid_checks(
|
|
|
1448
1479
|
rocksdb_options_t*, unsigned char);
|
|
1449
1480
|
extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_paranoid_checks(
|
|
1450
1481
|
rocksdb_options_t*);
|
|
1482
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_open_files_async(
|
|
1483
|
+
rocksdb_options_t*, unsigned char);
|
|
1484
|
+
extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_open_files_async(
|
|
1485
|
+
rocksdb_options_t*);
|
|
1451
1486
|
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_db_paths(
|
|
1452
1487
|
rocksdb_options_t*, const rocksdb_dbpath_t** path_values, size_t num_paths);
|
|
1453
1488
|
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_cf_paths(
|
|
@@ -1471,6 +1506,31 @@ rocksdb_logger_create_callback_logger(int log_level,
|
|
|
1471
1506
|
void* priv);
|
|
1472
1507
|
extern ROCKSDB_LIBRARY_API void rocksdb_logger_destroy(
|
|
1473
1508
|
rocksdb_logger_t* logger);
|
|
1509
|
+
|
|
1510
|
+
/* File Checksum Gen Factory */
|
|
1511
|
+
extern ROCKSDB_LIBRARY_API rocksdb_file_checksum_gen_factory_t*
|
|
1512
|
+
rocksdb_file_checksum_gen_crc32c_factory_create(void);
|
|
1513
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_file_checksum_gen_factory_destroy(
|
|
1514
|
+
rocksdb_file_checksum_gen_factory_t* factory);
|
|
1515
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_file_checksum_gen_factory(
|
|
1516
|
+
rocksdb_options_t*, rocksdb_file_checksum_gen_factory_t*);
|
|
1517
|
+
|
|
1518
|
+
/* SST Partitioner Factory */
|
|
1519
|
+
extern ROCKSDB_LIBRARY_API rocksdb_sst_partitioner_factory_t*
|
|
1520
|
+
rocksdb_sst_partitioner_fixed_prefix_factory_create(size_t prefix_len);
|
|
1521
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_sst_partitioner_factory_destroy(
|
|
1522
|
+
rocksdb_sst_partitioner_factory_t* factory);
|
|
1523
|
+
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_sst_partitioner_factory(
|
|
1524
|
+
rocksdb_options_t*, rocksdb_sst_partitioner_factory_t*);
|
|
1525
|
+
|
|
1526
|
+
/* Table Properties Collector Factory */
|
|
1527
|
+
extern ROCKSDB_LIBRARY_API void
|
|
1528
|
+
rocksdb_table_properties_collector_factory_destroy(
|
|
1529
|
+
rocksdb_table_properties_collector_factory_t* factory);
|
|
1530
|
+
extern ROCKSDB_LIBRARY_API void
|
|
1531
|
+
rocksdb_options_add_table_properties_collector_factory(
|
|
1532
|
+
rocksdb_options_t*, rocksdb_table_properties_collector_factory_t*);
|
|
1533
|
+
|
|
1474
1534
|
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_write_buffer_size(
|
|
1475
1535
|
rocksdb_options_t*, size_t);
|
|
1476
1536
|
extern ROCKSDB_LIBRARY_API size_t
|
|
@@ -1615,13 +1675,6 @@ rocksdb_options_set_skip_stats_update_on_db_open(rocksdb_options_t* opt,
|
|
|
1615
1675
|
unsigned char val);
|
|
1616
1676
|
extern ROCKSDB_LIBRARY_API unsigned char
|
|
1617
1677
|
rocksdb_options_get_skip_stats_update_on_db_open(rocksdb_options_t* opt);
|
|
1618
|
-
extern ROCKSDB_LIBRARY_API void
|
|
1619
|
-
rocksdb_options_set_skip_checking_sst_file_sizes_on_db_open(
|
|
1620
|
-
rocksdb_options_t* opt, unsigned char val);
|
|
1621
|
-
extern ROCKSDB_LIBRARY_API unsigned char
|
|
1622
|
-
rocksdb_options_get_skip_checking_sst_file_sizes_on_db_open(
|
|
1623
|
-
rocksdb_options_t* opt);
|
|
1624
|
-
|
|
1625
1678
|
/* Blob Options Settings */
|
|
1626
1679
|
extern ROCKSDB_LIBRARY_API void rocksdb_options_set_enable_blob_files(
|
|
1627
1680
|
rocksdb_options_t* opt, unsigned char val);
|
|
@@ -2128,7 +2181,12 @@ enum {
|
|
|
2128
2181
|
rocksdb_internal_range_del_reseek_count,
|
|
2129
2182
|
rocksdb_block_read_cpu_time,
|
|
2130
2183
|
rocksdb_internal_merge_point_lookup_count,
|
|
2131
|
-
|
|
2184
|
+
rocksdb_data_block_read_byte,
|
|
2185
|
+
rocksdb_index_block_read_byte,
|
|
2186
|
+
rocksdb_filter_block_read_byte,
|
|
2187
|
+
rocksdb_compression_dict_block_read_byte,
|
|
2188
|
+
rocksdb_metadata_block_read_byte,
|
|
2189
|
+
rocksdb_total_metric_count = 85
|
|
2132
2190
|
};
|
|
2133
2191
|
|
|
2134
2192
|
extern ROCKSDB_LIBRARY_API void rocksdb_set_perf_level(int);
|
|
@@ -2265,9 +2323,6 @@ extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_tailing(
|
|
|
2265
2323
|
rocksdb_readoptions_t*, unsigned char);
|
|
2266
2324
|
extern ROCKSDB_LIBRARY_API unsigned char rocksdb_readoptions_get_tailing(
|
|
2267
2325
|
rocksdb_readoptions_t*);
|
|
2268
|
-
// The functionality that this option controlled has been removed.
|
|
2269
|
-
extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_managed(
|
|
2270
|
-
rocksdb_readoptions_t*, unsigned char);
|
|
2271
2326
|
extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_readahead_size(
|
|
2272
2327
|
rocksdb_readoptions_t*, size_t);
|
|
2273
2328
|
extern ROCKSDB_LIBRARY_API size_t
|
|
@@ -2679,10 +2734,9 @@ rocksdb_slicetransform_create(
|
|
|
2679
2734
|
char* (*transform)(void*, const char* key, size_t length,
|
|
2680
2735
|
size_t* dst_length),
|
|
2681
2736
|
unsigned char (*in_domain)(void*, const char* key, size_t length),
|
|
2682
|
-
unsigned char (*in_range)(void*, const char* key, size_t length),
|
|
2683
2737
|
const char* (*name)(void*));
|
|
2684
2738
|
extern ROCKSDB_LIBRARY_API rocksdb_slicetransform_t*
|
|
2685
|
-
|
|
2739
|
+
rocksdb_slicetransform_create_fixed_prefix(size_t);
|
|
2686
2740
|
extern ROCKSDB_LIBRARY_API rocksdb_slicetransform_t*
|
|
2687
2741
|
rocksdb_slicetransform_create_noop(void);
|
|
2688
2742
|
extern ROCKSDB_LIBRARY_API void rocksdb_slicetransform_destroy(
|
|
@@ -2751,6 +2805,19 @@ rocksdb_fifo_compaction_options_set_max_table_files_size(
|
|
|
2751
2805
|
extern ROCKSDB_LIBRARY_API uint64_t
|
|
2752
2806
|
rocksdb_fifo_compaction_options_get_max_table_files_size(
|
|
2753
2807
|
rocksdb_fifo_compaction_options_t* fifo_opts);
|
|
2808
|
+
extern ROCKSDB_LIBRARY_API void
|
|
2809
|
+
rocksdb_fifo_compaction_options_set_max_data_files_size(
|
|
2810
|
+
rocksdb_fifo_compaction_options_t* fifo_opts, uint64_t size);
|
|
2811
|
+
extern ROCKSDB_LIBRARY_API uint64_t
|
|
2812
|
+
rocksdb_fifo_compaction_options_get_max_data_files_size(
|
|
2813
|
+
rocksdb_fifo_compaction_options_t* fifo_opts);
|
|
2814
|
+
extern ROCKSDB_LIBRARY_API void
|
|
2815
|
+
rocksdb_fifo_compaction_options_set_use_kv_ratio_compaction(
|
|
2816
|
+
rocksdb_fifo_compaction_options_t* fifo_opts,
|
|
2817
|
+
unsigned char use_kv_ratio_compaction);
|
|
2818
|
+
extern ROCKSDB_LIBRARY_API unsigned char
|
|
2819
|
+
rocksdb_fifo_compaction_options_get_use_kv_ratio_compaction(
|
|
2820
|
+
rocksdb_fifo_compaction_options_t* fifo_opts);
|
|
2754
2821
|
extern ROCKSDB_LIBRARY_API void rocksdb_fifo_compaction_options_destroy(
|
|
2755
2822
|
rocksdb_fifo_compaction_options_t* fifo_opts);
|
|
2756
2823
|
|
|
@@ -3631,6 +3698,10 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_compaction_service(
|
|
|
3631
3698
|
extern ROCKSDB_LIBRARY_API rocksdb_compaction_service_options_override_t*
|
|
3632
3699
|
rocksdb_compaction_service_options_override_create(void);
|
|
3633
3700
|
|
|
3701
|
+
extern ROCKSDB_LIBRARY_API rocksdb_compaction_service_options_override_t*
|
|
3702
|
+
rocksdb_compaction_service_options_override_create_from_options(
|
|
3703
|
+
rocksdb_options_t* option);
|
|
3704
|
+
|
|
3634
3705
|
extern ROCKSDB_LIBRARY_API void
|
|
3635
3706
|
rocksdb_compaction_service_options_override_destroy(
|
|
3636
3707
|
rocksdb_compaction_service_options_override_t* override_options);
|
|
@@ -3645,6 +3716,71 @@ rocksdb_compaction_service_options_override_set_comparator(
|
|
|
3645
3716
|
rocksdb_compaction_service_options_override_t* override_options,
|
|
3646
3717
|
rocksdb_comparator_t* comparator);
|
|
3647
3718
|
|
|
3719
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3720
|
+
rocksdb_compaction_service_options_override_set_merge_operator(
|
|
3721
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3722
|
+
rocksdb_mergeoperator_t* merge_operator);
|
|
3723
|
+
|
|
3724
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3725
|
+
rocksdb_compaction_service_options_override_set_compaction_filter(
|
|
3726
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3727
|
+
rocksdb_compactionfilter_t* compaction_filter);
|
|
3728
|
+
|
|
3729
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3730
|
+
rocksdb_compaction_service_options_override_set_compaction_filter_factory(
|
|
3731
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3732
|
+
rocksdb_compactionfilterfactory_t* compaction_filter_factory);
|
|
3733
|
+
|
|
3734
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3735
|
+
rocksdb_compaction_service_options_override_set_prefix_extractor(
|
|
3736
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3737
|
+
rocksdb_slicetransform_t* prefix_extractor);
|
|
3738
|
+
|
|
3739
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3740
|
+
rocksdb_compaction_service_options_override_set_block_based_table_factory(
|
|
3741
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3742
|
+
rocksdb_block_based_table_options_t* table_options);
|
|
3743
|
+
|
|
3744
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3745
|
+
rocksdb_compaction_service_options_override_set_cuckoo_table_factory(
|
|
3746
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3747
|
+
rocksdb_cuckoo_table_options_t* table_options);
|
|
3748
|
+
|
|
3749
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3750
|
+
rocksdb_compaction_service_options_override_add_event_listener(
|
|
3751
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3752
|
+
rocksdb_eventlistener_t* event_listener);
|
|
3753
|
+
|
|
3754
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3755
|
+
rocksdb_compaction_service_options_override_set_statistics(
|
|
3756
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3757
|
+
rocksdb_options_t* options);
|
|
3758
|
+
|
|
3759
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3760
|
+
rocksdb_compaction_service_options_override_set_info_log(
|
|
3761
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3762
|
+
rocksdb_logger_t* logger);
|
|
3763
|
+
|
|
3764
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3765
|
+
rocksdb_compaction_service_options_override_set_option(
|
|
3766
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3767
|
+
const char* key, const char* value);
|
|
3768
|
+
|
|
3769
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3770
|
+
rocksdb_compaction_service_options_override_set_file_checksum_gen_factory(
|
|
3771
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3772
|
+
rocksdb_file_checksum_gen_factory_t* factory);
|
|
3773
|
+
|
|
3774
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3775
|
+
rocksdb_compaction_service_options_override_set_sst_partitioner_factory(
|
|
3776
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3777
|
+
rocksdb_sst_partitioner_factory_t* factory);
|
|
3778
|
+
|
|
3779
|
+
extern ROCKSDB_LIBRARY_API void
|
|
3780
|
+
rocksdb_compaction_service_options_override_add_table_properties_collector_factory(
|
|
3781
|
+
rocksdb_compaction_service_options_override_t* override_options,
|
|
3782
|
+
rocksdb_table_properties_collector_factory_t* factory);
|
|
3783
|
+
|
|
3648
3784
|
// Atomic bool management for cancellation
|
|
3649
3785
|
// Creates an atomic bool that can be used for cancellation.
|
|
3650
3786
|
// User must call rocksdb_open_and_compact_canceled_destroy() to free it.
|
|
@@ -306,13 +306,6 @@ struct CompressedSecondaryCacheOptions : LRUCacheOptions {
|
|
|
306
306
|
// Options specific to the compression algorithm
|
|
307
307
|
CompressionOptions compression_opts;
|
|
308
308
|
|
|
309
|
-
// compress_format_version can have two values:
|
|
310
|
-
// compress_format_version == 1 -- decompressed size is not included in the
|
|
311
|
-
// block header. DEPRECATED
|
|
312
|
-
// compress_format_version == 2 -- decompressed size is included in the block
|
|
313
|
-
// header in varint32 format.
|
|
314
|
-
uint32_t compress_format_version = 2;
|
|
315
|
-
|
|
316
309
|
// Enable the custom split and merge feature, which split the compressed value
|
|
317
310
|
// into chunks so that they may better fit jemalloc bins.
|
|
318
311
|
bool enable_custom_split_merge = false;
|
|
@@ -330,7 +323,6 @@ struct CompressedSecondaryCacheOptions : LRUCacheOptions {
|
|
|
330
323
|
CacheMetadataChargePolicy _metadata_charge_policy =
|
|
331
324
|
kDefaultCacheMetadataChargePolicy,
|
|
332
325
|
CompressionType _compression_type = CompressionType::kLZ4Compression,
|
|
333
|
-
uint32_t _compress_format_version = 2,
|
|
334
326
|
bool _enable_custom_split_merge = false,
|
|
335
327
|
const CacheEntryRoleSet& _do_not_compress_roles =
|
|
336
328
|
{CacheEntryRole::kFilterBlock})
|
|
@@ -339,7 +331,6 @@ struct CompressedSecondaryCacheOptions : LRUCacheOptions {
|
|
|
339
331
|
_use_adaptive_mutex, _metadata_charge_policy,
|
|
340
332
|
_low_pri_pool_ratio),
|
|
341
333
|
compression_type(_compression_type),
|
|
342
|
-
compress_format_version(_compress_format_version),
|
|
343
334
|
enable_custom_split_merge(_enable_custom_split_merge),
|
|
344
335
|
do_not_compress_roles(_do_not_compress_roles) {}
|
|
345
336
|
|
|
@@ -360,7 +351,6 @@ inline std::shared_ptr<SecondaryCache> NewCompressedSecondaryCache(
|
|
|
360
351
|
CacheMetadataChargePolicy metadata_charge_policy =
|
|
361
352
|
kDefaultCacheMetadataChargePolicy,
|
|
362
353
|
CompressionType compression_type = CompressionType::kLZ4Compression,
|
|
363
|
-
uint32_t compress_format_version = 2,
|
|
364
354
|
bool enable_custom_split_merge = false,
|
|
365
355
|
const CacheEntryRoleSet& _do_not_compress_roles = {
|
|
366
356
|
CacheEntryRole::kFilterBlock}) {
|
|
@@ -368,8 +358,7 @@ inline std::shared_ptr<SecondaryCache> NewCompressedSecondaryCache(
|
|
|
368
358
|
capacity, num_shard_bits, strict_capacity_limit,
|
|
369
359
|
high_pri_pool_ratio, low_pri_pool_ratio, memory_allocator,
|
|
370
360
|
use_adaptive_mutex, metadata_charge_policy, compression_type,
|
|
371
|
-
|
|
372
|
-
_do_not_compress_roles)
|
|
361
|
+
enable_custom_split_merge, _do_not_compress_roles)
|
|
373
362
|
.MakeSharedSecondaryCache();
|
|
374
363
|
}
|
|
375
364
|
|