@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
|
@@ -24,7 +24,7 @@ class CompactorCommand : public LDBCommand {
|
|
|
24
24
|
|
|
25
25
|
static void Help(std::string& ret);
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
void DoCommand() override;
|
|
28
28
|
|
|
29
29
|
private:
|
|
30
30
|
bool null_from_;
|
|
@@ -43,10 +43,11 @@ class DBFileDumperCommand : public LDBCommand {
|
|
|
43
43
|
|
|
44
44
|
static void Help(std::string& ret);
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
void DoCommand() override;
|
|
47
47
|
|
|
48
48
|
private:
|
|
49
49
|
bool decode_blob_index_;
|
|
50
|
+
bool dump_uncompressed_blobs_;
|
|
50
51
|
};
|
|
51
52
|
|
|
52
53
|
class DBLiveFilesMetadataDumperCommand : public LDBCommand {
|
|
@@ -60,7 +61,7 @@ class DBLiveFilesMetadataDumperCommand : public LDBCommand {
|
|
|
60
61
|
|
|
61
62
|
static void Help(std::string& ret);
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
void DoCommand() override;
|
|
64
65
|
|
|
65
66
|
private:
|
|
66
67
|
bool sort_by_filename_;
|
|
@@ -78,7 +79,7 @@ class DBDumperCommand : public LDBCommand {
|
|
|
78
79
|
|
|
79
80
|
static void Help(std::string& ret);
|
|
80
81
|
|
|
81
|
-
|
|
82
|
+
void DoCommand() override;
|
|
82
83
|
|
|
83
84
|
private:
|
|
84
85
|
/**
|
|
@@ -107,6 +108,8 @@ class DBDumperCommand : public LDBCommand {
|
|
|
107
108
|
bool count_delim_;
|
|
108
109
|
bool print_stats_;
|
|
109
110
|
std::string path_;
|
|
111
|
+
bool decode_blob_index_;
|
|
112
|
+
bool dump_uncompressed_blobs_;
|
|
110
113
|
|
|
111
114
|
static const std::string ARG_COUNT_ONLY;
|
|
112
115
|
static const std::string ARG_COUNT_DELIM;
|
|
@@ -124,7 +127,7 @@ class InternalDumpCommand : public LDBCommand {
|
|
|
124
127
|
|
|
125
128
|
static void Help(std::string& ret);
|
|
126
129
|
|
|
127
|
-
|
|
130
|
+
void DoCommand() override;
|
|
128
131
|
|
|
129
132
|
private:
|
|
130
133
|
bool has_from_;
|
|
@@ -137,6 +140,7 @@ class InternalDumpCommand : public LDBCommand {
|
|
|
137
140
|
bool count_delim_;
|
|
138
141
|
bool print_stats_;
|
|
139
142
|
bool is_input_key_hex_;
|
|
143
|
+
bool decode_blob_index_;
|
|
140
144
|
|
|
141
145
|
static const std::string ARG_DELIM;
|
|
142
146
|
static const std::string ARG_COUNT_ONLY;
|
|
@@ -156,9 +160,10 @@ class DBLoaderCommand : public LDBCommand {
|
|
|
156
160
|
const std::vector<std::string>& flags);
|
|
157
161
|
|
|
158
162
|
static void Help(std::string& ret);
|
|
159
|
-
virtual void DoCommand() override;
|
|
160
163
|
|
|
161
|
-
|
|
164
|
+
void DoCommand() override;
|
|
165
|
+
|
|
166
|
+
void OverrideBaseOptions() override;
|
|
162
167
|
|
|
163
168
|
private:
|
|
164
169
|
bool disable_wal_;
|
|
@@ -179,9 +184,10 @@ class ManifestDumpCommand : public LDBCommand {
|
|
|
179
184
|
const std::vector<std::string>& flags);
|
|
180
185
|
|
|
181
186
|
static void Help(std::string& ret);
|
|
182
|
-
virtual void DoCommand() override;
|
|
183
187
|
|
|
184
|
-
|
|
188
|
+
void DoCommand() override;
|
|
189
|
+
|
|
190
|
+
bool NoDBOpen() override { return true; }
|
|
185
191
|
|
|
186
192
|
private:
|
|
187
193
|
bool verbose_;
|
|
@@ -259,9 +265,10 @@ class ListColumnFamiliesCommand : public LDBCommand {
|
|
|
259
265
|
const std::vector<std::string>& flags);
|
|
260
266
|
|
|
261
267
|
static void Help(std::string& ret);
|
|
262
|
-
virtual void DoCommand() override;
|
|
263
268
|
|
|
264
|
-
|
|
269
|
+
void DoCommand() override;
|
|
270
|
+
|
|
271
|
+
bool NoDBOpen() override { return true; }
|
|
265
272
|
};
|
|
266
273
|
|
|
267
274
|
class CreateColumnFamilyCommand : public LDBCommand {
|
|
@@ -273,9 +280,10 @@ class CreateColumnFamilyCommand : public LDBCommand {
|
|
|
273
280
|
const std::vector<std::string>& flags);
|
|
274
281
|
|
|
275
282
|
static void Help(std::string& ret);
|
|
276
|
-
virtual void DoCommand() override;
|
|
277
283
|
|
|
278
|
-
|
|
284
|
+
void DoCommand() override;
|
|
285
|
+
|
|
286
|
+
bool NoDBOpen() override { return false; }
|
|
279
287
|
|
|
280
288
|
private:
|
|
281
289
|
std::string new_cf_name_;
|
|
@@ -290,9 +298,10 @@ class DropColumnFamilyCommand : public LDBCommand {
|
|
|
290
298
|
const std::vector<std::string>& flags);
|
|
291
299
|
|
|
292
300
|
static void Help(std::string& ret);
|
|
293
|
-
virtual void DoCommand() override;
|
|
294
301
|
|
|
295
|
-
|
|
302
|
+
void DoCommand() override;
|
|
303
|
+
|
|
304
|
+
bool NoDBOpen() override { return false; }
|
|
296
305
|
|
|
297
306
|
private:
|
|
298
307
|
std::string cf_name_to_drop_;
|
|
@@ -306,11 +315,11 @@ class ReduceDBLevelsCommand : public LDBCommand {
|
|
|
306
315
|
const std::map<std::string, std::string>& options,
|
|
307
316
|
const std::vector<std::string>& flags);
|
|
308
317
|
|
|
309
|
-
|
|
318
|
+
void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
|
|
310
319
|
|
|
311
|
-
|
|
320
|
+
void DoCommand() override;
|
|
312
321
|
|
|
313
|
-
|
|
322
|
+
bool NoDBOpen() override { return true; }
|
|
314
323
|
|
|
315
324
|
static void Help(std::string& msg);
|
|
316
325
|
|
|
@@ -338,9 +347,9 @@ class ChangeCompactionStyleCommand : public LDBCommand {
|
|
|
338
347
|
const std::map<std::string, std::string>& options,
|
|
339
348
|
const std::vector<std::string>& flags);
|
|
340
349
|
|
|
341
|
-
|
|
350
|
+
void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
|
|
342
351
|
|
|
343
|
-
|
|
352
|
+
void DoCommand() override;
|
|
344
353
|
|
|
345
354
|
static void Help(std::string& msg);
|
|
346
355
|
|
|
@@ -360,10 +369,11 @@ class WALDumperCommand : public LDBCommand {
|
|
|
360
369
|
const std::map<std::string, std::string>& options,
|
|
361
370
|
const std::vector<std::string>& flags);
|
|
362
371
|
|
|
363
|
-
|
|
372
|
+
bool NoDBOpen() override { return true; }
|
|
364
373
|
|
|
365
374
|
static void Help(std::string& ret);
|
|
366
|
-
|
|
375
|
+
|
|
376
|
+
void DoCommand() override;
|
|
367
377
|
|
|
368
378
|
private:
|
|
369
379
|
bool print_header_;
|
|
@@ -385,7 +395,7 @@ class GetCommand : public LDBCommand {
|
|
|
385
395
|
const std::map<std::string, std::string>& options,
|
|
386
396
|
const std::vector<std::string>& flags);
|
|
387
397
|
|
|
388
|
-
|
|
398
|
+
void DoCommand() override;
|
|
389
399
|
|
|
390
400
|
static void Help(std::string& ret);
|
|
391
401
|
|
|
@@ -401,7 +411,7 @@ class ApproxSizeCommand : public LDBCommand {
|
|
|
401
411
|
const std::map<std::string, std::string>& options,
|
|
402
412
|
const std::vector<std::string>& flags);
|
|
403
413
|
|
|
404
|
-
|
|
414
|
+
void DoCommand() override;
|
|
405
415
|
|
|
406
416
|
static void Help(std::string& ret);
|
|
407
417
|
|
|
@@ -418,11 +428,11 @@ class BatchPutCommand : public LDBCommand {
|
|
|
418
428
|
const std::map<std::string, std::string>& options,
|
|
419
429
|
const std::vector<std::string>& flags);
|
|
420
430
|
|
|
421
|
-
|
|
431
|
+
void DoCommand() override;
|
|
422
432
|
|
|
423
433
|
static void Help(std::string& ret);
|
|
424
434
|
|
|
425
|
-
|
|
435
|
+
void OverrideBaseOptions() override;
|
|
426
436
|
|
|
427
437
|
private:
|
|
428
438
|
/**
|
|
@@ -439,7 +449,7 @@ class ScanCommand : public LDBCommand {
|
|
|
439
449
|
const std::map<std::string, std::string>& options,
|
|
440
450
|
const std::vector<std::string>& flags);
|
|
441
451
|
|
|
442
|
-
|
|
452
|
+
void DoCommand() override;
|
|
443
453
|
|
|
444
454
|
static void Help(std::string& ret);
|
|
445
455
|
|
|
@@ -460,7 +470,23 @@ class DeleteCommand : public LDBCommand {
|
|
|
460
470
|
const std::map<std::string, std::string>& options,
|
|
461
471
|
const std::vector<std::string>& flags);
|
|
462
472
|
|
|
463
|
-
|
|
473
|
+
void DoCommand() override;
|
|
474
|
+
|
|
475
|
+
static void Help(std::string& ret);
|
|
476
|
+
|
|
477
|
+
private:
|
|
478
|
+
std::string key_;
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
class SingleDeleteCommand : public LDBCommand {
|
|
482
|
+
public:
|
|
483
|
+
static std::string Name() { return "singledelete"; }
|
|
484
|
+
|
|
485
|
+
SingleDeleteCommand(const std::vector<std::string>& params,
|
|
486
|
+
const std::map<std::string, std::string>& options,
|
|
487
|
+
const std::vector<std::string>& flags);
|
|
488
|
+
|
|
489
|
+
void DoCommand() override;
|
|
464
490
|
|
|
465
491
|
static void Help(std::string& ret);
|
|
466
492
|
|
|
@@ -476,7 +502,7 @@ class DeleteRangeCommand : public LDBCommand {
|
|
|
476
502
|
const std::map<std::string, std::string>& options,
|
|
477
503
|
const std::vector<std::string>& flags);
|
|
478
504
|
|
|
479
|
-
|
|
505
|
+
void DoCommand() override;
|
|
480
506
|
|
|
481
507
|
static void Help(std::string& ret);
|
|
482
508
|
|
|
@@ -493,11 +519,11 @@ class PutCommand : public LDBCommand {
|
|
|
493
519
|
const std::map<std::string, std::string>& options,
|
|
494
520
|
const std::vector<std::string>& flags);
|
|
495
521
|
|
|
496
|
-
|
|
522
|
+
void DoCommand() override;
|
|
497
523
|
|
|
498
524
|
static void Help(std::string& ret);
|
|
499
525
|
|
|
500
|
-
|
|
526
|
+
void OverrideBaseOptions() override;
|
|
501
527
|
|
|
502
528
|
private:
|
|
503
529
|
std::string key_;
|
|
@@ -518,7 +544,7 @@ class DBQuerierCommand : public LDBCommand {
|
|
|
518
544
|
|
|
519
545
|
static void Help(std::string& ret);
|
|
520
546
|
|
|
521
|
-
|
|
547
|
+
void DoCommand() override;
|
|
522
548
|
|
|
523
549
|
private:
|
|
524
550
|
static const char* HELP_CMD;
|
|
@@ -535,9 +561,9 @@ class CheckConsistencyCommand : public LDBCommand {
|
|
|
535
561
|
const std::map<std::string, std::string>& options,
|
|
536
562
|
const std::vector<std::string>& flags);
|
|
537
563
|
|
|
538
|
-
|
|
564
|
+
void DoCommand() override;
|
|
539
565
|
|
|
540
|
-
|
|
566
|
+
bool NoDBOpen() override { return true; }
|
|
541
567
|
|
|
542
568
|
static void Help(std::string& ret);
|
|
543
569
|
};
|
|
@@ -550,7 +576,7 @@ class CheckPointCommand : public LDBCommand {
|
|
|
550
576
|
const std::map<std::string, std::string>& options,
|
|
551
577
|
const std::vector<std::string>& flags);
|
|
552
578
|
|
|
553
|
-
|
|
579
|
+
void DoCommand() override;
|
|
554
580
|
|
|
555
581
|
static void Help(std::string& ret);
|
|
556
582
|
|
|
@@ -567,11 +593,11 @@ class RepairCommand : public LDBCommand {
|
|
|
567
593
|
const std::map<std::string, std::string>& options,
|
|
568
594
|
const std::vector<std::string>& flags);
|
|
569
595
|
|
|
570
|
-
|
|
596
|
+
void DoCommand() override;
|
|
571
597
|
|
|
572
|
-
|
|
598
|
+
bool NoDBOpen() override { return true; }
|
|
573
599
|
|
|
574
|
-
|
|
600
|
+
void OverrideBaseOptions() override;
|
|
575
601
|
|
|
576
602
|
static void Help(std::string& ret);
|
|
577
603
|
|
|
@@ -611,7 +637,7 @@ class BackupCommand : public BackupEngineCommand {
|
|
|
611
637
|
BackupCommand(const std::vector<std::string>& params,
|
|
612
638
|
const std::map<std::string, std::string>& options,
|
|
613
639
|
const std::vector<std::string>& flags);
|
|
614
|
-
|
|
640
|
+
void DoCommand() override;
|
|
615
641
|
static void Help(std::string& ret);
|
|
616
642
|
};
|
|
617
643
|
|
|
@@ -621,8 +647,8 @@ class RestoreCommand : public BackupEngineCommand {
|
|
|
621
647
|
RestoreCommand(const std::vector<std::string>& params,
|
|
622
648
|
const std::map<std::string, std::string>& options,
|
|
623
649
|
const std::vector<std::string>& flags);
|
|
624
|
-
|
|
625
|
-
|
|
650
|
+
void DoCommand() override;
|
|
651
|
+
bool NoDBOpen() override { return true; }
|
|
626
652
|
static void Help(std::string& ret);
|
|
627
653
|
};
|
|
628
654
|
|
|
@@ -634,11 +660,11 @@ class WriteExternalSstFilesCommand : public LDBCommand {
|
|
|
634
660
|
const std::map<std::string, std::string>& options,
|
|
635
661
|
const std::vector<std::string>& flags);
|
|
636
662
|
|
|
637
|
-
|
|
663
|
+
void DoCommand() override;
|
|
638
664
|
|
|
639
|
-
|
|
665
|
+
bool NoDBOpen() override { return false; }
|
|
640
666
|
|
|
641
|
-
|
|
667
|
+
void OverrideBaseOptions() override;
|
|
642
668
|
|
|
643
669
|
static void Help(std::string& ret);
|
|
644
670
|
|
|
@@ -654,11 +680,11 @@ class IngestExternalSstFilesCommand : public LDBCommand {
|
|
|
654
680
|
const std::map<std::string, std::string>& options,
|
|
655
681
|
const std::vector<std::string>& flags);
|
|
656
682
|
|
|
657
|
-
|
|
683
|
+
void DoCommand() override;
|
|
658
684
|
|
|
659
|
-
|
|
685
|
+
bool NoDBOpen() override { return false; }
|
|
660
686
|
|
|
661
|
-
|
|
687
|
+
void OverrideBaseOptions() override;
|
|
662
688
|
|
|
663
689
|
static void Help(std::string& ret);
|
|
664
690
|
|
|
@@ -706,9 +732,9 @@ class UnsafeRemoveSstFileCommand : public LDBCommand {
|
|
|
706
732
|
|
|
707
733
|
static void Help(std::string& ret);
|
|
708
734
|
|
|
709
|
-
|
|
735
|
+
void DoCommand() override;
|
|
710
736
|
|
|
711
|
-
|
|
737
|
+
bool NoDBOpen() override { return true; }
|
|
712
738
|
|
|
713
739
|
private:
|
|
714
740
|
uint64_t sst_file_number_;
|
|
@@ -244,7 +244,7 @@ class FileChecksumTestHelper {
|
|
|
244
244
|
live_files[i].file_checksum_func_name != stored_func_name) {
|
|
245
245
|
return Status::Corruption(
|
|
246
246
|
"Checksum does not match! The file: " +
|
|
247
|
-
|
|
247
|
+
std::to_string(live_files[i].file_number) +
|
|
248
248
|
". In Manifest, checksum name: " + stored_func_name +
|
|
249
249
|
" and checksum " + stored_checksum +
|
|
250
250
|
". However, expected checksum name: " +
|
|
@@ -937,7 +937,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
|
|
|
937
937
|
|
|
938
938
|
// Create three SST files
|
|
939
939
|
for (size_t i = 0; i < 3; ++i) {
|
|
940
|
-
ASSERT_OK(db->Put(WriteOptions(),
|
|
940
|
+
ASSERT_OK(db->Put(WriteOptions(), std::to_string(i), std::to_string(i)));
|
|
941
941
|
ASSERT_OK(db->Flush(FlushOptions()));
|
|
942
942
|
}
|
|
943
943
|
|
|
@@ -985,7 +985,8 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
|
|
|
985
985
|
ColumnFamilyOptions cf_opts;
|
|
986
986
|
ASSERT_OK(db->CreateColumnFamily(cf_opts, "cf1", &cf_handle));
|
|
987
987
|
for (size_t i = 3; i < 5; ++i) {
|
|
988
|
-
ASSERT_OK(db->Put(WriteOptions(), cf_handle,
|
|
988
|
+
ASSERT_OK(db->Put(WriteOptions(), cf_handle, std::to_string(i),
|
|
989
|
+
std::to_string(i)));
|
|
989
990
|
ASSERT_OK(db->Flush(FlushOptions(), cf_handle));
|
|
990
991
|
}
|
|
991
992
|
|
|
@@ -1048,7 +1049,7 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
|
|
|
1048
1049
|
Temperature::kWarm, Temperature::kCold};
|
|
1049
1050
|
std::map<uint64_t, Temperature> number_to_temp;
|
|
1050
1051
|
for (size_t i = 0; i < kTestTemps.size(); ++i) {
|
|
1051
|
-
ASSERT_OK(db->Put(WriteOptions(),
|
|
1052
|
+
ASSERT_OK(db->Put(WriteOptions(), std::to_string(i), std::to_string(i)));
|
|
1052
1053
|
ASSERT_OK(db->Flush(FlushOptions()));
|
|
1053
1054
|
|
|
1054
1055
|
std::map<uint64_t, Temperature> current_temps;
|
|
@@ -1069,8 +1070,8 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
|
|
|
1069
1070
|
|
|
1070
1071
|
for (size_t i = 0; i < kTestTemps.size(); ++i) {
|
|
1071
1072
|
std::string val;
|
|
1072
|
-
ASSERT_OK(db->Get(ReadOptions(),
|
|
1073
|
-
ASSERT_EQ(val,
|
|
1073
|
+
ASSERT_OK(db->Get(ReadOptions(), std::to_string(i), &val));
|
|
1074
|
+
ASSERT_EQ(val, std::to_string(i));
|
|
1074
1075
|
}
|
|
1075
1076
|
|
|
1076
1077
|
// Still all unknown
|
|
@@ -1101,8 +1102,8 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
|
|
|
1101
1102
|
|
|
1102
1103
|
for (size_t i = 0; i < kTestTemps.size(); ++i) {
|
|
1103
1104
|
std::string val;
|
|
1104
|
-
ASSERT_OK(db->Get(ReadOptions(),
|
|
1105
|
-
ASSERT_EQ(val,
|
|
1105
|
+
ASSERT_OK(db->Get(ReadOptions(), std::to_string(i), &val));
|
|
1106
|
+
ASSERT_EQ(val, std::to_string(i));
|
|
1106
1107
|
}
|
|
1107
1108
|
|
|
1108
1109
|
requests.clear();
|
|
@@ -50,7 +50,10 @@ void LDBCommandRunner::PrintHelp(const LDBOptions& ldb_options,
|
|
|
50
50
|
" with 'put','get','scan','dump','query','batchput'"
|
|
51
51
|
" : DB supports ttl and value is internally timestamp-suffixed\n");
|
|
52
52
|
ret.append(" --" + LDBCommand::ARG_TRY_LOAD_OPTIONS +
|
|
53
|
-
" : Try to load option file from DB
|
|
53
|
+
" : Try to load option file from DB. Default to true if " +
|
|
54
|
+
LDBCommand::ARG_DB +
|
|
55
|
+
" is specified and not creating a new DB and not open as TTL DB. "
|
|
56
|
+
"Can be set to false explicitly.\n");
|
|
54
57
|
ret.append(" --" + LDBCommand::ARG_DISABLE_CONSISTENCY_CHECKS +
|
|
55
58
|
" : Set options.force_consistency_checks = false.\n");
|
|
56
59
|
ret.append(" --" + LDBCommand::ARG_IGNORE_UNKNOWN_OPTIONS +
|
|
@@ -70,8 +70,8 @@ public:
|
|
|
70
70
|
|
|
71
71
|
int FilesOnLevel(int level) {
|
|
72
72
|
std::string property;
|
|
73
|
-
EXPECT_TRUE(db_->GetProperty(
|
|
74
|
-
|
|
73
|
+
EXPECT_TRUE(db_->GetProperty(
|
|
74
|
+
"rocksdb.num-files-at-level" + std::to_string(level), &property));
|
|
75
75
|
return atoi(property.c_str());
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
#include <cinttypes>
|
|
11
11
|
#include <iostream>
|
|
12
12
|
|
|
13
|
+
#include "options/options_helper.h"
|
|
13
14
|
#include "port/port.h"
|
|
15
|
+
#include "rocksdb/convenience.h"
|
|
14
16
|
#include "rocksdb/utilities/ldb_cmd.h"
|
|
15
17
|
#include "table/sst_file_dumper.h"
|
|
16
18
|
|
|
@@ -30,6 +32,16 @@ static const std::vector<std::pair<CompressionType, const char*>>
|
|
|
30
32
|
namespace {
|
|
31
33
|
|
|
32
34
|
void print_help(bool to_stderr) {
|
|
35
|
+
std::string supported_compressions;
|
|
36
|
+
for (CompressionType ct : GetSupportedCompressions()) {
|
|
37
|
+
if (!supported_compressions.empty()) {
|
|
38
|
+
supported_compressions += ", ";
|
|
39
|
+
}
|
|
40
|
+
std::string str;
|
|
41
|
+
Status s = GetStringFromCompressionType(&str, ct);
|
|
42
|
+
assert(s.ok());
|
|
43
|
+
supported_compressions += str;
|
|
44
|
+
}
|
|
33
45
|
fprintf(
|
|
34
46
|
to_stderr ? stderr : stdout,
|
|
35
47
|
R"(sst_dump --file=<data_dir_OR_sst_file> [--command=check|scan|raw|recompress|identify]
|
|
@@ -88,6 +100,7 @@ void print_help(bool to_stderr) {
|
|
|
88
100
|
kSnappyCompression>
|
|
89
101
|
Can be combined with --command=recompress to run recompression for this
|
|
90
102
|
list of compression types
|
|
103
|
+
Supported compression types: %s
|
|
91
104
|
|
|
92
105
|
--parse_internal_key=<0xKEY>
|
|
93
106
|
Convenience option to parse an internal key on the command line. Dumps the
|
|
@@ -109,7 +122,11 @@ void print_help(bool to_stderr) {
|
|
|
109
122
|
|
|
110
123
|
--compression_max_dict_buffer_bytes=<int64_t>
|
|
111
124
|
Limit on buffer size from which we collect samples for dictionary generation.
|
|
112
|
-
|
|
125
|
+
|
|
126
|
+
--compression_use_zstd_finalize_dict
|
|
127
|
+
Use zstd's finalizeDictionary() API instead of zstd's dictionary trainer to generate dictionary.
|
|
128
|
+
)",
|
|
129
|
+
supported_compressions.c_str());
|
|
113
130
|
}
|
|
114
131
|
|
|
115
132
|
// arg_name would include all prefix, e.g. "--my_arg="
|
|
@@ -174,6 +191,8 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
|
|
|
174
191
|
ROCKSDB_NAMESPACE::CompressionOptions().zstd_max_train_bytes;
|
|
175
192
|
uint64_t compression_max_dict_buffer_bytes =
|
|
176
193
|
ROCKSDB_NAMESPACE::CompressionOptions().max_dict_buffer_bytes;
|
|
194
|
+
bool compression_use_zstd_finalize_dict =
|
|
195
|
+
!ROCKSDB_NAMESPACE::CompressionOptions().use_zstd_dict_trainer;
|
|
177
196
|
|
|
178
197
|
int64_t tmp_val;
|
|
179
198
|
|
|
@@ -268,7 +287,7 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
|
|
|
268
287
|
} else if (ParseIntArg(argv[i], "--compression_max_dict_bytes=",
|
|
269
288
|
"compression_max_dict_bytes must be numeric",
|
|
270
289
|
&tmp_val)) {
|
|
271
|
-
if (tmp_val < 0 || tmp_val >
|
|
290
|
+
if (tmp_val < 0 || tmp_val > std::numeric_limits<uint32_t>::max()) {
|
|
272
291
|
fprintf(stderr, "compression_max_dict_bytes must be a uint32_t: '%s'\n",
|
|
273
292
|
argv[i]);
|
|
274
293
|
print_help(/*to_stderr*/ true);
|
|
@@ -278,7 +297,7 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
|
|
|
278
297
|
} else if (ParseIntArg(argv[i], "--compression_zstd_max_train_bytes=",
|
|
279
298
|
"compression_zstd_max_train_bytes must be numeric",
|
|
280
299
|
&tmp_val)) {
|
|
281
|
-
if (tmp_val < 0 || tmp_val >
|
|
300
|
+
if (tmp_val < 0 || tmp_val > std::numeric_limits<uint32_t>::max()) {
|
|
282
301
|
fprintf(stderr,
|
|
283
302
|
"compression_zstd_max_train_bytes must be a uint32_t: '%s'\n",
|
|
284
303
|
argv[i]);
|
|
@@ -297,6 +316,8 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
|
|
|
297
316
|
return 1;
|
|
298
317
|
}
|
|
299
318
|
compression_max_dict_buffer_bytes = static_cast<uint64_t>(tmp_val);
|
|
319
|
+
} else if (strcmp(argv[i], "--compression_use_zstd_finalize_dict") == 0) {
|
|
320
|
+
compression_use_zstd_finalize_dict = true;
|
|
300
321
|
} else if (strcmp(argv[i], "--help") == 0) {
|
|
301
322
|
print_help(/*to_stderr*/ false);
|
|
302
323
|
return 0;
|
|
@@ -425,7 +446,8 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
|
|
|
425
446
|
set_block_size ? block_size : 16384,
|
|
426
447
|
compression_types.empty() ? kCompressions : compression_types,
|
|
427
448
|
compress_level_from, compress_level_to, compression_max_dict_bytes,
|
|
428
|
-
compression_zstd_max_train_bytes, compression_max_dict_buffer_bytes
|
|
449
|
+
compression_zstd_max_train_bytes, compression_max_dict_buffer_bytes,
|
|
450
|
+
!compression_use_zstd_finalize_dict);
|
|
429
451
|
if (!st.ok()) {
|
|
430
452
|
fprintf(stderr, "Failed to recompress: %s\n", st.ToString().c_str());
|
|
431
453
|
exit(1);
|
|
@@ -190,7 +190,7 @@ uint64_t MultiplyCheckOverflow(uint64_t op1, uint64_t op2) {
|
|
|
190
190
|
if (op1 == 0 || op2 == 0) {
|
|
191
191
|
return 0;
|
|
192
192
|
}
|
|
193
|
-
if (
|
|
193
|
+
if (std::numeric_limits<uint64_t>::max() / op1 < op2) {
|
|
194
194
|
return op1;
|
|
195
195
|
}
|
|
196
196
|
return (op1 * op2);
|
|
@@ -281,7 +281,7 @@ class BlockCacheTracer {
|
|
|
281
281
|
const Slice& block_key, const Slice& cf_name,
|
|
282
282
|
const Slice& referenced_key);
|
|
283
283
|
|
|
284
|
-
// GetId cycles from 1 to
|
|
284
|
+
// GetId cycles from 1 to std::numeric_limits<uint64_t>::max().
|
|
285
285
|
uint64_t NextGetId();
|
|
286
286
|
|
|
287
287
|
private:
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and its affiliates. All Rights Reserved.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
//
|
|
6
|
+
#if USE_COROUTINES
|
|
7
|
+
#include "util/async_file_reader.h"
|
|
8
|
+
|
|
9
|
+
namespace ROCKSDB_NAMESPACE {
|
|
10
|
+
bool AsyncFileReader::MultiReadAsyncImpl(ReadAwaiter* awaiter) {
|
|
11
|
+
if (tail_) {
|
|
12
|
+
tail_->next_ = awaiter;
|
|
13
|
+
}
|
|
14
|
+
tail_ = awaiter;
|
|
15
|
+
if (!head_) {
|
|
16
|
+
head_ = awaiter;
|
|
17
|
+
}
|
|
18
|
+
num_reqs_ += awaiter->num_reqs_;
|
|
19
|
+
awaiter->io_handle_.resize(awaiter->num_reqs_);
|
|
20
|
+
awaiter->del_fn_.resize(awaiter->num_reqs_);
|
|
21
|
+
for (size_t i = 0; i < awaiter->num_reqs_; ++i) {
|
|
22
|
+
awaiter->file_
|
|
23
|
+
->ReadAsync(
|
|
24
|
+
awaiter->read_reqs_[i], awaiter->opts_,
|
|
25
|
+
[](const FSReadRequest& req, void* cb_arg) {
|
|
26
|
+
FSReadRequest* read_req = static_cast<FSReadRequest*>(cb_arg);
|
|
27
|
+
read_req->status = req.status;
|
|
28
|
+
read_req->result = req.result;
|
|
29
|
+
},
|
|
30
|
+
&awaiter->read_reqs_[i], &awaiter->io_handle_[i],
|
|
31
|
+
&awaiter->del_fn_[i], Env::IOPriority::IO_TOTAL)
|
|
32
|
+
.PermitUncheckedError();
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void AsyncFileReader::Wait() {
|
|
38
|
+
if (!head_) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
ReadAwaiter* waiter;
|
|
42
|
+
std::vector<void*> io_handles;
|
|
43
|
+
io_handles.reserve(num_reqs_);
|
|
44
|
+
waiter = head_;
|
|
45
|
+
do {
|
|
46
|
+
for (size_t i = 0; i < waiter->num_reqs_; ++i) {
|
|
47
|
+
if (waiter->io_handle_[i]) {
|
|
48
|
+
io_handles.push_back(waiter->io_handle_[i]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
} while (waiter != tail_ && (waiter = waiter->next_));
|
|
52
|
+
if (io_handles.size() > 0) {
|
|
53
|
+
StopWatch sw(SystemClock::Default().get(), stats_, POLL_WAIT_MICROS);
|
|
54
|
+
fs_->Poll(io_handles, io_handles.size()).PermitUncheckedError();
|
|
55
|
+
}
|
|
56
|
+
do {
|
|
57
|
+
waiter = head_;
|
|
58
|
+
head_ = waiter->next_;
|
|
59
|
+
|
|
60
|
+
for (size_t i = 0; i < waiter->num_reqs_; ++i) {
|
|
61
|
+
if (waiter->io_handle_[i] && waiter->del_fn_[i]) {
|
|
62
|
+
waiter->del_fn_[i](waiter->io_handle_[i]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
waiter->awaiting_coro_.resume();
|
|
66
|
+
} while (waiter != tail_);
|
|
67
|
+
head_ = tail_ = nullptr;
|
|
68
|
+
RecordInHistogram(stats_, MULTIGET_IO_BATCH_SIZE, num_reqs_);
|
|
69
|
+
num_reqs_ = 0;
|
|
70
|
+
}
|
|
71
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
72
|
+
#endif // USE_COROUTINES
|