@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
|
@@ -118,7 +118,7 @@ static std::string PrintContents(WriteBatch* b,
|
|
|
118
118
|
break;
|
|
119
119
|
}
|
|
120
120
|
state.append("@");
|
|
121
|
-
state.append(
|
|
121
|
+
state.append(std::to_string(ikey.sequence));
|
|
122
122
|
}
|
|
123
123
|
EXPECT_OK(iter->status());
|
|
124
124
|
}
|
|
@@ -253,7 +253,7 @@ namespace {
|
|
|
253
253
|
if (column_family_id == 0) {
|
|
254
254
|
seen += "Put(" + key.ToString() + ", " + value.ToString() + ")";
|
|
255
255
|
} else {
|
|
256
|
-
seen += "PutCF(" +
|
|
256
|
+
seen += "PutCF(" + std::to_string(column_family_id) + ", " +
|
|
257
257
|
key.ToString() + ", " + value.ToString() + ")";
|
|
258
258
|
}
|
|
259
259
|
return Status::OK();
|
|
@@ -262,7 +262,7 @@ namespace {
|
|
|
262
262
|
if (column_family_id == 0) {
|
|
263
263
|
seen += "Delete(" + key.ToString() + ")";
|
|
264
264
|
} else {
|
|
265
|
-
seen += "DeleteCF(" +
|
|
265
|
+
seen += "DeleteCF(" + std::to_string(column_family_id) + ", " +
|
|
266
266
|
key.ToString() + ")";
|
|
267
267
|
}
|
|
268
268
|
return Status::OK();
|
|
@@ -272,7 +272,7 @@ namespace {
|
|
|
272
272
|
if (column_family_id == 0) {
|
|
273
273
|
seen += "SingleDelete(" + key.ToString() + ")";
|
|
274
274
|
} else {
|
|
275
|
-
seen += "SingleDeleteCF(" +
|
|
275
|
+
seen += "SingleDeleteCF(" + std::to_string(column_family_id) + ", " +
|
|
276
276
|
key.ToString() + ")";
|
|
277
277
|
}
|
|
278
278
|
return Status::OK();
|
|
@@ -283,7 +283,7 @@ namespace {
|
|
|
283
283
|
seen += "DeleteRange(" + begin_key.ToString() + ", " +
|
|
284
284
|
end_key.ToString() + ")";
|
|
285
285
|
} else {
|
|
286
|
-
seen += "DeleteRangeCF(" +
|
|
286
|
+
seen += "DeleteRangeCF(" + std::to_string(column_family_id) + ", " +
|
|
287
287
|
begin_key.ToString() + ", " + end_key.ToString() + ")";
|
|
288
288
|
}
|
|
289
289
|
return Status::OK();
|
|
@@ -293,7 +293,7 @@ namespace {
|
|
|
293
293
|
if (column_family_id == 0) {
|
|
294
294
|
seen += "Merge(" + key.ToString() + ", " + value.ToString() + ")";
|
|
295
295
|
} else {
|
|
296
|
-
seen += "MergeCF(" +
|
|
296
|
+
seen += "MergeCF(" + std::to_string(column_family_id) + ", " +
|
|
297
297
|
key.ToString() + ", " + value.ToString() + ")";
|
|
298
298
|
}
|
|
299
299
|
return Status::OK();
|
|
@@ -52,7 +52,7 @@ class WriteController {
|
|
|
52
52
|
bool IsStopped() const;
|
|
53
53
|
bool NeedsDelay() const { return total_delayed_.load() > 0; }
|
|
54
54
|
bool NeedSpeedupCompaction() const {
|
|
55
|
-
return IsStopped() || NeedsDelay() || total_compaction_pressure_ > 0;
|
|
55
|
+
return IsStopped() || NeedsDelay() || total_compaction_pressure_.load() > 0;
|
|
56
56
|
}
|
|
57
57
|
// return how many microseconds the caller needs to sleep after the call
|
|
58
58
|
// num_bytes: how many number of bytes to put into the DB.
|
|
@@ -18,11 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
ROCKSDB_NAMESPACE::Env* db_stress_listener_env = nullptr;
|
|
20
20
|
ROCKSDB_NAMESPACE::Env* db_stress_env = nullptr;
|
|
21
|
-
#ifndef NDEBUG
|
|
22
21
|
// If non-null, injects read error at a rate specified by the
|
|
23
22
|
// read_fault_one_in or write_fault_one_in flag
|
|
24
23
|
std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
|
|
25
|
-
#endif // NDEBUG
|
|
26
24
|
enum ROCKSDB_NAMESPACE::CompressionType compression_type_e =
|
|
27
25
|
ROCKSDB_NAMESPACE::kSnappyCompression;
|
|
28
26
|
enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e =
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
#include "util/random.h"
|
|
68
68
|
#include "util/string_util.h"
|
|
69
69
|
#include "utilities/blob_db/blob_db.h"
|
|
70
|
+
#include "utilities/fault_injection_fs.h"
|
|
70
71
|
#include "utilities/merge_operators.h"
|
|
71
72
|
|
|
72
73
|
using GFLAGS_NAMESPACE::ParseCommandLineFlags;
|
|
@@ -107,6 +108,7 @@ DECLARE_double(memtable_prefix_bloom_size_ratio);
|
|
|
107
108
|
DECLARE_bool(memtable_whole_key_filtering);
|
|
108
109
|
DECLARE_int32(open_files);
|
|
109
110
|
DECLARE_int64(compressed_cache_size);
|
|
111
|
+
DECLARE_int32(compressed_cache_numshardbits);
|
|
110
112
|
DECLARE_int32(compaction_style);
|
|
111
113
|
DECLARE_int32(num_levels);
|
|
112
114
|
DECLARE_int32(level0_file_num_compaction_trigger);
|
|
@@ -134,7 +136,9 @@ DECLARE_int32(set_in_place_one_in);
|
|
|
134
136
|
DECLARE_int64(cache_size);
|
|
135
137
|
DECLARE_int32(cache_numshardbits);
|
|
136
138
|
DECLARE_bool(cache_index_and_filter_blocks);
|
|
137
|
-
DECLARE_bool(
|
|
139
|
+
DECLARE_bool(charge_compression_dictionary_building_buffer);
|
|
140
|
+
DECLARE_bool(charge_filter_construction);
|
|
141
|
+
DECLARE_bool(charge_table_reader);
|
|
138
142
|
DECLARE_int32(top_level_index_pinning);
|
|
139
143
|
DECLARE_int32(partition_pinning);
|
|
140
144
|
DECLARE_int32(unpartitioned_pinning);
|
|
@@ -166,6 +170,8 @@ DECLARE_bool(mock_direct_io);
|
|
|
166
170
|
DECLARE_bool(statistics);
|
|
167
171
|
DECLARE_bool(sync);
|
|
168
172
|
DECLARE_bool(use_fsync);
|
|
173
|
+
DECLARE_uint64(bytes_per_sync);
|
|
174
|
+
DECLARE_uint64(wal_bytes_per_sync);
|
|
169
175
|
DECLARE_int32(kill_random_test);
|
|
170
176
|
DECLARE_string(kill_exclude_prefixes);
|
|
171
177
|
DECLARE_bool(disable_wal);
|
|
@@ -215,6 +221,7 @@ DECLARE_int32(compression_max_dict_bytes);
|
|
|
215
221
|
DECLARE_int32(compression_zstd_max_train_bytes);
|
|
216
222
|
DECLARE_int32(compression_parallel_threads);
|
|
217
223
|
DECLARE_uint64(compression_max_dict_buffer_bytes);
|
|
224
|
+
DECLARE_bool(compression_use_zstd_dict_trainer);
|
|
218
225
|
DECLARE_string(checksum_type);
|
|
219
226
|
DECLARE_string(env_uri);
|
|
220
227
|
DECLARE_string(fs_uri);
|
|
@@ -286,6 +293,7 @@ DECLARE_uint64(wp_commit_cache_bits);
|
|
|
286
293
|
DECLARE_bool(adaptive_readahead);
|
|
287
294
|
DECLARE_bool(async_io);
|
|
288
295
|
DECLARE_string(wal_compression);
|
|
296
|
+
DECLARE_bool(verify_sst_unique_id_in_manifest);
|
|
289
297
|
|
|
290
298
|
constexpr long KB = 1024;
|
|
291
299
|
constexpr int kRandomValueMaxFactor = 3;
|
|
@@ -294,12 +302,7 @@ constexpr int kValueMaxLen = 100;
|
|
|
294
302
|
// wrapped posix environment
|
|
295
303
|
extern ROCKSDB_NAMESPACE::Env* db_stress_env;
|
|
296
304
|
extern ROCKSDB_NAMESPACE::Env* db_stress_listener_env;
|
|
297
|
-
#ifndef NDEBUG
|
|
298
|
-
namespace ROCKSDB_NAMESPACE {
|
|
299
|
-
class FaultInjectionTestFS;
|
|
300
|
-
} // namespace ROCKSDB_NAMESPACE
|
|
301
305
|
extern std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
|
|
302
|
-
#endif
|
|
303
306
|
|
|
304
307
|
extern enum ROCKSDB_NAMESPACE::CompressionType compression_type_e;
|
|
305
308
|
extern enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e;
|
|
@@ -46,11 +46,12 @@ class DbStressCompactionFilter : public CompactionFilter {
|
|
|
46
46
|
// Reaching here means we acquired the lock.
|
|
47
47
|
|
|
48
48
|
bool key_exists = state_->Exists(cf_id_, key_num);
|
|
49
|
+
const bool allow_overwrite = state_->AllowsOverwrite(key_num);
|
|
49
50
|
|
|
50
51
|
key_mutex->Unlock();
|
|
51
52
|
|
|
52
53
|
if (!key_exists) {
|
|
53
|
-
return Decision::kRemove;
|
|
54
|
+
return allow_overwrite ? Decision::kRemove : Decision::kPurge;
|
|
54
55
|
}
|
|
55
56
|
return Decision::kKeep;
|
|
56
57
|
}
|
|
@@ -58,15 +58,16 @@ void ThreadBody(void* v) {
|
|
|
58
58
|
|
|
59
59
|
bool RunStressTest(StressTest* stress) {
|
|
60
60
|
SystemClock* clock = db_stress_env->GetSystemClock().get();
|
|
61
|
-
stress->InitDb();
|
|
62
61
|
SharedState shared(db_stress_env, stress);
|
|
62
|
+
stress->InitDb(&shared);
|
|
63
63
|
stress->FinishInitDb(&shared);
|
|
64
64
|
|
|
65
|
-
#ifndef NDEBUG
|
|
66
65
|
if (FLAGS_sync_fault_injection) {
|
|
67
66
|
fault_fs_guard->SetFilesystemDirectWritable(false);
|
|
68
67
|
}
|
|
69
|
-
|
|
68
|
+
if (FLAGS_write_fault_one_in) {
|
|
69
|
+
fault_fs_guard->EnableWriteErrorInjection();
|
|
70
|
+
}
|
|
70
71
|
|
|
71
72
|
uint32_t n = FLAGS_threads;
|
|
72
73
|
uint64_t now = clock->NowMicros();
|
|
@@ -187,9 +187,15 @@ DEFINE_int32(open_files, ROCKSDB_NAMESPACE::Options().max_open_files,
|
|
|
187
187
|
"Maximum number of files to keep open at the same time "
|
|
188
188
|
"(use default if == 0)");
|
|
189
189
|
|
|
190
|
-
DEFINE_int64(compressed_cache_size,
|
|
190
|
+
DEFINE_int64(compressed_cache_size, 0,
|
|
191
191
|
"Number of bytes to use as a cache of compressed data."
|
|
192
|
-
"
|
|
192
|
+
" 0 means use default settings.");
|
|
193
|
+
|
|
194
|
+
DEFINE_int32(
|
|
195
|
+
compressed_cache_numshardbits, -1,
|
|
196
|
+
"Number of shards for the compressed block cache is 2 ** "
|
|
197
|
+
"compressed_cache_numshardbits. Negative value means default settings. "
|
|
198
|
+
"This is applied only if compressed_cache_size is greater than 0.");
|
|
193
199
|
|
|
194
200
|
DEFINE_int32(compaction_style, ROCKSDB_NAMESPACE::Options().compaction_style,
|
|
195
201
|
"");
|
|
@@ -304,10 +310,20 @@ DEFINE_int32(cache_numshardbits, 6,
|
|
|
304
310
|
DEFINE_bool(cache_index_and_filter_blocks, false,
|
|
305
311
|
"True if indexes/filters should be cached in block cache.");
|
|
306
312
|
|
|
307
|
-
DEFINE_bool(
|
|
308
|
-
"
|
|
309
|
-
"
|
|
310
|
-
"
|
|
313
|
+
DEFINE_bool(charge_compression_dictionary_building_buffer, false,
|
|
314
|
+
"Setting for "
|
|
315
|
+
"CacheEntryRoleOptions::charged of"
|
|
316
|
+
"CacheEntryRole::kCompressionDictionaryBuildingBuffer");
|
|
317
|
+
|
|
318
|
+
DEFINE_bool(charge_filter_construction, false,
|
|
319
|
+
"Setting for "
|
|
320
|
+
"CacheEntryRoleOptions::charged of"
|
|
321
|
+
"CacheEntryRole::kFilterConstruction");
|
|
322
|
+
|
|
323
|
+
DEFINE_bool(charge_table_reader, false,
|
|
324
|
+
"Setting for "
|
|
325
|
+
"CacheEntryRoleOptions::charged of"
|
|
326
|
+
"CacheEntryRole::kBlockBasedTableReader");
|
|
311
327
|
|
|
312
328
|
DEFINE_int32(
|
|
313
329
|
top_level_index_pinning,
|
|
@@ -516,6 +532,15 @@ DEFINE_bool(sync, false, "Sync all writes to disk");
|
|
|
516
532
|
|
|
517
533
|
DEFINE_bool(use_fsync, false, "If true, issue fsync instead of fdatasync");
|
|
518
534
|
|
|
535
|
+
DEFINE_uint64(bytes_per_sync, ROCKSDB_NAMESPACE::Options().bytes_per_sync,
|
|
536
|
+
"If nonzero, sync SST file data incrementally after every "
|
|
537
|
+
"`bytes_per_sync` bytes are written");
|
|
538
|
+
|
|
539
|
+
DEFINE_uint64(wal_bytes_per_sync,
|
|
540
|
+
ROCKSDB_NAMESPACE::Options().wal_bytes_per_sync,
|
|
541
|
+
"If nonzero, sync WAL file data incrementally after every "
|
|
542
|
+
"`bytes_per_sync` bytes are written");
|
|
543
|
+
|
|
519
544
|
DEFINE_int32(kill_random_test, 0,
|
|
520
545
|
"If non-zero, kill at various points in source code with "
|
|
521
546
|
"probability 1/this");
|
|
@@ -727,6 +752,13 @@ DEFINE_uint64(compression_max_dict_buffer_bytes, 0,
|
|
|
727
752
|
"Buffering limit for SST file data to sample for dictionary "
|
|
728
753
|
"compression.");
|
|
729
754
|
|
|
755
|
+
DEFINE_bool(
|
|
756
|
+
compression_use_zstd_dict_trainer, true,
|
|
757
|
+
"Use zstd's trainer to generate dictionary. If the options is false, "
|
|
758
|
+
"zstd's finalizeDictionary() API is used to generate dictionary. "
|
|
759
|
+
"ZSTD 1.4.5+ is required. If ZSTD 1.4.5+ is not linked with the binary, "
|
|
760
|
+
"this flag will have the default value true.");
|
|
761
|
+
|
|
730
762
|
DEFINE_string(bottommost_compression_type, "disable",
|
|
731
763
|
"Algorithm to use to compress bottommost level of the database. "
|
|
732
764
|
"\"disable\" means disabling the feature");
|
|
@@ -927,4 +959,10 @@ DEFINE_bool(
|
|
|
927
959
|
DEFINE_string(wal_compression, "none",
|
|
928
960
|
"Algorithm to use for WAL compression. none to disable.");
|
|
929
961
|
|
|
962
|
+
DEFINE_bool(
|
|
963
|
+
verify_sst_unique_id_in_manifest, false,
|
|
964
|
+
"Enable DB options `verify_sst_unique_id_in_manifest`, if true, during "
|
|
965
|
+
"DB-open try verifying the SST unique id between MANIFEST and SST "
|
|
966
|
+
"properties.");
|
|
967
|
+
|
|
930
968
|
#endif // GFLAGS
|
|
@@ -173,7 +173,10 @@ void DbStressListener::VerifyTableFileUniqueId(
|
|
|
173
173
|
const TableProperties& new_file_properties, const std::string& file_path) {
|
|
174
174
|
// Verify unique ID
|
|
175
175
|
std::string id;
|
|
176
|
-
|
|
176
|
+
// Unit tests verify that GetUniqueIdFromTableProperties returns just a
|
|
177
|
+
// substring of this, and we're only going to pull out 64 bits, so using
|
|
178
|
+
// GetExtendedUniqueIdFromTableProperties is arguably stronger testing here.
|
|
179
|
+
Status s = GetExtendedUniqueIdFromTableProperties(new_file_properties, &id);
|
|
177
180
|
if (!s.ok()) {
|
|
178
181
|
fprintf(stderr, "Error getting SST unique id for %s: %s\n",
|
|
179
182
|
file_path.c_str(), s.ToString().c_str());
|
|
@@ -12,16 +12,6 @@
|
|
|
12
12
|
#include "db_stress_tool/db_stress_shared_state.h"
|
|
13
13
|
|
|
14
14
|
namespace ROCKSDB_NAMESPACE {
|
|
15
|
-
const uint32_t SharedState::UNKNOWN_SENTINEL = 0xfffffffe;
|
|
16
|
-
const uint32_t SharedState::DELETION_SENTINEL = 0xffffffff;
|
|
17
|
-
#if defined(ROCKSDB_SUPPORT_THREAD_LOCAL)
|
|
18
|
-
#if defined(OS_SOLARIS)
|
|
19
|
-
__thread bool SharedState::ignore_read_error;
|
|
20
|
-
#else
|
|
21
15
|
thread_local bool SharedState::ignore_read_error;
|
|
22
|
-
#endif // OS_SOLARIS
|
|
23
|
-
#else
|
|
24
|
-
bool SharedState::ignore_read_error;
|
|
25
|
-
#endif // ROCKSDB_SUPPORT_THREAD_LOCAL
|
|
26
16
|
} // namespace ROCKSDB_NAMESPACE
|
|
27
17
|
#endif // GFLAGS
|
|
@@ -45,23 +45,15 @@ class SharedState {
|
|
|
45
45
|
public:
|
|
46
46
|
// indicates a key may have any value (or not be present) as an operation on
|
|
47
47
|
// it is incomplete.
|
|
48
|
-
static
|
|
48
|
+
static constexpr uint32_t UNKNOWN_SENTINEL = 0xfffffffe;
|
|
49
49
|
// indicates a key should definitely be deleted
|
|
50
|
-
static
|
|
50
|
+
static constexpr uint32_t DELETION_SENTINEL = 0xffffffff;
|
|
51
51
|
|
|
52
52
|
// Errors when reading filter blocks are ignored, so we use a thread
|
|
53
53
|
// local variable updated via sync points to keep track of errors injected
|
|
54
54
|
// while reading filter blocks in order to ignore the Get/MultiGet result
|
|
55
55
|
// for those calls
|
|
56
|
-
#if defined(ROCKSDB_SUPPORT_THREAD_LOCAL)
|
|
57
|
-
#if defined(OS_SOLARIS)
|
|
58
|
-
static __thread bool ignore_read_error;
|
|
59
|
-
#else
|
|
60
56
|
static thread_local bool ignore_read_error;
|
|
61
|
-
#endif // OS_SOLARIS
|
|
62
|
-
#else
|
|
63
|
-
static bool ignore_read_error;
|
|
64
|
-
#endif // ROCKSDB_SUPPORT_THREAD_LOCAL
|
|
65
57
|
|
|
66
58
|
SharedState(Env* /*env*/, StressTest* stress_test)
|
|
67
59
|
: cv_(&mu_),
|
|
@@ -81,36 +73,9 @@ class SharedState {
|
|
|
81
73
|
stress_test_(stress_test),
|
|
82
74
|
verification_failure_(false),
|
|
83
75
|
should_stop_test_(false),
|
|
84
|
-
no_overwrite_ids_(
|
|
76
|
+
no_overwrite_ids_(GenerateNoOverwriteIds()),
|
|
85
77
|
expected_state_manager_(nullptr),
|
|
86
78
|
printing_verification_results_(false) {
|
|
87
|
-
// Pick random keys in each column family that will not experience
|
|
88
|
-
// overwrite
|
|
89
|
-
|
|
90
|
-
fprintf(stdout, "Choosing random keys with no overwrite\n");
|
|
91
|
-
Random64 rnd(seed_);
|
|
92
|
-
// Start with the identity permutation. Subsequent iterations of
|
|
93
|
-
// for loop below will start with perm of previous for loop
|
|
94
|
-
int64_t* permutation = new int64_t[max_key_];
|
|
95
|
-
for (int64_t i = 0; i < max_key_; i++) {
|
|
96
|
-
permutation[i] = i;
|
|
97
|
-
}
|
|
98
|
-
// Now do the Knuth shuffle
|
|
99
|
-
int64_t num_no_overwrite_keys = (max_key_ * FLAGS_nooverwritepercent) / 100;
|
|
100
|
-
// Only need to figure out first num_no_overwrite_keys of permutation
|
|
101
|
-
no_overwrite_ids_.reserve(num_no_overwrite_keys);
|
|
102
|
-
for (int64_t i = 0; i < num_no_overwrite_keys; i++) {
|
|
103
|
-
int64_t rand_index = i + rnd.Next() % (max_key_ - i);
|
|
104
|
-
// Swap i and rand_index;
|
|
105
|
-
int64_t temp = permutation[i];
|
|
106
|
-
permutation[i] = permutation[rand_index];
|
|
107
|
-
permutation[rand_index] = temp;
|
|
108
|
-
// Fill no_overwrite_ids_ with the first num_no_overwrite_keys of
|
|
109
|
-
// permutation
|
|
110
|
-
no_overwrite_ids_.insert(permutation[i]);
|
|
111
|
-
}
|
|
112
|
-
delete[] permutation;
|
|
113
|
-
|
|
114
79
|
Status status;
|
|
115
80
|
// TODO: We should introduce a way to explicitly disable verification
|
|
116
81
|
// during shutdown. When that is disabled and FLAGS_expected_values_dir
|
|
@@ -160,13 +125,21 @@ class SharedState {
|
|
|
160
125
|
for (int i = 0; i < FLAGS_column_families; ++i) {
|
|
161
126
|
key_locks_[i].reset(new port::Mutex[num_locks]);
|
|
162
127
|
}
|
|
163
|
-
#ifndef NDEBUG
|
|
164
128
|
if (FLAGS_read_fault_one_in) {
|
|
129
|
+
#ifdef NDEBUG
|
|
130
|
+
// Unsupported in release mode because it relies on
|
|
131
|
+
// `IGNORE_STATUS_IF_ERROR` to distinguish faults not expected to lead to
|
|
132
|
+
// failure.
|
|
133
|
+
fprintf(stderr,
|
|
134
|
+
"Cannot set nonzero value for --read_fault_one_in in "
|
|
135
|
+
"release mode.");
|
|
136
|
+
exit(1);
|
|
137
|
+
#else // NDEBUG
|
|
165
138
|
SyncPoint::GetInstance()->SetCallBack("FaultInjectionIgnoreError",
|
|
166
139
|
IgnoreReadErrorCallback);
|
|
167
140
|
SyncPoint::GetInstance()->EnableProcessing();
|
|
141
|
+
#endif // NDEBUG
|
|
168
142
|
}
|
|
169
|
-
#endif // NDEBUG
|
|
170
143
|
}
|
|
171
144
|
|
|
172
145
|
~SharedState() {
|
|
@@ -293,7 +266,7 @@ class SharedState {
|
|
|
293
266
|
pending);
|
|
294
267
|
}
|
|
295
268
|
|
|
296
|
-
bool AllowsOverwrite(int64_t key) {
|
|
269
|
+
bool AllowsOverwrite(int64_t key) const {
|
|
297
270
|
return no_overwrite_ids_.find(key) == no_overwrite_ids_.end();
|
|
298
271
|
}
|
|
299
272
|
|
|
@@ -335,6 +308,36 @@ class SharedState {
|
|
|
335
308
|
ignore_read_error = true;
|
|
336
309
|
}
|
|
337
310
|
|
|
311
|
+
// Pick random keys in each column family that will not experience overwrite.
|
|
312
|
+
std::unordered_set<int64_t> GenerateNoOverwriteIds() const {
|
|
313
|
+
fprintf(stdout, "Choosing random keys with no overwrite\n");
|
|
314
|
+
// Start with the identity permutation. Subsequent iterations of
|
|
315
|
+
// for loop below will start with perm of previous for loop
|
|
316
|
+
std::vector<int64_t> permutation(max_key_);
|
|
317
|
+
for (int64_t i = 0; i < max_key_; ++i) {
|
|
318
|
+
permutation[i] = i;
|
|
319
|
+
}
|
|
320
|
+
// Now do the Knuth shuffle
|
|
321
|
+
const int64_t num_no_overwrite_keys =
|
|
322
|
+
(max_key_ * FLAGS_nooverwritepercent) / 100;
|
|
323
|
+
// Only need to figure out first num_no_overwrite_keys of permutation
|
|
324
|
+
std::unordered_set<int64_t> ret;
|
|
325
|
+
ret.reserve(num_no_overwrite_keys);
|
|
326
|
+
Random64 rnd(seed_);
|
|
327
|
+
for (int64_t i = 0; i < num_no_overwrite_keys; i++) {
|
|
328
|
+
assert(i < max_key_);
|
|
329
|
+
int64_t rand_index = i + rnd.Next() % (max_key_ - i);
|
|
330
|
+
// Swap i and rand_index;
|
|
331
|
+
int64_t temp = permutation[i];
|
|
332
|
+
permutation[i] = permutation[rand_index];
|
|
333
|
+
permutation[rand_index] = temp;
|
|
334
|
+
// Fill no_overwrite_ids_ with the first num_no_overwrite_keys of
|
|
335
|
+
// permutation
|
|
336
|
+
ret.insert(permutation[i]);
|
|
337
|
+
}
|
|
338
|
+
return ret;
|
|
339
|
+
}
|
|
340
|
+
|
|
338
341
|
port::Mutex mu_;
|
|
339
342
|
port::CondVar cv_;
|
|
340
343
|
const uint32_t seed_;
|
|
@@ -355,7 +358,7 @@ class SharedState {
|
|
|
355
358
|
std::atomic<bool> should_stop_test_;
|
|
356
359
|
|
|
357
360
|
// Keys that should not be overwritten
|
|
358
|
-
std::unordered_set<
|
|
361
|
+
const std::unordered_set<int64_t> no_overwrite_ids_;
|
|
359
362
|
|
|
360
363
|
std::unique_ptr<ExpectedStateManager> expected_state_manager_;
|
|
361
364
|
// Cannot store `port::Mutex` directly in vector since it is not copyable
|