@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
|
@@ -131,24 +131,13 @@ using TablePropertiesCollection =
|
|
|
131
131
|
class DB {
|
|
132
132
|
public:
|
|
133
133
|
// Open the database with the specified "name" for reads and writes.
|
|
134
|
-
//
|
|
135
|
-
// OK
|
|
136
|
-
// Stores nullptr in *dbptr and returns a non-OK status on error, including
|
|
134
|
+
// On success, stores the database in *dbptr and returns OK.
|
|
135
|
+
// On error, resets *dbptr and returns a non-OK status, including
|
|
137
136
|
// if the DB is already open (read-write) by another DB object. (This
|
|
138
137
|
// guarantee depends on options.env->LockFile(), which might not provide
|
|
139
138
|
// this guarantee in a custom Env implementation.)
|
|
140
|
-
//
|
|
141
|
-
// Caller must delete *dbptr when it is no longer needed.
|
|
142
139
|
static Status Open(const Options& options, const std::string& name,
|
|
143
140
|
std::unique_ptr<DB>* dbptr);
|
|
144
|
-
// DEPRECATED: raw pointer variant
|
|
145
|
-
static Status Open(const Options& options, const std::string& name,
|
|
146
|
-
DB** dbptr) {
|
|
147
|
-
std::unique_ptr<DB> smart_ptr;
|
|
148
|
-
Status s = Open(options, name, &smart_ptr);
|
|
149
|
-
*dbptr = smart_ptr.release();
|
|
150
|
-
return s;
|
|
151
|
-
}
|
|
152
141
|
|
|
153
142
|
// Open DB with column families.
|
|
154
143
|
// db_options specify database specific options
|
|
@@ -162,21 +151,12 @@ class DB {
|
|
|
162
151
|
// If everything is OK, handles will on return be the same size
|
|
163
152
|
// as column_families --- handles[i] will be a handle that you
|
|
164
153
|
// will use to operate on column family column_family[i].
|
|
165
|
-
// Before
|
|
154
|
+
// Before destroying the DB, you have to close all column families by calling
|
|
166
155
|
// DestroyColumnFamilyHandle() with all the handles.
|
|
167
156
|
static Status Open(const DBOptions& db_options, const std::string& name,
|
|
168
157
|
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
169
158
|
std::vector<ColumnFamilyHandle*>* handles,
|
|
170
159
|
std::unique_ptr<DB>* dbptr);
|
|
171
|
-
// DEPRECATED: raw pointer variant
|
|
172
|
-
static Status Open(const DBOptions& db_options, const std::string& name,
|
|
173
|
-
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
174
|
-
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr) {
|
|
175
|
-
std::unique_ptr<DB> smart_ptr;
|
|
176
|
-
Status s = Open(db_options, name, column_families, handles, &smart_ptr);
|
|
177
|
-
*dbptr = smart_ptr.release();
|
|
178
|
-
return s;
|
|
179
|
-
}
|
|
180
160
|
|
|
181
161
|
// OpenForReadOnly() creates a Read-only instance that supports reads alone.
|
|
182
162
|
//
|
|
@@ -195,16 +175,6 @@ class DB {
|
|
|
195
175
|
static Status OpenForReadOnly(const Options& options, const std::string& name,
|
|
196
176
|
std::unique_ptr<DB>* dbptr,
|
|
197
177
|
bool error_if_wal_file_exists = false);
|
|
198
|
-
// DEPRECATED: raw pointer variant
|
|
199
|
-
static Status OpenForReadOnly(const Options& options, const std::string& name,
|
|
200
|
-
DB** dbptr,
|
|
201
|
-
bool error_if_wal_file_exists = false) {
|
|
202
|
-
std::unique_ptr<DB> smart_ptr;
|
|
203
|
-
Status s =
|
|
204
|
-
OpenForReadOnly(options, name, &smart_ptr, error_if_wal_file_exists);
|
|
205
|
-
*dbptr = smart_ptr.release();
|
|
206
|
-
return s;
|
|
207
|
-
}
|
|
208
178
|
|
|
209
179
|
// Open the database for read only with column families.
|
|
210
180
|
//
|
|
@@ -218,18 +188,6 @@ class DB {
|
|
|
218
188
|
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
219
189
|
std::vector<ColumnFamilyHandle*>* handles, std::unique_ptr<DB>* dbptr,
|
|
220
190
|
bool error_if_wal_file_exists = false);
|
|
221
|
-
// DEPRECATED: raw pointer variant
|
|
222
|
-
static Status OpenForReadOnly(
|
|
223
|
-
const DBOptions& db_options, const std::string& name,
|
|
224
|
-
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
225
|
-
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr,
|
|
226
|
-
bool error_if_wal_file_exists = false) {
|
|
227
|
-
std::unique_ptr<DB> smart_ptr;
|
|
228
|
-
Status s = OpenForReadOnly(db_options, name, column_families, handles,
|
|
229
|
-
&smart_ptr, error_if_wal_file_exists);
|
|
230
|
-
*dbptr = smart_ptr.release();
|
|
231
|
-
return s;
|
|
232
|
-
}
|
|
233
191
|
|
|
234
192
|
// OpenAsSecondary() creates a secondary instance that supports read-only
|
|
235
193
|
// operations and supports dynamic catch up with the primary (through a
|
|
@@ -251,8 +209,6 @@ class DB {
|
|
|
251
209
|
// The secondary_path argument points to a directory where the secondary
|
|
252
210
|
// instance stores its info log.
|
|
253
211
|
// The dbptr is an out-arg corresponding to the opened secondary instance.
|
|
254
|
-
// The pointer points to a heap-allocated database, and the caller should
|
|
255
|
-
// delete it after use.
|
|
256
212
|
//
|
|
257
213
|
// Return OK on success, non-OK on failures.
|
|
258
214
|
//
|
|
@@ -265,14 +221,6 @@ class DB {
|
|
|
265
221
|
static Status OpenAsSecondary(const Options& options, const std::string& name,
|
|
266
222
|
const std::string& secondary_path,
|
|
267
223
|
std::unique_ptr<DB>* dbptr);
|
|
268
|
-
// DEPRECATED: raw pointer variant
|
|
269
|
-
static Status OpenAsSecondary(const Options& options, const std::string& name,
|
|
270
|
-
const std::string& secondary_path, DB** dbptr) {
|
|
271
|
-
std::unique_ptr<DB> smart_ptr;
|
|
272
|
-
Status s = OpenAsSecondary(options, name, secondary_path, &smart_ptr);
|
|
273
|
-
*dbptr = smart_ptr.release();
|
|
274
|
-
return s;
|
|
275
|
-
}
|
|
276
224
|
|
|
277
225
|
// Open DB as secondary instance with specified column families
|
|
278
226
|
//
|
|
@@ -301,9 +249,8 @@ class DB {
|
|
|
301
249
|
// The handles is an out-arg corresponding to the opened database column
|
|
302
250
|
// family handles.
|
|
303
251
|
// The dbptr is an out-arg corresponding to the opened secondary instance.
|
|
304
|
-
//
|
|
305
|
-
//
|
|
306
|
-
// delete the pointers stored in handles vector.
|
|
252
|
+
// Before destroying the DB, the user should call
|
|
253
|
+
// DestroyColumnFamilyHandle() on all the handles.
|
|
307
254
|
//
|
|
308
255
|
// Return OK on success, non-OK on failures.
|
|
309
256
|
static Status OpenAsSecondary(
|
|
@@ -311,18 +258,6 @@ class DB {
|
|
|
311
258
|
const std::string& secondary_path,
|
|
312
259
|
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
313
260
|
std::vector<ColumnFamilyHandle*>* handles, std::unique_ptr<DB>* dbptr);
|
|
314
|
-
// DEPRECATED: raw pointer variant
|
|
315
|
-
static Status OpenAsSecondary(
|
|
316
|
-
const DBOptions& db_options, const std::string& name,
|
|
317
|
-
const std::string& secondary_path,
|
|
318
|
-
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
319
|
-
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr) {
|
|
320
|
-
std::unique_ptr<DB> smart_ptr;
|
|
321
|
-
Status s = OpenAsSecondary(db_options, name, secondary_path,
|
|
322
|
-
column_families, handles, &smart_ptr);
|
|
323
|
-
*dbptr = smart_ptr.release();
|
|
324
|
-
return s;
|
|
325
|
-
}
|
|
326
261
|
|
|
327
262
|
// EXPERIMENTAL
|
|
328
263
|
|
|
@@ -389,18 +324,6 @@ class DB {
|
|
|
389
324
|
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
390
325
|
std::vector<ColumnFamilyHandle*>* handles, std::unique_ptr<DB>* dbptr,
|
|
391
326
|
std::string trim_ts);
|
|
392
|
-
// DEPRECATED: raw pointer variant
|
|
393
|
-
static Status OpenAndTrimHistory(
|
|
394
|
-
const DBOptions& db_options, const std::string& dbname,
|
|
395
|
-
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
396
|
-
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr,
|
|
397
|
-
std::string trim_ts) {
|
|
398
|
-
std::unique_ptr<DB> smart_ptr;
|
|
399
|
-
Status s = OpenAndTrimHistory(db_options, dbname, column_families, handles,
|
|
400
|
-
&smart_ptr, trim_ts);
|
|
401
|
-
*dbptr = smart_ptr.release();
|
|
402
|
-
return s;
|
|
403
|
-
}
|
|
404
327
|
|
|
405
328
|
// Manually, synchronously attempt to resume DB writes after a write failure
|
|
406
329
|
// to the underlying filesystem. See
|
|
@@ -1063,7 +986,7 @@ class DB {
|
|
|
1063
986
|
// call one of the Seek methods on the iterator before using it).
|
|
1064
987
|
//
|
|
1065
988
|
// Caller should delete the iterator when it is no longer needed.
|
|
1066
|
-
// The returned iterator should be deleted before this db is
|
|
989
|
+
// The returned iterator should be deleted before this db is destroyed.
|
|
1067
990
|
virtual Iterator* NewIterator(const ReadOptions& options,
|
|
1068
991
|
ColumnFamilyHandle* column_family) = 0;
|
|
1069
992
|
virtual Iterator* NewIterator(const ReadOptions& options) {
|
|
@@ -1071,7 +994,7 @@ class DB {
|
|
|
1071
994
|
}
|
|
1072
995
|
// Returns iterators from a consistent database state across multiple
|
|
1073
996
|
// column families. Iterators are heap allocated and need to be deleted
|
|
1074
|
-
// before the db is
|
|
997
|
+
// before the db is destroyed
|
|
1075
998
|
virtual Status NewIterators(
|
|
1076
999
|
const ReadOptions& options,
|
|
1077
1000
|
const std::vector<ColumnFamilyHandle*>& column_families,
|
|
@@ -1253,6 +1176,10 @@ class DB {
|
|
|
1253
1176
|
// sorted runs being processed by currently running compactions.
|
|
1254
1177
|
static const std::string kNumRunningCompactionSortedRuns;
|
|
1255
1178
|
|
|
1179
|
+
// "rocksdb.compaction-abort-count" - returns the current value of the
|
|
1180
|
+
// compaction abort counter.
|
|
1181
|
+
static const std::string kCompactionAbortCount;
|
|
1182
|
+
|
|
1256
1183
|
// "rocksdb.background-errors" - returns accumulated number of background
|
|
1257
1184
|
// errors.
|
|
1258
1185
|
static const std::string kBackgroundErrors;
|
|
@@ -1628,15 +1555,39 @@ class DB {
|
|
|
1628
1555
|
// s = db->SetOptions(cfh, {{"block_based_table_factory",
|
|
1629
1556
|
// "{prepopulate_block_cache=kDisable;}"}});
|
|
1630
1557
|
virtual Status SetOptions(
|
|
1631
|
-
ColumnFamilyHandle*
|
|
1632
|
-
const std::unordered_map<std::string, std::string>&
|
|
1633
|
-
return
|
|
1558
|
+
ColumnFamilyHandle* column_family,
|
|
1559
|
+
const std::unordered_map<std::string, std::string>& opts_map) {
|
|
1560
|
+
return SetOptions(std::vector<ColumnFamilyHandle*>{column_family},
|
|
1561
|
+
opts_map);
|
|
1634
1562
|
}
|
|
1635
1563
|
// Shortcut for SetOptions on the default column family handle.
|
|
1636
1564
|
virtual Status SetOptions(
|
|
1637
1565
|
const std::unordered_map<std::string, std::string>& new_options) {
|
|
1638
1566
|
return SetOptions(DefaultColumnFamily(), new_options);
|
|
1639
1567
|
}
|
|
1568
|
+
// Shortcut where you want to apply the same options to multiple column
|
|
1569
|
+
// families. Beneficial for avoiding reserialization of OPTIONS file.
|
|
1570
|
+
virtual Status SetOptions(
|
|
1571
|
+
const std::vector<ColumnFamilyHandle*>& column_families,
|
|
1572
|
+
const std::unordered_map<std::string, std::string>& opts_map) {
|
|
1573
|
+
std::unordered_map<ColumnFamilyHandle*,
|
|
1574
|
+
std::unordered_map<std::string, std::string>>
|
|
1575
|
+
column_families_opts_map;
|
|
1576
|
+
column_families_opts_map.reserve(column_families.size());
|
|
1577
|
+
for (auto* cf : column_families) {
|
|
1578
|
+
column_families_opts_map[cf] = opts_map;
|
|
1579
|
+
}
|
|
1580
|
+
return SetOptions(column_families_opts_map);
|
|
1581
|
+
}
|
|
1582
|
+
// SetOptions with potentially different options per column family. It is
|
|
1583
|
+
// typically better to batch all option changes together as the OPTIONS file
|
|
1584
|
+
// is written to once per SetOptions call.
|
|
1585
|
+
virtual Status SetOptions(
|
|
1586
|
+
const std::unordered_map<ColumnFamilyHandle*,
|
|
1587
|
+
std::unordered_map<std::string, std::string>>&
|
|
1588
|
+
/*column_families_opts_map*/) {
|
|
1589
|
+
return Status::NotSupported("Not implemented");
|
|
1590
|
+
}
|
|
1640
1591
|
|
|
1641
1592
|
// Like SetOptions but for DBOptions, including the same caveats for
|
|
1642
1593
|
// usability, reliability, and performance. See GetDBOptionsFromMap() (and
|
|
@@ -1707,6 +1658,46 @@ class DB {
|
|
|
1707
1658
|
// DisableManualCompaction() has been called.
|
|
1708
1659
|
virtual void EnableManualCompaction() = 0;
|
|
1709
1660
|
|
|
1661
|
+
// Abort all compaction work/jobs. This function will signal all
|
|
1662
|
+
// running compactions (both automatic and manual, background and foreground)
|
|
1663
|
+
// to abort and will wait for them to finish or abort before returning. After
|
|
1664
|
+
// this function returns, new compaction work will be aborted immediately
|
|
1665
|
+
// until ResumeAllCompactions() is called.
|
|
1666
|
+
//
|
|
1667
|
+
// The compaction abort is checked periodically (every 1000 keys processed),
|
|
1668
|
+
// so ongoing compactions should abort as well within a reasonable time.
|
|
1669
|
+
// This function blocks until all compactions have completed or aborted.
|
|
1670
|
+
//
|
|
1671
|
+
// Any output files from aborted compactions are automatically cleaned up,
|
|
1672
|
+
// ensuring no partial compaction results are installed, except for resumable
|
|
1673
|
+
// compaction.
|
|
1674
|
+
//
|
|
1675
|
+
// This function supports concurrent abort requests from multiple callers
|
|
1676
|
+
// without coordination between them. The call count is tracked, and
|
|
1677
|
+
// compactions only resume after the number of ResumeAllCompactions() calls
|
|
1678
|
+
// matches number of AbortAllCompactions() calls.
|
|
1679
|
+
//
|
|
1680
|
+
// Differences with other compaction control APIs:
|
|
1681
|
+
// - DisableManualCompaction(): Only pauses manual compactions, waits for
|
|
1682
|
+
// them to finish naturally. AbortAllCompactions() actively cancels both
|
|
1683
|
+
// automatic and manual compactions.
|
|
1684
|
+
// - PauseBackgroundWork(): Pauses all background work (flush + compaction),
|
|
1685
|
+
// waits for work to finish naturally. AbortAllCompactions() only affects
|
|
1686
|
+
// compactions and actively cancels them.
|
|
1687
|
+
//
|
|
1688
|
+
// Note: Compaction service (remote compaction) is not currently supported.
|
|
1689
|
+
// Aborted compactions return Status::Incomplete with subcode
|
|
1690
|
+
// kCompactionAborted.
|
|
1691
|
+
virtual void AbortAllCompactions() = 0;
|
|
1692
|
+
|
|
1693
|
+
// Resume all compactions that were aborted by AbortAllCompactions().
|
|
1694
|
+
// This function must be called as many times as AbortAllCompactions()
|
|
1695
|
+
// has been called in order to resume compactions. This reference-counting
|
|
1696
|
+
// behavior ensures that if multiple callers independently request an
|
|
1697
|
+
// abort, compactions will not resume until all of them have called
|
|
1698
|
+
// ResumeAllCompactions().
|
|
1699
|
+
virtual void ResumeAllCompactions() = 0;
|
|
1700
|
+
|
|
1710
1701
|
// Wait for all flush and compactions jobs to finish. Jobs to wait include the
|
|
1711
1702
|
// unscheduled (queued, but not scheduled yet). If the db is shutting down,
|
|
1712
1703
|
// Status::ShutdownInProgress will be returned.
|
|
@@ -1723,16 +1714,6 @@ class DB {
|
|
|
1723
1714
|
virtual int NumberLevels(ColumnFamilyHandle* column_family) = 0;
|
|
1724
1715
|
virtual int NumberLevels() { return NumberLevels(DefaultColumnFamily()); }
|
|
1725
1716
|
|
|
1726
|
-
// DEPRECATED:
|
|
1727
|
-
// Maximum level to which a new compacted memtable is pushed if it
|
|
1728
|
-
// does not create overlap.
|
|
1729
|
-
virtual int MaxMemCompactionLevel(ColumnFamilyHandle* /*column_family*/) {
|
|
1730
|
-
return 0;
|
|
1731
|
-
}
|
|
1732
|
-
virtual int MaxMemCompactionLevel() {
|
|
1733
|
-
return MaxMemCompactionLevel(DefaultColumnFamily());
|
|
1734
|
-
}
|
|
1735
|
-
|
|
1736
1717
|
// Number of files in level-0 that would stop writes.
|
|
1737
1718
|
virtual int Level0StopWriteTrigger(ColumnFamilyHandle* column_family) = 0;
|
|
1738
1719
|
virtual int Level0StopWriteTrigger() {
|
|
@@ -86,7 +86,7 @@ Status UpdateManifestForFilesState(
|
|
|
86
86
|
// keys in a category to return an empty sequence of segments.
|
|
87
87
|
//
|
|
88
88
|
// To eliminate a confusing distinction between a segment that is empty vs.
|
|
89
|
-
// "not present" for a particular key, each key is logically
|
|
89
|
+
// "not present" for a particular key, each key is logically associated with
|
|
90
90
|
// an infinite sequence of segments, including some infinite tail of 0-length
|
|
91
91
|
// segments. In practice, we only represent a finite sequence that (at least)
|
|
92
92
|
// covers the non-trivial segments.
|
|
@@ -220,7 +220,7 @@ Status UpdateManifestForFilesState(
|
|
|
220
220
|
// whole key.
|
|
221
221
|
// * Range query - Whether there {definitely isn't, might be} any entries
|
|
222
222
|
// within a lower and upper key bound, in an SST file (or partition, etc.).
|
|
223
|
-
// NOTE: For this
|
|
223
|
+
// NOTE: For this discussion, we ignore the detail of inclusive vs.
|
|
224
224
|
// exclusive bounds by assuming a generalized notion of "bound" (vs. key)
|
|
225
225
|
// that conveniently represents spaces between keys. For details, see
|
|
226
226
|
// https://github.com/facebook/rocksdb/pull/11434
|
|
@@ -300,7 +300,7 @@ Status UpdateManifestForFilesState(
|
|
|
300
300
|
// * Keys x and z are in categories in category set s, and
|
|
301
301
|
// * Key y is ordered x < y < z according to the CF comparator,
|
|
302
302
|
// then both
|
|
303
|
-
// * The common segment prefix property is
|
|
303
|
+
// * The common segment prefix property is satisfied through ordinal i-1
|
|
304
304
|
// and with category set s
|
|
305
305
|
// * x_i..j <= y_i..j <= z_i..j according to segment comparator c, where
|
|
306
306
|
// x_i..j is the concatenation of segments i through j of key x (etc.).
|
|
@@ -115,14 +115,14 @@ class ExternalTableReader {
|
|
|
115
115
|
// Point lookup the given key and return its value
|
|
116
116
|
virtual Status Get(const ReadOptions& read_options, const Slice& key,
|
|
117
117
|
const SliceTransform* prefix_extractor,
|
|
118
|
-
|
|
118
|
+
PinnableSlice* value) = 0;
|
|
119
119
|
|
|
120
120
|
// Point lookup the given vector of keys and return the values, as well
|
|
121
121
|
// as status of each individual lookup in statuses.
|
|
122
122
|
virtual void MultiGet(const ReadOptions& read_options,
|
|
123
123
|
const std::vector<Slice>& keys,
|
|
124
124
|
const SliceTransform* prefix_extractor,
|
|
125
|
-
std::vector<
|
|
125
|
+
std::vector<PinnableSlice>* values,
|
|
126
126
|
std::vector<Status>* statuses) = 0;
|
|
127
127
|
|
|
128
128
|
// Allocate and return the contents of the properties block. If the builder
|
|
@@ -22,7 +22,12 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
22
22
|
// The unknown file checksum.
|
|
23
23
|
constexpr char kUnknownFileChecksum[] = "";
|
|
24
24
|
// The unknown sst file checksum function name.
|
|
25
|
+
// Indicates that the file metadata says that no checksum factory was configured
|
|
26
|
+
// when the file was written.
|
|
25
27
|
constexpr char kUnknownFileChecksumFuncName[] = "Unknown";
|
|
28
|
+
// Used when opening a file and there is no file checksum metadata to propagate
|
|
29
|
+
// at all.
|
|
30
|
+
constexpr char kNoFileChecksumFuncName[] = "Unavailable";
|
|
26
31
|
// The standard DB file checksum function name.
|
|
27
32
|
// This is the name of the checksum function returned by
|
|
28
33
|
// GetFileChecksumGenCrc32cFactory();
|
|
@@ -201,6 +201,19 @@ struct FileOptions : EnvOptions {
|
|
|
201
201
|
// FSWritableFile object creation.
|
|
202
202
|
Env::WriteLifeTimeHint write_hint = Env::WLTH_NOT_SET;
|
|
203
203
|
|
|
204
|
+
// File checksum of the file being opened. Empty string if no checksum is
|
|
205
|
+
// available.
|
|
206
|
+
std::string file_checksum;
|
|
207
|
+
|
|
208
|
+
// Name of the checksum function used to compute file_checksum. Set to
|
|
209
|
+
// kUnknownFileChecksumFuncName when file was created without a checksum
|
|
210
|
+
// factory. Set to kNoFileChecksumFuncName when no checksum metadata is
|
|
211
|
+
// available.
|
|
212
|
+
// Production FileSystems will accept empty values for both
|
|
213
|
+
// file_checksum and file_checksum_func_name, but internally within RocksDB
|
|
214
|
+
// that is forbidden for checking/auditing purposes.
|
|
215
|
+
std::string file_checksum_func_name;
|
|
216
|
+
|
|
204
217
|
FileOptions() : EnvOptions(), handoff_checksum_type(ChecksumType::kCRC32c) {}
|
|
205
218
|
|
|
206
219
|
FileOptions(const DBOptions& opts)
|
|
@@ -216,7 +229,9 @@ struct FileOptions : EnvOptions {
|
|
|
216
229
|
io_options(opts.io_options),
|
|
217
230
|
temperature(opts.temperature),
|
|
218
231
|
handoff_checksum_type(opts.handoff_checksum_type),
|
|
219
|
-
write_hint(opts.write_hint)
|
|
232
|
+
write_hint(opts.write_hint),
|
|
233
|
+
file_checksum(opts.file_checksum),
|
|
234
|
+
file_checksum_func_name(opts.file_checksum_func_name) {}
|
|
220
235
|
|
|
221
236
|
FileOptions& operator=(const FileOptions&) = default;
|
|
222
237
|
};
|
|
@@ -750,7 +765,7 @@ class FileSystem : public Customizable {
|
|
|
750
765
|
// Abort the read IO requests submitted asynchronously. Underlying FS is
|
|
751
766
|
// required to support AbortIO API. AbortIO implementation should ensure that
|
|
752
767
|
// the all the read requests related to io_handles should be aborted and
|
|
753
|
-
// it
|
|
768
|
+
// it should call the callback for these io_handles.
|
|
754
769
|
virtual IOStatus AbortIO(std::vector<void*>& /*io_handles*/) {
|
|
755
770
|
return IOStatus::OK();
|
|
756
771
|
}
|
|
@@ -44,7 +44,7 @@ void call(Function f, Tuple t) {
|
|
|
44
44
|
template <typename... Args>
|
|
45
45
|
class FunctorWrapper {
|
|
46
46
|
public:
|
|
47
|
-
explicit FunctorWrapper(std::function<void(Args...)> functor, Args
|
|
47
|
+
explicit FunctorWrapper(std::function<void(Args...)> functor, Args&&... args)
|
|
48
48
|
: functor_(std::move(functor)), args_(std::forward<Args>(args)...) {}
|
|
49
49
|
|
|
50
50
|
void invoke() { detail::call(functor_, args_); }
|