@nxtedition/rocksdb 15.4.1 → 15.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +24 -15
- package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
- package/deps/rocksdb/rocksdb/BUCK +42 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
- package/deps/rocksdb/rocksdb/Makefile +59 -32
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
- package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
- package/deps/rocksdb/rocksdb/db/builder.h +7 -0
- package/deps/rocksdb/rocksdb/db/c.cc +373 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
- package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
- package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
- package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
- package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
- package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
- package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
- package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
- package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
- package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
- package/deps/rocksdb/rocksdb/env/env.cc +1 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
- package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
- package/deps/rocksdb/rocksdb/folly.mk +22 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
- package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
- package/deps/rocksdb/rocksdb/options/options.cc +5 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
- package/deps/rocksdb/rocksdb/port/lang.h +4 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
- package/deps/rocksdb/rocksdb/src.mk +12 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
- package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
- package/deps/rocksdb/rocksdb/table/format.cc +27 -15
- package/deps/rocksdb/rocksdb/table/format.h +41 -15
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
- package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
- package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
- package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
- package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
- package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
- package/deps/rocksdb/rocksdb/util/coding.h +14 -27
- package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
- package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
- package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
- package/deps/rocksdb/rocksdb/util/math.h +3 -1
- package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
- package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
- package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
- package/deps/rocksdb/rocksdb/util/status.cc +3 -1
- package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
- package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
- package/deps/rocksdb/rocksdb.gyp +7 -0
- package/iterator.js +2 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
|
@@ -182,6 +182,7 @@ TEST_F(OptionsSettableTest, BlockBasedTableOptionsAllFieldsSettable) {
|
|
|
182
182
|
"pin_l0_filter_and_index_blocks_in_cache=1;"
|
|
183
183
|
"pin_top_level_index_and_filter=1;"
|
|
184
184
|
"index_type=kHashSearch;"
|
|
185
|
+
"index_block_search_type=kBinary;"
|
|
185
186
|
"data_block_index_type=kDataBlockBinaryAndHash;"
|
|
186
187
|
"index_shortening=kNoShortening;"
|
|
187
188
|
"data_block_hash_table_util_ratio=0.75;"
|
|
@@ -206,7 +207,9 @@ TEST_F(OptionsSettableTest, BlockBasedTableOptionsAllFieldsSettable) {
|
|
|
206
207
|
"prepopulate_block_cache=kDisable;"
|
|
207
208
|
"initial_auto_readahead_size=0;"
|
|
208
209
|
"num_file_reads_for_auto_readahead=0;"
|
|
209
|
-
"fail_if_no_udi_on_open=true"
|
|
210
|
+
"fail_if_no_udi_on_open=true;"
|
|
211
|
+
"separate_key_value_in_data_block=true;"
|
|
212
|
+
"uniform_cv_threshold=0.2",
|
|
210
213
|
new_bbto));
|
|
211
214
|
|
|
212
215
|
ASSERT_EQ(unset_bytes_base,
|
|
@@ -292,7 +295,8 @@ TEST_F(OptionsSettableTest, TablePropertiesAllFieldsSettable) {
|
|
|
292
295
|
"name=64656661756C74;user_defined_timestamps_persisted=1;num_entries=100;"
|
|
293
296
|
"external_sst_file_global_seqno_offset=0;num_merge_operands=0;index_key_"
|
|
294
297
|
"is_user_key=0;key_largest_seqno=18446744073709551615;key_smallest_seqno="
|
|
295
|
-
"18;"
|
|
298
|
+
"18;data_block_restart_interval=16;index_block_restart_interval=1;"
|
|
299
|
+
"separate_key_value_in_data_block=0;",
|
|
296
300
|
new_tp));
|
|
297
301
|
|
|
298
302
|
// All bytes are set from the parse
|
|
@@ -385,102 +389,104 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
385
389
|
ConfigOptions config_options(*options);
|
|
386
390
|
config_options.input_strings_escaped = false;
|
|
387
391
|
config_options.ignore_unknown_options = false;
|
|
388
|
-
ASSERT_OK(
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
392
|
+
ASSERT_OK(GetDBOptionsFromString(
|
|
393
|
+
config_options, *options,
|
|
394
|
+
"wal_bytes_per_sync=4295048118;"
|
|
395
|
+
"delete_obsolete_files_period_micros=4294967758;"
|
|
396
|
+
"WAL_ttl_seconds=4295008036;"
|
|
397
|
+
"WAL_size_limit_MB=4295036161;"
|
|
398
|
+
"max_write_batch_group_size_bytes=1048576;"
|
|
399
|
+
"wal_dir=path/to/wal_dir;"
|
|
400
|
+
"db_write_buffer_size=2587;"
|
|
401
|
+
"max_subcompactions=64330;"
|
|
402
|
+
"table_cache_numshardbits=28;"
|
|
403
|
+
"max_open_files=72;"
|
|
404
|
+
"max_file_opening_threads=35;"
|
|
405
|
+
"max_background_jobs=8;"
|
|
406
|
+
"max_background_compactions=33;"
|
|
407
|
+
"use_fsync=true;"
|
|
408
|
+
"use_adaptive_mutex=false;"
|
|
409
|
+
"max_total_wal_size=4295005604;"
|
|
410
|
+
"compaction_readahead_size=0;"
|
|
411
|
+
"keep_log_file_num=4890;"
|
|
412
|
+
"skip_stats_update_on_db_open=false;"
|
|
413
|
+
"max_manifest_file_size=4295009941;"
|
|
414
|
+
"max_manifest_space_amp_pct=321;"
|
|
415
|
+
"db_log_dir=path/to/db_log_dir;"
|
|
416
|
+
"writable_file_max_buffer_size=1048576;"
|
|
417
|
+
"paranoid_checks=true;"
|
|
418
|
+
"open_files_async=true;"
|
|
419
|
+
"flush_verify_memtable_count=true;"
|
|
420
|
+
"compaction_verify_record_count=true;"
|
|
421
|
+
"track_and_verify_wals_in_manifest=true;"
|
|
422
|
+
"track_and_verify_wals=true;"
|
|
423
|
+
"verify_sst_unique_id_in_manifest=true;"
|
|
424
|
+
"is_fd_close_on_exec=false;"
|
|
425
|
+
"bytes_per_sync=4295013613;"
|
|
426
|
+
"strict_bytes_per_sync=true;"
|
|
427
|
+
"enable_thread_tracking=false;"
|
|
428
|
+
"recycle_log_file_num=0;"
|
|
429
|
+
"create_missing_column_families=true;"
|
|
430
|
+
"log_file_time_to_roll=3097;"
|
|
431
|
+
"max_background_flushes=35;"
|
|
432
|
+
"create_if_missing=false;"
|
|
433
|
+
"error_if_exists=true;"
|
|
434
|
+
"delayed_write_rate=4294976214;"
|
|
435
|
+
"manifest_preallocation_size=1222;"
|
|
436
|
+
"allow_mmap_writes=false;"
|
|
437
|
+
"stats_dump_period_sec=70127;"
|
|
438
|
+
"stats_persist_period_sec=54321;"
|
|
439
|
+
"persist_stats_to_disk=true;"
|
|
440
|
+
"stats_history_buffer_size=14159;"
|
|
441
|
+
"allow_fallocate=true;"
|
|
442
|
+
"allow_mmap_reads=false;"
|
|
443
|
+
"use_direct_reads=false;"
|
|
444
|
+
"use_direct_io_for_flush_and_compaction=false;"
|
|
445
|
+
"max_log_file_size=4607;"
|
|
446
|
+
"advise_random_on_open=true;"
|
|
447
|
+
"enable_pipelined_write=false;"
|
|
448
|
+
"unordered_write=false;"
|
|
449
|
+
"allow_concurrent_memtable_write=true;"
|
|
450
|
+
"wal_recovery_mode=kPointInTimeRecovery;"
|
|
451
|
+
"enable_write_thread_adaptive_yield=true;"
|
|
452
|
+
"write_thread_slow_yield_usec=5;"
|
|
453
|
+
"write_thread_max_yield_usec=1000;"
|
|
454
|
+
"info_log_level=DEBUG_LEVEL;"
|
|
455
|
+
"dump_malloc_stats=false;"
|
|
456
|
+
"allow_2pc=false;"
|
|
457
|
+
"avoid_flush_during_recovery=false;"
|
|
458
|
+
"enforce_write_buffer_manager_during_recovery=true;"
|
|
459
|
+
"avoid_flush_during_shutdown=false;"
|
|
460
|
+
"allow_ingest_behind=false;"
|
|
461
|
+
"concurrent_prepare=false;"
|
|
462
|
+
"two_write_queues=false;"
|
|
463
|
+
"manual_wal_flush=false;"
|
|
464
|
+
"wal_compression=kZSTD;"
|
|
465
|
+
"background_close_inactive_wals=true;"
|
|
466
|
+
"seq_per_batch=false;"
|
|
467
|
+
"atomic_flush=false;"
|
|
468
|
+
"avoid_unnecessary_blocking_io=false;"
|
|
469
|
+
"log_readahead_size=0;"
|
|
470
|
+
"write_dbid_to_manifest=false;"
|
|
471
|
+
"best_efforts_recovery=false;"
|
|
472
|
+
"max_bgerror_resume_count=2;"
|
|
473
|
+
"bgerror_resume_retry_interval=1000000;"
|
|
474
|
+
"db_host_id=hostname;"
|
|
475
|
+
"lowest_used_cache_tier=kNonVolatileBlockTier;"
|
|
476
|
+
"allow_data_in_errors=false;"
|
|
477
|
+
"enforce_single_del_contracts=false;"
|
|
478
|
+
"daily_offpeak_time_utc=08:30-19:00;"
|
|
479
|
+
"follower_refresh_catchup_period_ms=123;"
|
|
480
|
+
"follower_catchup_retry_count=456;"
|
|
481
|
+
"follower_catchup_retry_wait_ms=789;"
|
|
482
|
+
"metadata_write_temperature=kCold;"
|
|
483
|
+
"wal_write_temperature=kHot;"
|
|
484
|
+
"background_close_inactive_wals=true;"
|
|
485
|
+
"write_dbid_to_manifest=true;"
|
|
486
|
+
"write_identity_file=true;"
|
|
487
|
+
"verify_manifest_content_on_close=false;"
|
|
488
|
+
"prefix_seek_opt_in_only=true;",
|
|
489
|
+
new_options));
|
|
484
490
|
|
|
485
491
|
ASSERT_EQ(unset_bytes_base, NumUnsetBytes(new_options_ptr, sizeof(DBOptions),
|
|
486
492
|
kDBOptionsExcluded));
|
|
@@ -508,7 +514,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
508
514
|
// ColumnFamilyOptions.
|
|
509
515
|
const OffsetGap kColumnFamilyOptionsExcluded = {
|
|
510
516
|
{offsetof(struct ColumnFamilyOptions, inplace_callback),
|
|
511
|
-
sizeof(UpdateStatus(*)(char*, uint32_t*, Slice, std::string*))},
|
|
517
|
+
sizeof(UpdateStatus (*)(char*, uint32_t*, Slice, std::string*))},
|
|
512
518
|
{offsetof(struct ColumnFamilyOptions,
|
|
513
519
|
memtable_insert_with_hint_prefix_extractor),
|
|
514
520
|
sizeof(std::shared_ptr<const SliceTransform>)},
|
|
@@ -541,8 +547,6 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
541
547
|
sizeof(std::shared_ptr<CompressionManager>)},
|
|
542
548
|
{offsetof(struct ColumnFamilyOptions, prefix_extractor),
|
|
543
549
|
sizeof(std::shared_ptr<const SliceTransform>)},
|
|
544
|
-
{offsetof(struct ColumnFamilyOptions, snap_refresh_nanos),
|
|
545
|
-
sizeof(uint64_t)},
|
|
546
550
|
{offsetof(struct ColumnFamilyOptions, table_factory),
|
|
547
551
|
sizeof(std::shared_ptr<TableFactory>)},
|
|
548
552
|
{offsetof(struct ColumnFamilyOptions, cf_paths),
|
|
@@ -677,7 +681,8 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
677
681
|
"preserve_internal_time_seconds=86400;"
|
|
678
682
|
"compaction_options_fifo={max_table_files_size=3;allow_"
|
|
679
683
|
"compaction=true;age_for_warm=0;file_temperature_age_thresholds={{"
|
|
680
|
-
"temperature=kCold;age=12345}};
|
|
684
|
+
"temperature=kCold;age=12345}};max_data_files_size=1073741824;"
|
|
685
|
+
"use_kv_ratio_compaction=false;};"
|
|
681
686
|
"blob_cache=1M;"
|
|
682
687
|
"memtable_protection_bytes_per_key=2;"
|
|
683
688
|
"persist_user_defined_timestamps=true;"
|
|
@@ -690,7 +695,8 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
690
695
|
"memtable_op_scan_flush_trigger=123;"
|
|
691
696
|
"memtable_avg_op_scan_flush_trigger=12;"
|
|
692
697
|
"cf_allow_ingest_behind=1;"
|
|
693
|
-
"
|
|
698
|
+
"memtable_batch_lookup_optimization=1;"
|
|
699
|
+
"verify_output_flags=2053;",
|
|
694
700
|
new_options));
|
|
695
701
|
|
|
696
702
|
ASSERT_NE(new_options->blob_cache.get(), nullptr);
|
|
@@ -1752,6 +1752,19 @@ TEST_F(OptionsTest, MutableCFOptions) {
|
|
|
1752
1752
|
config_options, cf_opts, {{"paranoid_file_checks", "false"}}, &cf_opts));
|
|
1753
1753
|
ASSERT_EQ(cf_opts.paranoid_file_checks, false);
|
|
1754
1754
|
|
|
1755
|
+
// Test verify_output_flags with kVerifyFileChecksum (bit 2)
|
|
1756
|
+
// 2052 = 4 (kVerifyFileChecksum) | 2048 (kEnableForRemoteCompaction)
|
|
1757
|
+
ASSERT_OK(GetColumnFamilyOptionsFromString(
|
|
1758
|
+
config_options, cf_opts, "verify_output_flags=2052;", &cf_opts));
|
|
1759
|
+
ASSERT_NE(
|
|
1760
|
+
(cf_opts.verify_output_flags & VerifyOutputFlags::kVerifyFileChecksum),
|
|
1761
|
+
VerifyOutputFlags::kVerifyNone);
|
|
1762
|
+
ASSERT_NE((cf_opts.verify_output_flags &
|
|
1763
|
+
VerifyOutputFlags::kEnableForRemoteCompaction),
|
|
1764
|
+
VerifyOutputFlags::kVerifyNone);
|
|
1765
|
+
ASSERT_EQ(
|
|
1766
|
+
(cf_opts.verify_output_flags & VerifyOutputFlags::kVerifyBlockChecksum),
|
|
1767
|
+
VerifyOutputFlags::kVerifyNone);
|
|
1755
1768
|
// Should replace the factory with the new setting
|
|
1756
1769
|
ASSERT_OK(GetColumnFamilyOptionsFromMap(
|
|
1757
1770
|
config_options, cf_opts,
|
|
@@ -2417,6 +2430,7 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2417
2430
|
{"max_compaction_bytes", "21"},
|
|
2418
2431
|
{"soft_rate_limit", "1.1"},
|
|
2419
2432
|
{"hard_rate_limit", "2.1"},
|
|
2433
|
+
{"snap_refresh_nanos", "1000000"},
|
|
2420
2434
|
{"rate_limit_delay_max_milliseconds", "100"},
|
|
2421
2435
|
{"hard_pending_compaction_bytes_limit", "211"},
|
|
2422
2436
|
{"arena_block_size", "22"},
|
|
@@ -59,33 +59,31 @@ static inline bool HasJemalloc() { return true; }
|
|
|
59
59
|
|
|
60
60
|
// Declare non-standard jemalloc APIs as weak symbols. We can null-check these
|
|
61
61
|
// symbols to detect whether jemalloc is linked with the binary.
|
|
62
|
-
extern "C" JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN void JEMALLOC_NOTHROW
|
|
62
|
+
extern "C" JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN void JEMALLOC_NOTHROW*
|
|
63
63
|
mallocx(size_t, int) JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
|
|
64
64
|
__attribute__((__weak__));
|
|
65
|
-
extern "C" JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN void JEMALLOC_NOTHROW
|
|
66
|
-
rallocx(void
|
|
67
|
-
extern "C" size_t JEMALLOC_NOTHROW xallocx(void
|
|
65
|
+
extern "C" JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN void JEMALLOC_NOTHROW*
|
|
66
|
+
rallocx(void*, size_t, int) JEMALLOC_ALLOC_SIZE(2) __attribute__((__weak__));
|
|
67
|
+
extern "C" size_t JEMALLOC_NOTHROW xallocx(void*, size_t, size_t, int)
|
|
68
68
|
__attribute__((__weak__));
|
|
69
|
-
extern "C" size_t JEMALLOC_NOTHROW sallocx(const void
|
|
70
|
-
|
|
71
|
-
extern "C" void JEMALLOC_NOTHROW dallocx(void
|
|
72
|
-
extern "C" void JEMALLOC_NOTHROW sdallocx(void
|
|
69
|
+
extern "C" size_t JEMALLOC_NOTHROW sallocx(const void*, int) JEMALLOC_ATTR(pure)
|
|
70
|
+
__attribute__((__weak__));
|
|
71
|
+
extern "C" void JEMALLOC_NOTHROW dallocx(void*, int) __attribute__((__weak__));
|
|
72
|
+
extern "C" void JEMALLOC_NOTHROW sdallocx(void*, size_t, int)
|
|
73
73
|
__attribute__((__weak__));
|
|
74
74
|
extern "C" size_t JEMALLOC_NOTHROW nallocx(size_t, int) JEMALLOC_ATTR(pure)
|
|
75
75
|
__attribute__((__weak__));
|
|
76
|
-
extern "C" int JEMALLOC_NOTHROW mallctl(const char
|
|
76
|
+
extern "C" int JEMALLOC_NOTHROW mallctl(const char*, void*, size_t*, void*,
|
|
77
77
|
size_t) __attribute__((__weak__));
|
|
78
|
-
extern "C" int JEMALLOC_NOTHROW mallctlnametomib(const char *, size_t
|
|
79
|
-
size_t *)
|
|
80
|
-
__attribute__((__weak__));
|
|
81
|
-
extern "C" int JEMALLOC_NOTHROW mallctlbymib(const size_t *, size_t, void *,
|
|
82
|
-
size_t *, void *, size_t)
|
|
78
|
+
extern "C" int JEMALLOC_NOTHROW mallctlnametomib(const char*, size_t*, size_t*)
|
|
83
79
|
__attribute__((__weak__));
|
|
84
|
-
extern "C"
|
|
85
|
-
|
|
80
|
+
extern "C" int JEMALLOC_NOTHROW mallctlbymib(const size_t*, size_t, void*,
|
|
81
|
+
size_t*, void*, size_t)
|
|
86
82
|
__attribute__((__weak__));
|
|
83
|
+
extern "C" void JEMALLOC_NOTHROW malloc_stats_print(
|
|
84
|
+
void (*)(void*, const char*), void*, const char*) __attribute__((__weak__));
|
|
87
85
|
extern "C" size_t JEMALLOC_NOTHROW
|
|
88
|
-
malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void
|
|
86
|
+
malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void*) JEMALLOC_CXX_THROW
|
|
89
87
|
__attribute__((__weak__));
|
|
90
88
|
|
|
91
89
|
// Check if Jemalloc is linked with the binary. Note the main program might be
|
|
@@ -69,6 +69,10 @@ constexpr bool kMustFreeHeapAllocations = false;
|
|
|
69
69
|
#define TSAN_SUPPRESSION
|
|
70
70
|
#endif // TSAN_SUPPRESSION
|
|
71
71
|
|
|
72
|
+
// Fail in debug build with a useful message, for automatically grouping
|
|
73
|
+
// related failures
|
|
74
|
+
#define DEBUG_FAIL(msg) assert(false && msg)
|
|
75
|
+
|
|
72
76
|
// Compile-time CPU feature testing compatibility
|
|
73
77
|
//
|
|
74
78
|
// A way to be extra sure these defines have been included.
|
|
@@ -74,28 +74,5 @@ using OnceType = intptr_t;
|
|
|
74
74
|
#define LEVELDB_ONCE_INIT 0
|
|
75
75
|
void InitOnce(port::OnceType*, void (*initializer)());
|
|
76
76
|
|
|
77
|
-
// ------------------ Compression -------------------
|
|
78
|
-
|
|
79
|
-
// Store the snappy compression of "input[0,input_length-1]" in *output.
|
|
80
|
-
// Returns false if snappy is not supported by this port.
|
|
81
|
-
bool Snappy_Compress(const char* input, size_t input_length,
|
|
82
|
-
std::string* output);
|
|
83
|
-
|
|
84
|
-
// If input[0,input_length-1] looks like a valid snappy compressed
|
|
85
|
-
// buffer, store the size of the uncompressed data in *result and
|
|
86
|
-
// return true. Else return false.
|
|
87
|
-
bool Snappy_GetUncompressedLength(const char* input, size_t length,
|
|
88
|
-
size_t* result);
|
|
89
|
-
|
|
90
|
-
// Attempt to snappy uncompress input[0,input_length-1] into *output.
|
|
91
|
-
// Returns true if successful, false if the input is invalid lightweight
|
|
92
|
-
// compressed data.
|
|
93
|
-
//
|
|
94
|
-
// REQUIRES: at least the first "n" bytes of output[] must be writable
|
|
95
|
-
// where "n" is the result of a successful call to
|
|
96
|
-
// Snappy_GetUncompressedLength.
|
|
97
|
-
bool Snappy_Uncompress(const char* input_data, size_t input_length,
|
|
98
|
-
char* output);
|
|
99
|
-
|
|
100
77
|
} // namespace port
|
|
101
78
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -18,6 +18,7 @@ void PrintAndFreeStack(void* /*callstack*/, int /*num_frames*/) {}
|
|
|
18
18
|
void* SaveStack(int* /*num_frames*/, int /*first_frames_to_skip*/) {
|
|
19
19
|
return nullptr;
|
|
20
20
|
}
|
|
21
|
+
void RegisterCrashCallback(CrashCallback /*callback*/) {}
|
|
21
22
|
} // namespace port
|
|
22
23
|
} // namespace ROCKSDB_NAMESPACE
|
|
23
24
|
|
|
@@ -320,6 +321,7 @@ void* SaveStack(int* num_frames, int first_frames_to_skip) {
|
|
|
320
321
|
static std::atomic<uint64_t> g_thread_handling_stack_trace{0};
|
|
321
322
|
static int g_recursion_count = 0;
|
|
322
323
|
static std::atomic<bool> g_at_exit_called{false};
|
|
324
|
+
static std::atomic<CrashCallback> g_crash_callback{nullptr};
|
|
323
325
|
|
|
324
326
|
static void StackTraceHandler(int sig) {
|
|
325
327
|
fprintf(stderr, "Received signal %d (%s)\n", sig, strsignal(sig));
|
|
@@ -360,6 +362,12 @@ static void StackTraceHandler(int sig) {
|
|
|
360
362
|
fprintf(stderr, "In a race with process already exiting...\n");
|
|
361
363
|
}
|
|
362
364
|
|
|
365
|
+
// Invoke registered crash callback before printing stack trace
|
|
366
|
+
auto callback = g_crash_callback.load(std::memory_order_acquire);
|
|
367
|
+
if (callback) {
|
|
368
|
+
callback();
|
|
369
|
+
}
|
|
370
|
+
|
|
363
371
|
// skip the top three signal handler related frames
|
|
364
372
|
PrintStack(3);
|
|
365
373
|
|
|
@@ -398,13 +406,41 @@ static void AtExit() {
|
|
|
398
406
|
g_at_exit_called.store(true, std::memory_order_release);
|
|
399
407
|
}
|
|
400
408
|
|
|
409
|
+
// Lightweight handler for graceful termination signals (SIGTERM, SIGINT).
|
|
410
|
+
// Prints the crash callback (e.g., ring buffer) but skips the
|
|
411
|
+
// expensive GDB/LLDB stack trace, since these are intentional terminations.
|
|
412
|
+
static void TerminationHandler(int sig) {
|
|
413
|
+
char buf[64];
|
|
414
|
+
int len = snprintf(buf, sizeof(buf), "Received signal %d (%s)\n", sig,
|
|
415
|
+
strsignal(sig));
|
|
416
|
+
if (len > 0) {
|
|
417
|
+
auto unused __attribute__((unused)) = write(STDOUT_FILENO, buf, len);
|
|
418
|
+
}
|
|
419
|
+
auto callback = g_crash_callback.load(std::memory_order_acquire);
|
|
420
|
+
if (callback) {
|
|
421
|
+
callback();
|
|
422
|
+
}
|
|
423
|
+
signal(sig, SIG_DFL);
|
|
424
|
+
raise(sig);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
void RegisterCrashCallback(CrashCallback callback) {
|
|
428
|
+
g_crash_callback.store(callback, std::memory_order_release);
|
|
429
|
+
}
|
|
430
|
+
|
|
401
431
|
void InstallStackTraceHandler() {
|
|
402
432
|
// just use the plain old signal as it's simple and sufficient
|
|
403
433
|
// for this use case
|
|
434
|
+
// Crash signals — invoke full stack trace + ring buffer
|
|
404
435
|
signal(SIGILL, StackTraceHandler);
|
|
405
436
|
signal(SIGSEGV, StackTraceHandler);
|
|
406
437
|
signal(SIGBUS, StackTraceHandler);
|
|
407
438
|
signal(SIGABRT, StackTraceHandler);
|
|
439
|
+
signal(SIGFPE, StackTraceHandler);
|
|
440
|
+
signal(SIGQUIT, StackTraceHandler);
|
|
441
|
+
// Termination signals — print ring buffer only, no stack trace
|
|
442
|
+
signal(SIGTERM, TerminationHandler);
|
|
443
|
+
signal(SIGINT, TerminationHandler);
|
|
408
444
|
atexit(AtExit);
|
|
409
445
|
// Allow ouside debugger to attach, even with Yama security restrictions.
|
|
410
446
|
// This is needed even outside of PrintStack() so that external mechanisms
|
|
@@ -27,5 +27,14 @@ void PrintAndFreeStack(void* callstack, int num_frames);
|
|
|
27
27
|
// Save the current callstack
|
|
28
28
|
void* SaveStack(int* num_frame, int first_frames_to_skip = 0);
|
|
29
29
|
|
|
30
|
+
// Register a callback to be invoked when a fatal signal is received,
|
|
31
|
+
// before the stack trace is printed. This is useful for printing diagnostic
|
|
32
|
+
// information (e.g., recently injected errors) when a crash occurs.
|
|
33
|
+
// The callback must only call async-signal-safe functions (write, snprintf,
|
|
34
|
+
// etc.) or functions that are safe enough in practice (fprintf to stderr).
|
|
35
|
+
// Only one callback is supported; subsequent calls overwrite the previous one.
|
|
36
|
+
using CrashCallback = void (*)();
|
|
37
|
+
void RegisterCrashCallback(CrashCallback callback);
|
|
38
|
+
|
|
30
39
|
} // namespace port
|
|
31
40
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -96,6 +96,7 @@ LIB_SOURCES = \
|
|
|
96
96
|
db/version_edit.cc \
|
|
97
97
|
db/version_edit_handler.cc \
|
|
98
98
|
db/version_set.cc \
|
|
99
|
+
db/version_util.cc \
|
|
99
100
|
db/wal_edit.cc \
|
|
100
101
|
db/wal_manager.cc \
|
|
101
102
|
db/wide/wide_column_serialization.cc \
|
|
@@ -182,6 +183,7 @@ LIB_SOURCES = \
|
|
|
182
183
|
table/block_based/block_based_table_builder.cc \
|
|
183
184
|
table/block_based/block_based_table_factory.cc \
|
|
184
185
|
table/block_based/block_based_table_iterator.cc \
|
|
186
|
+
table/block_based/multi_scan_index_iterator.cc \
|
|
185
187
|
table/block_based/block_based_table_reader.cc \
|
|
186
188
|
table/block_based/block_builder.cc \
|
|
187
189
|
table/block_based/block_cache.cc \
|
|
@@ -264,6 +266,7 @@ LIB_SOURCES = \
|
|
|
264
266
|
util/string_util.cc \
|
|
265
267
|
util/thread_local.cc \
|
|
266
268
|
util/threadpool_imp.cc \
|
|
269
|
+
util/io_dispatcher_imp.cc \
|
|
267
270
|
util/udt_util.cc \
|
|
268
271
|
util/write_batch_util.cc \
|
|
269
272
|
util/xxhash.cc \
|
|
@@ -332,6 +335,9 @@ LIB_SOURCES = \
|
|
|
332
335
|
utilities/transactions/write_unprepared_txn.cc \
|
|
333
336
|
utilities/transactions/write_unprepared_txn_db.cc \
|
|
334
337
|
utilities/ttl/db_ttl_impl.cc \
|
|
338
|
+
utilities/trie_index/bitvector.cc \
|
|
339
|
+
utilities/trie_index/louds_trie.cc \
|
|
340
|
+
utilities/trie_index/trie_index_factory.cc \
|
|
335
341
|
utilities/types_util.cc \
|
|
336
342
|
utilities/wal_filter.cc \
|
|
337
343
|
utilities/write_batch_with_index/write_batch_with_index.cc \
|
|
@@ -489,6 +495,7 @@ TEST_MAIN_SOURCES = \
|
|
|
489
495
|
db/db_basic_test.cc \
|
|
490
496
|
db/db_block_cache_test.cc \
|
|
491
497
|
db/db_bloom_filter_test.cc \
|
|
498
|
+
db/db_compaction_abort_test.cc \
|
|
492
499
|
db/db_compaction_filter_test.cc \
|
|
493
500
|
db/db_compaction_test.cc \
|
|
494
501
|
db/db_clip_test.cc \
|
|
@@ -620,6 +627,7 @@ TEST_MAIN_SOURCES = \
|
|
|
620
627
|
util/hash_test.cc \
|
|
621
628
|
util/heap_test.cc \
|
|
622
629
|
util/interval_test.cc \
|
|
630
|
+
util/io_dispatcher_test.cc \
|
|
623
631
|
util/random_test.cc \
|
|
624
632
|
util/rate_limiter_test.cc \
|
|
625
633
|
util/repeatable_thread_test.cc \
|
|
@@ -641,6 +649,7 @@ TEST_MAIN_SOURCES = \
|
|
|
641
649
|
utilities/cassandra/cassandra_serialize_test.cc \
|
|
642
650
|
utilities/checkpoint/checkpoint_test.cc \
|
|
643
651
|
utilities/env_timed_test.cc \
|
|
652
|
+
utilities/fault_injection_fs_test.cc \
|
|
644
653
|
utilities/memory/memory_test.cc \
|
|
645
654
|
utilities/merge_operators/string_append/stringappend_test.cc \
|
|
646
655
|
utilities/object_registry_test.cc \
|
|
@@ -658,10 +667,13 @@ TEST_MAIN_SOURCES = \
|
|
|
658
667
|
utilities/transactions/lock/point/point_lock_manager_test.cc \
|
|
659
668
|
utilities/transactions/lock/point/point_lock_manager_stress_test.cc \
|
|
660
669
|
utilities/transactions/write_prepared_transaction_test.cc \
|
|
670
|
+
utilities/transactions/write_prepared_transaction_seqno_test.cc \
|
|
661
671
|
utilities/transactions/write_unprepared_transaction_test.cc \
|
|
662
672
|
utilities/transactions/write_committed_transaction_ts_test.cc \
|
|
663
673
|
utilities/transactions/timestamped_snapshot_test.cc \
|
|
664
674
|
utilities/ttl/ttl_test.cc \
|
|
675
|
+
utilities/trie_index/trie_index_db_test.cc \
|
|
676
|
+
utilities/trie_index/trie_index_test.cc \
|
|
665
677
|
utilities/types_util_test.cc \
|
|
666
678
|
utilities/util_merge_operators_test.cc \
|
|
667
679
|
utilities/write_batch_with_index/write_batch_with_index_test.cc \
|
|
@@ -51,8 +51,7 @@ Status AdaptiveTableFactory::NewTableReader(
|
|
|
51
51
|
footer.table_magic_number() == kLegacyPlainTableMagicNumber) {
|
|
52
52
|
return plain_table_factory_->NewTableReader(
|
|
53
53
|
table_reader_options, std::move(file), file_size, table);
|
|
54
|
-
} else if (footer.table_magic_number() == kBlockBasedTableMagicNumber
|
|
55
|
-
footer.table_magic_number() == kLegacyBlockBasedTableMagicNumber) {
|
|
54
|
+
} else if (footer.table_magic_number() == kBlockBasedTableMagicNumber) {
|
|
56
55
|
return block_based_table_factory_->NewTableReader(
|
|
57
56
|
ro, table_reader_options, std::move(file), file_size, table,
|
|
58
57
|
prefetch_index_and_filter_in_cache);
|
|
@@ -63,7 +63,8 @@ InternalIteratorBase<IndexValue>* BinarySearchIndexReader::NewIterator(
|
|
|
63
63
|
internal_comparator()->user_comparator(),
|
|
64
64
|
rep->get_global_seqno(BlockType::kIndex), iter, kNullStats, true,
|
|
65
65
|
index_has_first_key(), index_key_includes_seq(), index_value_is_full(),
|
|
66
|
-
false /* block_contents_pinned */, user_defined_timestamps_persisted()
|
|
66
|
+
false /* block_contents_pinned */, user_defined_timestamps_persisted(),
|
|
67
|
+
nullptr /* prefix_index */, rep->table_options.index_block_search_type);
|
|
67
68
|
|
|
68
69
|
assert(it != nullptr);
|
|
69
70
|
index_block.TransferTo(it);
|