@nxtedition/rocksdb 13.5.7 → 13.5.9
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/binding.cc +248 -70
- package/binding.gyp +2 -2
- package/deps/rocksdb/rocksdb/BUCK +12 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -0
- package/deps/rocksdb/rocksdb/Makefile +28 -23
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -1
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +43 -39
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +0 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -2
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +1 -3
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +11 -1
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +13 -5
- package/deps/rocksdb/rocksdb/crash_test.mk +61 -15
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +136 -45
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +34 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +10 -7
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +12 -9
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/builder.cc +22 -8
- package/deps/rocksdb/rocksdb/db/builder.h +5 -4
- package/deps/rocksdb/rocksdb/db/c.cc +556 -15
- package/deps/rocksdb/rocksdb/db/c_test.c +133 -12
- package/deps/rocksdb/rocksdb/db/column_family.cc +114 -50
- package/deps/rocksdb/rocksdb/db/column_family.h +53 -36
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +95 -70
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +71 -51
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -86
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +26 -68
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +0 -122
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +453 -258
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +117 -92
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +38 -38
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +24 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +34 -45
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +32 -31
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +10 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +82 -34
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +267 -179
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +273 -89
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +300 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_state.cc +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_state.h +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +28 -23
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +69 -51
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +522 -245
- package/deps/rocksdb/rocksdb/db/convenience.cc +15 -4
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +1 -3
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +196 -17
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +74 -62
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +48 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +682 -250
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +11 -16
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +57 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +540 -490
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +347 -188
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +584 -217
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +13 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -7
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +40 -36
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +751 -372
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +35 -32
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +24 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +125 -63
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +311 -196
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +15 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +42 -29
- package/deps/rocksdb/rocksdb/db/db_iter.h +96 -31
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +168 -228
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +454 -0
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +90 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +60 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +7 -3
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +85 -27
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +114 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +51 -3
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +325 -18
- package/deps/rocksdb/rocksdb/db/db_test2.cc +644 -20
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +9 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +64 -45
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +203 -14
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +259 -30
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +75 -1
- package/deps/rocksdb/rocksdb/db/dbformat.h +70 -6
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +0 -190
- package/deps/rocksdb/rocksdb/db/error_handler.cc +22 -7
- package/deps/rocksdb/rocksdb/db/error_handler.h +16 -1
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +41 -26
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +464 -78
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +166 -69
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +54 -25
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -3
- package/deps/rocksdb/rocksdb/db/flush_job.cc +98 -81
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -9
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +80 -84
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +2 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +12 -19
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +41 -15
- package/deps/rocksdb/rocksdb/db/internal_stats.h +63 -52
- package/deps/rocksdb/rocksdb/db/job_context.h +59 -24
- package/deps/rocksdb/rocksdb/db/listener_test.cc +69 -10
- package/deps/rocksdb/rocksdb/db/log_format.h +11 -2
- package/deps/rocksdb/rocksdb/db/log_reader.cc +147 -34
- package/deps/rocksdb/rocksdb/db/log_reader.h +40 -11
- package/deps/rocksdb/rocksdb/db/log_test.cc +16 -3
- package/deps/rocksdb/rocksdb/db/log_writer.cc +102 -55
- package/deps/rocksdb/rocksdb/db/log_writer.h +21 -2
- package/deps/rocksdb/rocksdb/db/malloc_stats.h +0 -2
- package/deps/rocksdb/rocksdb/db/memtable.cc +16 -47
- package/deps/rocksdb/rocksdb/db/memtable.h +76 -12
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +23 -20
- package/deps/rocksdb/rocksdb/db/memtable_list.h +9 -11
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +18 -37
- package/deps/rocksdb/rocksdb/db/merge_context.h +2 -1
- package/deps/rocksdb/rocksdb/db/merge_test.cc +8 -0
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +15 -7
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +6 -3
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +22 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +41 -1
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +29 -34
- package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +14 -15
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +1 -3
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +47 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -3
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +1 -3
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_edit.cc +8 -37
- package/deps/rocksdb/rocksdb/db/version_edit.h +32 -1
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +26 -18
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -5
- package/deps/rocksdb/rocksdb/db/version_set.cc +282 -197
- package/deps/rocksdb/rocksdb/db/version_set.h +54 -57
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +28 -35
- package/deps/rocksdb/rocksdb/db/version_util.h +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +3 -2
- package/deps/rocksdb/rocksdb/db/wal_manager.h +0 -1
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +1 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +22 -8
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +7 -6
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/write_thread.h +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +13 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_service.h +39 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compression_manager.h +65 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +45 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +22 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +28 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -38
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +80 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +51 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +23 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +305 -15
- package/deps/rocksdb/rocksdb/env/env.cc +32 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +0 -2
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -4
- package/deps/rocksdb/rocksdb/env/env_posix.cc +4 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +0 -1
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +20 -11
- package/deps/rocksdb/rocksdb/env/fs_readonly.h +0 -2
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +0 -2
- package/deps/rocksdb/rocksdb/env/fs_remap.h +0 -2
- package/deps/rocksdb/rocksdb/env/io_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/io_posix.h +3 -2
- package/deps/rocksdb/rocksdb/env/mock_env.cc +0 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +2 -2
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +0 -2
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +0 -2
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +30 -21
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +16 -0
- package/deps/rocksdb/rocksdb/file/file_util.cc +32 -14
- package/deps/rocksdb/rocksdb/file/file_util.h +22 -5
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +229 -76
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +21 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +10 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +12 -8
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +1 -2
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +0 -2
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +598 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_iterator.h +36 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +70 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +232 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +149 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +132 -34
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +158 -79
- package/deps/rocksdb/rocksdb/include/rocksdb/db_bench_tool.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +4 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +275 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +50 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +10 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +5 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/multi_scan.h +237 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +230 -39
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +31 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +41 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +18 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +20 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +19 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +124 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +26 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +55 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +3 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +96 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index_faiss.h +117 -0
- package/deps/rocksdb/rocksdb/{utilities/secondary_index/faiss_ivf_index.h → include/rocksdb/utilities/secondary_index_simple.h} +11 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +26 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +16 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +63 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +28 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +3 -3
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +0 -2
- package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +0 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +0 -1
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +3 -1
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +2 -2
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +2 -4
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +69 -8
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +32 -9
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +58 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +5 -0
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +3 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +44 -13
- package/deps/rocksdb/rocksdb/options/cf_options.h +21 -7
- package/deps/rocksdb/rocksdb/options/configurable.cc +5 -5
- package/deps/rocksdb/rocksdb/options/configurable_test.h +1 -2
- package/deps/rocksdb/rocksdb/options/customizable.cc +0 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -11
- package/deps/rocksdb/rocksdb/options/db_options.cc +18 -15
- package/deps/rocksdb/rocksdb/options/db_options.h +2 -2
- package/deps/rocksdb/rocksdb/options/options.cc +296 -305
- package/deps/rocksdb/rocksdb/options/options_helper.cc +188 -62
- package/deps/rocksdb/rocksdb/options/options_helper.h +3 -3
- package/deps/rocksdb/rocksdb/options/options_parser.cc +2 -4
- package/deps/rocksdb/rocksdb/options/options_parser.h +0 -1
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +17 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +101 -76
- package/deps/rocksdb/rocksdb/port/lang.h +2 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +2 -1
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +3 -2
- package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +99 -1
- package/deps/rocksdb/rocksdb/port/win/xpress_win.h +6 -0
- package/deps/rocksdb/rocksdb/src.mk +17 -11
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1094 -929
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +6 -19
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +76 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +221 -131
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +12 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +23 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -38
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +5 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +10 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +35 -43
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +0 -4
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +4 -4
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +37 -35
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +11 -7
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +4 -3
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +31 -5
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +0 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +0 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +483 -0
- package/deps/rocksdb/rocksdb/table/format.cc +62 -44
- package/deps/rocksdb/rocksdb/table/format.h +35 -12
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +3 -13
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +6 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +150 -141
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +5 -0
- package/deps/rocksdb/rocksdb/table/multiget_context.h +3 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +8 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +0 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +0 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +0 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +6 -6
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +86 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +88 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +0 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +3 -2
- package/deps/rocksdb/rocksdb/table/table_test.cc +899 -22
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.h +132 -1
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +0 -1
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +0 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +163 -77
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +0 -2
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +120 -52
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +0 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +0 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +94 -0
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +0 -1
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +3 -5
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/util/async_file_reader.h +15 -8
- package/deps/rocksdb/rocksdb/util/auto_skip_compressor.cc +131 -0
- package/deps/rocksdb/rocksdb/util/auto_skip_compressor.h +90 -0
- package/deps/rocksdb/rocksdb/util/autovector.h +1 -1
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +0 -2
- package/deps/rocksdb/rocksdb/util/compression.cc +936 -4
- package/deps/rocksdb/rocksdb/util/compression.h +348 -232
- package/deps/rocksdb/rocksdb/util/compression_test.cc +229 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +10 -10
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.c +1 -0
- package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -0
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +1 -3
- package/deps/rocksdb/rocksdb/util/ppc-opcode.h +5 -5
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +108 -0
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +67 -0
- package/deps/rocksdb/rocksdb/util/slice_test.cc +83 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +0 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +18 -5
- package/deps/rocksdb/rocksdb/util/udt_util.h +10 -7
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +650 -154
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +438 -144
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +16 -17
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +2 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +7 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +0 -48
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/debug.cc +7 -14
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +10 -9
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +183 -32
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +258 -12
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_helper.h +33 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_iterator.cc +99 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +280 -120
- package/deps/rocksdb/rocksdb/utilities/secondary_index/simple_secondary_index.cc +79 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +52 -16
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +10 -6
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +55 -0
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +1 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +36 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1118 -37
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +4 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +0 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +125 -127
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +45 -23
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +54 -22
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +477 -58
- package/deps/rocksdb/rocksdb.gyp +9 -4
- package/index.js +50 -9
- package/package.json +8 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
#include "rocksdb/slice_transform.h"
|
|
63
63
|
#include "rocksdb/stats_history.h"
|
|
64
64
|
#include "rocksdb/table.h"
|
|
65
|
+
#include "rocksdb/tool_hooks.h"
|
|
65
66
|
#include "rocksdb/utilities/backup_engine.h"
|
|
66
67
|
#include "rocksdb/utilities/object_registry.h"
|
|
67
68
|
#include "rocksdb/utilities/optimistic_transaction_db.h"
|
|
@@ -82,6 +83,7 @@
|
|
|
82
83
|
#include "util/gflags_compat.h"
|
|
83
84
|
#include "util/mutexlock.h"
|
|
84
85
|
#include "util/random.h"
|
|
86
|
+
#include "util/simple_mixed_compressor.h"
|
|
85
87
|
#include "util/stderr_logger.h"
|
|
86
88
|
#include "util/string_util.h"
|
|
87
89
|
#include "util/xxhash.h"
|
|
@@ -91,7 +93,6 @@
|
|
|
91
93
|
#include "utilities/merge_operators/bytesxor.h"
|
|
92
94
|
#include "utilities/merge_operators/sortlist.h"
|
|
93
95
|
#include "utilities/persistent_cache/block_cache_tier.h"
|
|
94
|
-
|
|
95
96
|
#ifdef MEMKIND
|
|
96
97
|
#include "memory/memkind_kmem_allocator.h"
|
|
97
98
|
#endif
|
|
@@ -458,20 +459,6 @@ DEFINE_int32(min_write_buffer_number_to_merge,
|
|
|
458
459
|
" writing less data to storage if there are duplicate records "
|
|
459
460
|
" in each of these individual write buffers.");
|
|
460
461
|
|
|
461
|
-
DEFINE_int32(max_write_buffer_number_to_maintain,
|
|
462
|
-
ROCKSDB_NAMESPACE::Options().max_write_buffer_number_to_maintain,
|
|
463
|
-
"The total maximum number of write buffers to maintain in memory "
|
|
464
|
-
"including copies of buffers that have already been flushed. "
|
|
465
|
-
"Unlike max_write_buffer_number, this parameter does not affect "
|
|
466
|
-
"flushing. This controls the minimum amount of write history "
|
|
467
|
-
"that will be available in memory for conflict checking when "
|
|
468
|
-
"Transactions are used. If this value is too low, some "
|
|
469
|
-
"transactions may fail at commit time due to not being able to "
|
|
470
|
-
"determine whether there were any write conflicts. Setting this "
|
|
471
|
-
"value to 0 will cause write buffers to be freed immediately "
|
|
472
|
-
"after they are flushed. If this value is set to -1, "
|
|
473
|
-
"'max_write_buffer_number' will be used.");
|
|
474
|
-
|
|
475
462
|
DEFINE_int64(max_write_buffer_size_to_maintain,
|
|
476
463
|
ROCKSDB_NAMESPACE::Options().max_write_buffer_size_to_maintain,
|
|
477
464
|
"The total maximum size of write buffers to maintain in memory "
|
|
@@ -609,6 +596,9 @@ static enum ROCKSDB_NAMESPACE::CompressionType
|
|
|
609
596
|
FLAGS_compressed_secondary_cache_compression_type_e =
|
|
610
597
|
ROCKSDB_NAMESPACE::kLZ4Compression;
|
|
611
598
|
|
|
599
|
+
DEFINE_string(compression_manager, "none",
|
|
600
|
+
"Set the compression manager type to mixed(roundrobin) or other "
|
|
601
|
+
"type. None for BuilInCompressor");
|
|
612
602
|
DEFINE_int32(compressed_secondary_cache_compression_level,
|
|
613
603
|
ROCKSDB_NAMESPACE::CompressionOptions().level,
|
|
614
604
|
"Compression level. The meaning of this value is library-"
|
|
@@ -761,9 +751,6 @@ DEFINE_uint64(compaction_readahead_size,
|
|
|
761
751
|
|
|
762
752
|
DEFINE_int32(log_readahead_size, 0, "WAL and manifest readahead size");
|
|
763
753
|
|
|
764
|
-
DEFINE_int32(random_access_max_buffer_size, 1024 * 1024,
|
|
765
|
-
"Maximum windows randomaccess buffer size");
|
|
766
|
-
|
|
767
754
|
DEFINE_int32(writable_file_max_buffer_size, 1024 * 1024,
|
|
768
755
|
"Maximum write buffer for Writable File");
|
|
769
756
|
|
|
@@ -1075,7 +1062,6 @@ DEFINE_string(
|
|
|
1075
1062
|
static enum ROCKSDB_NAMESPACE::CompressionType
|
|
1076
1063
|
FLAGS_blob_db_compression_type_e = ROCKSDB_NAMESPACE::kSnappyCompression;
|
|
1077
1064
|
|
|
1078
|
-
|
|
1079
1065
|
// Integrated BlobDB options
|
|
1080
1066
|
DEFINE_bool(
|
|
1081
1067
|
enable_blob_files,
|
|
@@ -1146,7 +1132,6 @@ DEFINE_int32(prepopulate_blob_cache, 0,
|
|
|
1146
1132
|
"[Integrated BlobDB] Pre-populate hot/warm blobs in blob cache. 0 "
|
|
1147
1133
|
"to disable and 1 to insert during flush.");
|
|
1148
1134
|
|
|
1149
|
-
|
|
1150
1135
|
// Secondary DB instance Options
|
|
1151
1136
|
DEFINE_bool(use_secondary_db, false,
|
|
1152
1137
|
"Open a RocksDB secondary instance. A primary instance can be "
|
|
@@ -1172,7 +1157,6 @@ DEFINE_bool(report_bg_io_stats, false,
|
|
|
1172
1157
|
DEFINE_bool(use_stderr_info_logger, false,
|
|
1173
1158
|
"Write info logs to stderr instead of to LOG file. ");
|
|
1174
1159
|
|
|
1175
|
-
|
|
1176
1160
|
DEFINE_string(trace_file, "", "Trace workload to a file. ");
|
|
1177
1161
|
|
|
1178
1162
|
DEFINE_double(trace_replay_fast_forward, 1.0,
|
|
@@ -1289,6 +1273,23 @@ DEFINE_bool(
|
|
|
1289
1273
|
DEFINE_bool(paranoid_memory_checks, false,
|
|
1290
1274
|
"Sets CF option paranoid_memory_checks");
|
|
1291
1275
|
|
|
1276
|
+
DEFINE_bool(
|
|
1277
|
+
auto_refresh_iterator_with_snapshot, false,
|
|
1278
|
+
"When set to true, RocksDB iterator will automatically refresh itself "
|
|
1279
|
+
"upon detecting stale superversion - preserving its' original snapshot");
|
|
1280
|
+
|
|
1281
|
+
DEFINE_bool(explicit_snapshot, false,
|
|
1282
|
+
"When set to true iterators will be initialized with explicit "
|
|
1283
|
+
"snapshot");
|
|
1284
|
+
|
|
1285
|
+
DEFINE_uint32(memtable_op_scan_flush_trigger,
|
|
1286
|
+
ROCKSDB_NAMESPACE::AdvancedColumnFamilyOptions()
|
|
1287
|
+
.memtable_op_scan_flush_trigger,
|
|
1288
|
+
"Setting for CF option memtable_op_scan_flush_trigger.");
|
|
1289
|
+
|
|
1290
|
+
DEFINE_bool(verify_compression, false,
|
|
1291
|
+
"See BlockBasedTableOptions::verify_compression");
|
|
1292
|
+
|
|
1292
1293
|
static enum ROCKSDB_NAMESPACE::CompressionType StringToCompressionType(
|
|
1293
1294
|
const char* ctype) {
|
|
1294
1295
|
assert(ctype);
|
|
@@ -1729,6 +1730,10 @@ DEFINE_uint64(stats_history_buffer_size,
|
|
|
1729
1730
|
DEFINE_bool(avoid_flush_during_recovery,
|
|
1730
1731
|
ROCKSDB_NAMESPACE::Options().avoid_flush_during_recovery,
|
|
1731
1732
|
"If true, avoids flushing the recovered WAL data where possible.");
|
|
1733
|
+
|
|
1734
|
+
DEFINE_bool(avoid_flush_during_shutdown,
|
|
1735
|
+
ROCKSDB_NAMESPACE::Options().avoid_flush_during_shutdown,
|
|
1736
|
+
"If true, avoids flushing the recovered WAL data where possible.");
|
|
1732
1737
|
DEFINE_int64(multiread_stride, 0,
|
|
1733
1738
|
"Stride length for the keys in a MultiGet batch");
|
|
1734
1739
|
DEFINE_bool(multiread_batched, false, "Use the new MultiGet API");
|
|
@@ -1811,6 +1816,17 @@ DEFINE_bool(build_info, false,
|
|
|
1811
1816
|
DEFINE_bool(track_and_verify_wals_in_manifest, false,
|
|
1812
1817
|
"If true, enable WAL tracking in the MANIFEST");
|
|
1813
1818
|
|
|
1819
|
+
DEFINE_bool(track_and_verify_wals, false, "See Options.track_and_verify_wals");
|
|
1820
|
+
|
|
1821
|
+
DEFINE_int32(same_value_percentage, 0,
|
|
1822
|
+
"Percentage of time value will be same i.e good for compression "
|
|
1823
|
+
"of the block");
|
|
1824
|
+
|
|
1825
|
+
DEFINE_bool(universal_reduce_file_locking,
|
|
1826
|
+
ROCKSDB_NAMESPACE::Options()
|
|
1827
|
+
.compaction_options_universal.reduce_file_locking,
|
|
1828
|
+
"See Options().compaction_options_universal.reduce_file_locking");
|
|
1829
|
+
|
|
1814
1830
|
namespace ROCKSDB_NAMESPACE {
|
|
1815
1831
|
namespace {
|
|
1816
1832
|
static Status CreateMemTableRepFactory(
|
|
@@ -1931,9 +1947,10 @@ class RandomGenerator {
|
|
|
1931
1947
|
std::string data_;
|
|
1932
1948
|
unsigned int pos_;
|
|
1933
1949
|
std::unique_ptr<BaseDistribution> dist_;
|
|
1950
|
+
Random rnd;
|
|
1934
1951
|
|
|
1935
1952
|
public:
|
|
1936
|
-
RandomGenerator() {
|
|
1953
|
+
RandomGenerator() : rnd(301) {
|
|
1937
1954
|
auto max_value_size = FLAGS_value_size_max;
|
|
1938
1955
|
switch (FLAGS_value_size_distribution_type_e) {
|
|
1939
1956
|
case kUniform:
|
|
@@ -1952,7 +1969,6 @@ class RandomGenerator {
|
|
|
1952
1969
|
// We use a limited amount of data over and over again and ensure
|
|
1953
1970
|
// that it is larger than the compression window (32KB), and also
|
|
1954
1971
|
// large enough to serve all typical value sizes we want to write.
|
|
1955
|
-
Random rnd(301);
|
|
1956
1972
|
std::string piece;
|
|
1957
1973
|
while (data_.size() < (unsigned)std::max(1048576, max_value_size)) {
|
|
1958
1974
|
// Add a short fragment that is as compressible as specified
|
|
@@ -1965,11 +1981,15 @@ class RandomGenerator {
|
|
|
1965
1981
|
|
|
1966
1982
|
Slice Generate(unsigned int len) {
|
|
1967
1983
|
assert(len <= data_.size());
|
|
1968
|
-
if (
|
|
1969
|
-
|
|
1984
|
+
if (rnd.PercentTrue(FLAGS_same_value_percentage)) {
|
|
1985
|
+
return Slice(data_.data(), len);
|
|
1986
|
+
} else {
|
|
1987
|
+
if (pos_ + len > data_.size()) {
|
|
1988
|
+
pos_ = 0;
|
|
1989
|
+
}
|
|
1990
|
+
pos_ += len;
|
|
1991
|
+
return Slice(data_.data() + pos_ - len, len);
|
|
1970
1992
|
}
|
|
1971
|
-
pos_ += len;
|
|
1972
|
-
return Slice(data_.data() + pos_ - len, len);
|
|
1973
1993
|
}
|
|
1974
1994
|
|
|
1975
1995
|
Slice Generate() {
|
|
@@ -2001,11 +2021,7 @@ struct DBWithColumnFamilies {
|
|
|
2001
2021
|
std::vector<int> cfh_idx_to_prob; // ith index holds probability of operating
|
|
2002
2022
|
// on cfh[i].
|
|
2003
2023
|
|
|
2004
|
-
DBWithColumnFamilies()
|
|
2005
|
-
: db(nullptr)
|
|
2006
|
-
,
|
|
2007
|
-
opt_txn_db(nullptr)
|
|
2008
|
-
{
|
|
2024
|
+
DBWithColumnFamilies() : db(nullptr), opt_txn_db(nullptr) {
|
|
2009
2025
|
cfh.clear();
|
|
2010
2026
|
num_created = 0;
|
|
2011
2027
|
num_hot = 0;
|
|
@@ -2017,8 +2033,7 @@ struct DBWithColumnFamilies {
|
|
|
2017
2033
|
opt_txn_db(other.opt_txn_db),
|
|
2018
2034
|
num_created(other.num_created.load()),
|
|
2019
2035
|
num_hot(other.num_hot),
|
|
2020
|
-
cfh_idx_to_prob(other.cfh_idx_to_prob) {
|
|
2021
|
-
}
|
|
2036
|
+
cfh_idx_to_prob(other.cfh_idx_to_prob) {}
|
|
2022
2037
|
|
|
2023
2038
|
void DeleteDBs() {
|
|
2024
2039
|
std::for_each(cfh.begin(), cfh.end(),
|
|
@@ -2838,8 +2853,8 @@ class Benchmark {
|
|
|
2838
2853
|
const Slice& input, std::string* compressed) {
|
|
2839
2854
|
constexpr uint32_t compress_format_version = 2;
|
|
2840
2855
|
|
|
2841
|
-
return
|
|
2842
|
-
|
|
2856
|
+
return OLD_CompressData(input, compression_info, compress_format_version,
|
|
2857
|
+
compressed);
|
|
2843
2858
|
}
|
|
2844
2859
|
|
|
2845
2860
|
void PrintHeader(const Options& options) {
|
|
@@ -2889,8 +2904,15 @@ class Benchmark {
|
|
|
2889
2904
|
}
|
|
2890
2905
|
#endif
|
|
2891
2906
|
}
|
|
2892
|
-
|
|
2893
|
-
|
|
2907
|
+
// mixed compression manager expect compression type to be expliciltiy
|
|
2908
|
+
// configured through Options to be zstd
|
|
2909
|
+
auto compression = std::string("zstd");
|
|
2910
|
+
if (!strcasecmp(FLAGS_compression_manager.c_str(), "none")) {
|
|
2911
|
+
compression = CompressionTypeToString(FLAGS_compression_type_e);
|
|
2912
|
+
} else {
|
|
2913
|
+
fprintf(stdout, "Compression manager: %s\n",
|
|
2914
|
+
FLAGS_compression_manager.c_str());
|
|
2915
|
+
}
|
|
2894
2916
|
fprintf(stdout, "Compression: %s\n", compression.c_str());
|
|
2895
2917
|
fprintf(stdout, "Compression sampling rate: %" PRId64 "\n",
|
|
2896
2918
|
FLAGS_sample_for_compression);
|
|
@@ -2922,8 +2944,7 @@ class Benchmark {
|
|
|
2922
2944
|
CompressionOptions opts;
|
|
2923
2945
|
CompressionContext context(FLAGS_compression_type_e, opts);
|
|
2924
2946
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
2925
|
-
FLAGS_compression_type_e
|
|
2926
|
-
FLAGS_sample_for_compression);
|
|
2947
|
+
FLAGS_compression_type_e);
|
|
2927
2948
|
bool result = CompressSlice(info, Slice(input_str), &compressed);
|
|
2928
2949
|
|
|
2929
2950
|
if (!result) {
|
|
@@ -3457,11 +3478,11 @@ class Benchmark {
|
|
|
3457
3478
|
exit(1);
|
|
3458
3479
|
}
|
|
3459
3480
|
|
|
3460
|
-
void Run() {
|
|
3481
|
+
void Run(ToolHooks& hooks) {
|
|
3461
3482
|
if (!SanityCheck()) {
|
|
3462
3483
|
ErrorExit();
|
|
3463
3484
|
}
|
|
3464
|
-
Open(&open_options_);
|
|
3485
|
+
Open(&open_options_, hooks);
|
|
3465
3486
|
PrintHeader(open_options_);
|
|
3466
3487
|
std::stringstream benchmark_stream(FLAGS_benchmarks);
|
|
3467
3488
|
std::string name;
|
|
@@ -3498,6 +3519,8 @@ class Benchmark {
|
|
|
3498
3519
|
read_options_.async_io = FLAGS_async_io;
|
|
3499
3520
|
read_options_.optimize_multiget_for_io = FLAGS_optimize_multiget_for_io;
|
|
3500
3521
|
read_options_.auto_readahead_size = FLAGS_auto_readahead_size;
|
|
3522
|
+
read_options_.auto_refresh_iterator_with_snapshot =
|
|
3523
|
+
FLAGS_auto_refresh_iterator_with_snapshot;
|
|
3501
3524
|
|
|
3502
3525
|
void (Benchmark::*method)(ThreadState*) = nullptr;
|
|
3503
3526
|
void (Benchmark::*post_process_method)() = nullptr;
|
|
@@ -3803,7 +3826,7 @@ class Benchmark {
|
|
|
3803
3826
|
}
|
|
3804
3827
|
multi_dbs_.clear();
|
|
3805
3828
|
}
|
|
3806
|
-
Open(&open_options_); // use open_options for the last accessed
|
|
3829
|
+
Open(&open_options_, hooks); // use open_options for the last accessed
|
|
3807
3830
|
}
|
|
3808
3831
|
|
|
3809
3832
|
if (method != nullptr) {
|
|
@@ -4141,8 +4164,7 @@ class Benchmark {
|
|
|
4141
4164
|
opts.level = FLAGS_compression_level;
|
|
4142
4165
|
CompressionContext context(FLAGS_compression_type_e, opts);
|
|
4143
4166
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
4144
|
-
FLAGS_compression_type_e
|
|
4145
|
-
FLAGS_sample_for_compression);
|
|
4167
|
+
FLAGS_compression_type_e);
|
|
4146
4168
|
// Compress 1G
|
|
4147
4169
|
while (ok && bytes < int64_t(1) << 30) {
|
|
4148
4170
|
compressed.clear();
|
|
@@ -4172,9 +4194,9 @@ class Benchmark {
|
|
|
4172
4194
|
compression_opts.level = FLAGS_compression_level;
|
|
4173
4195
|
CompressionContext compression_ctx(FLAGS_compression_type_e,
|
|
4174
4196
|
compression_opts);
|
|
4175
|
-
CompressionInfo compression_info(
|
|
4176
|
-
|
|
4177
|
-
|
|
4197
|
+
CompressionInfo compression_info(compression_opts, compression_ctx,
|
|
4198
|
+
CompressionDict::GetEmptyDict(),
|
|
4199
|
+
FLAGS_compression_type_e);
|
|
4178
4200
|
UncompressionContext uncompression_ctx(FLAGS_compression_type_e);
|
|
4179
4201
|
UncompressionInfo uncompression_info(uncompression_ctx,
|
|
4180
4202
|
UncompressionDict::GetEmptyDict(),
|
|
@@ -4186,7 +4208,7 @@ class Benchmark {
|
|
|
4186
4208
|
while (ok && bytes < 1024 * 1048576) {
|
|
4187
4209
|
constexpr uint32_t compress_format_version = 2;
|
|
4188
4210
|
|
|
4189
|
-
CacheAllocationPtr uncompressed =
|
|
4211
|
+
CacheAllocationPtr uncompressed = OLD_UncompressData(
|
|
4190
4212
|
uncompression_info, compressed.data(), compressed.size(),
|
|
4191
4213
|
&uncompressed_size, compress_format_version);
|
|
4192
4214
|
|
|
@@ -4246,6 +4268,7 @@ class Benchmark {
|
|
|
4246
4268
|
options.stats_history_buffer_size =
|
|
4247
4269
|
static_cast<size_t>(FLAGS_stats_history_buffer_size);
|
|
4248
4270
|
options.avoid_flush_during_recovery = FLAGS_avoid_flush_during_recovery;
|
|
4271
|
+
options.avoid_flush_during_shutdown = FLAGS_avoid_flush_during_shutdown;
|
|
4249
4272
|
|
|
4250
4273
|
options.compression_opts.level = FLAGS_compression_level;
|
|
4251
4274
|
options.compression_opts.max_dict_bytes = FLAGS_compression_max_dict_bytes;
|
|
@@ -4268,8 +4291,6 @@ class Benchmark {
|
|
|
4268
4291
|
options.max_write_buffer_number = FLAGS_max_write_buffer_number;
|
|
4269
4292
|
options.min_write_buffer_number_to_merge =
|
|
4270
4293
|
FLAGS_min_write_buffer_number_to_merge;
|
|
4271
|
-
options.max_write_buffer_number_to_maintain =
|
|
4272
|
-
FLAGS_max_write_buffer_number_to_maintain;
|
|
4273
4294
|
options.max_write_buffer_size_to_maintain =
|
|
4274
4295
|
FLAGS_max_write_buffer_size_to_maintain;
|
|
4275
4296
|
options.max_background_jobs = FLAGS_max_background_jobs;
|
|
@@ -4313,7 +4334,6 @@ class Benchmark {
|
|
|
4313
4334
|
options.max_file_opening_threads = FLAGS_file_opening_threads;
|
|
4314
4335
|
options.compaction_readahead_size = FLAGS_compaction_readahead_size;
|
|
4315
4336
|
options.log_readahead_size = FLAGS_log_readahead_size;
|
|
4316
|
-
options.random_access_max_buffer_size = FLAGS_random_access_max_buffer_size;
|
|
4317
4337
|
options.writable_file_max_buffer_size = FLAGS_writable_file_max_buffer_size;
|
|
4318
4338
|
options.use_fsync = FLAGS_use_fsync;
|
|
4319
4339
|
options.num_levels = FLAGS_num_levels;
|
|
@@ -4480,6 +4500,7 @@ class Benchmark {
|
|
|
4480
4500
|
block_based_options.block_restart_interval = FLAGS_block_restart_interval;
|
|
4481
4501
|
block_based_options.index_block_restart_interval =
|
|
4482
4502
|
FLAGS_index_block_restart_interval;
|
|
4503
|
+
TEST_AllowUnsupportedFormatVersion() = true;
|
|
4483
4504
|
block_based_options.format_version =
|
|
4484
4505
|
static_cast<uint32_t>(FLAGS_format_version);
|
|
4485
4506
|
block_based_options.read_amp_bytes_per_bit = FLAGS_read_amp_bytes_per_bit;
|
|
@@ -4493,6 +4514,7 @@ class Benchmark {
|
|
|
4493
4514
|
FLAGS_initial_auto_readahead_size;
|
|
4494
4515
|
block_based_options.num_file_reads_for_auto_readahead =
|
|
4495
4516
|
FLAGS_num_file_reads_for_auto_readahead;
|
|
4517
|
+
block_based_options.verify_compression = FLAGS_verify_compression;
|
|
4496
4518
|
BlockBasedTableOptions::PrepopulateBlockCache prepopulate_block_cache =
|
|
4497
4519
|
block_based_options.prepopulate_block_cache;
|
|
4498
4520
|
switch (FLAGS_prepopulate_block_cache) {
|
|
@@ -4617,7 +4639,39 @@ class Benchmark {
|
|
|
4617
4639
|
FLAGS_level0_file_num_compaction_trigger;
|
|
4618
4640
|
options.level0_slowdown_writes_trigger =
|
|
4619
4641
|
FLAGS_level0_slowdown_writes_trigger;
|
|
4620
|
-
|
|
4642
|
+
if (!strcasecmp(FLAGS_compression_manager.c_str(), "none")) {
|
|
4643
|
+
options.compression = FLAGS_compression_type_e;
|
|
4644
|
+
} else {
|
|
4645
|
+
std::shared_ptr<CompressionManagerWrapper> mgr;
|
|
4646
|
+
if (!strcasecmp(FLAGS_compression_manager.c_str(), "mixed")) {
|
|
4647
|
+
// Need to list zstd in the compression_name table property if it's
|
|
4648
|
+
// potentially used by being in the mix (i.e., potentially at least one
|
|
4649
|
+
// data block in the table is compressed by zstd). This ensures proper
|
|
4650
|
+
// context and dictionary handling, and prevents crashes in older
|
|
4651
|
+
// RocksDB versions.
|
|
4652
|
+
options.compression = kZSTD;
|
|
4653
|
+
options.bottommost_compression = kZSTD;
|
|
4654
|
+
|
|
4655
|
+
mgr = std::make_shared<RoundRobinManager>(
|
|
4656
|
+
GetBuiltinV2CompressionManager());
|
|
4657
|
+
} else if (!strcasecmp(FLAGS_compression_manager.c_str(), "autoskip")) {
|
|
4658
|
+
options.compression = FLAGS_compression_type_e;
|
|
4659
|
+
if (FLAGS_compression_type_e == kNoCompression) {
|
|
4660
|
+
fprintf(stderr,
|
|
4661
|
+
"Compression type must not be no Compression when using "
|
|
4662
|
+
"autoskip");
|
|
4663
|
+
ErrorExit();
|
|
4664
|
+
}
|
|
4665
|
+
mgr =
|
|
4666
|
+
CreateAutoSkipCompressionManager(GetBuiltinV2CompressionManager());
|
|
4667
|
+
} else {
|
|
4668
|
+
// not defined -> exit with error
|
|
4669
|
+
fprintf(stderr, "Requested compression manager not supported");
|
|
4670
|
+
ErrorExit();
|
|
4671
|
+
}
|
|
4672
|
+
options.compression_manager = mgr;
|
|
4673
|
+
}
|
|
4674
|
+
|
|
4621
4675
|
if (FLAGS_simulate_hybrid_fs_file != "") {
|
|
4622
4676
|
options.last_level_temperature = Temperature::kWarm;
|
|
4623
4677
|
}
|
|
@@ -4729,6 +4783,7 @@ class Benchmark {
|
|
|
4729
4783
|
options.allow_data_in_errors = FLAGS_allow_data_in_errors;
|
|
4730
4784
|
options.track_and_verify_wals_in_manifest =
|
|
4731
4785
|
FLAGS_track_and_verify_wals_in_manifest;
|
|
4786
|
+
options.track_and_verify_wals = FLAGS_track_and_verify_wals;
|
|
4732
4787
|
|
|
4733
4788
|
// Integrated BlobDB
|
|
4734
4789
|
options.enable_blob_files = FLAGS_enable_blob_files;
|
|
@@ -4760,9 +4815,13 @@ class Benchmark {
|
|
|
4760
4815
|
options.block_protection_bytes_per_key =
|
|
4761
4816
|
FLAGS_block_protection_bytes_per_key;
|
|
4762
4817
|
options.paranoid_memory_checks = FLAGS_paranoid_memory_checks;
|
|
4818
|
+
options.memtable_op_scan_flush_trigger =
|
|
4819
|
+
FLAGS_memtable_op_scan_flush_trigger;
|
|
4820
|
+
options.compaction_options_universal.reduce_file_locking =
|
|
4821
|
+
FLAGS_universal_reduce_file_locking;
|
|
4763
4822
|
}
|
|
4764
4823
|
|
|
4765
|
-
void InitializeOptionsGeneral(Options* opts) {
|
|
4824
|
+
void InitializeOptionsGeneral(Options* opts, ToolHooks& hooks) {
|
|
4766
4825
|
// Be careful about what is set here to avoid accidentally overwriting
|
|
4767
4826
|
// settings already configured by OPTIONS file. Only configure settings that
|
|
4768
4827
|
// are needed for the benchmark to run, settings for shared objects that
|
|
@@ -4855,7 +4914,7 @@ class Benchmark {
|
|
|
4855
4914
|
}
|
|
4856
4915
|
|
|
4857
4916
|
if (FLAGS_num_multi_db <= 1) {
|
|
4858
|
-
OpenDb(options, FLAGS_db, &db_);
|
|
4917
|
+
OpenDb(options, hooks, FLAGS_db, &db_);
|
|
4859
4918
|
} else {
|
|
4860
4919
|
multi_dbs_.clear();
|
|
4861
4920
|
multi_dbs_.resize(FLAGS_num_multi_db);
|
|
@@ -4864,7 +4923,7 @@ class Benchmark {
|
|
|
4864
4923
|
if (!wal_dir.empty()) {
|
|
4865
4924
|
options.wal_dir = GetPathForMultiple(wal_dir, i);
|
|
4866
4925
|
}
|
|
4867
|
-
OpenDb(options, GetPathForMultiple(FLAGS_db, i), &multi_dbs_[i]);
|
|
4926
|
+
OpenDb(options, hooks, GetPathForMultiple(FLAGS_db, i), &multi_dbs_[i]);
|
|
4868
4927
|
}
|
|
4869
4928
|
options.wal_dir = wal_dir;
|
|
4870
4929
|
}
|
|
@@ -4891,15 +4950,15 @@ class Benchmark {
|
|
|
4891
4950
|
}
|
|
4892
4951
|
}
|
|
4893
4952
|
|
|
4894
|
-
void Open(Options* opts) {
|
|
4953
|
+
void Open(Options* opts, ToolHooks& hooks) {
|
|
4895
4954
|
if (!InitializeOptionsFromFile(opts)) {
|
|
4896
4955
|
InitializeOptionsFromFlags(opts);
|
|
4897
4956
|
}
|
|
4898
4957
|
|
|
4899
|
-
InitializeOptionsGeneral(opts);
|
|
4958
|
+
InitializeOptionsGeneral(opts, hooks);
|
|
4900
4959
|
}
|
|
4901
4960
|
|
|
4902
|
-
void OpenDb(Options options, const std::string& db_name,
|
|
4961
|
+
void OpenDb(Options options, ToolHooks& hooks, const std::string& db_name,
|
|
4903
4962
|
DBWithColumnFamilies* db) {
|
|
4904
4963
|
uint64_t open_start = FLAGS_report_open_timing ? FLAGS_env->NowNanos() : 0;
|
|
4905
4964
|
Status s;
|
|
@@ -4940,11 +4999,11 @@ class Benchmark {
|
|
|
4940
4999
|
}
|
|
4941
5000
|
}
|
|
4942
5001
|
if (FLAGS_readonly) {
|
|
4943
|
-
s =
|
|
4944
|
-
|
|
5002
|
+
s = hooks.OpenForReadOnly(options, db_name, column_families, &db->cfh,
|
|
5003
|
+
&db->db);
|
|
4945
5004
|
} else if (FLAGS_optimistic_transaction_db) {
|
|
4946
|
-
s =
|
|
4947
|
-
|
|
5005
|
+
s = hooks.OpenOptimisticTransactionDB(options, db_name, column_families,
|
|
5006
|
+
&db->cfh, &db->opt_txn_db);
|
|
4948
5007
|
if (s.ok()) {
|
|
4949
5008
|
db->db = db->opt_txn_db->GetBaseDB();
|
|
4950
5009
|
}
|
|
@@ -4956,22 +5015,22 @@ class Benchmark {
|
|
|
4956
5015
|
txn_db_options.skip_concurrency_control = true;
|
|
4957
5016
|
txn_db_options.write_policy = WRITE_PREPARED;
|
|
4958
5017
|
}
|
|
4959
|
-
s =
|
|
4960
|
-
|
|
5018
|
+
s = hooks.OpenTransactionDB(options, txn_db_options, db_name,
|
|
5019
|
+
column_families, &db->cfh, &ptr);
|
|
4961
5020
|
if (s.ok()) {
|
|
4962
5021
|
db->db = ptr;
|
|
4963
5022
|
}
|
|
4964
5023
|
} else {
|
|
4965
|
-
s =
|
|
5024
|
+
s = hooks.Open(options, db_name, column_families, &db->cfh, &db->db);
|
|
4966
5025
|
}
|
|
4967
5026
|
db->cfh.resize(FLAGS_num_column_families);
|
|
4968
5027
|
db->num_created = num_hot;
|
|
4969
5028
|
db->num_hot = num_hot;
|
|
4970
5029
|
db->cfh_idx_to_prob = std::move(cfh_idx_to_prob);
|
|
4971
5030
|
} else if (FLAGS_readonly) {
|
|
4972
|
-
s =
|
|
5031
|
+
s = hooks.OpenForReadOnly(options, db_name, &db->db, false);
|
|
4973
5032
|
} else if (FLAGS_optimistic_transaction_db) {
|
|
4974
|
-
s =
|
|
5033
|
+
s = hooks.OpenOptimisticTransactionDB(options, db_name, &db->opt_txn_db);
|
|
4975
5034
|
if (s.ok()) {
|
|
4976
5035
|
db->db = db->opt_txn_db->GetBaseDB();
|
|
4977
5036
|
}
|
|
@@ -4985,7 +5044,7 @@ class Benchmark {
|
|
|
4985
5044
|
}
|
|
4986
5045
|
s = CreateLoggerFromOptions(db_name, options, &options.info_log);
|
|
4987
5046
|
if (s.ok()) {
|
|
4988
|
-
s =
|
|
5047
|
+
s = hooks.OpenTransactionDB(options, txn_db_options, db_name, &ptr);
|
|
4989
5048
|
}
|
|
4990
5049
|
if (s.ok()) {
|
|
4991
5050
|
db->db = ptr;
|
|
@@ -5003,7 +5062,7 @@ class Benchmark {
|
|
|
5003
5062
|
blob_db_options.blob_file_size = FLAGS_blob_db_file_size;
|
|
5004
5063
|
blob_db_options.compression = FLAGS_blob_db_compression_type_e;
|
|
5005
5064
|
blob_db::BlobDB* ptr = nullptr;
|
|
5006
|
-
s =
|
|
5065
|
+
s = hooks.Open(options, blob_db_options, db_name, &ptr);
|
|
5007
5066
|
if (s.ok()) {
|
|
5008
5067
|
db->db = ptr;
|
|
5009
5068
|
}
|
|
@@ -5014,7 +5073,8 @@ class Benchmark {
|
|
|
5014
5073
|
default_secondary_path += "/dbbench_secondary";
|
|
5015
5074
|
FLAGS_secondary_path = default_secondary_path;
|
|
5016
5075
|
}
|
|
5017
|
-
s =
|
|
5076
|
+
s = hooks.OpenAsSecondary(options, db_name, FLAGS_secondary_path,
|
|
5077
|
+
&db->db);
|
|
5018
5078
|
if (s.ok() && FLAGS_secondary_update_interval > 0) {
|
|
5019
5079
|
secondary_update_thread_.reset(new port::Thread(
|
|
5020
5080
|
[this](int interval, DBWithColumnFamilies* _db) {
|
|
@@ -5035,12 +5095,12 @@ class Benchmark {
|
|
|
5035
5095
|
}
|
|
5036
5096
|
} else if (FLAGS_open_as_follower) {
|
|
5037
5097
|
std::unique_ptr<DB> dbptr;
|
|
5038
|
-
s =
|
|
5098
|
+
s = hooks.OpenAsFollower(options, db_name, FLAGS_leader_path, &dbptr);
|
|
5039
5099
|
if (s.ok()) {
|
|
5040
5100
|
db->db = dbptr.release();
|
|
5041
5101
|
}
|
|
5042
5102
|
} else {
|
|
5043
|
-
s =
|
|
5103
|
+
s = hooks.Open(options, db_name, &db->db);
|
|
5044
5104
|
}
|
|
5045
5105
|
if (FLAGS_report_open_timing) {
|
|
5046
5106
|
std::cout << "OpenDb: "
|
|
@@ -5904,6 +5964,13 @@ class Benchmark {
|
|
|
5904
5964
|
options.adaptive_readahead = FLAGS_adaptive_readahead;
|
|
5905
5965
|
options.async_io = FLAGS_async_io;
|
|
5906
5966
|
options.auto_readahead_size = FLAGS_auto_readahead_size;
|
|
5967
|
+
std::unique_ptr<ManagedSnapshot> snapshot = nullptr;
|
|
5968
|
+
if (FLAGS_explicit_snapshot) {
|
|
5969
|
+
snapshot = std::make_unique<ManagedSnapshot>(db);
|
|
5970
|
+
options.snapshot = snapshot->snapshot();
|
|
5971
|
+
} else {
|
|
5972
|
+
options.snapshot = nullptr;
|
|
5973
|
+
}
|
|
5907
5974
|
|
|
5908
5975
|
Iterator* iter = db->NewIterator(options);
|
|
5909
5976
|
int64_t i = 0;
|
|
@@ -6860,6 +6927,13 @@ class Benchmark {
|
|
|
6860
6927
|
|
|
6861
6928
|
Duration duration(FLAGS_duration, reads_);
|
|
6862
6929
|
char value_buffer[256];
|
|
6930
|
+
std::unique_ptr<ManagedSnapshot> snapshot = nullptr;
|
|
6931
|
+
if (FLAGS_explicit_snapshot) {
|
|
6932
|
+
snapshot = std::make_unique<ManagedSnapshot>(db_.db);
|
|
6933
|
+
options.snapshot = snapshot->snapshot();
|
|
6934
|
+
} else {
|
|
6935
|
+
options.snapshot = nullptr;
|
|
6936
|
+
}
|
|
6863
6937
|
while (!duration.Done(1)) {
|
|
6864
6938
|
int64_t seek_pos = thread->rand.Next() % FLAGS_num;
|
|
6865
6939
|
GenerateKeyFromIntForSeek(static_cast<uint64_t>(seek_pos), FLAGS_num,
|
|
@@ -7189,6 +7263,13 @@ class Benchmark {
|
|
|
7189
7263
|
ts = mock_app_clock_->GetTimestampForRead(thread->rand, ts_guard.get());
|
|
7190
7264
|
read_options.timestamp = &ts;
|
|
7191
7265
|
}
|
|
7266
|
+
std::unique_ptr<ManagedSnapshot> snapshot = nullptr;
|
|
7267
|
+
if (FLAGS_explicit_snapshot) {
|
|
7268
|
+
snapshot = std::make_unique<ManagedSnapshot>(db_.db);
|
|
7269
|
+
read_options.snapshot = snapshot->snapshot();
|
|
7270
|
+
} else {
|
|
7271
|
+
read_options.snapshot = nullptr;
|
|
7272
|
+
}
|
|
7192
7273
|
Iterator* iter = db_.db->NewIterator(read_options);
|
|
7193
7274
|
|
|
7194
7275
|
fprintf(stderr, "num reads to do %" PRIu64 "\n", reads_);
|
|
@@ -7804,6 +7885,13 @@ class Benchmark {
|
|
|
7804
7885
|
ts = mock_app_clock_->GetTimestampForRead(thread->rand, ts_guard.get());
|
|
7805
7886
|
read_opts.timestamp = &ts;
|
|
7806
7887
|
}
|
|
7888
|
+
std::unique_ptr<ManagedSnapshot> snapshot = nullptr;
|
|
7889
|
+
if (FLAGS_explicit_snapshot) {
|
|
7890
|
+
snapshot = std::make_unique<ManagedSnapshot>(db);
|
|
7891
|
+
read_opts.snapshot = snapshot->snapshot();
|
|
7892
|
+
} else {
|
|
7893
|
+
read_opts.snapshot = nullptr;
|
|
7894
|
+
}
|
|
7807
7895
|
std::unique_ptr<Iterator> iter(db->NewIterator(read_opts));
|
|
7808
7896
|
|
|
7809
7897
|
std::unique_ptr<const char[]> key_guard;
|
|
@@ -8543,7 +8631,6 @@ class Benchmark {
|
|
|
8543
8631
|
}
|
|
8544
8632
|
}
|
|
8545
8633
|
|
|
8546
|
-
|
|
8547
8634
|
void Replay(ThreadState* thread) {
|
|
8548
8635
|
if (db_.db != nullptr) {
|
|
8549
8636
|
Replay(thread, &db_);
|
|
@@ -8631,10 +8718,9 @@ class Benchmark {
|
|
|
8631
8718
|
assert(s.ok());
|
|
8632
8719
|
delete backup_engine;
|
|
8633
8720
|
}
|
|
8634
|
-
|
|
8635
8721
|
};
|
|
8636
8722
|
|
|
8637
|
-
int db_bench_tool(int argc, char** argv) {
|
|
8723
|
+
int db_bench_tool(int argc, char** argv, ToolHooks& hooks) {
|
|
8638
8724
|
ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
|
|
8639
8725
|
ConfigOptions config_options;
|
|
8640
8726
|
static bool initialized = false;
|
|
@@ -8786,7 +8872,7 @@ int db_bench_tool(int argc, char** argv) {
|
|
|
8786
8872
|
}
|
|
8787
8873
|
|
|
8788
8874
|
ROCKSDB_NAMESPACE::Benchmark benchmark;
|
|
8789
|
-
benchmark.Run();
|
|
8875
|
+
benchmark.Run(hooks);
|
|
8790
8876
|
|
|
8791
8877
|
if (FLAGS_print_malloc_stats) {
|
|
8792
8878
|
std::string stats_string;
|
|
@@ -222,7 +222,6 @@ const std::string options_file_content = R"OPTIONS_FILE(
|
|
|
222
222
|
stats_dump_period_sec=600
|
|
223
223
|
allow_fallocate=true
|
|
224
224
|
max_log_file_size=83886080
|
|
225
|
-
random_access_max_buffer_size=1048576
|
|
226
225
|
advise_random_on_open=true
|
|
227
226
|
dump_malloc_stats=true
|
|
228
227
|
|
|
@@ -254,7 +253,6 @@ const std::string options_file_content = R"OPTIONS_FILE(
|
|
|
254
253
|
level0_slowdown_writes_trigger=50
|
|
255
254
|
level0_file_num_compaction_trigger=10
|
|
256
255
|
expanded_compaction_factor=25
|
|
257
|
-
max_write_buffer_number_to_maintain=0
|
|
258
256
|
max_write_buffer_size_to_maintain=0
|
|
259
257
|
verify_checksums_in_compaction=true
|
|
260
258
|
merge_operator=nullptr
|