@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
|
@@ -16,30 +16,34 @@
|
|
|
16
16
|
#include "rocksdb/options.h"
|
|
17
17
|
#include "rocksdb/slice.h"
|
|
18
18
|
#include "rocksdb/status.h"
|
|
19
|
+
#include "rocksdb/types.h"
|
|
19
20
|
|
|
20
21
|
namespace ROCKSDB_NAMESPACE {
|
|
21
22
|
|
|
22
23
|
// Prefix for user-defined index block names
|
|
23
|
-
inline const
|
|
24
|
+
inline constexpr const char* kUserDefinedIndexPrefix =
|
|
24
25
|
"rocksdb.user_defined_index.";
|
|
25
26
|
|
|
26
27
|
// This is a public API for user-defined index builders.
|
|
27
28
|
// It allows users to define their own index format and build custom
|
|
28
29
|
// indexes during table building. Currently, only a monolithic index
|
|
29
30
|
// block is supported (no partitioned index).
|
|
30
|
-
//
|
|
31
|
-
// This is currently supported only for a restricted set of use cases. The
|
|
32
|
-
// CF must be ingest only, and only files containing Puts generated by
|
|
33
|
-
// SstFileWriter are supported.
|
|
34
31
|
|
|
35
32
|
// The interface for building user-defined index.
|
|
36
33
|
class UserDefinedIndexBuilder {
|
|
37
34
|
public:
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
// Indicates the type of key-value entry being added via OnKeyAdded().
|
|
36
|
+
// UDI builders that only use AddIndexEntry() (e.g., trie-based indexes)
|
|
37
|
+
// can safely ignore this.
|
|
38
|
+
enum ValueType : uint8_t {
|
|
39
|
+
kValue = 0, // Put: the value is the full user value.
|
|
40
|
+
kDelete = 1, // Deletion (Delete, SingleDelete, or DeleteWithTimestamp):
|
|
41
|
+
// the value is typically empty.
|
|
42
|
+
kMerge = 2, // Merge operand: the value is a partial update.
|
|
43
|
+
kOther = 3, // Other types (e.g., blob reference, wide-column entity).
|
|
44
|
+
// The value format is type-specific and may not be the
|
|
45
|
+
// actual user data.
|
|
46
|
+
kTypeMax, // Sentinel — must be last. Value may change across releases.
|
|
43
47
|
};
|
|
44
48
|
|
|
45
49
|
// File offset and size of the data block
|
|
@@ -48,41 +52,68 @@ class UserDefinedIndexBuilder {
|
|
|
48
52
|
uint64_t size;
|
|
49
53
|
};
|
|
50
54
|
|
|
55
|
+
// Optional context for AddIndexEntry providing sequence numbers at block
|
|
56
|
+
// boundaries. Passed as a struct for forward-compatible extensibility
|
|
57
|
+
// (new fields can be added without breaking existing implementations).
|
|
58
|
+
struct IndexEntryContext {
|
|
59
|
+
// Sequence number of last_key_in_current_block.
|
|
60
|
+
SequenceNumber last_key_seq = 0;
|
|
61
|
+
// Sequence number of first_key_in_next_block (valid only when
|
|
62
|
+
// first_key_in_next_block != nullptr).
|
|
63
|
+
SequenceNumber first_key_seq = 0;
|
|
64
|
+
};
|
|
65
|
+
|
|
51
66
|
virtual ~UserDefinedIndexBuilder() = default;
|
|
52
67
|
|
|
53
|
-
// Add a new index entry
|
|
54
|
-
//
|
|
55
|
-
// The
|
|
56
|
-
// all the keys in the data block associated with the new index entry.
|
|
68
|
+
// Add a new index entry for a data block boundary.
|
|
69
|
+
//
|
|
70
|
+
// The keys are user keys (without the 8-byte internal key trailer).
|
|
57
71
|
//
|
|
58
|
-
// The
|
|
59
|
-
//
|
|
60
|
-
//
|
|
72
|
+
// The UDI is free to compute a separator between the two user keys and
|
|
73
|
+
// store it along with the block handle. The separator must satisfy:
|
|
74
|
+
// last_key_in_current_block <= separator < first_key_in_next_block
|
|
75
|
+
// in user-key order (ignoring sequence numbers).
|
|
61
76
|
//
|
|
62
77
|
// Called before the OnKeyAdded() call for first_key_in_next_block.
|
|
63
|
-
// @last_key_in_current_block: The last key in the current data block
|
|
64
|
-
// @first_key_in_next_block:
|
|
65
|
-
//
|
|
66
|
-
// @block_handle: offset/size of the data block
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
78
|
+
// @last_key_in_current_block: The last user key in the current data block
|
|
79
|
+
// @first_key_in_next_block: First user key in the next data block, or
|
|
80
|
+
// nullptr if this is the last block
|
|
81
|
+
// @block_handle: offset/size of the data block
|
|
82
|
+
// @separator_scratch: scratch buffer for a computed separator
|
|
83
|
+
// @context: sequence number context for block boundaries. The sequence
|
|
84
|
+
// numbers are needed when the same user key spans a data block boundary
|
|
85
|
+
// (e.g., when snapshots keep multiple versions of a key). Without
|
|
86
|
+
// sequence numbers, the UDI cannot produce a separator that distinguishes
|
|
87
|
+
// the two blocks. This mirrors the internal index's behavior of switching
|
|
88
|
+
// to full internal-key separators (see
|
|
89
|
+
// ShortenedIndexBuilder::must_use_separator_with_seq_).
|
|
90
|
+
// Implementations that don't need sequence numbers can ignore the context.
|
|
91
|
+
// @return: the separator stored in the index
|
|
74
92
|
virtual Slice AddIndexEntry(const Slice& last_key_in_current_block,
|
|
75
93
|
const Slice* first_key_in_next_block,
|
|
76
94
|
const BlockHandle& block_handle,
|
|
77
|
-
std::string* separator_scratch
|
|
95
|
+
std::string* separator_scratch,
|
|
96
|
+
const IndexEntryContext& context) = 0;
|
|
78
97
|
|
|
79
|
-
//
|
|
80
|
-
// override
|
|
81
|
-
//
|
|
82
|
-
//
|
|
98
|
+
// Called for every key-value pair added to the SST file. UDI builders may
|
|
99
|
+
// override this to collect per-key information (e.g., for secondary
|
|
100
|
+
// indexes). Builders that only use separator keys from AddIndexEntry()
|
|
101
|
+
// (e.g., trie-based indexes) can leave this as a no-op.
|
|
83
102
|
//
|
|
84
|
-
// The
|
|
85
|
-
//
|
|
103
|
+
// @key: The user key (without sequence number or type suffix).
|
|
104
|
+
// @type: The entry type — kValue (Put), kDelete, kMerge, or kOther.
|
|
105
|
+
// For kDelete entries, the value may be empty. For kOther, the
|
|
106
|
+
// value format is type-specific and may not be actual user data.
|
|
107
|
+
// @value: The associated value (may be empty for deletions).
|
|
108
|
+
//
|
|
109
|
+
// NOTE: In SST files produced by flush or compaction, there may be multiple
|
|
110
|
+
// entries for the same user key with different sequence numbers (e.g., when
|
|
111
|
+
// snapshots are active). UDI builders that use OnKeyAdded() should be
|
|
112
|
+
// prepared for this.
|
|
113
|
+
//
|
|
114
|
+
// Thread safety: For a given builder instance, OnKeyAdded() and
|
|
115
|
+
// AddIndexEntry() are always called from a single thread. Builders do
|
|
116
|
+
// not need internal synchronization.
|
|
86
117
|
virtual void OnKeyAdded(const Slice& /*key*/, ValueType /*type*/,
|
|
87
118
|
const Slice& /*value*/) {}
|
|
88
119
|
|
|
@@ -104,13 +135,36 @@ class UserDefinedIndexIterator {
|
|
|
104
135
|
// this as an opportunity to do any prefetching and buffering of results.
|
|
105
136
|
virtual void Prepare(const ScanOptions scan_opts[], size_t num_opts) = 0;
|
|
106
137
|
|
|
138
|
+
// Optional context for SeekAndGetResult providing the target sequence
|
|
139
|
+
// number. Passed as a struct for forward-compatible extensibility.
|
|
140
|
+
struct SeekContext {
|
|
141
|
+
// Sequence number of the target key. Used by UDI implementations that
|
|
142
|
+
// encode sequence numbers (when the same user key spans multiple data
|
|
143
|
+
// blocks) to locate the correct block.
|
|
144
|
+
SequenceNumber target_seq = 0;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
// Position the index iterator at the very first index entry. The result
|
|
148
|
+
// must be populated the same way as SeekAndGetResult.
|
|
149
|
+
//
|
|
150
|
+
// The default implementation calls SeekAndGetResult with an empty key,
|
|
151
|
+
// which works for BytewiseComparator (empty string is the smallest key).
|
|
152
|
+
// Implementations should override this if they can reach the first entry
|
|
153
|
+
// more efficiently or if they use a comparator where empty is not smallest.
|
|
154
|
+
virtual Status SeekToFirstAndGetResult(IterateResult* result) {
|
|
155
|
+
return SeekAndGetResult(Slice(), result, SeekContext{});
|
|
156
|
+
}
|
|
157
|
+
|
|
107
158
|
// Given the target key, position the index iterator at the index entry
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
159
|
+
// for the data block that may contain the target.
|
|
160
|
+
//
|
|
161
|
+
// The target is a user key.
|
|
162
|
+
//
|
|
163
|
+
// The result must be updated with the index key and bound_check_result.
|
|
164
|
+
// bound_check_result should be kOutOfBound if no block satisfies the
|
|
165
|
+
// target, kInbound if the data block is definitely within bounds, or
|
|
166
|
+
// kUnknown if partially within bounds.
|
|
167
|
+
//
|
|
114
168
|
// The UDI implementation needs to be careful about returning kOutOfBound.
|
|
115
169
|
// If a limit key is specified in ScanOptions, an implementation that
|
|
116
170
|
// does not store the first key in the block for the corresponding index
|
|
@@ -119,8 +173,14 @@ class UserDefinedIndexIterator {
|
|
|
119
173
|
// is out of bounds w.r.t the limit. Other termination criteria (specified
|
|
120
174
|
// in property_bag) may cause the scan to terminate earlier, in which case
|
|
121
175
|
// kOutOfBound can be returned earlier.
|
|
122
|
-
|
|
123
|
-
|
|
176
|
+
//
|
|
177
|
+
// @context: sequence number context for the seek. The sequence number is
|
|
178
|
+
// needed when the same user key spans multiple data blocks with different
|
|
179
|
+
// sequence numbers. Without it, the UDI cannot distinguish which block to
|
|
180
|
+
// return for a given (user_key, seqno) target. Implementations that don't
|
|
181
|
+
// need sequence numbers can ignore the context.
|
|
182
|
+
virtual Status SeekAndGetResult(const Slice& target, IterateResult* result,
|
|
183
|
+
const SeekContext& context) = 0;
|
|
124
184
|
|
|
125
185
|
// Advance to the next index entry. The result must be populated similar
|
|
126
186
|
// to SeekAndGetResult.
|
|
@@ -152,7 +212,7 @@ struct UserDefinedIndexOption {
|
|
|
152
212
|
// Factory for creating user-defined index builders.
|
|
153
213
|
class UserDefinedIndexFactory : public Customizable {
|
|
154
214
|
public:
|
|
155
|
-
|
|
215
|
+
~UserDefinedIndexFactory() override = default;
|
|
156
216
|
|
|
157
217
|
static const char* Type() { return "UserDefinedIndexFactory"; }
|
|
158
218
|
|
|
@@ -174,14 +234,14 @@ class UserDefinedIndexFactory : public Customizable {
|
|
|
174
234
|
std::unique_ptr<UserDefinedIndexBuilder>& builder) const {
|
|
175
235
|
builder.reset(NewBuilder());
|
|
176
236
|
return Status::OK();
|
|
177
|
-
}
|
|
237
|
+
}
|
|
178
238
|
|
|
179
239
|
virtual Status NewReader(
|
|
180
240
|
const UserDefinedIndexOption& /*option*/, Slice& index_block,
|
|
181
241
|
std::unique_ptr<UserDefinedIndexReader>& reader) const {
|
|
182
242
|
reader = NewReader(index_block);
|
|
183
243
|
return Status::OK();
|
|
184
|
-
}
|
|
244
|
+
}
|
|
185
245
|
};
|
|
186
246
|
|
|
187
247
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -66,7 +66,7 @@ class DBWithTTL : public StackableDB {
|
|
|
66
66
|
virtual Status GetTtl(ColumnFamilyHandle* h, int32_t* ttl) = 0;
|
|
67
67
|
|
|
68
68
|
protected:
|
|
69
|
-
explicit DBWithTTL(DB
|
|
69
|
+
explicit DBWithTTL(std::unique_ptr<DB>&& db) : StackableDB(std::move(db)) {}
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
#include <algorithm>
|
|
12
12
|
#include <functional>
|
|
13
13
|
#include <map>
|
|
14
|
+
#include <memory>
|
|
14
15
|
#include <sstream>
|
|
15
16
|
#include <string>
|
|
16
17
|
#include <vector>
|
|
@@ -23,6 +24,7 @@
|
|
|
23
24
|
#include "rocksdb/slice.h"
|
|
24
25
|
#include "rocksdb/utilities/db_ttl.h"
|
|
25
26
|
#include "rocksdb/utilities/ldb_cmd_execute_result.h"
|
|
27
|
+
#include "rocksdb/utilities/transaction_db.h"
|
|
26
28
|
|
|
27
29
|
namespace ROCKSDB_NAMESPACE {
|
|
28
30
|
|
|
@@ -42,6 +44,8 @@ class LDBCommand {
|
|
|
42
44
|
static const std::string ARG_TTL;
|
|
43
45
|
static const std::string ARG_TTL_START;
|
|
44
46
|
static const std::string ARG_TTL_END;
|
|
47
|
+
static const std::string ARG_USE_TXN;
|
|
48
|
+
static const std::string ARG_TXN_WRITE_POLICY;
|
|
45
49
|
static const std::string ARG_TIMESTAMP;
|
|
46
50
|
static const std::string ARG_TRY_LOAD_OPTIONS;
|
|
47
51
|
static const std::string ARG_IGNORE_UNKNOWN_OPTIONS;
|
|
@@ -53,6 +57,7 @@ class LDBCommand {
|
|
|
53
57
|
static const std::string ARG_COMPRESSION_TYPE;
|
|
54
58
|
static const std::string ARG_COMPRESSION_MAX_DICT_BYTES;
|
|
55
59
|
static const std::string ARG_BLOCK_SIZE;
|
|
60
|
+
static const std::string ARG_UNIFORM_CV_THRESHOLD;
|
|
56
61
|
static const std::string ARG_AUTO_COMPACTION;
|
|
57
62
|
static const std::string ARG_DB_WRITE_BUFFER_SIZE;
|
|
58
63
|
static const std::string ARG_WRITE_BUFFER_SIZE;
|
|
@@ -163,8 +168,9 @@ class LDBCommand {
|
|
|
163
168
|
std::string secondary_path_;
|
|
164
169
|
std::string leader_path_;
|
|
165
170
|
std::string column_family_name_;
|
|
166
|
-
DB
|
|
171
|
+
std::unique_ptr<DB> db_;
|
|
167
172
|
DBWithTTL* db_ttl_;
|
|
173
|
+
TransactionDB* db_txn_;
|
|
168
174
|
std::map<std::string, ColumnFamilyHandle*> cf_handles_;
|
|
169
175
|
std::map<uint32_t, const Comparator*> ucmps_;
|
|
170
176
|
|
|
@@ -183,6 +189,13 @@ class LDBCommand {
|
|
|
183
189
|
/** If true, the value is treated as timestamp suffixed */
|
|
184
190
|
bool is_db_ttl_;
|
|
185
191
|
|
|
192
|
+
/** If true, open the DB as TransactionDB */
|
|
193
|
+
bool is_db_txn_;
|
|
194
|
+
|
|
195
|
+
/** Transaction write policy (0=WRITE_COMMITTED, 1=WRITE_PREPARED,
|
|
196
|
+
* 2=WRITE_UNPREPARED) */
|
|
197
|
+
int txn_write_policy_;
|
|
198
|
+
|
|
186
199
|
// If true, the kvs are output with their insert/modify timestamp in a ttl db
|
|
187
200
|
bool timestamp_;
|
|
188
201
|
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#pragma once
|
|
7
7
|
|
|
8
8
|
#include <map>
|
|
9
|
+
#include <memory>
|
|
9
10
|
#include <string>
|
|
10
11
|
#include <unordered_set>
|
|
11
12
|
#include <vector>
|
|
@@ -39,8 +40,11 @@ class MemoryUtil {
|
|
|
39
40
|
// only report the usage of the input "cache_set" without
|
|
40
41
|
// including those Cache usage inside the input list "dbs"
|
|
41
42
|
// of DBs.
|
|
43
|
+
//
|
|
44
|
+
// Supports vectors of DB* or unique_ptr<DB>.
|
|
45
|
+
template <typename DBPtr>
|
|
42
46
|
static Status GetApproximateMemoryUsageByType(
|
|
43
|
-
const std::vector<
|
|
47
|
+
const std::vector<DBPtr>& dbs,
|
|
44
48
|
const std::unordered_set<const Cache*> cache_set,
|
|
45
49
|
std::map<MemoryUtil::UsageType, uint64_t>* usage_by_type);
|
|
46
50
|
};
|
|
@@ -123,7 +123,8 @@ class OptimisticTransactionDB : public StackableDB {
|
|
|
123
123
|
|
|
124
124
|
protected:
|
|
125
125
|
// To Create an OptimisticTransactionDB, call Open()
|
|
126
|
-
explicit OptimisticTransactionDB(DB
|
|
126
|
+
explicit OptimisticTransactionDB(std::unique_ptr<DB>&& db)
|
|
127
|
+
: StackableDB(std::move(db)) {}
|
|
127
128
|
};
|
|
128
129
|
|
|
129
130
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -375,6 +375,8 @@ class StackableDB : public DB {
|
|
|
375
375
|
void DisableManualCompaction() override {
|
|
376
376
|
return db_->DisableManualCompaction();
|
|
377
377
|
}
|
|
378
|
+
void AbortAllCompactions() override { return db_->AbortAllCompactions(); }
|
|
379
|
+
void ResumeAllCompactions() override { return db_->ResumeAllCompactions(); }
|
|
378
380
|
|
|
379
381
|
Status WaitForCompact(
|
|
380
382
|
const WaitForCompactOptions& wait_for_compact_options) override {
|
|
@@ -386,11 +388,6 @@ class StackableDB : public DB {
|
|
|
386
388
|
return db_->NumberLevels(column_family);
|
|
387
389
|
}
|
|
388
390
|
|
|
389
|
-
using DB::MaxMemCompactionLevel;
|
|
390
|
-
int MaxMemCompactionLevel(ColumnFamilyHandle* column_family) override {
|
|
391
|
-
return db_->MaxMemCompactionLevel(column_family);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
391
|
using DB::Level0StopWriteTrigger;
|
|
395
392
|
int Level0StopWriteTrigger(ColumnFamilyHandle* column_family) override {
|
|
396
393
|
return db_->Level0StopWriteTrigger(column_family);
|
|
@@ -549,10 +546,11 @@ class StackableDB : public DB {
|
|
|
549
546
|
}
|
|
550
547
|
|
|
551
548
|
using DB::SetOptions;
|
|
552
|
-
Status SetOptions(
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
549
|
+
Status SetOptions(
|
|
550
|
+
const std::unordered_map<ColumnFamilyHandle*,
|
|
551
|
+
std::unordered_map<std::string, std::string>>&
|
|
552
|
+
column_families_opts_map) override {
|
|
553
|
+
return db_->SetOptions(column_families_opts_map);
|
|
556
554
|
}
|
|
557
555
|
|
|
558
556
|
Status SetDBOptions(const std::unordered_map<std::string, std::string>&
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
// NOTE: in 'main' development branch, this should be the *next*
|
|
13
13
|
// minor or major version number planned for release.
|
|
14
|
-
#define ROCKSDB_MAJOR
|
|
15
|
-
#define ROCKSDB_MINOR
|
|
14
|
+
#define ROCKSDB_MAJOR 11
|
|
15
|
+
#define ROCKSDB_MINOR 1
|
|
16
16
|
#define ROCKSDB_PATCH 1
|
|
17
17
|
|
|
18
18
|
// Make it easy to do conditional compilation based on version checks, i.e.
|
|
@@ -647,7 +647,7 @@ TEST_F(AutoRollLoggerTest, LogHeaderTest) {
|
|
|
647
647
|
}
|
|
648
648
|
|
|
649
649
|
TEST_F(AutoRollLoggerTest, LogFileExistence) {
|
|
650
|
-
ROCKSDB_NAMESPACE::DB
|
|
650
|
+
std::unique_ptr<ROCKSDB_NAMESPACE::DB> db;
|
|
651
651
|
ROCKSDB_NAMESPACE::Options options;
|
|
652
652
|
#ifdef OS_WIN
|
|
653
653
|
// Replace all slashes in the path so windows CompSpec does not
|
|
@@ -664,7 +664,6 @@ TEST_F(AutoRollLoggerTest, LogFileExistence) {
|
|
|
664
664
|
options.create_if_missing = true;
|
|
665
665
|
ASSERT_OK(ROCKSDB_NAMESPACE::DB::Open(options, kTestDir, &db));
|
|
666
666
|
ASSERT_OK(default_env->FileExists(kLogFile));
|
|
667
|
-
delete db;
|
|
668
667
|
}
|
|
669
668
|
|
|
670
669
|
TEST_F(AutoRollLoggerTest, FileCreateFailure) {
|
|
@@ -83,7 +83,7 @@ TEST_P(MemoryAllocatorTest, DatabaseBlockCache) {
|
|
|
83
83
|
auto cache = NewLRUCache(1024 * 1024, 6, false, 0.0, allocator_);
|
|
84
84
|
table_options.block_cache = cache;
|
|
85
85
|
options.table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
86
|
-
DB
|
|
86
|
+
std::unique_ptr<DB> db;
|
|
87
87
|
Status s = DB::Open(options, dbname, &db);
|
|
88
88
|
ASSERT_OK(s);
|
|
89
89
|
ASSERT_NE(db, nullptr);
|
|
@@ -115,7 +115,7 @@ TEST_P(MemoryAllocatorTest, DatabaseBlockCache) {
|
|
|
115
115
|
// Close database
|
|
116
116
|
s = db->Close();
|
|
117
117
|
ASSERT_OK(s);
|
|
118
|
-
|
|
118
|
+
db.reset();
|
|
119
119
|
ASSERT_OK(DestroyDB(dbname, options));
|
|
120
120
|
}
|
|
121
121
|
|