@nxtedition/rocksdb 6.0.1 → 7.0.0-alpha.1
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 +12 -4
- package/binding.cc +421 -40
- 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 +20 -13
- package/index.js +187 -3
- package/iterator.js +1 -0
- package/package-lock.json +23687 -0
- package/package.json +2 -30
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/snapshot.js +23 -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/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -68,7 +68,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
68
68
|
"kZSTDNotFinalCompression"},
|
|
69
69
|
{"bottommost_compression", "kLZ4Compression"},
|
|
70
70
|
{"bottommost_compression_opts", "5:6:7:8:10:true"},
|
|
71
|
-
{"compression_opts", "4:5:6:7:8:true"},
|
|
71
|
+
{"compression_opts", "4:5:6:7:8:2:true:100:false"},
|
|
72
72
|
{"num_levels", "8"},
|
|
73
73
|
{"level0_file_num_compaction_trigger", "8"},
|
|
74
74
|
{"level0_slowdown_writes_trigger", "9"},
|
|
@@ -118,6 +118,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
118
118
|
{"error_if_exists", "false"},
|
|
119
119
|
{"paranoid_checks", "true"},
|
|
120
120
|
{"track_and_verify_wals_in_manifest", "true"},
|
|
121
|
+
{"verify_sst_unique_id_in_manifest", "true"},
|
|
121
122
|
{"max_open_files", "32"},
|
|
122
123
|
{"max_total_wal_size", "33"},
|
|
123
124
|
{"use_fsync", "true"},
|
|
@@ -190,9 +191,10 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
190
191
|
ASSERT_EQ(new_cf_opt.compression_opts.strategy, 6);
|
|
191
192
|
ASSERT_EQ(new_cf_opt.compression_opts.max_dict_bytes, 7u);
|
|
192
193
|
ASSERT_EQ(new_cf_opt.compression_opts.zstd_max_train_bytes, 8u);
|
|
193
|
-
ASSERT_EQ(new_cf_opt.compression_opts.parallel_threads,
|
|
194
|
-
CompressionOptions().parallel_threads);
|
|
194
|
+
ASSERT_EQ(new_cf_opt.compression_opts.parallel_threads, 2u);
|
|
195
195
|
ASSERT_EQ(new_cf_opt.compression_opts.enabled, true);
|
|
196
|
+
ASSERT_EQ(new_cf_opt.compression_opts.max_dict_buffer_bytes, 100u);
|
|
197
|
+
ASSERT_EQ(new_cf_opt.compression_opts.use_zstd_dict_trainer, false);
|
|
196
198
|
ASSERT_EQ(new_cf_opt.bottommost_compression, kLZ4Compression);
|
|
197
199
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.window_bits, 5);
|
|
198
200
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.level, 6);
|
|
@@ -202,6 +204,8 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
202
204
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.parallel_threads,
|
|
203
205
|
CompressionOptions().parallel_threads);
|
|
204
206
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.enabled, true);
|
|
207
|
+
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
208
|
+
CompressionOptions().use_zstd_dict_trainer);
|
|
205
209
|
ASSERT_EQ(new_cf_opt.num_levels, 8);
|
|
206
210
|
ASSERT_EQ(new_cf_opt.level0_file_num_compaction_trigger, 8);
|
|
207
211
|
ASSERT_EQ(new_cf_opt.level0_slowdown_writes_trigger, 9);
|
|
@@ -278,6 +282,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
278
282
|
ASSERT_EQ(new_db_opt.error_if_exists, false);
|
|
279
283
|
ASSERT_EQ(new_db_opt.paranoid_checks, true);
|
|
280
284
|
ASSERT_EQ(new_db_opt.track_and_verify_wals_in_manifest, true);
|
|
285
|
+
ASSERT_EQ(new_db_opt.verify_sst_unique_id_in_manifest, true);
|
|
281
286
|
ASSERT_EQ(new_db_opt.max_open_files, 32);
|
|
282
287
|
ASSERT_EQ(new_db_opt.max_total_wal_size, static_cast<uint64_t>(33));
|
|
283
288
|
ASSERT_EQ(new_db_opt.use_fsync, true);
|
|
@@ -602,6 +607,8 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
602
607
|
ASSERT_EQ(base_cf_opt.compression_opts.parallel_threads,
|
|
603
608
|
dflt.parallel_threads);
|
|
604
609
|
ASSERT_EQ(base_cf_opt.compression_opts.enabled, dflt.enabled);
|
|
610
|
+
ASSERT_EQ(base_cf_opt.compression_opts.use_zstd_dict_trainer,
|
|
611
|
+
dflt.use_zstd_dict_trainer);
|
|
605
612
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.window_bits, 4);
|
|
606
613
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.level, 5);
|
|
607
614
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.strategy, 6);
|
|
@@ -611,10 +618,12 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
611
618
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.parallel_threads,
|
|
612
619
|
dflt.parallel_threads);
|
|
613
620
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.enabled, dflt.enabled);
|
|
621
|
+
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
622
|
+
dflt.use_zstd_dict_trainer);
|
|
614
623
|
|
|
615
624
|
ASSERT_OK(GetColumnFamilyOptionsFromString(
|
|
616
625
|
config_options, ColumnFamilyOptions(),
|
|
617
|
-
"compression_opts=4:5:6:7:8:9:true; "
|
|
626
|
+
"compression_opts=4:5:6:7:8:9:true:10:false; "
|
|
618
627
|
"bottommost_compression_opts=5:6:7:8:9:false",
|
|
619
628
|
&base_cf_opt));
|
|
620
629
|
ASSERT_EQ(base_cf_opt.compression_opts.window_bits, 4);
|
|
@@ -624,6 +633,8 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
624
633
|
ASSERT_EQ(base_cf_opt.compression_opts.zstd_max_train_bytes, 8u);
|
|
625
634
|
ASSERT_EQ(base_cf_opt.compression_opts.parallel_threads, 9u);
|
|
626
635
|
ASSERT_EQ(base_cf_opt.compression_opts.enabled, true);
|
|
636
|
+
ASSERT_EQ(base_cf_opt.compression_opts.max_dict_buffer_bytes, 10u);
|
|
637
|
+
ASSERT_EQ(base_cf_opt.compression_opts.use_zstd_dict_trainer, false);
|
|
627
638
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.window_bits, 5);
|
|
628
639
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.level, 6);
|
|
629
640
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.strategy, 7);
|
|
@@ -632,6 +643,8 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
632
643
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.parallel_threads,
|
|
633
644
|
dflt.parallel_threads);
|
|
634
645
|
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.enabled, false);
|
|
646
|
+
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
647
|
+
dflt.use_zstd_dict_trainer);
|
|
635
648
|
|
|
636
649
|
ASSERT_OK(
|
|
637
650
|
GetStringFromColumnFamilyOptions(config_options, base_cf_opt, &opts_str));
|
|
@@ -644,6 +657,8 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
644
657
|
ASSERT_EQ(new_cf_opt.compression_opts.zstd_max_train_bytes, 8u);
|
|
645
658
|
ASSERT_EQ(new_cf_opt.compression_opts.parallel_threads, 9u);
|
|
646
659
|
ASSERT_EQ(new_cf_opt.compression_opts.enabled, true);
|
|
660
|
+
ASSERT_EQ(base_cf_opt.compression_opts.max_dict_buffer_bytes, 10u);
|
|
661
|
+
ASSERT_EQ(base_cf_opt.compression_opts.use_zstd_dict_trainer, false);
|
|
647
662
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.window_bits, 5);
|
|
648
663
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.level, 6);
|
|
649
664
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.strategy, 7);
|
|
@@ -652,15 +667,18 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
652
667
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.parallel_threads,
|
|
653
668
|
dflt.parallel_threads);
|
|
654
669
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.enabled, false);
|
|
670
|
+
ASSERT_EQ(base_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
671
|
+
dflt.use_zstd_dict_trainer);
|
|
655
672
|
|
|
656
673
|
// Test as struct values
|
|
657
674
|
ASSERT_OK(GetColumnFamilyOptionsFromString(
|
|
658
675
|
config_options, ColumnFamilyOptions(),
|
|
659
676
|
"compression_opts={window_bits=5; level=6; strategy=7; max_dict_bytes=8;"
|
|
660
|
-
"zstd_max_train_bytes=9;parallel_threads=10;enabled=true
|
|
677
|
+
"zstd_max_train_bytes=9;parallel_threads=10;enabled=true;use_zstd_dict_"
|
|
678
|
+
"trainer=false}; "
|
|
661
679
|
"bottommost_compression_opts={window_bits=4; level=5; strategy=6;"
|
|
662
680
|
" max_dict_bytes=7;zstd_max_train_bytes=8;parallel_threads=9;"
|
|
663
|
-
"enabled=false}; ",
|
|
681
|
+
"enabled=false;use_zstd_dict_trainer=true}; ",
|
|
664
682
|
&new_cf_opt));
|
|
665
683
|
ASSERT_EQ(new_cf_opt.compression_opts.window_bits, 5);
|
|
666
684
|
ASSERT_EQ(new_cf_opt.compression_opts.level, 6);
|
|
@@ -669,6 +687,7 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
669
687
|
ASSERT_EQ(new_cf_opt.compression_opts.zstd_max_train_bytes, 9u);
|
|
670
688
|
ASSERT_EQ(new_cf_opt.compression_opts.parallel_threads, 10u);
|
|
671
689
|
ASSERT_EQ(new_cf_opt.compression_opts.enabled, true);
|
|
690
|
+
ASSERT_EQ(new_cf_opt.compression_opts.use_zstd_dict_trainer, false);
|
|
672
691
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.window_bits, 4);
|
|
673
692
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.level, 5);
|
|
674
693
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.strategy, 6);
|
|
@@ -676,6 +695,7 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
676
695
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.zstd_max_train_bytes, 8u);
|
|
677
696
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.parallel_threads, 9u);
|
|
678
697
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.enabled, false);
|
|
698
|
+
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer, true);
|
|
679
699
|
|
|
680
700
|
ASSERT_OK(GetColumnFamilyOptionsFromString(
|
|
681
701
|
config_options, base_cf_opt,
|
|
@@ -707,6 +727,8 @@ TEST_F(OptionsTest, CompressionOptionsFromString) {
|
|
|
707
727
|
base_cf_opt.bottommost_compression_opts.parallel_threads);
|
|
708
728
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.enabled,
|
|
709
729
|
base_cf_opt.bottommost_compression_opts.enabled);
|
|
730
|
+
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
731
|
+
base_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer);
|
|
710
732
|
|
|
711
733
|
// Test a few individual struct values
|
|
712
734
|
ASSERT_OK(GetColumnFamilyOptionsFromString(
|
|
@@ -799,6 +821,7 @@ TEST_F(OptionsTest, OldInterfaceTest) {
|
|
|
799
821
|
{"error_if_exists", "false"},
|
|
800
822
|
{"paranoid_checks", "true"},
|
|
801
823
|
{"track_and_verify_wals_in_manifest", "true"},
|
|
824
|
+
{"verify_sst_unique_id_in_manifest", "true"},
|
|
802
825
|
{"max_open_files", "32"},
|
|
803
826
|
};
|
|
804
827
|
ASSERT_OK(GetDBOptionsFromMap(base_db_opt, db_options_map, &new_db_opt));
|
|
@@ -807,6 +830,7 @@ TEST_F(OptionsTest, OldInterfaceTest) {
|
|
|
807
830
|
ASSERT_EQ(new_db_opt.error_if_exists, false);
|
|
808
831
|
ASSERT_EQ(new_db_opt.paranoid_checks, true);
|
|
809
832
|
ASSERT_EQ(new_db_opt.track_and_verify_wals_in_manifest, true);
|
|
833
|
+
ASSERT_EQ(new_db_opt.verify_sst_unique_id_in_manifest, true);
|
|
810
834
|
ASSERT_EQ(new_db_opt.max_open_files, 32);
|
|
811
835
|
db_options_map["unknown_option"] = "1";
|
|
812
836
|
Status s = GetDBOptionsFromMap(base_db_opt, db_options_map, &new_db_opt);
|
|
@@ -854,8 +878,6 @@ TEST_F(OptionsTest, GetBlockBasedTableOptionsFromString) {
|
|
|
854
878
|
"block_cache=1M;block_cache_compressed=1k;block_size=1024;"
|
|
855
879
|
"block_size_deviation=8;block_restart_interval=4;"
|
|
856
880
|
"format_version=5;whole_key_filtering=1;"
|
|
857
|
-
"reserve_table_builder_memory=true;"
|
|
858
|
-
"reserve_table_reader_memory=true;"
|
|
859
881
|
"filter_policy=bloomfilter:4.567:false;detect_filter_construct_"
|
|
860
882
|
"corruption=true;"
|
|
861
883
|
// A bug caused read_amp_bytes_per_bit to be a large integer in OPTIONS
|
|
@@ -877,8 +899,6 @@ TEST_F(OptionsTest, GetBlockBasedTableOptionsFromString) {
|
|
|
877
899
|
ASSERT_EQ(new_opt.format_version, 5U);
|
|
878
900
|
ASSERT_EQ(new_opt.whole_key_filtering, true);
|
|
879
901
|
ASSERT_EQ(new_opt.detect_filter_construct_corruption, true);
|
|
880
|
-
ASSERT_EQ(new_opt.reserve_table_builder_memory, true);
|
|
881
|
-
ASSERT_EQ(new_opt.reserve_table_reader_memory, true);
|
|
882
902
|
ASSERT_TRUE(new_opt.filter_policy != nullptr);
|
|
883
903
|
auto bfp = new_opt.filter_policy->CheckedCast<BloomFilterPolicy>();
|
|
884
904
|
ASSERT_NE(bfp, nullptr);
|
|
@@ -1351,6 +1371,7 @@ TEST_F(OptionsTest, GetOptionsFromStringTest) {
|
|
|
1351
1371
|
ASSERT_EQ(new_options.compression_opts.zstd_max_train_bytes, 0u);
|
|
1352
1372
|
ASSERT_EQ(new_options.compression_opts.parallel_threads, 1u);
|
|
1353
1373
|
ASSERT_EQ(new_options.compression_opts.enabled, false);
|
|
1374
|
+
ASSERT_EQ(new_options.compression_opts.use_zstd_dict_trainer, true);
|
|
1354
1375
|
ASSERT_EQ(new_options.bottommost_compression, kDisableCompressionOption);
|
|
1355
1376
|
ASSERT_EQ(new_options.bottommost_compression_opts.window_bits, 5);
|
|
1356
1377
|
ASSERT_EQ(new_options.bottommost_compression_opts.level, 6);
|
|
@@ -1359,6 +1380,8 @@ TEST_F(OptionsTest, GetOptionsFromStringTest) {
|
|
|
1359
1380
|
ASSERT_EQ(new_options.bottommost_compression_opts.zstd_max_train_bytes, 0u);
|
|
1360
1381
|
ASSERT_EQ(new_options.bottommost_compression_opts.parallel_threads, 1u);
|
|
1361
1382
|
ASSERT_EQ(new_options.bottommost_compression_opts.enabled, false);
|
|
1383
|
+
ASSERT_EQ(new_options.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
1384
|
+
true);
|
|
1362
1385
|
ASSERT_EQ(new_options.write_buffer_size, 10U);
|
|
1363
1386
|
ASSERT_EQ(new_options.max_write_buffer_number, 16);
|
|
1364
1387
|
const auto new_bbto =
|
|
@@ -2263,7 +2286,7 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2263
2286
|
"kZSTDNotFinalCompression"},
|
|
2264
2287
|
{"bottommost_compression", "kLZ4Compression"},
|
|
2265
2288
|
{"bottommost_compression_opts", "5:6:7:8:9:true"},
|
|
2266
|
-
{"compression_opts", "4:5:6:7:8:true"},
|
|
2289
|
+
{"compression_opts", "4:5:6:7:8:9:true:10:false"},
|
|
2267
2290
|
{"num_levels", "8"},
|
|
2268
2291
|
{"level0_file_num_compaction_trigger", "8"},
|
|
2269
2292
|
{"level0_slowdown_writes_trigger", "9"},
|
|
@@ -2316,6 +2339,7 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2316
2339
|
{"error_if_exists", "false"},
|
|
2317
2340
|
{"paranoid_checks", "true"},
|
|
2318
2341
|
{"track_and_verify_wals_in_manifest", "true"},
|
|
2342
|
+
{"verify_sst_unique_id_in_manifest", "true"},
|
|
2319
2343
|
{"max_open_files", "32"},
|
|
2320
2344
|
{"max_total_wal_size", "33"},
|
|
2321
2345
|
{"use_fsync", "true"},
|
|
@@ -2380,9 +2404,10 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2380
2404
|
ASSERT_EQ(new_cf_opt.compression_opts.strategy, 6);
|
|
2381
2405
|
ASSERT_EQ(new_cf_opt.compression_opts.max_dict_bytes, 7u);
|
|
2382
2406
|
ASSERT_EQ(new_cf_opt.compression_opts.zstd_max_train_bytes, 8u);
|
|
2383
|
-
ASSERT_EQ(new_cf_opt.compression_opts.parallel_threads,
|
|
2384
|
-
CompressionOptions().parallel_threads);
|
|
2407
|
+
ASSERT_EQ(new_cf_opt.compression_opts.parallel_threads, 9u);
|
|
2385
2408
|
ASSERT_EQ(new_cf_opt.compression_opts.enabled, true);
|
|
2409
|
+
ASSERT_EQ(new_cf_opt.compression_opts.max_dict_buffer_bytes, 10u);
|
|
2410
|
+
ASSERT_EQ(new_cf_opt.compression_opts.use_zstd_dict_trainer, false);
|
|
2386
2411
|
ASSERT_EQ(new_cf_opt.bottommost_compression, kLZ4Compression);
|
|
2387
2412
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.window_bits, 5);
|
|
2388
2413
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.level, 6);
|
|
@@ -2392,6 +2417,10 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2392
2417
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.parallel_threads,
|
|
2393
2418
|
CompressionOptions().parallel_threads);
|
|
2394
2419
|
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.enabled, true);
|
|
2420
|
+
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.max_dict_buffer_bytes,
|
|
2421
|
+
CompressionOptions().max_dict_buffer_bytes);
|
|
2422
|
+
ASSERT_EQ(new_cf_opt.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
2423
|
+
CompressionOptions().use_zstd_dict_trainer);
|
|
2395
2424
|
ASSERT_EQ(new_cf_opt.num_levels, 8);
|
|
2396
2425
|
ASSERT_EQ(new_cf_opt.level0_file_num_compaction_trigger, 8);
|
|
2397
2426
|
ASSERT_EQ(new_cf_opt.level0_slowdown_writes_trigger, 9);
|
|
@@ -3054,6 +3083,7 @@ TEST_F(OptionsOldApiTest, GetOptionsFromStringTest) {
|
|
|
3054
3083
|
ASSERT_EQ(new_options.compression_opts.zstd_max_train_bytes, 0u);
|
|
3055
3084
|
ASSERT_EQ(new_options.compression_opts.parallel_threads, 1u);
|
|
3056
3085
|
ASSERT_EQ(new_options.compression_opts.enabled, false);
|
|
3086
|
+
ASSERT_EQ(new_options.compression_opts.use_zstd_dict_trainer, true);
|
|
3057
3087
|
ASSERT_EQ(new_options.bottommost_compression, kDisableCompressionOption);
|
|
3058
3088
|
ASSERT_EQ(new_options.bottommost_compression_opts.window_bits, 5);
|
|
3059
3089
|
ASSERT_EQ(new_options.bottommost_compression_opts.level, 6);
|
|
@@ -3062,6 +3092,8 @@ TEST_F(OptionsOldApiTest, GetOptionsFromStringTest) {
|
|
|
3062
3092
|
ASSERT_EQ(new_options.bottommost_compression_opts.zstd_max_train_bytes, 0u);
|
|
3063
3093
|
ASSERT_EQ(new_options.bottommost_compression_opts.parallel_threads, 1u);
|
|
3064
3094
|
ASSERT_EQ(new_options.bottommost_compression_opts.enabled, false);
|
|
3095
|
+
ASSERT_EQ(new_options.bottommost_compression_opts.use_zstd_dict_trainer,
|
|
3096
|
+
true);
|
|
3065
3097
|
ASSERT_EQ(new_options.write_buffer_size, 10U);
|
|
3066
3098
|
ASSERT_EQ(new_options.max_write_buffer_number, 16);
|
|
3067
3099
|
|
|
@@ -3346,31 +3378,31 @@ TEST_F(OptionsParserTest, IgnoreUnknownOptions) {
|
|
|
3346
3378
|
if (case_id == 0) {
|
|
3347
3379
|
// same version
|
|
3348
3380
|
should_ignore = false;
|
|
3349
|
-
version_string =
|
|
3350
|
-
|
|
3381
|
+
version_string = std::to_string(ROCKSDB_MAJOR) + "." +
|
|
3382
|
+
std::to_string(ROCKSDB_MINOR) + ".0";
|
|
3351
3383
|
} else if (case_id == 1) {
|
|
3352
3384
|
// higher minor version
|
|
3353
3385
|
should_ignore = true;
|
|
3354
|
-
version_string =
|
|
3355
|
-
|
|
3386
|
+
version_string = std::to_string(ROCKSDB_MAJOR) + "." +
|
|
3387
|
+
std::to_string(ROCKSDB_MINOR + 1) + ".0";
|
|
3356
3388
|
} else if (case_id == 2) {
|
|
3357
3389
|
// higher major version.
|
|
3358
3390
|
should_ignore = true;
|
|
3359
|
-
version_string =
|
|
3391
|
+
version_string = std::to_string(ROCKSDB_MAJOR + 1) + ".0.0";
|
|
3360
3392
|
} else if (case_id == 3) {
|
|
3361
3393
|
// lower minor version
|
|
3362
3394
|
#if ROCKSDB_MINOR == 0
|
|
3363
3395
|
continue;
|
|
3364
3396
|
#else
|
|
3365
|
-
version_string =
|
|
3366
|
-
|
|
3397
|
+
version_string = std::to_string(ROCKSDB_MAJOR) + "." +
|
|
3398
|
+
std::to_string(ROCKSDB_MINOR - 1) + ".0";
|
|
3367
3399
|
should_ignore = false;
|
|
3368
3400
|
#endif
|
|
3369
3401
|
} else {
|
|
3370
3402
|
// lower major version
|
|
3371
3403
|
should_ignore = false;
|
|
3372
|
-
version_string =
|
|
3373
|
-
|
|
3404
|
+
version_string = std::to_string(ROCKSDB_MAJOR - 1) + "." +
|
|
3405
|
+
std::to_string(ROCKSDB_MINOR) + ".0";
|
|
3374
3406
|
}
|
|
3375
3407
|
|
|
3376
3408
|
std::string options_file_content =
|
|
@@ -4082,9 +4114,10 @@ TEST_F(OptionsParserTest, IntegerParsing) {
|
|
|
4082
4114
|
ASSERT_EQ(ParseUint32("4294967295"), 4294967295U);
|
|
4083
4115
|
ASSERT_EQ(ParseSizeT("18446744073709551615"), 18446744073709551615U);
|
|
4084
4116
|
ASSERT_EQ(ParseInt64("9223372036854775807"), 9223372036854775807);
|
|
4085
|
-
ASSERT_EQ(ParseInt64("-9223372036854775808"),
|
|
4117
|
+
ASSERT_EQ(ParseInt64("-9223372036854775808"),
|
|
4118
|
+
std::numeric_limits<int64_t>::min());
|
|
4086
4119
|
ASSERT_EQ(ParseInt32("2147483647"), 2147483647);
|
|
4087
|
-
ASSERT_EQ(ParseInt32("-2147483648"),
|
|
4120
|
+
ASSERT_EQ(ParseInt32("-2147483648"), std::numeric_limits<int32_t>::min());
|
|
4088
4121
|
ASSERT_EQ(ParseInt("-32767"), -32767);
|
|
4089
4122
|
ASSERT_EQ(ParseDouble("-1.234567"), -1.234567);
|
|
4090
4123
|
}
|
|
@@ -4265,19 +4298,20 @@ TEST_F(OptionTypeInfoTest, TestInvalidArgs) {
|
|
|
4265
4298
|
}
|
|
4266
4299
|
|
|
4267
4300
|
TEST_F(OptionTypeInfoTest, TestParseFunc) {
|
|
4268
|
-
OptionTypeInfo opt_info(
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4301
|
+
OptionTypeInfo opt_info(0, OptionType::kUnknown,
|
|
4302
|
+
OptionVerificationType::kNormal,
|
|
4303
|
+
OptionTypeFlags::kNone);
|
|
4304
|
+
opt_info.SetParseFunc([](const ConfigOptions& /*opts*/,
|
|
4305
|
+
const std::string& name, const std::string& value,
|
|
4306
|
+
void* addr) {
|
|
4307
|
+
auto ptr = static_cast<std::string*>(addr);
|
|
4308
|
+
if (name == "Oops") {
|
|
4309
|
+
return Status::InvalidArgument(value);
|
|
4310
|
+
} else {
|
|
4311
|
+
*ptr = value + " " + name;
|
|
4312
|
+
return Status::OK();
|
|
4313
|
+
}
|
|
4314
|
+
});
|
|
4281
4315
|
ConfigOptions config_options;
|
|
4282
4316
|
std::string base;
|
|
4283
4317
|
ASSERT_OK(opt_info.Parse(config_options, "World", "Hello", &base));
|
|
@@ -4286,19 +4320,19 @@ TEST_F(OptionTypeInfoTest, TestParseFunc) {
|
|
|
4286
4320
|
}
|
|
4287
4321
|
|
|
4288
4322
|
TEST_F(OptionTypeInfoTest, TestSerializeFunc) {
|
|
4289
|
-
OptionTypeInfo opt_info(
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4323
|
+
OptionTypeInfo opt_info(0, OptionType::kString,
|
|
4324
|
+
OptionVerificationType::kNormal,
|
|
4325
|
+
OptionTypeFlags::kNone);
|
|
4326
|
+
opt_info.SetSerializeFunc([](const ConfigOptions& /*opts*/,
|
|
4327
|
+
const std::string& name, const void* /*addr*/,
|
|
4328
|
+
std::string* value) {
|
|
4329
|
+
if (name == "Oops") {
|
|
4330
|
+
return Status::InvalidArgument(name);
|
|
4331
|
+
} else {
|
|
4332
|
+
*value = name;
|
|
4333
|
+
return Status::OK();
|
|
4334
|
+
}
|
|
4335
|
+
});
|
|
4302
4336
|
ConfigOptions config_options;
|
|
4303
4337
|
std::string base;
|
|
4304
4338
|
std::string value;
|
|
@@ -4308,24 +4342,24 @@ TEST_F(OptionTypeInfoTest, TestSerializeFunc) {
|
|
|
4308
4342
|
}
|
|
4309
4343
|
|
|
4310
4344
|
TEST_F(OptionTypeInfoTest, TestEqualsFunc) {
|
|
4311
|
-
OptionTypeInfo opt_info(
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4345
|
+
OptionTypeInfo opt_info(0, OptionType::kInt, OptionVerificationType::kNormal,
|
|
4346
|
+
OptionTypeFlags::kNone);
|
|
4347
|
+
opt_info.SetEqualsFunc([](const ConfigOptions& /*opts*/,
|
|
4348
|
+
const std::string& name, const void* addr1,
|
|
4349
|
+
const void* addr2, std::string* mismatch) {
|
|
4350
|
+
auto i1 = *(static_cast<const int*>(addr1));
|
|
4351
|
+
auto i2 = *(static_cast<const int*>(addr2));
|
|
4352
|
+
if (name == "LT") {
|
|
4353
|
+
return i1 < i2;
|
|
4354
|
+
} else if (name == "GT") {
|
|
4355
|
+
return i1 > i2;
|
|
4356
|
+
} else if (name == "EQ") {
|
|
4357
|
+
return i1 == i2;
|
|
4358
|
+
} else {
|
|
4359
|
+
*mismatch = name + "???";
|
|
4360
|
+
return false;
|
|
4361
|
+
}
|
|
4362
|
+
});
|
|
4329
4363
|
|
|
4330
4364
|
ConfigOptions config_options;
|
|
4331
4365
|
int int1 = 100;
|
|
@@ -4341,6 +4375,64 @@ TEST_F(OptionTypeInfoTest, TestEqualsFunc) {
|
|
|
4341
4375
|
ASSERT_EQ(mismatch, "NO???");
|
|
4342
4376
|
}
|
|
4343
4377
|
|
|
4378
|
+
TEST_F(OptionTypeInfoTest, TestPrepareFunc) {
|
|
4379
|
+
OptionTypeInfo opt_info(0, OptionType::kInt, OptionVerificationType::kNormal,
|
|
4380
|
+
OptionTypeFlags::kNone);
|
|
4381
|
+
opt_info.SetPrepareFunc(
|
|
4382
|
+
[](const ConfigOptions& /*opts*/, const std::string& name, void* addr) {
|
|
4383
|
+
auto i1 = static_cast<int*>(addr);
|
|
4384
|
+
if (name == "x2") {
|
|
4385
|
+
*i1 *= 2;
|
|
4386
|
+
} else if (name == "/2") {
|
|
4387
|
+
*i1 /= 2;
|
|
4388
|
+
} else {
|
|
4389
|
+
return Status::InvalidArgument("Bad Argument", name);
|
|
4390
|
+
}
|
|
4391
|
+
return Status::OK();
|
|
4392
|
+
});
|
|
4393
|
+
ConfigOptions config_options;
|
|
4394
|
+
int int1 = 100;
|
|
4395
|
+
ASSERT_OK(opt_info.Prepare(config_options, "x2", &int1));
|
|
4396
|
+
ASSERT_EQ(int1, 200);
|
|
4397
|
+
ASSERT_OK(opt_info.Prepare(config_options, "/2", &int1));
|
|
4398
|
+
ASSERT_EQ(int1, 100);
|
|
4399
|
+
ASSERT_NOK(opt_info.Prepare(config_options, "??", &int1));
|
|
4400
|
+
ASSERT_EQ(int1, 100);
|
|
4401
|
+
}
|
|
4402
|
+
TEST_F(OptionTypeInfoTest, TestValidateFunc) {
|
|
4403
|
+
OptionTypeInfo opt_info(0, OptionType::kSizeT,
|
|
4404
|
+
OptionVerificationType::kNormal,
|
|
4405
|
+
OptionTypeFlags::kNone);
|
|
4406
|
+
opt_info.SetValidateFunc([](const DBOptions& db_opts,
|
|
4407
|
+
const ColumnFamilyOptions& cf_opts,
|
|
4408
|
+
const std::string& name, const void* addr) {
|
|
4409
|
+
const auto sz = static_cast<const size_t*>(addr);
|
|
4410
|
+
bool is_valid = false;
|
|
4411
|
+
if (name == "keep_log_file_num") {
|
|
4412
|
+
is_valid = (*sz == db_opts.keep_log_file_num);
|
|
4413
|
+
} else if (name == "write_buffer_size") {
|
|
4414
|
+
is_valid = (*sz == cf_opts.write_buffer_size);
|
|
4415
|
+
}
|
|
4416
|
+
if (is_valid) {
|
|
4417
|
+
return Status::OK();
|
|
4418
|
+
} else {
|
|
4419
|
+
return Status::InvalidArgument("Mismatched value", name);
|
|
4420
|
+
}
|
|
4421
|
+
});
|
|
4422
|
+
ConfigOptions config_options;
|
|
4423
|
+
DBOptions db_options;
|
|
4424
|
+
ColumnFamilyOptions cf_options;
|
|
4425
|
+
|
|
4426
|
+
ASSERT_OK(opt_info.Validate(db_options, cf_options, "keep_log_file_num",
|
|
4427
|
+
&db_options.keep_log_file_num));
|
|
4428
|
+
ASSERT_OK(opt_info.Validate(db_options, cf_options, "write_buffer_size",
|
|
4429
|
+
&cf_options.write_buffer_size));
|
|
4430
|
+
ASSERT_NOK(opt_info.Validate(db_options, cf_options, "keep_log_file_num",
|
|
4431
|
+
&cf_options.write_buffer_size));
|
|
4432
|
+
ASSERT_NOK(opt_info.Validate(db_options, cf_options, "write_buffer_size",
|
|
4433
|
+
&db_options.keep_log_file_num));
|
|
4434
|
+
}
|
|
4435
|
+
|
|
4344
4436
|
TEST_F(OptionTypeInfoTest, TestOptionFlags) {
|
|
4345
4437
|
OptionTypeInfo opt_none(0, OptionType::kString,
|
|
4346
4438
|
OptionVerificationType::kNormal,
|
|
@@ -4543,6 +4635,68 @@ TEST_F(OptionTypeInfoTest, TestStruct) {
|
|
|
4543
4635
|
ASSERT_EQ(e1.b.s, "66");
|
|
4544
4636
|
}
|
|
4545
4637
|
|
|
4638
|
+
TEST_F(OptionTypeInfoTest, TestArrayType) {
|
|
4639
|
+
OptionTypeInfo array_info = OptionTypeInfo::Array<std::string, 4>(
|
|
4640
|
+
0, OptionVerificationType::kNormal, OptionTypeFlags::kNone,
|
|
4641
|
+
{0, OptionType::kString});
|
|
4642
|
+
std::array<std::string, 4> array1, array2;
|
|
4643
|
+
std::string mismatch;
|
|
4644
|
+
|
|
4645
|
+
ConfigOptions config_options;
|
|
4646
|
+
TestParseAndCompareOption(config_options, array_info, "v", "a:b:c:d", &array1,
|
|
4647
|
+
&array2);
|
|
4648
|
+
|
|
4649
|
+
ASSERT_EQ(array1.size(), 4);
|
|
4650
|
+
ASSERT_EQ(array1[0], "a");
|
|
4651
|
+
ASSERT_EQ(array1[1], "b");
|
|
4652
|
+
ASSERT_EQ(array1[2], "c");
|
|
4653
|
+
ASSERT_EQ(array1[3], "d");
|
|
4654
|
+
array1[3] = "e";
|
|
4655
|
+
ASSERT_FALSE(
|
|
4656
|
+
array_info.AreEqual(config_options, "v", &array1, &array2, &mismatch));
|
|
4657
|
+
ASSERT_EQ(mismatch, "v");
|
|
4658
|
+
|
|
4659
|
+
// Test vectors with inner brackets
|
|
4660
|
+
TestParseAndCompareOption(config_options, array_info, "v", "a:{b}:c:d",
|
|
4661
|
+
&array1, &array2);
|
|
4662
|
+
ASSERT_EQ(array1.size(), 4);
|
|
4663
|
+
ASSERT_EQ(array1[0], "a");
|
|
4664
|
+
ASSERT_EQ(array1[1], "b");
|
|
4665
|
+
ASSERT_EQ(array1[2], "c");
|
|
4666
|
+
ASSERT_EQ(array1[3], "d");
|
|
4667
|
+
|
|
4668
|
+
std::array<std::string, 3> array3, array4;
|
|
4669
|
+
OptionTypeInfo bar_info = OptionTypeInfo::Array<std::string, 3>(
|
|
4670
|
+
0, OptionVerificationType::kNormal, OptionTypeFlags::kNone,
|
|
4671
|
+
{0, OptionType::kString}, '|');
|
|
4672
|
+
TestParseAndCompareOption(config_options, bar_info, "v", "x|y|z", &array3,
|
|
4673
|
+
&array4);
|
|
4674
|
+
|
|
4675
|
+
// Test arrays with inner array
|
|
4676
|
+
TestParseAndCompareOption(config_options, bar_info, "v",
|
|
4677
|
+
"a|{b1|b2}|{c1|c2|{d1|d2}}", &array3, &array4,
|
|
4678
|
+
false);
|
|
4679
|
+
ASSERT_EQ(array3.size(), 3);
|
|
4680
|
+
ASSERT_EQ(array3[0], "a");
|
|
4681
|
+
ASSERT_EQ(array3[1], "b1|b2");
|
|
4682
|
+
ASSERT_EQ(array3[2], "c1|c2|{d1|d2}");
|
|
4683
|
+
|
|
4684
|
+
TestParseAndCompareOption(config_options, bar_info, "v",
|
|
4685
|
+
"{a1|a2}|{b1|{c1|c2}}|d1", &array3, &array4, true);
|
|
4686
|
+
ASSERT_EQ(array3.size(), 3);
|
|
4687
|
+
ASSERT_EQ(array3[0], "a1|a2");
|
|
4688
|
+
ASSERT_EQ(array3[1], "b1|{c1|c2}");
|
|
4689
|
+
ASSERT_EQ(array3[2], "d1");
|
|
4690
|
+
|
|
4691
|
+
// Test invalid input: less element than requested
|
|
4692
|
+
auto s = bar_info.Parse(config_options, "opt_name1", "a1|a2", &array3);
|
|
4693
|
+
ASSERT_TRUE(s.IsInvalidArgument());
|
|
4694
|
+
|
|
4695
|
+
// Test invalid input: more element than requested
|
|
4696
|
+
s = bar_info.Parse(config_options, "opt_name2", "a1|b|c1|d3", &array3);
|
|
4697
|
+
ASSERT_TRUE(s.IsInvalidArgument());
|
|
4698
|
+
}
|
|
4699
|
+
|
|
4546
4700
|
TEST_F(OptionTypeInfoTest, TestVectorType) {
|
|
4547
4701
|
OptionTypeInfo vec_info = OptionTypeInfo::Vector<std::string>(
|
|
4548
4702
|
0, OptionVerificationType::kNormal, OptionTypeFlags::kNone,
|
|
@@ -25,11 +25,6 @@
|
|
|
25
25
|
|
|
26
26
|
#define ROCKSDB_NOEXCEPT noexcept
|
|
27
27
|
|
|
28
|
-
// thread_local is part of C++11 and later (TODO: clean up this define)
|
|
29
|
-
#ifndef __thread
|
|
30
|
-
#define __thread thread_local
|
|
31
|
-
#endif
|
|
32
|
-
|
|
33
28
|
#undef PLATFORM_IS_LITTLE_ENDIAN
|
|
34
29
|
#if defined(OS_MACOSX)
|
|
35
30
|
#include <machine/endian.h>
|
|
@@ -95,16 +90,6 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
95
90
|
extern const bool kDefaultToAdaptiveMutex;
|
|
96
91
|
|
|
97
92
|
namespace port {
|
|
98
|
-
|
|
99
|
-
// For use at db/file_indexer.h kLevelMaxIndex
|
|
100
|
-
const uint32_t kMaxUint32 = std::numeric_limits<uint32_t>::max();
|
|
101
|
-
const int kMaxInt32 = std::numeric_limits<int32_t>::max();
|
|
102
|
-
const int kMinInt32 = std::numeric_limits<int32_t>::min();
|
|
103
|
-
const uint64_t kMaxUint64 = std::numeric_limits<uint64_t>::max();
|
|
104
|
-
const int64_t kMaxInt64 = std::numeric_limits<int64_t>::max();
|
|
105
|
-
const int64_t kMinInt64 = std::numeric_limits<int64_t>::min();
|
|
106
|
-
const size_t kMaxSizet = std::numeric_limits<size_t>::max();
|
|
107
|
-
|
|
108
93
|
constexpr bool kLittleEndian = PLATFORM_IS_LITTLE_ENDIAN;
|
|
109
94
|
#undef PLATFORM_IS_LITTLE_ENDIAN
|
|
110
95
|
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
#include "monitoring/iostats_context_imp.h"
|
|
29
29
|
#include "monitoring/thread_status_updater.h"
|
|
30
30
|
#include "monitoring/thread_status_util.h"
|
|
31
|
+
#include "port/lang.h"
|
|
31
32
|
#include "port/port.h"
|
|
32
33
|
#include "port/port_dirent.h"
|
|
33
34
|
#include "port/win/io_win.h"
|
|
@@ -192,8 +193,8 @@ WinFileSystem::WinFileSystem(const std::shared_ptr<SystemClock>& clock)
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
const std::shared_ptr<WinFileSystem>& WinFileSystem::Default() {
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
STATIC_AVOID_DESTRUCTION(std::shared_ptr<WinFileSystem>, fs)
|
|
197
|
+
(std::make_shared<WinFileSystem>(WinClock::Default()));
|
|
197
198
|
return fs;
|
|
198
199
|
}
|
|
199
200
|
|
|
@@ -1410,8 +1411,8 @@ std::shared_ptr<FileSystem> FileSystem::Default() {
|
|
|
1410
1411
|
}
|
|
1411
1412
|
|
|
1412
1413
|
const std::shared_ptr<SystemClock>& SystemClock::Default() {
|
|
1413
|
-
|
|
1414
|
-
|
|
1414
|
+
STATIC_AVOID_DESTRUCTION(std::shared_ptr<SystemClock>, clock)
|
|
1415
|
+
(std::make_shared<port::WinClock>());
|
|
1415
1416
|
return clock;
|
|
1416
1417
|
}
|
|
1417
1418
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -80,8 +80,8 @@ class WinClock : public SystemClock {
|
|
|
80
80
|
virtual ~WinClock() {}
|
|
81
81
|
|
|
82
82
|
static const char* kClassName() { return "WindowsClock"; }
|
|
83
|
-
const char* Name() const override { return
|
|
84
|
-
const char* NickName() const override { return
|
|
83
|
+
const char* Name() const override { return kDefaultName(); }
|
|
84
|
+
const char* NickName() const override { return kClassName(); }
|
|
85
85
|
|
|
86
86
|
uint64_t NowMicros() override;
|
|
87
87
|
|
|
@@ -60,11 +60,6 @@ using ssize_t = SSIZE_T;
|
|
|
60
60
|
#ifdef _MSC_VER
|
|
61
61
|
#define __attribute__(A)
|
|
62
62
|
|
|
63
|
-
// thread_local is part of C++11 and later (TODO: clean up this define)
|
|
64
|
-
#ifndef __thread
|
|
65
|
-
#define __thread thread_local
|
|
66
|
-
#endif
|
|
67
|
-
|
|
68
63
|
#endif
|
|
69
64
|
|
|
70
65
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -82,37 +77,11 @@ namespace port {
|
|
|
82
77
|
#define snprintf _snprintf
|
|
83
78
|
|
|
84
79
|
#define ROCKSDB_NOEXCEPT
|
|
85
|
-
// std::numeric_limits<size_t>::max() is not constexpr just yet
|
|
86
|
-
// therefore, use the same limits
|
|
87
|
-
|
|
88
|
-
// For use at db/file_indexer.h kLevelMaxIndex
|
|
89
|
-
const uint32_t kMaxUint32 = UINT32_MAX;
|
|
90
|
-
const int kMaxInt32 = INT32_MAX;
|
|
91
|
-
const int kMinInt32 = INT32_MIN;
|
|
92
|
-
const int64_t kMaxInt64 = INT64_MAX;
|
|
93
|
-
const int64_t kMinInt64 = INT64_MIN;
|
|
94
|
-
const uint64_t kMaxUint64 = UINT64_MAX;
|
|
95
|
-
|
|
96
|
-
#ifdef _WIN64
|
|
97
|
-
const size_t kMaxSizet = UINT64_MAX;
|
|
98
|
-
#else
|
|
99
|
-
const size_t kMaxSizet = UINT_MAX;
|
|
100
|
-
#endif
|
|
101
80
|
|
|
102
81
|
#else // VS >= 2015 or MinGW
|
|
103
82
|
|
|
104
83
|
#define ROCKSDB_NOEXCEPT noexcept
|
|
105
84
|
|
|
106
|
-
// For use at db/file_indexer.h kLevelMaxIndex
|
|
107
|
-
const uint32_t kMaxUint32 = std::numeric_limits<uint32_t>::max();
|
|
108
|
-
const int kMaxInt32 = std::numeric_limits<int>::max();
|
|
109
|
-
const int kMinInt32 = std::numeric_limits<int>::min();
|
|
110
|
-
const uint64_t kMaxUint64 = std::numeric_limits<uint64_t>::max();
|
|
111
|
-
const int64_t kMaxInt64 = std::numeric_limits<int64_t>::max();
|
|
112
|
-
const int64_t kMinInt64 = std::numeric_limits<int64_t>::min();
|
|
113
|
-
|
|
114
|
-
const size_t kMaxSizet = std::numeric_limits<size_t>::max();
|
|
115
|
-
|
|
116
85
|
#endif //_MSC_VER
|
|
117
86
|
|
|
118
87
|
// "Windows is designed to run on little-endian computer architectures."
|