@nxtedition/rocksdb 6.0.0 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILDING.md +18 -0
- package/binding.cc +16 -17
- package/binding.gyp +2 -2
- package/deps/rocksdb/build_version.cc +4 -10
- package/deps/rocksdb/rocksdb/CMakeLists.txt +26 -3
- package/deps/rocksdb/rocksdb/Makefile +73 -91
- package/deps/rocksdb/rocksdb/TARGETS +27 -2
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
- package/deps/rocksdb/rocksdb/common.mk +30 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/builder.cc +22 -7
- package/deps/rocksdb/rocksdb/db/c.cc +71 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +28 -2
- package/deps/rocksdb/rocksdb/db/column_family.cc +12 -5
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +54 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +14 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +85 -18
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +151 -32
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +404 -32
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +11 -20
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +15 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +12 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +42 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +14 -4
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +28 -12
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +11 -6
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +60 -42
- package/deps/rocksdb/rocksdb/db/db_test2.cc +244 -111
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +101 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.h +52 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +5 -175
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +91 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +28 -15
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +14 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
- package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +13 -2
- package/deps/rocksdb/rocksdb/db/repair_test.cc +37 -15
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +20 -130
- package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
- package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +133 -133
- package/deps/rocksdb/rocksdb/db/version_edit.cc +22 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
- package/deps/rocksdb/rocksdb/db/version_set.cc +207 -214
- package/deps/rocksdb/rocksdb/db/version_set.h +14 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
- package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +44 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +374 -275
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
- package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
- package/deps/rocksdb/rocksdb/env/env.cc +0 -60
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
- package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
- package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +44 -22
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +60 -40
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +49 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +378 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +7 -8
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +47 -38
- package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
- package/deps/rocksdb/rocksdb/options/db_options.cc +46 -17
- package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/options.cc +7 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +86 -39
- package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +12 -7
- package/deps/rocksdb/rocksdb/options/options_test.cc +222 -68
- package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
- package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
- package/deps/rocksdb/rocksdb/src.mk +6 -1
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +23 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +81 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +94 -726
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +44 -73
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +2 -11
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +8 -4
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +65 -7
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/format.cc +22 -20
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +60 -13
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
- package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
- package/deps/rocksdb/rocksdb/table/unique_id.cc +84 -25
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +37 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +277 -105
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +26 -4
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
- package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
- package/deps/rocksdb/rocksdb/util/compression.h +56 -7
- package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
- package/deps/rocksdb/rocksdb/util/heap.h +5 -3
- package/deps/rocksdb/rocksdb/util/random.cc +1 -5
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
- package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
- package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +47 -37
- package/package-lock.json +23687 -0
- package/package.json +2 -30
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/liburing/liburing/README +0 -46
- package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
- package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
- package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
- package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
- package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
- package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
- package/deps/liburing/liburing/test/Makefile +0 -312
- package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
- package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
- package/deps/liburing/liburing/test/accept-link.c +0 -251
- package/deps/liburing/liburing/test/accept-reuse.c +0 -164
- package/deps/liburing/liburing/test/accept-test.c +0 -79
- package/deps/liburing/liburing/test/accept.c +0 -476
- package/deps/liburing/liburing/test/across-fork.c +0 -283
- package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
- package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
- package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
- package/deps/liburing/liburing/test/close-opath.c +0 -122
- package/deps/liburing/liburing/test/config +0 -10
- package/deps/liburing/liburing/test/connect.c +0 -398
- package/deps/liburing/liburing/test/cq-full.c +0 -96
- package/deps/liburing/liburing/test/cq-overflow.c +0 -294
- package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
- package/deps/liburing/liburing/test/cq-ready.c +0 -94
- package/deps/liburing/liburing/test/cq-size.c +0 -58
- package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
- package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
- package/deps/liburing/liburing/test/defer.c +0 -307
- package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
- package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
- package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
- package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
- package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
- package/deps/liburing/liburing/test/eventfd.c +0 -112
- package/deps/liburing/liburing/test/fadvise.c +0 -202
- package/deps/liburing/liburing/test/fallocate.c +0 -249
- package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
- package/deps/liburing/liburing/test/file-register.c +0 -843
- package/deps/liburing/liburing/test/file-update.c +0 -173
- package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
- package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
- package/deps/liburing/liburing/test/fixed-link.c +0 -90
- package/deps/liburing/liburing/test/fsync.c +0 -224
- package/deps/liburing/liburing/test/hardlink.c +0 -136
- package/deps/liburing/liburing/test/helpers.c +0 -135
- package/deps/liburing/liburing/test/helpers.h +0 -67
- package/deps/liburing/liburing/test/io-cancel.c +0 -537
- package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
- package/deps/liburing/liburing/test/io_uring_register.c +0 -664
- package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
- package/deps/liburing/liburing/test/iopoll.c +0 -366
- package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
- package/deps/liburing/liburing/test/lfs-openat.c +0 -273
- package/deps/liburing/liburing/test/link-timeout.c +0 -1107
- package/deps/liburing/liburing/test/link.c +0 -496
- package/deps/liburing/liburing/test/link_drain.c +0 -229
- package/deps/liburing/liburing/test/madvise.c +0 -195
- package/deps/liburing/liburing/test/mkdir.c +0 -108
- package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
- package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
- package/deps/liburing/liburing/test/nop.c +0 -115
- package/deps/liburing/liburing/test/open-close.c +0 -146
- package/deps/liburing/liburing/test/openat2.c +0 -240
- package/deps/liburing/liburing/test/personality.c +0 -204
- package/deps/liburing/liburing/test/pipe-eof.c +0 -81
- package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
- package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
- package/deps/liburing/liburing/test/poll-cancel.c +0 -135
- package/deps/liburing/liburing/test/poll-link.c +0 -227
- package/deps/liburing/liburing/test/poll-many.c +0 -208
- package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
- package/deps/liburing/liburing/test/poll-ring.c +0 -48
- package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
- package/deps/liburing/liburing/test/poll.c +0 -109
- package/deps/liburing/liburing/test/probe.c +0 -137
- package/deps/liburing/liburing/test/read-write.c +0 -876
- package/deps/liburing/liburing/test/register-restrictions.c +0 -633
- package/deps/liburing/liburing/test/rename.c +0 -134
- package/deps/liburing/liburing/test/ring-leak.c +0 -173
- package/deps/liburing/liburing/test/ring-leak2.c +0 -249
- package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
- package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
- package/deps/liburing/liburing/test/runtests.sh +0 -170
- package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
- package/deps/liburing/liburing/test/self.c +0 -91
- package/deps/liburing/liburing/test/send_recv.c +0 -291
- package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
- package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
- package/deps/liburing/liburing/test/shared-wq.c +0 -84
- package/deps/liburing/liburing/test/short-read.c +0 -75
- package/deps/liburing/liburing/test/shutdown.c +0 -163
- package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
- package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
- package/deps/liburing/liburing/test/socket-rw.c +0 -147
- package/deps/liburing/liburing/test/splice.c +0 -511
- package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
- package/deps/liburing/liburing/test/sq-full.c +0 -45
- package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
- package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
- package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
- package/deps/liburing/liburing/test/sq-space_left.c +0 -159
- package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
- package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
- package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
- package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
- package/deps/liburing/liburing/test/statx.c +0 -172
- package/deps/liburing/liburing/test/stdout.c +0 -232
- package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
- package/deps/liburing/liburing/test/submit-reuse.c +0 -239
- package/deps/liburing/liburing/test/symlink.c +0 -116
- package/deps/liburing/liburing/test/teardowns.c +0 -58
- package/deps/liburing/liburing/test/thread-exit.c +0 -131
- package/deps/liburing/liburing/test/timeout-new.c +0 -246
- package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
- package/deps/liburing/liburing/test/timeout.c +0 -1354
- package/deps/liburing/liburing/test/unlink.c +0 -111
- package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
- package/deps/rocksdb/rocksdb/README.md +0 -32
- package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
- package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
- package/deps/rocksdb/rocksdb/port/README +0 -10
- package/deps/rocksdb/rocksdb/python.mk +0 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
- package/prebuilds/linux-arm64/node.napi.node +0 -0
|
@@ -318,6 +318,8 @@ DEFINE_bool(reverse_iterator, false,
|
|
|
318
318
|
"When true use Prev rather than Next for iterators that do "
|
|
319
319
|
"Seek and then Next");
|
|
320
320
|
|
|
321
|
+
DEFINE_bool(auto_prefix_mode, false, "Set auto_prefix_mode for seek benchmark");
|
|
322
|
+
|
|
321
323
|
DEFINE_int64(max_scan_distance, 0,
|
|
322
324
|
"Used to define iterate_upper_bound (or iterate_lower_bound "
|
|
323
325
|
"if FLAGS_reverse_iterator is set to true) when value is nonzero");
|
|
@@ -410,6 +412,10 @@ DEFINE_double(read_random_exp_range, 0.0,
|
|
|
410
412
|
|
|
411
413
|
DEFINE_bool(histogram, false, "Print histogram of operation timings");
|
|
412
414
|
|
|
415
|
+
DEFINE_bool(confidence_interval_only, false,
|
|
416
|
+
"Print 95% confidence interval upper and lower bounds only for "
|
|
417
|
+
"aggregate stats.");
|
|
418
|
+
|
|
413
419
|
DEFINE_bool(enable_numa, false,
|
|
414
420
|
"Make operations aware of NUMA architecture and bind memory "
|
|
415
421
|
"and cpus corresponding to nodes together. In NUMA, memory "
|
|
@@ -1125,10 +1131,20 @@ DEFINE_bool(async_io, false,
|
|
|
1125
1131
|
"When set true, RocksDB does asynchronous reads for internal auto "
|
|
1126
1132
|
"readahead prefetching.");
|
|
1127
1133
|
|
|
1128
|
-
DEFINE_bool(
|
|
1129
|
-
"
|
|
1130
|
-
"
|
|
1131
|
-
"
|
|
1134
|
+
DEFINE_bool(charge_compression_dictionary_building_buffer, false,
|
|
1135
|
+
"Setting for "
|
|
1136
|
+
"CacheEntryRoleOptions::charged of"
|
|
1137
|
+
"CacheEntryRole::kCompressionDictionaryBuildingBuffer");
|
|
1138
|
+
|
|
1139
|
+
DEFINE_bool(charge_filter_construction, false,
|
|
1140
|
+
"Setting for "
|
|
1141
|
+
"CacheEntryRoleOptions::charged of"
|
|
1142
|
+
"CacheEntryRole::kFilterConstruction");
|
|
1143
|
+
|
|
1144
|
+
DEFINE_bool(charge_table_reader, false,
|
|
1145
|
+
"Setting for "
|
|
1146
|
+
"CacheEntryRoleOptions::charged of"
|
|
1147
|
+
"CacheEntryRole::kBlockBasedTableReader");
|
|
1132
1148
|
|
|
1133
1149
|
static enum ROCKSDB_NAMESPACE::CompressionType StringToCompressionType(
|
|
1134
1150
|
const char* ctype) {
|
|
@@ -1200,6 +1216,11 @@ DEFINE_uint64(compression_max_dict_buffer_bytes,
|
|
|
1200
1216
|
ROCKSDB_NAMESPACE::CompressionOptions().max_dict_buffer_bytes,
|
|
1201
1217
|
"Maximum bytes to buffer to collect samples for dictionary.");
|
|
1202
1218
|
|
|
1219
|
+
DEFINE_bool(compression_use_zstd_dict_trainer,
|
|
1220
|
+
ROCKSDB_NAMESPACE::CompressionOptions().use_zstd_dict_trainer,
|
|
1221
|
+
"If true, use ZSTD_TrainDictionary() to create dictionary, else"
|
|
1222
|
+
"use ZSTD_FinalizeDictionary() to create dictionary");
|
|
1223
|
+
|
|
1203
1224
|
static bool ValidateTableCacheNumshardbits(const char* flagname,
|
|
1204
1225
|
int32_t value) {
|
|
1205
1226
|
if (0 >= value || value >= 20) {
|
|
@@ -1948,9 +1969,9 @@ class ReporterAgent {
|
|
|
1948
1969
|
auto secs_elapsed =
|
|
1949
1970
|
(clock->NowMicros() - time_started + kMicrosInSecond / 2) /
|
|
1950
1971
|
kMicrosInSecond;
|
|
1951
|
-
std::string report =
|
|
1952
|
-
|
|
1953
|
-
|
|
1972
|
+
std::string report =
|
|
1973
|
+
std::to_string(secs_elapsed) + "," +
|
|
1974
|
+
std::to_string(total_ops_done_snapshot - last_report_) + "\n";
|
|
1954
1975
|
auto s = report_file_->Append(report);
|
|
1955
1976
|
if (s.ok()) {
|
|
1956
1977
|
s = report_file_->Flush();
|
|
@@ -2204,7 +2225,7 @@ class Stats {
|
|
|
2204
2225
|
if (db->GetProperty(
|
|
2205
2226
|
db_with_cfh->cfh[i],
|
|
2206
2227
|
"rocksdb.aggregated-table-properties-at-level" +
|
|
2207
|
-
|
|
2228
|
+
std::to_string(level),
|
|
2208
2229
|
&stats)) {
|
|
2209
2230
|
if (stats.find("# entries=0") == std::string::npos) {
|
|
2210
2231
|
fprintf(stderr, "Level[%d]: %s\n", level,
|
|
@@ -2228,7 +2249,7 @@ class Stats {
|
|
|
2228
2249
|
for (int level = 0; level < FLAGS_num_levels; ++level) {
|
|
2229
2250
|
if (db->GetProperty(
|
|
2230
2251
|
"rocksdb.aggregated-table-properties-at-level" +
|
|
2231
|
-
|
|
2252
|
+
std::to_string(level),
|
|
2232
2253
|
&stats)) {
|
|
2233
2254
|
if (stats.find("# entries=0") == std::string::npos) {
|
|
2234
2255
|
fprintf(stderr, "Level[%d]: %s\n", level, stats.c_str());
|
|
@@ -2261,25 +2282,23 @@ class Stats {
|
|
|
2261
2282
|
if (done_ < 1) done_ = 1;
|
|
2262
2283
|
|
|
2263
2284
|
std::string extra;
|
|
2285
|
+
double elapsed = (finish_ - start_) * 1e-6;
|
|
2264
2286
|
if (bytes_ > 0) {
|
|
2265
2287
|
// Rate is computed on actual elapsed time, not the sum of per-thread
|
|
2266
2288
|
// elapsed times.
|
|
2267
|
-
double elapsed = (finish_ - start_) * 1e-6;
|
|
2268
2289
|
char rate[100];
|
|
2269
2290
|
snprintf(rate, sizeof(rate), "%6.1f MB/s",
|
|
2270
2291
|
(bytes_ / 1048576.0) / elapsed);
|
|
2271
2292
|
extra = rate;
|
|
2272
2293
|
}
|
|
2273
2294
|
AppendWithSpace(&extra, message_);
|
|
2274
|
-
double elapsed = (finish_ - start_) * 1e-6;
|
|
2275
2295
|
double throughput = (double)done_/elapsed;
|
|
2276
2296
|
|
|
2277
|
-
fprintf(stdout,
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
(long)throughput,
|
|
2281
|
-
(extra.empty() ? "" : " "),
|
|
2282
|
-
extra.c_str());
|
|
2297
|
+
fprintf(stdout,
|
|
2298
|
+
"%-12s : %11.3f micros/op %ld ops/sec %.3f seconds %" PRIu64
|
|
2299
|
+
" operations;%s%s\n",
|
|
2300
|
+
name.ToString().c_str(), seconds_ * 1e6 / done_, (long)throughput,
|
|
2301
|
+
elapsed, done_, (extra.empty() ? "" : " "), extra.c_str());
|
|
2283
2302
|
if (FLAGS_histogram) {
|
|
2284
2303
|
for (auto it = hist_.begin(); it != hist_.end(); ++it) {
|
|
2285
2304
|
fprintf(stdout, "Microseconds per %s:\n%s\n",
|
|
@@ -2319,28 +2338,83 @@ class CombinedStats {
|
|
|
2319
2338
|
}
|
|
2320
2339
|
|
|
2321
2340
|
void Report(const std::string& bench_name) {
|
|
2341
|
+
if (throughput_ops_.size() < 2) {
|
|
2342
|
+
// skip if there are not enough samples
|
|
2343
|
+
return;
|
|
2344
|
+
}
|
|
2345
|
+
|
|
2322
2346
|
const char* name = bench_name.c_str();
|
|
2323
2347
|
int num_runs = static_cast<int>(throughput_ops_.size());
|
|
2324
2348
|
|
|
2325
2349
|
if (throughput_mbs_.size() == throughput_ops_.size()) {
|
|
2326
2350
|
fprintf(stdout,
|
|
2327
|
-
"%s [AVG
|
|
2351
|
+
"%s [AVG %d runs] : %d (± %d) ops/sec; %6.1f (± %.1f) MB/sec\n",
|
|
2352
|
+
name, num_runs, static_cast<int>(CalcAvg(throughput_ops_)),
|
|
2353
|
+
static_cast<int>(CalcConfidence95(throughput_ops_)),
|
|
2354
|
+
CalcAvg(throughput_mbs_), CalcConfidence95(throughput_mbs_));
|
|
2355
|
+
} else {
|
|
2356
|
+
fprintf(stdout, "%s [AVG %d runs] : %d (± %d) ops/sec\n", name, num_runs,
|
|
2357
|
+
static_cast<int>(CalcAvg(throughput_ops_)),
|
|
2358
|
+
static_cast<int>(CalcConfidence95(throughput_ops_)));
|
|
2359
|
+
}
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
void ReportWithConfidenceIntervals(const std::string& bench_name) {
|
|
2363
|
+
if (throughput_ops_.size() < 2) {
|
|
2364
|
+
// skip if there are not enough samples
|
|
2365
|
+
return;
|
|
2366
|
+
}
|
|
2367
|
+
|
|
2368
|
+
const char* name = bench_name.c_str();
|
|
2369
|
+
int num_runs = static_cast<int>(throughput_ops_.size());
|
|
2370
|
+
|
|
2371
|
+
int ops_avg = static_cast<int>(CalcAvg(throughput_ops_));
|
|
2372
|
+
int ops_confidence_95 = static_cast<int>(CalcConfidence95(throughput_ops_));
|
|
2373
|
+
|
|
2374
|
+
if (throughput_mbs_.size() == throughput_ops_.size()) {
|
|
2375
|
+
double mbs_avg = CalcAvg(throughput_mbs_);
|
|
2376
|
+
double mbs_confidence_95 = CalcConfidence95(throughput_mbs_);
|
|
2377
|
+
fprintf(stdout,
|
|
2378
|
+
"%s [CI95 %d runs] : (%d, %d) ops/sec; (%.1f, %.1f) MB/sec\n",
|
|
2379
|
+
name, num_runs, ops_avg - ops_confidence_95,
|
|
2380
|
+
ops_avg + ops_confidence_95, mbs_avg - mbs_confidence_95,
|
|
2381
|
+
mbs_avg + mbs_confidence_95);
|
|
2382
|
+
} else {
|
|
2383
|
+
fprintf(stdout, "%s [CI95 %d runs] : (%d, %d) ops/sec\n", name, num_runs,
|
|
2384
|
+
ops_avg - ops_confidence_95, ops_avg + ops_confidence_95);
|
|
2385
|
+
}
|
|
2386
|
+
}
|
|
2387
|
+
|
|
2388
|
+
void ReportFinal(const std::string& bench_name) {
|
|
2389
|
+
if (throughput_ops_.size() < 2) {
|
|
2390
|
+
// skip if there are not enough samples
|
|
2391
|
+
return;
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
const char* name = bench_name.c_str();
|
|
2395
|
+
int num_runs = static_cast<int>(throughput_ops_.size());
|
|
2396
|
+
|
|
2397
|
+
if (throughput_mbs_.size() == throughput_ops_.size()) {
|
|
2398
|
+
fprintf(stdout,
|
|
2399
|
+
"%s [AVG %d runs] : %d (± %d) ops/sec; %6.1f (± %.1f) MB/sec\n"
|
|
2328
2400
|
"%s [MEDIAN %d runs] : %d ops/sec; %6.1f MB/sec\n",
|
|
2329
2401
|
name, num_runs, static_cast<int>(CalcAvg(throughput_ops_)),
|
|
2330
|
-
|
|
2331
|
-
|
|
2402
|
+
static_cast<int>(CalcConfidence95(throughput_ops_)),
|
|
2403
|
+
CalcAvg(throughput_mbs_), CalcConfidence95(throughput_mbs_), name,
|
|
2404
|
+
num_runs, static_cast<int>(CalcMedian(throughput_ops_)),
|
|
2332
2405
|
CalcMedian(throughput_mbs_));
|
|
2333
2406
|
} else {
|
|
2334
2407
|
fprintf(stdout,
|
|
2335
|
-
"%s [AVG %d runs] : %d ops/sec\n"
|
|
2408
|
+
"%s [AVG %d runs] : %d (± %d) ops/sec\n"
|
|
2336
2409
|
"%s [MEDIAN %d runs] : %d ops/sec\n",
|
|
2337
|
-
name, num_runs, static_cast<int>(CalcAvg(throughput_ops_)),
|
|
2410
|
+
name, num_runs, static_cast<int>(CalcAvg(throughput_ops_)),
|
|
2411
|
+
static_cast<int>(CalcConfidence95(throughput_ops_)), name,
|
|
2338
2412
|
num_runs, static_cast<int>(CalcMedian(throughput_ops_)));
|
|
2339
2413
|
}
|
|
2340
2414
|
}
|
|
2341
2415
|
|
|
2342
2416
|
private:
|
|
2343
|
-
double CalcAvg(std::vector<double
|
|
2417
|
+
double CalcAvg(std::vector<double>& data) {
|
|
2344
2418
|
double avg = 0;
|
|
2345
2419
|
for (double x : data) {
|
|
2346
2420
|
avg += x;
|
|
@@ -2349,7 +2423,20 @@ class CombinedStats {
|
|
|
2349
2423
|
return avg;
|
|
2350
2424
|
}
|
|
2351
2425
|
|
|
2352
|
-
|
|
2426
|
+
// Calculates 95% CI assuming a normal distribution of samples.
|
|
2427
|
+
// Samples are not from a normal distribution, but it still
|
|
2428
|
+
// provides useful approximation.
|
|
2429
|
+
double CalcConfidence95(std::vector<double>& data) {
|
|
2430
|
+
assert(data.size() > 1);
|
|
2431
|
+
double avg = CalcAvg(data);
|
|
2432
|
+
double std_error = CalcStdDev(data, avg) / std::sqrt(data.size());
|
|
2433
|
+
|
|
2434
|
+
// Z score for the 97.5 percentile
|
|
2435
|
+
// see https://en.wikipedia.org/wiki/1.96
|
|
2436
|
+
return 1.959964 * std_error;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
double CalcMedian(std::vector<double>& data) {
|
|
2353
2440
|
assert(data.size() > 0);
|
|
2354
2441
|
std::sort(data.begin(), data.end());
|
|
2355
2442
|
|
|
@@ -2363,6 +2450,18 @@ class CombinedStats {
|
|
|
2363
2450
|
}
|
|
2364
2451
|
}
|
|
2365
2452
|
|
|
2453
|
+
double CalcStdDev(std::vector<double>& data, double average) {
|
|
2454
|
+
assert(data.size() > 1);
|
|
2455
|
+
double squared_sum = 0.0;
|
|
2456
|
+
for (double x : data) {
|
|
2457
|
+
squared_sum += std::pow(x - average, 2);
|
|
2458
|
+
}
|
|
2459
|
+
|
|
2460
|
+
// using samples count - 1 following Bessel's correction
|
|
2461
|
+
// see https://en.wikipedia.org/wiki/Bessel%27s_correction
|
|
2462
|
+
return std::sqrt(squared_sum / (data.size() - 1));
|
|
2463
|
+
}
|
|
2464
|
+
|
|
2366
2465
|
std::vector<double> throughput_ops_;
|
|
2367
2466
|
std::vector<double> throughput_mbs_;
|
|
2368
2467
|
};
|
|
@@ -2471,7 +2570,7 @@ class Benchmark {
|
|
|
2471
2570
|
private:
|
|
2472
2571
|
std::shared_ptr<Cache> cache_;
|
|
2473
2572
|
std::shared_ptr<Cache> compressed_cache_;
|
|
2474
|
-
const SliceTransform
|
|
2573
|
+
std::shared_ptr<const SliceTransform> prefix_extractor_;
|
|
2475
2574
|
DBWithColumnFamilies db_;
|
|
2476
2575
|
std::vector<DBWithColumnFamilies> multi_dbs_;
|
|
2477
2576
|
int64_t num_;
|
|
@@ -2874,7 +2973,9 @@ class Benchmark {
|
|
|
2874
2973
|
Benchmark()
|
|
2875
2974
|
: cache_(NewCache(FLAGS_cache_size)),
|
|
2876
2975
|
compressed_cache_(NewCache(FLAGS_compressed_cache_size)),
|
|
2877
|
-
prefix_extractor_(
|
|
2976
|
+
prefix_extractor_(FLAGS_prefix_size != 0
|
|
2977
|
+
? NewFixedPrefixTransform(FLAGS_prefix_size)
|
|
2978
|
+
: nullptr),
|
|
2878
2979
|
num_(FLAGS_num),
|
|
2879
2980
|
key_size_(FLAGS_key_size),
|
|
2880
2981
|
user_timestamp_size_(FLAGS_user_timestamp_size),
|
|
@@ -2965,7 +3066,6 @@ class Benchmark {
|
|
|
2965
3066
|
|
|
2966
3067
|
~Benchmark() {
|
|
2967
3068
|
DeleteDBs();
|
|
2968
|
-
delete prefix_extractor_;
|
|
2969
3069
|
if (cache_.get() != nullptr) {
|
|
2970
3070
|
// Clear cache reference first
|
|
2971
3071
|
open_options_.write_buffer_manager.reset();
|
|
@@ -3060,7 +3160,7 @@ class Benchmark {
|
|
|
3060
3160
|
}
|
|
3061
3161
|
#endif
|
|
3062
3162
|
}
|
|
3063
|
-
return base_name +
|
|
3163
|
+
return base_name + std::to_string(id);
|
|
3064
3164
|
}
|
|
3065
3165
|
|
|
3066
3166
|
void VerifyDBFromDB(std::string& truth_db_name) {
|
|
@@ -3525,9 +3625,14 @@ class Benchmark {
|
|
|
3525
3625
|
for (int i = 0; i < num_repeat; i++) {
|
|
3526
3626
|
Stats stats = RunBenchmark(num_threads, name, method);
|
|
3527
3627
|
combined_stats.AddStats(stats);
|
|
3628
|
+
if (FLAGS_confidence_interval_only) {
|
|
3629
|
+
combined_stats.ReportWithConfidenceIntervals(name);
|
|
3630
|
+
} else {
|
|
3631
|
+
combined_stats.Report(name);
|
|
3632
|
+
}
|
|
3528
3633
|
}
|
|
3529
3634
|
if (num_repeat > 1) {
|
|
3530
|
-
combined_stats.
|
|
3635
|
+
combined_stats.ReportFinal(name);
|
|
3531
3636
|
}
|
|
3532
3637
|
}
|
|
3533
3638
|
if (post_process_method != nullptr) {
|
|
@@ -3704,7 +3809,7 @@ class Benchmark {
|
|
|
3704
3809
|
static inline void ChecksumBenchmark(FnType fn, ThreadState* thread,
|
|
3705
3810
|
Args... args) {
|
|
3706
3811
|
const int size = FLAGS_block_size; // use --block_size option for db_bench
|
|
3707
|
-
std::string labels = "(" +
|
|
3812
|
+
std::string labels = "(" + std::to_string(FLAGS_block_size) + " per op)";
|
|
3708
3813
|
const char* label = labels.c_str();
|
|
3709
3814
|
|
|
3710
3815
|
std::string data(size, 'x');
|
|
@@ -3857,6 +3962,28 @@ class Benchmark {
|
|
|
3857
3962
|
assert(db_.db == nullptr);
|
|
3858
3963
|
|
|
3859
3964
|
options.env = FLAGS_env;
|
|
3965
|
+
options.wal_dir = FLAGS_wal_dir;
|
|
3966
|
+
options.dump_malloc_stats = FLAGS_dump_malloc_stats;
|
|
3967
|
+
options.stats_dump_period_sec =
|
|
3968
|
+
static_cast<unsigned int>(FLAGS_stats_dump_period_sec);
|
|
3969
|
+
options.stats_persist_period_sec =
|
|
3970
|
+
static_cast<unsigned int>(FLAGS_stats_persist_period_sec);
|
|
3971
|
+
options.persist_stats_to_disk = FLAGS_persist_stats_to_disk;
|
|
3972
|
+
options.stats_history_buffer_size =
|
|
3973
|
+
static_cast<size_t>(FLAGS_stats_history_buffer_size);
|
|
3974
|
+
options.avoid_flush_during_recovery = FLAGS_avoid_flush_during_recovery;
|
|
3975
|
+
|
|
3976
|
+
options.compression_opts.level = FLAGS_compression_level;
|
|
3977
|
+
options.compression_opts.max_dict_bytes = FLAGS_compression_max_dict_bytes;
|
|
3978
|
+
options.compression_opts.zstd_max_train_bytes =
|
|
3979
|
+
FLAGS_compression_zstd_max_train_bytes;
|
|
3980
|
+
options.compression_opts.parallel_threads =
|
|
3981
|
+
FLAGS_compression_parallel_threads;
|
|
3982
|
+
options.compression_opts.max_dict_buffer_bytes =
|
|
3983
|
+
FLAGS_compression_max_dict_buffer_bytes;
|
|
3984
|
+
options.compression_opts.use_zstd_dict_trainer =
|
|
3985
|
+
FLAGS_compression_use_zstd_dict_trainer;
|
|
3986
|
+
|
|
3860
3987
|
options.max_open_files = FLAGS_open_files;
|
|
3861
3988
|
if (FLAGS_cost_write_buffer_to_cache || FLAGS_db_write_buffer_size != 0) {
|
|
3862
3989
|
options.write_buffer_manager.reset(
|
|
@@ -3891,10 +4018,7 @@ class Benchmark {
|
|
|
3891
4018
|
FLAGS_fifo_compaction_allow_compaction);
|
|
3892
4019
|
options.compaction_options_fifo.age_for_warm = FLAGS_fifo_age_for_warm;
|
|
3893
4020
|
#endif // ROCKSDB_LITE
|
|
3894
|
-
|
|
3895
|
-
options.prefix_extractor.reset(
|
|
3896
|
-
NewFixedPrefixTransform(FLAGS_prefix_size));
|
|
3897
|
-
}
|
|
4021
|
+
options.prefix_extractor = prefix_extractor_;
|
|
3898
4022
|
if (FLAGS_use_uint64_comparator) {
|
|
3899
4023
|
options.comparator = test::Uint64Comparator();
|
|
3900
4024
|
if (FLAGS_key_size != 8) {
|
|
@@ -4055,8 +4179,21 @@ class Benchmark {
|
|
|
4055
4179
|
true;
|
|
4056
4180
|
}
|
|
4057
4181
|
block_based_options.block_cache = cache_;
|
|
4058
|
-
block_based_options.
|
|
4059
|
-
|
|
4182
|
+
block_based_options.cache_usage_options.options_overrides.insert(
|
|
4183
|
+
{CacheEntryRole::kCompressionDictionaryBuildingBuffer,
|
|
4184
|
+
{/*.charged = */ FLAGS_charge_compression_dictionary_building_buffer
|
|
4185
|
+
? CacheEntryRoleOptions::Decision::kEnabled
|
|
4186
|
+
: CacheEntryRoleOptions::Decision::kDisabled}});
|
|
4187
|
+
block_based_options.cache_usage_options.options_overrides.insert(
|
|
4188
|
+
{CacheEntryRole::kFilterConstruction,
|
|
4189
|
+
{/*.charged = */ FLAGS_charge_filter_construction
|
|
4190
|
+
? CacheEntryRoleOptions::Decision::kEnabled
|
|
4191
|
+
: CacheEntryRoleOptions::Decision::kDisabled}});
|
|
4192
|
+
block_based_options.cache_usage_options.options_overrides.insert(
|
|
4193
|
+
{CacheEntryRole::kBlockBasedTableReader,
|
|
4194
|
+
{/*.charged = */ FLAGS_charge_table_reader
|
|
4195
|
+
? CacheEntryRoleOptions::Decision::kEnabled
|
|
4196
|
+
: CacheEntryRoleOptions::Decision::kDisabled}});
|
|
4060
4197
|
block_based_options.block_cache_compressed = compressed_cache_;
|
|
4061
4198
|
block_based_options.block_size = FLAGS_block_size;
|
|
4062
4199
|
block_based_options.block_restart_interval = FLAGS_block_restart_interval;
|
|
@@ -4285,94 +4422,104 @@ class Benchmark {
|
|
|
4285
4422
|
}
|
|
4286
4423
|
|
|
4287
4424
|
void InitializeOptionsGeneral(Options* opts) {
|
|
4425
|
+
// Be careful about what is set here to avoid accidentally overwriting
|
|
4426
|
+
// settings already configured by OPTIONS file. Only configure settings that
|
|
4427
|
+
// are needed for the benchmark to run, settings for shared objects that
|
|
4428
|
+
// were not configured already, settings that require dynamically invoking
|
|
4429
|
+
// APIs, and settings for the benchmark itself.
|
|
4288
4430
|
Options& options = *opts;
|
|
4289
4431
|
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
options.
|
|
4293
|
-
options.create_if_missing =
|
|
4294
|
-
|
|
4295
|
-
options.
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
static_cast<unsigned int>(FLAGS_stats_persist_period_sec);
|
|
4299
|
-
options.persist_stats_to_disk = FLAGS_persist_stats_to_disk;
|
|
4300
|
-
options.stats_history_buffer_size =
|
|
4301
|
-
static_cast<size_t>(FLAGS_stats_history_buffer_size);
|
|
4302
|
-
options.avoid_flush_during_recovery = FLAGS_avoid_flush_during_recovery;
|
|
4432
|
+
// Always set these since they are harmless when not needed and prevent
|
|
4433
|
+
// a guaranteed failure when they are needed.
|
|
4434
|
+
options.create_missing_column_families = true;
|
|
4435
|
+
options.create_if_missing = true;
|
|
4436
|
+
|
|
4437
|
+
if (options.statistics == nullptr) {
|
|
4438
|
+
options.statistics = dbstats;
|
|
4439
|
+
}
|
|
4303
4440
|
|
|
4304
|
-
options.compression_opts.level = FLAGS_compression_level;
|
|
4305
|
-
options.compression_opts.max_dict_bytes = FLAGS_compression_max_dict_bytes;
|
|
4306
|
-
options.compression_opts.zstd_max_train_bytes =
|
|
4307
|
-
FLAGS_compression_zstd_max_train_bytes;
|
|
4308
|
-
options.compression_opts.parallel_threads =
|
|
4309
|
-
FLAGS_compression_parallel_threads;
|
|
4310
|
-
options.compression_opts.max_dict_buffer_bytes =
|
|
4311
|
-
FLAGS_compression_max_dict_buffer_bytes;
|
|
4312
|
-
// If this is a block based table, set some related options
|
|
4313
4441
|
auto table_options =
|
|
4314
4442
|
options.table_factory->GetOptions<BlockBasedTableOptions>();
|
|
4315
4443
|
if (table_options != nullptr) {
|
|
4316
|
-
if (FLAGS_cache_size) {
|
|
4444
|
+
if (FLAGS_cache_size > 0) {
|
|
4445
|
+
// This violates this function's rules on when to set options. But we
|
|
4446
|
+
// have to do it because the case of unconfigured block cache in OPTIONS
|
|
4447
|
+
// file is indistinguishable (it is sanitized to 8MB by this point, not
|
|
4448
|
+
// nullptr), and our regression tests assume this will be the shared
|
|
4449
|
+
// block cache, even with OPTIONS file provided.
|
|
4317
4450
|
table_options->block_cache = cache_;
|
|
4318
4451
|
}
|
|
4319
|
-
if (
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
|
|
4452
|
+
if (table_options->filter_policy == nullptr) {
|
|
4453
|
+
if (FLAGS_bloom_bits < 0) {
|
|
4454
|
+
table_options->filter_policy = BlockBasedTableOptions().filter_policy;
|
|
4455
|
+
} else if (FLAGS_bloom_bits == 0) {
|
|
4456
|
+
table_options->filter_policy.reset();
|
|
4457
|
+
} else if (FLAGS_use_block_based_filter) {
|
|
4458
|
+
// Use back-door way of enabling obsolete block-based Bloom
|
|
4459
|
+
Status s = FilterPolicy::CreateFromString(
|
|
4460
|
+
ConfigOptions(),
|
|
4461
|
+
"rocksdb.internal.DeprecatedBlockBasedBloomFilter:" +
|
|
4462
|
+
std::to_string(FLAGS_bloom_bits),
|
|
4463
|
+
&table_options->filter_policy);
|
|
4464
|
+
if (!s.ok()) {
|
|
4465
|
+
fprintf(stderr,
|
|
4466
|
+
"failure creating obsolete block-based filter: %s\n",
|
|
4467
|
+
s.ToString().c_str());
|
|
4468
|
+
exit(1);
|
|
4469
|
+
}
|
|
4470
|
+
} else {
|
|
4471
|
+
table_options->filter_policy.reset(
|
|
4472
|
+
FLAGS_use_ribbon_filter ? NewRibbonFilterPolicy(FLAGS_bloom_bits)
|
|
4473
|
+
: NewBloomFilterPolicy(FLAGS_bloom_bits));
|
|
4334
4474
|
}
|
|
4335
|
-
} else {
|
|
4336
|
-
table_options->filter_policy.reset(
|
|
4337
|
-
FLAGS_use_ribbon_filter ? NewRibbonFilterPolicy(FLAGS_bloom_bits)
|
|
4338
|
-
: NewBloomFilterPolicy(FLAGS_bloom_bits));
|
|
4339
4475
|
}
|
|
4340
4476
|
}
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4477
|
+
|
|
4478
|
+
if (options.row_cache == nullptr) {
|
|
4479
|
+
if (FLAGS_row_cache_size) {
|
|
4480
|
+
if (FLAGS_cache_numshardbits >= 1) {
|
|
4481
|
+
options.row_cache =
|
|
4482
|
+
NewLRUCache(FLAGS_row_cache_size, FLAGS_cache_numshardbits);
|
|
4483
|
+
} else {
|
|
4484
|
+
options.row_cache = NewLRUCache(FLAGS_row_cache_size);
|
|
4485
|
+
}
|
|
4347
4486
|
}
|
|
4348
4487
|
}
|
|
4488
|
+
|
|
4489
|
+
if (options.env == Env::Default()) {
|
|
4490
|
+
options.env = FLAGS_env;
|
|
4491
|
+
}
|
|
4349
4492
|
if (FLAGS_enable_io_prio) {
|
|
4350
|
-
|
|
4351
|
-
|
|
4493
|
+
options.env->LowerThreadPoolIOPriority(Env::LOW);
|
|
4494
|
+
options.env->LowerThreadPoolIOPriority(Env::HIGH);
|
|
4352
4495
|
}
|
|
4353
4496
|
if (FLAGS_enable_cpu_prio) {
|
|
4354
|
-
|
|
4355
|
-
|
|
4497
|
+
options.env->LowerThreadPoolCPUPriority(Env::LOW);
|
|
4498
|
+
options.env->LowerThreadPoolCPUPriority(Env::HIGH);
|
|
4356
4499
|
}
|
|
4357
|
-
|
|
4500
|
+
|
|
4358
4501
|
if (FLAGS_sine_write_rate) {
|
|
4359
4502
|
FLAGS_benchmark_write_rate_limit = static_cast<uint64_t>(SineRate(0));
|
|
4360
4503
|
}
|
|
4361
4504
|
|
|
4362
|
-
if (
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4505
|
+
if (options.rate_limiter == nullptr) {
|
|
4506
|
+
if (FLAGS_rate_limiter_bytes_per_sec > 0) {
|
|
4507
|
+
options.rate_limiter.reset(NewGenericRateLimiter(
|
|
4508
|
+
FLAGS_rate_limiter_bytes_per_sec,
|
|
4509
|
+
FLAGS_rate_limiter_refill_period_us, 10 /* fairness */,
|
|
4510
|
+
FLAGS_rate_limit_bg_reads ? RateLimiter::Mode::kReadsOnly
|
|
4511
|
+
: RateLimiter::Mode::kWritesOnly,
|
|
4512
|
+
FLAGS_rate_limiter_auto_tuned));
|
|
4513
|
+
}
|
|
4369
4514
|
}
|
|
4370
4515
|
|
|
4371
4516
|
options.listeners.emplace_back(listener_);
|
|
4372
4517
|
|
|
4373
|
-
if (
|
|
4374
|
-
|
|
4375
|
-
|
|
4518
|
+
if (options.file_checksum_gen_factory == nullptr) {
|
|
4519
|
+
if (FLAGS_file_checksum) {
|
|
4520
|
+
options.file_checksum_gen_factory.reset(
|
|
4521
|
+
new FileChecksumGenCrc32cFactory());
|
|
4522
|
+
}
|
|
4376
4523
|
}
|
|
4377
4524
|
|
|
4378
4525
|
if (FLAGS_num_multi_db <= 1) {
|
|
@@ -4391,9 +4538,11 @@ class Benchmark {
|
|
|
4391
4538
|
}
|
|
4392
4539
|
|
|
4393
4540
|
// KeepFilter is a noop filter, this can be used to test compaction filter
|
|
4394
|
-
if (
|
|
4395
|
-
|
|
4396
|
-
|
|
4541
|
+
if (options.compaction_filter == nullptr) {
|
|
4542
|
+
if (FLAGS_use_keep_filter) {
|
|
4543
|
+
options.compaction_filter = new KeepFilter();
|
|
4544
|
+
fprintf(stdout, "A noop compaction filter is used\n");
|
|
4545
|
+
}
|
|
4397
4546
|
}
|
|
4398
4547
|
|
|
4399
4548
|
if (FLAGS_use_existing_keys) {
|
|
@@ -6366,6 +6515,7 @@ class Benchmark {
|
|
|
6366
6515
|
}
|
|
6367
6516
|
}
|
|
6368
6517
|
}
|
|
6518
|
+
options.auto_prefix_mode = FLAGS_auto_prefix_mode;
|
|
6369
6519
|
|
|
6370
6520
|
std::unique_ptr<const char[]> key_guard;
|
|
6371
6521
|
Slice key = AllocateKey(&key_guard);
|
|
@@ -6395,6 +6545,14 @@ class Benchmark {
|
|
|
6395
6545
|
&upper_bound);
|
|
6396
6546
|
options.iterate_upper_bound = &upper_bound;
|
|
6397
6547
|
}
|
|
6548
|
+
} else if (FLAGS_auto_prefix_mode && prefix_extractor_ &&
|
|
6549
|
+
!FLAGS_reverse_iterator) {
|
|
6550
|
+
// Set upper bound to next prefix
|
|
6551
|
+
auto mutable_upper_bound = const_cast<char*>(upper_bound.data());
|
|
6552
|
+
std::memcpy(mutable_upper_bound, key.data(), prefix_size_);
|
|
6553
|
+
mutable_upper_bound[prefix_size_ - 1]++;
|
|
6554
|
+
upper_bound = Slice(upper_bound.data(), prefix_size_);
|
|
6555
|
+
options.iterate_upper_bound = &upper_bound;
|
|
6398
6556
|
}
|
|
6399
6557
|
|
|
6400
6558
|
// Pick a Iterator to use
|
|
@@ -7900,14 +8058,27 @@ class Benchmark {
|
|
|
7900
8058
|
flush_opt.wait = true;
|
|
7901
8059
|
|
|
7902
8060
|
if (db_.db != nullptr) {
|
|
7903
|
-
Status s
|
|
8061
|
+
Status s;
|
|
8062
|
+
if (FLAGS_num_column_families > 1) {
|
|
8063
|
+
s = db_.db->Flush(flush_opt, db_.cfh);
|
|
8064
|
+
} else {
|
|
8065
|
+
s = db_.db->Flush(flush_opt, db_.db->DefaultColumnFamily());
|
|
8066
|
+
}
|
|
8067
|
+
|
|
7904
8068
|
if (!s.ok()) {
|
|
7905
8069
|
fprintf(stderr, "Flush failed: %s\n", s.ToString().c_str());
|
|
7906
8070
|
exit(1);
|
|
7907
8071
|
}
|
|
7908
8072
|
} else {
|
|
7909
8073
|
for (const auto& db_with_cfh : multi_dbs_) {
|
|
7910
|
-
Status s
|
|
8074
|
+
Status s;
|
|
8075
|
+
if (FLAGS_num_column_families > 1) {
|
|
8076
|
+
s = db_with_cfh.db->Flush(flush_opt, db_with_cfh.cfh);
|
|
8077
|
+
} else {
|
|
8078
|
+
s = db_with_cfh.db->Flush(flush_opt,
|
|
8079
|
+
db_with_cfh.db->DefaultColumnFamily());
|
|
8080
|
+
}
|
|
8081
|
+
|
|
7911
8082
|
if (!s.ok()) {
|
|
7912
8083
|
fprintf(stderr, "Flush failed: %s\n", s.ToString().c_str());
|
|
7913
8084
|
exit(1);
|
|
@@ -7941,7 +8112,8 @@ class Benchmark {
|
|
|
7941
8112
|
}
|
|
7942
8113
|
|
|
7943
8114
|
std::unique_ptr<StatsHistoryIterator> shi;
|
|
7944
|
-
Status s =
|
|
8115
|
+
Status s =
|
|
8116
|
+
db->GetStatsHistory(0, std::numeric_limits<uint64_t>::max(), &shi);
|
|
7945
8117
|
if (!s.ok()) {
|
|
7946
8118
|
fprintf(stdout, "%s\n", s.ToString().c_str());
|
|
7947
8119
|
return;
|
|
@@ -45,8 +45,8 @@ class SanityTest {
|
|
|
45
45
|
return s;
|
|
46
46
|
}
|
|
47
47
|
for (int i = 0; i < 1000000; ++i) {
|
|
48
|
-
std::string k = "key" +
|
|
49
|
-
std::string v = "value" +
|
|
48
|
+
std::string k = "key" + std::to_string(i);
|
|
49
|
+
std::string v = "value" + std::to_string(i);
|
|
50
50
|
s = db->Put(WriteOptions(), Slice(k), Slice(v));
|
|
51
51
|
if (!s.ok()) {
|
|
52
52
|
return s;
|
|
@@ -63,8 +63,8 @@ class SanityTest {
|
|
|
63
63
|
return s;
|
|
64
64
|
}
|
|
65
65
|
for (int i = 0; i < 1000000; ++i) {
|
|
66
|
-
std::string k = "key" +
|
|
67
|
-
std::string v = "value" +
|
|
66
|
+
std::string k = "key" + std::to_string(i);
|
|
67
|
+
std::string v = "value" + std::to_string(i);
|
|
68
68
|
std::string result;
|
|
69
69
|
s = db->Get(ReadOptions(), Slice(k), &result);
|
|
70
70
|
if (!s.ok()) {
|