@nxtedition/rocksdb 6.0.0 → 6.0.3
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/BUILDING.md +18 -0
- package/binding.cc +16 -17
- package/binding.gyp +2 -2
- package/deps/rocksdb/build_version.cc +4 -10
- package/deps/rocksdb/rocksdb/CMakeLists.txt +26 -3
- package/deps/rocksdb/rocksdb/Makefile +73 -91
- package/deps/rocksdb/rocksdb/TARGETS +27 -2
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
- package/deps/rocksdb/rocksdb/common.mk +30 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/builder.cc +22 -7
- package/deps/rocksdb/rocksdb/db/c.cc +71 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +28 -2
- package/deps/rocksdb/rocksdb/db/column_family.cc +12 -5
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +54 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +14 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +85 -18
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +151 -32
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +404 -32
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +11 -20
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +15 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +12 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +42 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +14 -4
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +28 -12
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +11 -6
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +60 -42
- package/deps/rocksdb/rocksdb/db/db_test2.cc +244 -111
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +101 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.h +52 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +5 -175
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +91 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +28 -15
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +14 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
- package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +13 -2
- package/deps/rocksdb/rocksdb/db/repair_test.cc +37 -15
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +20 -130
- package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
- package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +133 -133
- package/deps/rocksdb/rocksdb/db/version_edit.cc +22 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
- package/deps/rocksdb/rocksdb/db/version_set.cc +207 -214
- package/deps/rocksdb/rocksdb/db/version_set.h +14 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
- package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +44 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +374 -275
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
- package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
- package/deps/rocksdb/rocksdb/env/env.cc +0 -60
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
- package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
- package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +44 -22
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +60 -40
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +49 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +378 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +7 -8
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +47 -38
- package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
- package/deps/rocksdb/rocksdb/options/db_options.cc +46 -17
- package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/options.cc +7 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +86 -39
- package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +12 -7
- package/deps/rocksdb/rocksdb/options/options_test.cc +222 -68
- package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
- package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
- package/deps/rocksdb/rocksdb/src.mk +6 -1
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +23 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +81 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +94 -726
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +44 -73
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +2 -11
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +8 -4
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +65 -7
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/format.cc +22 -20
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +60 -13
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
- package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
- package/deps/rocksdb/rocksdb/table/unique_id.cc +84 -25
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +37 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +277 -105
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +26 -4
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
- package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
- package/deps/rocksdb/rocksdb/util/compression.h +56 -7
- package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
- package/deps/rocksdb/rocksdb/util/heap.h +5 -3
- package/deps/rocksdb/rocksdb/util/random.cc +1 -5
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
- package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
- package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +47 -37
- package/package-lock.json +23687 -0
- package/package.json +2 -30
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/liburing/liburing/README +0 -46
- package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
- package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
- package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
- package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
- package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
- package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
- package/deps/liburing/liburing/test/Makefile +0 -312
- package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
- package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
- package/deps/liburing/liburing/test/accept-link.c +0 -251
- package/deps/liburing/liburing/test/accept-reuse.c +0 -164
- package/deps/liburing/liburing/test/accept-test.c +0 -79
- package/deps/liburing/liburing/test/accept.c +0 -476
- package/deps/liburing/liburing/test/across-fork.c +0 -283
- package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
- package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
- package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
- package/deps/liburing/liburing/test/close-opath.c +0 -122
- package/deps/liburing/liburing/test/config +0 -10
- package/deps/liburing/liburing/test/connect.c +0 -398
- package/deps/liburing/liburing/test/cq-full.c +0 -96
- package/deps/liburing/liburing/test/cq-overflow.c +0 -294
- package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
- package/deps/liburing/liburing/test/cq-ready.c +0 -94
- package/deps/liburing/liburing/test/cq-size.c +0 -58
- package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
- package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
- package/deps/liburing/liburing/test/defer.c +0 -307
- package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
- package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
- package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
- package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
- package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
- package/deps/liburing/liburing/test/eventfd.c +0 -112
- package/deps/liburing/liburing/test/fadvise.c +0 -202
- package/deps/liburing/liburing/test/fallocate.c +0 -249
- package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
- package/deps/liburing/liburing/test/file-register.c +0 -843
- package/deps/liburing/liburing/test/file-update.c +0 -173
- package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
- package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
- package/deps/liburing/liburing/test/fixed-link.c +0 -90
- package/deps/liburing/liburing/test/fsync.c +0 -224
- package/deps/liburing/liburing/test/hardlink.c +0 -136
- package/deps/liburing/liburing/test/helpers.c +0 -135
- package/deps/liburing/liburing/test/helpers.h +0 -67
- package/deps/liburing/liburing/test/io-cancel.c +0 -537
- package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
- package/deps/liburing/liburing/test/io_uring_register.c +0 -664
- package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
- package/deps/liburing/liburing/test/iopoll.c +0 -366
- package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
- package/deps/liburing/liburing/test/lfs-openat.c +0 -273
- package/deps/liburing/liburing/test/link-timeout.c +0 -1107
- package/deps/liburing/liburing/test/link.c +0 -496
- package/deps/liburing/liburing/test/link_drain.c +0 -229
- package/deps/liburing/liburing/test/madvise.c +0 -195
- package/deps/liburing/liburing/test/mkdir.c +0 -108
- package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
- package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
- package/deps/liburing/liburing/test/nop.c +0 -115
- package/deps/liburing/liburing/test/open-close.c +0 -146
- package/deps/liburing/liburing/test/openat2.c +0 -240
- package/deps/liburing/liburing/test/personality.c +0 -204
- package/deps/liburing/liburing/test/pipe-eof.c +0 -81
- package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
- package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
- package/deps/liburing/liburing/test/poll-cancel.c +0 -135
- package/deps/liburing/liburing/test/poll-link.c +0 -227
- package/deps/liburing/liburing/test/poll-many.c +0 -208
- package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
- package/deps/liburing/liburing/test/poll-ring.c +0 -48
- package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
- package/deps/liburing/liburing/test/poll.c +0 -109
- package/deps/liburing/liburing/test/probe.c +0 -137
- package/deps/liburing/liburing/test/read-write.c +0 -876
- package/deps/liburing/liburing/test/register-restrictions.c +0 -633
- package/deps/liburing/liburing/test/rename.c +0 -134
- package/deps/liburing/liburing/test/ring-leak.c +0 -173
- package/deps/liburing/liburing/test/ring-leak2.c +0 -249
- package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
- package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
- package/deps/liburing/liburing/test/runtests.sh +0 -170
- package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
- package/deps/liburing/liburing/test/self.c +0 -91
- package/deps/liburing/liburing/test/send_recv.c +0 -291
- package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
- package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
- package/deps/liburing/liburing/test/shared-wq.c +0 -84
- package/deps/liburing/liburing/test/short-read.c +0 -75
- package/deps/liburing/liburing/test/shutdown.c +0 -163
- package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
- package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
- package/deps/liburing/liburing/test/socket-rw.c +0 -147
- package/deps/liburing/liburing/test/splice.c +0 -511
- package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
- package/deps/liburing/liburing/test/sq-full.c +0 -45
- package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
- package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
- package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
- package/deps/liburing/liburing/test/sq-space_left.c +0 -159
- package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
- package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
- package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
- package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
- package/deps/liburing/liburing/test/statx.c +0 -172
- package/deps/liburing/liburing/test/stdout.c +0 -232
- package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
- package/deps/liburing/liburing/test/submit-reuse.c +0 -239
- package/deps/liburing/liburing/test/symlink.c +0 -116
- package/deps/liburing/liburing/test/teardowns.c +0 -58
- package/deps/liburing/liburing/test/thread-exit.c +0 -131
- package/deps/liburing/liburing/test/timeout-new.c +0 -246
- package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
- package/deps/liburing/liburing/test/timeout.c +0 -1354
- package/deps/liburing/liburing/test/unlink.c +0 -111
- package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
- package/deps/rocksdb/rocksdb/README.md +0 -32
- package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
- package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
- package/deps/rocksdb/rocksdb/port/README +0 -10
- package/deps/rocksdb/rocksdb/python.mk +0 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
- package/prebuilds/linux-arm64/node.napi.node +0 -0
|
@@ -228,6 +228,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
228
228
|
track_and_verify_wals_in_manifest),
|
|
229
229
|
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
230
230
|
OptionTypeFlags::kNone}},
|
|
231
|
+
{"verify_sst_unique_id_in_manifest",
|
|
232
|
+
{offsetof(struct ImmutableDBOptions, verify_sst_unique_id_in_manifest),
|
|
233
|
+
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
234
|
+
OptionTypeFlags::kNone}},
|
|
231
235
|
{"skip_log_error_on_recovery",
|
|
232
236
|
{0, OptionType::kBoolean, OptionVerificationType::kDeprecated,
|
|
233
237
|
OptionTypeFlags::kNone}},
|
|
@@ -439,22 +443,36 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
439
443
|
static_cast<int64_t>(ParseUint64(value))));
|
|
440
444
|
return Status::OK();
|
|
441
445
|
}}},
|
|
442
|
-
{"env",
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
446
|
+
{"env", //**TODO: Should this be kCustomizable?
|
|
447
|
+
OptionTypeInfo(
|
|
448
|
+
offsetof(struct ImmutableDBOptions, env), OptionType::kUnknown,
|
|
449
|
+
OptionVerificationType::kNormal,
|
|
450
|
+
(OptionTypeFlags::kDontSerialize | OptionTypeFlags::kCompareNever))
|
|
451
|
+
.SetParseFunc([](const ConfigOptions& opts,
|
|
452
|
+
const std::string& /*name*/,
|
|
453
|
+
const std::string& value, void* addr) {
|
|
454
|
+
// Parse the input value as an Env
|
|
455
|
+
auto old_env = static_cast<Env**>(addr); // Get the old value
|
|
456
|
+
Env* new_env = *old_env; // Set new to old
|
|
457
|
+
Status s = Env::CreateFromString(opts, value,
|
|
458
|
+
&new_env); // Update new value
|
|
459
|
+
if (s.ok()) { // It worked
|
|
460
|
+
*old_env = new_env; // Update the old one
|
|
461
|
+
}
|
|
462
|
+
return s;
|
|
463
|
+
})
|
|
464
|
+
.SetPrepareFunc([](const ConfigOptions& opts,
|
|
465
|
+
const std::string& /*name*/, void* addr) {
|
|
466
|
+
auto env = static_cast<Env**>(addr);
|
|
467
|
+
return (*env)->PrepareOptions(opts);
|
|
468
|
+
})
|
|
469
|
+
.SetValidateFunc([](const DBOptions& db_opts,
|
|
470
|
+
const ColumnFamilyOptions& cf_opts,
|
|
471
|
+
const std::string& /*name*/,
|
|
472
|
+
const void* addr) {
|
|
473
|
+
const auto env = static_cast<const Env* const*>(addr);
|
|
474
|
+
return (*env)->ValidateOptions(db_opts, cf_opts);
|
|
475
|
+
})},
|
|
458
476
|
{"allow_data_in_errors",
|
|
459
477
|
{offsetof(struct ImmutableDBOptions, allow_data_in_errors),
|
|
460
478
|
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
@@ -538,6 +556,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
538
556
|
OptionTypeInfo::Enum<CacheTier>(
|
|
539
557
|
offsetof(struct ImmutableDBOptions, lowest_used_cache_tier),
|
|
540
558
|
&cache_tier_string_map, OptionTypeFlags::kNone)},
|
|
559
|
+
{"enforce_single_del_contracts",
|
|
560
|
+
{offsetof(struct ImmutableDBOptions, enforce_single_del_contracts),
|
|
561
|
+
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
562
|
+
OptionTypeFlags::kNone}},
|
|
541
563
|
};
|
|
542
564
|
|
|
543
565
|
const std::string OptionsHelper::kDBOptionsName = "DBOptions";
|
|
@@ -662,6 +684,8 @@ ImmutableDBOptions::ImmutableDBOptions(const DBOptions& options)
|
|
|
662
684
|
flush_verify_memtable_count(options.flush_verify_memtable_count),
|
|
663
685
|
track_and_verify_wals_in_manifest(
|
|
664
686
|
options.track_and_verify_wals_in_manifest),
|
|
687
|
+
verify_sst_unique_id_in_manifest(
|
|
688
|
+
options.verify_sst_unique_id_in_manifest),
|
|
665
689
|
env(options.env),
|
|
666
690
|
rate_limiter(options.rate_limiter),
|
|
667
691
|
sst_file_manager(options.sst_file_manager),
|
|
@@ -736,7 +760,8 @@ ImmutableDBOptions::ImmutableDBOptions(const DBOptions& options)
|
|
|
736
760
|
db_host_id(options.db_host_id),
|
|
737
761
|
checksum_handoff_file_types(options.checksum_handoff_file_types),
|
|
738
762
|
lowest_used_cache_tier(options.lowest_used_cache_tier),
|
|
739
|
-
compaction_service(options.compaction_service)
|
|
763
|
+
compaction_service(options.compaction_service),
|
|
764
|
+
enforce_single_del_contracts(options.enforce_single_del_contracts) {
|
|
740
765
|
fs = env->GetFileSystem();
|
|
741
766
|
clock = env->GetSystemClock().get();
|
|
742
767
|
logger = info_log.get();
|
|
@@ -756,6 +781,8 @@ void ImmutableDBOptions::Dump(Logger* log) const {
|
|
|
756
781
|
" "
|
|
757
782
|
"Options.track_and_verify_wals_in_manifest: %d",
|
|
758
783
|
track_and_verify_wals_in_manifest);
|
|
784
|
+
ROCKS_LOG_HEADER(log, " Options.verify_sst_unique_id_in_manifest: %d",
|
|
785
|
+
verify_sst_unique_id_in_manifest);
|
|
759
786
|
ROCKS_LOG_HEADER(log, " Options.env: %p",
|
|
760
787
|
env);
|
|
761
788
|
ROCKS_LOG_HEADER(log, " Options.fs: %s",
|
|
@@ -907,6 +934,8 @@ void ImmutableDBOptions::Dump(Logger* log) const {
|
|
|
907
934
|
allow_data_in_errors);
|
|
908
935
|
ROCKS_LOG_HEADER(log, " Options.db_host_id: %s",
|
|
909
936
|
db_host_id.c_str());
|
|
937
|
+
ROCKS_LOG_HEADER(log, " Options.enforce_single_del_contracts: %s",
|
|
938
|
+
enforce_single_del_contracts ? "true" : "false");
|
|
910
939
|
}
|
|
911
940
|
|
|
912
941
|
bool ImmutableDBOptions::IsWalDirSameAsDBPath() const {
|
|
@@ -26,6 +26,7 @@ struct ImmutableDBOptions {
|
|
|
26
26
|
bool paranoid_checks;
|
|
27
27
|
bool flush_verify_memtable_count;
|
|
28
28
|
bool track_and_verify_wals_in_manifest;
|
|
29
|
+
bool verify_sst_unique_id_in_manifest;
|
|
29
30
|
Env* env;
|
|
30
31
|
std::shared_ptr<RateLimiter> rate_limiter;
|
|
31
32
|
std::shared_ptr<SstFileManager> sst_file_manager;
|
|
@@ -105,6 +106,7 @@ struct ImmutableDBOptions {
|
|
|
105
106
|
Statistics* stats;
|
|
106
107
|
Logger* logger;
|
|
107
108
|
std::shared_ptr<CompactionService> compaction_service;
|
|
109
|
+
bool enforce_single_del_contracts;
|
|
108
110
|
|
|
109
111
|
bool IsWalDirSameAsDBPath() const;
|
|
110
112
|
bool IsWalDirSameAsDBPath(const std::string& path) const;
|
|
@@ -211,6 +211,10 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
|
211
211
|
" Options.bottommost_compression_opts.max_dict_buffer_bytes: "
|
|
212
212
|
"%" PRIu64,
|
|
213
213
|
bottommost_compression_opts.max_dict_buffer_bytes);
|
|
214
|
+
ROCKS_LOG_HEADER(
|
|
215
|
+
log,
|
|
216
|
+
" Options.bottommost_compression_opts.use_zstd_dict_trainer: %s",
|
|
217
|
+
bottommost_compression_opts.use_zstd_dict_trainer ? "true" : "false");
|
|
214
218
|
ROCKS_LOG_HEADER(log, " Options.compression_opts.window_bits: %d",
|
|
215
219
|
compression_opts.window_bits);
|
|
216
220
|
ROCKS_LOG_HEADER(log, " Options.compression_opts.level: %d",
|
|
@@ -225,6 +229,9 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
|
225
229
|
" Options.compression_opts.zstd_max_train_bytes: "
|
|
226
230
|
"%" PRIu32,
|
|
227
231
|
compression_opts.zstd_max_train_bytes);
|
|
232
|
+
ROCKS_LOG_HEADER(
|
|
233
|
+
log, " Options.compression_opts.use_zstd_dict_trainer: %s",
|
|
234
|
+
compression_opts.use_zstd_dict_trainer ? "true" : "false");
|
|
228
235
|
ROCKS_LOG_HEADER(log,
|
|
229
236
|
" Options.compression_opts.parallel_threads: "
|
|
230
237
|
"%" PRIu32,
|
|
@@ -70,6 +70,8 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
|
|
|
70
70
|
immutable_db_options.flush_verify_memtable_count;
|
|
71
71
|
options.track_and_verify_wals_in_manifest =
|
|
72
72
|
immutable_db_options.track_and_verify_wals_in_manifest;
|
|
73
|
+
options.verify_sst_unique_id_in_manifest =
|
|
74
|
+
immutable_db_options.verify_sst_unique_id_in_manifest;
|
|
73
75
|
options.env = immutable_db_options.env;
|
|
74
76
|
options.rate_limiter = immutable_db_options.rate_limiter;
|
|
75
77
|
options.sst_file_manager = immutable_db_options.sst_file_manager;
|
|
@@ -182,6 +184,8 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
|
|
|
182
184
|
options.checksum_handoff_file_types =
|
|
183
185
|
immutable_db_options.checksum_handoff_file_types;
|
|
184
186
|
options.lowest_used_cache_tier = immutable_db_options.lowest_used_cache_tier;
|
|
187
|
+
options.enforce_single_del_contracts =
|
|
188
|
+
immutable_db_options.enforce_single_del_contracts;
|
|
185
189
|
return options;
|
|
186
190
|
}
|
|
187
191
|
|
|
@@ -463,43 +467,43 @@ bool SerializeSingleOptionHelper(const void* opt_address,
|
|
|
463
467
|
*value = *(static_cast<const bool*>(opt_address)) ? "true" : "false";
|
|
464
468
|
break;
|
|
465
469
|
case OptionType::kInt:
|
|
466
|
-
*value =
|
|
470
|
+
*value = std::to_string(*(static_cast<const int*>(opt_address)));
|
|
467
471
|
break;
|
|
468
472
|
case OptionType::kInt32T:
|
|
469
|
-
*value =
|
|
473
|
+
*value = std::to_string(*(static_cast<const int32_t*>(opt_address)));
|
|
470
474
|
break;
|
|
471
475
|
case OptionType::kInt64T:
|
|
472
476
|
{
|
|
473
477
|
int64_t v;
|
|
474
478
|
GetUnaligned(static_cast<const int64_t*>(opt_address), &v);
|
|
475
|
-
*value =
|
|
479
|
+
*value = std::to_string(v);
|
|
476
480
|
}
|
|
477
481
|
break;
|
|
478
482
|
case OptionType::kUInt:
|
|
479
|
-
*value =
|
|
483
|
+
*value = std::to_string(*(static_cast<const unsigned int*>(opt_address)));
|
|
480
484
|
break;
|
|
481
485
|
case OptionType::kUInt8T:
|
|
482
|
-
*value =
|
|
486
|
+
*value = std::to_string(*(static_cast<const uint8_t*>(opt_address)));
|
|
483
487
|
break;
|
|
484
488
|
case OptionType::kUInt32T:
|
|
485
|
-
*value =
|
|
489
|
+
*value = std::to_string(*(static_cast<const uint32_t*>(opt_address)));
|
|
486
490
|
break;
|
|
487
491
|
case OptionType::kUInt64T:
|
|
488
492
|
{
|
|
489
493
|
uint64_t v;
|
|
490
494
|
GetUnaligned(static_cast<const uint64_t*>(opt_address), &v);
|
|
491
|
-
*value =
|
|
495
|
+
*value = std::to_string(v);
|
|
492
496
|
}
|
|
493
497
|
break;
|
|
494
498
|
case OptionType::kSizeT:
|
|
495
499
|
{
|
|
496
500
|
size_t v;
|
|
497
501
|
GetUnaligned(static_cast<const size_t*>(opt_address), &v);
|
|
498
|
-
*value =
|
|
502
|
+
*value = std::to_string(v);
|
|
499
503
|
}
|
|
500
504
|
break;
|
|
501
505
|
case OptionType::kDouble:
|
|
502
|
-
*value =
|
|
506
|
+
*value = std::to_string(*(static_cast<const double*>(opt_address)));
|
|
503
507
|
break;
|
|
504
508
|
case OptionType::kString:
|
|
505
509
|
*value =
|
|
@@ -898,18 +902,18 @@ Status OptionTypeInfo::Parse(const ConfigOptions& config_options,
|
|
|
898
902
|
return Status::OK();
|
|
899
903
|
}
|
|
900
904
|
try {
|
|
901
|
-
void* opt_addr = static_cast<char*>(opt_ptr) + offset_;
|
|
902
905
|
const std::string& opt_value = config_options.input_strings_escaped
|
|
903
906
|
? UnescapeOptionString(value)
|
|
904
907
|
: value;
|
|
905
908
|
|
|
906
|
-
if (
|
|
909
|
+
if (opt_ptr == nullptr) {
|
|
907
910
|
return Status::NotFound("Could not find option", opt_name);
|
|
908
911
|
} else if (parse_func_ != nullptr) {
|
|
909
912
|
ConfigOptions copy = config_options;
|
|
910
913
|
copy.invoke_prepare_options = false;
|
|
914
|
+
void* opt_addr = GetOffset(opt_ptr);
|
|
911
915
|
return parse_func_(copy, opt_name, opt_value, opt_addr);
|
|
912
|
-
} else if (ParseOptionHelper(
|
|
916
|
+
} else if (ParseOptionHelper(GetOffset(opt_ptr), type_, opt_value)) {
|
|
913
917
|
return Status::OK();
|
|
914
918
|
} else if (IsConfigurable()) {
|
|
915
919
|
// The option is <config>.<name>
|
|
@@ -1021,12 +1025,12 @@ Status OptionTypeInfo::Serialize(const ConfigOptions& config_options,
|
|
|
1021
1025
|
std::string* opt_value) const {
|
|
1022
1026
|
// If the option is no longer used in rocksdb and marked as deprecated,
|
|
1023
1027
|
// we skip it in the serialization.
|
|
1024
|
-
|
|
1025
|
-
if (opt_addr == nullptr || IsDeprecated()) {
|
|
1028
|
+
if (opt_ptr == nullptr || IsDeprecated()) {
|
|
1026
1029
|
return Status::OK();
|
|
1027
1030
|
} else if (IsEnabled(OptionTypeFlags::kDontSerialize)) {
|
|
1028
1031
|
return Status::NotSupported("Cannot serialize option: ", opt_name);
|
|
1029
1032
|
} else if (serialize_func_ != nullptr) {
|
|
1033
|
+
const void* opt_addr = GetOffset(opt_ptr);
|
|
1030
1034
|
return serialize_func_(config_options, opt_name, opt_addr, opt_value);
|
|
1031
1035
|
} else if (IsCustomizable()) {
|
|
1032
1036
|
const Customizable* custom = AsRawPointer<Customizable>(opt_ptr);
|
|
@@ -1074,7 +1078,8 @@ Status OptionTypeInfo::Serialize(const ConfigOptions& config_options,
|
|
|
1074
1078
|
return Status::OK();
|
|
1075
1079
|
} else if (config_options.mutable_options_only && !IsMutable()) {
|
|
1076
1080
|
return Status::OK();
|
|
1077
|
-
} else if (SerializeSingleOptionHelper(
|
|
1081
|
+
} else if (SerializeSingleOptionHelper(GetOffset(opt_ptr), type_,
|
|
1082
|
+
opt_value)) {
|
|
1078
1083
|
return Status::OK();
|
|
1079
1084
|
} else {
|
|
1080
1085
|
return Status::InvalidArgument("Cannot serialize option: ", opt_name);
|
|
@@ -1223,39 +1228,43 @@ bool OptionTypeInfo::AreEqual(const ConfigOptions& config_options,
|
|
|
1223
1228
|
if (!config_options.IsCheckEnabled(level)) {
|
|
1224
1229
|
return true; // If the sanity level is not being checked, skip it
|
|
1225
1230
|
}
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
if (this_addr == nullptr || that_addr == nullptr) {
|
|
1229
|
-
if (this_addr == that_addr) {
|
|
1231
|
+
if (this_ptr == nullptr || that_ptr == nullptr) {
|
|
1232
|
+
if (this_ptr == that_ptr) {
|
|
1230
1233
|
return true;
|
|
1231
1234
|
}
|
|
1232
1235
|
} else if (equals_func_ != nullptr) {
|
|
1236
|
+
const void* this_addr = GetOffset(this_ptr);
|
|
1237
|
+
const void* that_addr = GetOffset(that_ptr);
|
|
1233
1238
|
if (equals_func_(config_options, opt_name, this_addr, that_addr,
|
|
1234
1239
|
mismatch)) {
|
|
1235
1240
|
return true;
|
|
1236
1241
|
}
|
|
1237
|
-
} else
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
const auto* that_config = AsRawPointer<Configurable>(that_ptr);
|
|
1242
|
-
if (this_config == that_config) {
|
|
1242
|
+
} else {
|
|
1243
|
+
const void* this_addr = GetOffset(this_ptr);
|
|
1244
|
+
const void* that_addr = GetOffset(that_ptr);
|
|
1245
|
+
if (AreOptionsEqual(type_, this_addr, that_addr)) {
|
|
1243
1246
|
return true;
|
|
1244
|
-
} else if (
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
if (
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1247
|
+
} else if (IsConfigurable()) {
|
|
1248
|
+
const auto* this_config = AsRawPointer<Configurable>(this_ptr);
|
|
1249
|
+
const auto* that_config = AsRawPointer<Configurable>(that_ptr);
|
|
1250
|
+
if (this_config == that_config) {
|
|
1251
|
+
return true;
|
|
1252
|
+
} else if (this_config != nullptr && that_config != nullptr) {
|
|
1253
|
+
std::string bad_name;
|
|
1254
|
+
bool matches;
|
|
1255
|
+
if (level < config_options.sanity_level) {
|
|
1256
|
+
ConfigOptions copy = config_options;
|
|
1257
|
+
copy.sanity_level = level;
|
|
1258
|
+
matches = this_config->AreEquivalent(copy, that_config, &bad_name);
|
|
1259
|
+
} else {
|
|
1260
|
+
matches = this_config->AreEquivalent(config_options, that_config,
|
|
1261
|
+
&bad_name);
|
|
1262
|
+
}
|
|
1263
|
+
if (!matches) {
|
|
1264
|
+
*mismatch = opt_name + "." + bad_name;
|
|
1265
|
+
}
|
|
1266
|
+
return matches;
|
|
1257
1267
|
}
|
|
1258
|
-
return matches;
|
|
1259
1268
|
}
|
|
1260
1269
|
}
|
|
1261
1270
|
if (mismatch->empty()) {
|
|
@@ -1379,6 +1388,44 @@ bool OptionTypeInfo::AreEqualByName(const ConfigOptions& config_options,
|
|
|
1379
1388
|
return (this_value == that_value);
|
|
1380
1389
|
}
|
|
1381
1390
|
|
|
1391
|
+
Status OptionTypeInfo::Prepare(const ConfigOptions& config_options,
|
|
1392
|
+
const std::string& name, void* opt_ptr) const {
|
|
1393
|
+
if (ShouldPrepare()) {
|
|
1394
|
+
if (prepare_func_ != nullptr) {
|
|
1395
|
+
void* opt_addr = GetOffset(opt_ptr);
|
|
1396
|
+
return prepare_func_(config_options, name, opt_addr);
|
|
1397
|
+
} else if (IsConfigurable()) {
|
|
1398
|
+
Configurable* config = AsRawPointer<Configurable>(opt_ptr);
|
|
1399
|
+
if (config != nullptr) {
|
|
1400
|
+
return config->PrepareOptions(config_options);
|
|
1401
|
+
} else if (!CanBeNull()) {
|
|
1402
|
+
return Status::NotFound("Missing configurable object", name);
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
return Status::OK();
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
Status OptionTypeInfo::Validate(const DBOptions& db_opts,
|
|
1410
|
+
const ColumnFamilyOptions& cf_opts,
|
|
1411
|
+
const std::string& name,
|
|
1412
|
+
const void* opt_ptr) const {
|
|
1413
|
+
if (ShouldValidate()) {
|
|
1414
|
+
if (validate_func_ != nullptr) {
|
|
1415
|
+
const void* opt_addr = GetOffset(opt_ptr);
|
|
1416
|
+
return validate_func_(db_opts, cf_opts, name, opt_addr);
|
|
1417
|
+
} else if (IsConfigurable()) {
|
|
1418
|
+
const Configurable* config = AsRawPointer<Configurable>(opt_ptr);
|
|
1419
|
+
if (config != nullptr) {
|
|
1420
|
+
return config->ValidateOptions(db_opts, cf_opts);
|
|
1421
|
+
} else if (!CanBeNull()) {
|
|
1422
|
+
return Status::NotFound("Missing configurable object", name);
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
return Status::OK();
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1382
1429
|
const OptionTypeInfo* OptionTypeInfo::Find(
|
|
1383
1430
|
const std::string& opt_name,
|
|
1384
1431
|
const std::unordered_map<std::string, OptionTypeInfo>& opt_map,
|
|
@@ -79,16 +79,16 @@ Status PersistRocksDBOptions(const ConfigOptions& config_options_in,
|
|
|
79
79
|
|
|
80
80
|
std::string options_file_content;
|
|
81
81
|
|
|
82
|
-
s = writable->Append(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
s = writable->Append(
|
|
83
|
+
option_file_header + "[" + opt_section_titles[kOptionSectionVersion] +
|
|
84
|
+
"]\n"
|
|
85
|
+
" rocksdb_version=" +
|
|
86
|
+
std::to_string(ROCKSDB_MAJOR) + "." + std::to_string(ROCKSDB_MINOR) +
|
|
87
|
+
"." + std::to_string(ROCKSDB_PATCH) + "\n");
|
|
88
88
|
if (s.ok()) {
|
|
89
89
|
s = writable->Append(
|
|
90
|
-
" options_file_version=" +
|
|
91
|
-
|
|
90
|
+
" options_file_version=" + std::to_string(ROCKSDB_OPTION_FILE_MAJOR) +
|
|
91
|
+
"." + std::to_string(ROCKSDB_OPTION_FILE_MINOR) + "\n");
|
|
92
92
|
}
|
|
93
93
|
if (s.ok()) {
|
|
94
94
|
s = writable->Append("\n[" + opt_section_titles[kOptionSectionDBOptions] +
|
|
@@ -216,7 +216,7 @@ Status RocksDBOptionsParser::InvalidArgument(const int line_num,
|
|
|
216
216
|
const std::string& message) {
|
|
217
217
|
return Status::InvalidArgument(
|
|
218
218
|
"[RocksDBOptionsParser Error] ",
|
|
219
|
-
message + " (at line " +
|
|
219
|
+
message + " (at line " + std::to_string(line_num) + ")");
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
Status RocksDBOptionsParser::ParseStatement(std::string* name,
|
|
@@ -590,7 +590,7 @@ Status RocksDBOptionsParser::VerifyRocksDBOptionsFromFile(
|
|
|
590
590
|
return Status::InvalidArgument(
|
|
591
591
|
"[RocksDBOptionParser Error] The persisted options and the db"
|
|
592
592
|
"instance does not have the same name for column family ",
|
|
593
|
-
|
|
593
|
+
std::to_string(i));
|
|
594
594
|
}
|
|
595
595
|
}
|
|
596
596
|
|
|
@@ -34,6 +34,7 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
34
34
|
#ifndef ROCKSDB_LITE
|
|
35
35
|
#if defined OS_LINUX || defined OS_WIN
|
|
36
36
|
#ifndef __clang__
|
|
37
|
+
#ifndef ROCKSDB_UBSAN_RUN
|
|
37
38
|
|
|
38
39
|
class OptionsSettableTest : public testing::Test {
|
|
39
40
|
public:
|
|
@@ -116,7 +117,8 @@ bool CompareBytes(char* start_ptr1, char* start_ptr2, size_t total_size,
|
|
|
116
117
|
// kBbtoExcluded, and maybe add customized verification for it.
|
|
117
118
|
TEST_F(OptionsSettableTest, BlockBasedTableOptionsAllFieldsSettable) {
|
|
118
119
|
// Items in the form of <offset, size>. Need to be in ascending order
|
|
119
|
-
// and not overlapping. Need to
|
|
120
|
+
// and not overlapping. Need to update if new option to be excluded is added
|
|
121
|
+
// (e.g, pointer-type)
|
|
120
122
|
const OffsetGap kBbtoExcluded = {
|
|
121
123
|
{offsetof(struct BlockBasedTableOptions, flush_block_policy_factory),
|
|
122
124
|
sizeof(std::shared_ptr<FlushBlockPolicyFactory>)},
|
|
@@ -126,6 +128,8 @@ TEST_F(OptionsSettableTest, BlockBasedTableOptionsAllFieldsSettable) {
|
|
|
126
128
|
sizeof(std::shared_ptr<PersistentCache>)},
|
|
127
129
|
{offsetof(struct BlockBasedTableOptions, block_cache_compressed),
|
|
128
130
|
sizeof(std::shared_ptr<Cache>)},
|
|
131
|
+
{offsetof(struct BlockBasedTableOptions, cache_usage_options),
|
|
132
|
+
sizeof(CacheUsageOptions)},
|
|
129
133
|
{offsetof(struct BlockBasedTableOptions, filter_policy),
|
|
130
134
|
sizeof(std::shared_ptr<const FilterPolicy>)},
|
|
131
135
|
};
|
|
@@ -188,8 +192,6 @@ TEST_F(OptionsSettableTest, BlockBasedTableOptionsAllFieldsSettable) {
|
|
|
188
192
|
"index_block_restart_interval=4;"
|
|
189
193
|
"filter_policy=bloomfilter:4:true;whole_key_filtering=1;detect_filter_"
|
|
190
194
|
"construct_corruption=false;"
|
|
191
|
-
"reserve_table_builder_memory=false;"
|
|
192
|
-
"reserve_table_reader_memory=false;"
|
|
193
195
|
"format_version=1;"
|
|
194
196
|
"verify_compression=true;read_amp_bytes_per_bit=0;"
|
|
195
197
|
"enable_index_compression=false;"
|
|
@@ -302,6 +304,7 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
302
304
|
"paranoid_checks=true;"
|
|
303
305
|
"flush_verify_memtable_count=true;"
|
|
304
306
|
"track_and_verify_wals_in_manifest=true;"
|
|
307
|
+
"verify_sst_unique_id_in_manifest=true;"
|
|
305
308
|
"is_fd_close_on_exec=false;"
|
|
306
309
|
"bytes_per_sync=4295013613;"
|
|
307
310
|
"strict_bytes_per_sync=true;"
|
|
@@ -352,10 +355,11 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
352
355
|
"write_dbid_to_manifest=false;"
|
|
353
356
|
"best_efforts_recovery=false;"
|
|
354
357
|
"max_bgerror_resume_count=2;"
|
|
355
|
-
"bgerror_resume_retry_interval=1000000"
|
|
358
|
+
"bgerror_resume_retry_interval=1000000;"
|
|
356
359
|
"db_host_id=hostname;"
|
|
357
360
|
"lowest_used_cache_tier=kNonVolatileBlockTier;"
|
|
358
|
-
"allow_data_in_errors=false"
|
|
361
|
+
"allow_data_in_errors=false;"
|
|
362
|
+
"enforce_single_del_contracts=false;",
|
|
359
363
|
new_options));
|
|
360
364
|
|
|
361
365
|
ASSERT_EQ(unset_bytes_base, NumUnsetBytes(new_options_ptr, sizeof(DBOptions),
|
|
@@ -478,8 +482,8 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
478
482
|
"max_bytes_for_level_multiplier=60;"
|
|
479
483
|
"memtable_factory=SkipListFactory;"
|
|
480
484
|
"compression=kNoCompression;"
|
|
481
|
-
"compression_opts=5:6:7:8:9:10:true:11;"
|
|
482
|
-
"bottommost_compression_opts=4:5:6:7:8:9:true:10;"
|
|
485
|
+
"compression_opts=5:6:7:8:9:10:true:11:false;"
|
|
486
|
+
"bottommost_compression_opts=4:5:6:7:8:9:true:10:true;"
|
|
483
487
|
"bottommost_compression=kDisableCompressionOption;"
|
|
484
488
|
"level0_stop_writes_trigger=33;"
|
|
485
489
|
"num_levels=99;"
|
|
@@ -581,6 +585,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
581
585
|
delete[] mcfo2_ptr;
|
|
582
586
|
delete[] cfo_clean_ptr;
|
|
583
587
|
}
|
|
588
|
+
#endif // !ROCKSDB_UBSAN_RUN
|
|
584
589
|
#endif // !__clang__
|
|
585
590
|
#endif // OS_LINUX || OS_WIN
|
|
586
591
|
#endif // !ROCKSDB_LITE
|