@nxtedition/rocksdb 5.2.21 → 5.2.28
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 +510 -967
- package/binding.gyp +78 -72
- package/chained-batch.js +1 -2
- package/deps/rocksdb/build_version.cc +70 -4
- package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
- package/deps/rocksdb/rocksdb/Makefile +459 -469
- package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
- package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
- package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
- 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/crash_test.mk +93 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
- package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
- package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
- package/deps/rocksdb/rocksdb/db/builder.h +16 -37
- package/deps/rocksdb/rocksdb/db/c.cc +413 -208
- package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
- package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
- package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
- package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
- package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
- package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
- package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
- package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
- package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
- package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
- package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
- package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
- package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
- package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
- package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
- package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
- package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
- package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
- package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
- package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
- package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
- package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
- package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
- package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
- package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
- package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
- package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
- package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
- package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
- package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
- package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
- package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
- package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
- package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
- package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
- package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
- package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
- package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
- package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
- package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
- package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
- package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
- package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
- package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
- package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
- package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
- package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
- package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
- package/deps/rocksdb/rocksdb/env/env.cc +632 -42
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
- package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
- package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
- package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
- package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
- package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
- package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
- package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
- package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
- package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
- package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
- package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
- package/deps/rocksdb/rocksdb/file/filename.h +13 -8
- package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
- package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
- package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
- package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
- package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
- package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
- package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
- package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
- package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
- package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
- package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
- package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
- package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
- package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
- package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
- package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
- package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
- package/deps/rocksdb/rocksdb/options/options.cc +49 -17
- package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
- package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
- package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
- package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
- package/deps/rocksdb/rocksdb/port/lang.h +52 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
- package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
- package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
- package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
- package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
- package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
- package/deps/rocksdb/rocksdb/python.mk +9 -0
- package/deps/rocksdb/rocksdb/src.mk +82 -34
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
- package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
- package/deps/rocksdb/rocksdb/table/format.cc +258 -104
- package/deps/rocksdb/rocksdb/table/format.h +120 -109
- package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
- package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
- package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
- package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
- package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
- package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
- package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
- package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
- package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
- package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
- package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
- package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
- package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
- package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
- package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
- package/deps/rocksdb/rocksdb/util/channel.h +2 -0
- package/deps/rocksdb/rocksdb/util/coding.h +1 -33
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
- package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
- package/deps/rocksdb/rocksdb/util/compression.h +212 -7
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
- package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
- package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
- package/deps/rocksdb/rocksdb/util/defer.h +30 -1
- package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
- package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
- package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
- package/deps/rocksdb/rocksdb/util/hash.h +31 -1
- package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
- package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
- package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
- package/deps/rocksdb/rocksdb/util/heap.h +6 -1
- package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
- package/deps/rocksdb/rocksdb/util/math.h +74 -7
- package/deps/rocksdb/rocksdb/util/math128.h +13 -1
- package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
- package/deps/rocksdb/rocksdb/util/random.cc +9 -0
- package/deps/rocksdb/rocksdb/util/random.h +6 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
- package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
- package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
- package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
- package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
- package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
- package/deps/rocksdb/rocksdb/util/status.cc +32 -29
- package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
- package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
- package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
- package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
- package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
- package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
- package/deps/rocksdb/rocksdb/util/timer.h +55 -46
- package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
- package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
- package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
- package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
- package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
- package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
- package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
- package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
- package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
- package/deps/rocksdb/rocksdb.gyp +425 -446
- package/index.js +5 -87
- package/package-lock.json +23687 -0
- package/package.json +8 -9
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/README.md +0 -32
- package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
- package/deps/rocksdb/rocksdb/hdfs/README +0 -23
- package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
- package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
- package/deps/rocksdb/rocksdb/port/README +0 -10
- package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
- package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
- package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
- package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
- package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
- package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
- package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
- package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
- package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
- package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
- package/deps/snappy/snappy-1.1.7/README.md +0 -149
- package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
#include "rocksdb/advanced_options.h"
|
|
21
21
|
#include "rocksdb/comparator.h"
|
|
22
22
|
#include "rocksdb/compression_type.h"
|
|
23
|
+
#include "rocksdb/customizable.h"
|
|
24
|
+
#include "rocksdb/data_structure.h"
|
|
23
25
|
#include "rocksdb/env.h"
|
|
24
26
|
#include "rocksdb/file_checksum.h"
|
|
25
27
|
#include "rocksdb/listener.h"
|
|
@@ -58,9 +60,15 @@ class FileSystem;
|
|
|
58
60
|
struct Options;
|
|
59
61
|
struct DbPath;
|
|
60
62
|
|
|
63
|
+
using FileTypeSet = SmallEnumSet<FileType, FileType::kBlobFile>;
|
|
64
|
+
|
|
61
65
|
struct ColumnFamilyOptions : public AdvancedColumnFamilyOptions {
|
|
62
66
|
// The function recovers options to a previous version. Only 4.6 or later
|
|
63
67
|
// versions are supported.
|
|
68
|
+
// NOT MAINTAINED: This function has not been and is not maintained.
|
|
69
|
+
// DEPRECATED: This function might be removed in a future release.
|
|
70
|
+
// In general, defaults are changed to suit broad interests. Opting
|
|
71
|
+
// out of a change on upgrade should be deliberate and considered.
|
|
64
72
|
ColumnFamilyOptions* OldDefaults(int rocksdb_major_version = 4,
|
|
65
73
|
int rocksdb_minor_version = 6);
|
|
66
74
|
|
|
@@ -125,9 +133,10 @@ struct ColumnFamilyOptions : public AdvancedColumnFamilyOptions {
|
|
|
125
133
|
// Allows an application to modify/delete a key-value during background
|
|
126
134
|
// compaction.
|
|
127
135
|
//
|
|
128
|
-
// If the client requires a new
|
|
129
|
-
// compaction runs
|
|
130
|
-
//
|
|
136
|
+
// If the client requires a new `CompactionFilter` to be used for different
|
|
137
|
+
// compaction runs and/or requires a `CompactionFilter` for table file
|
|
138
|
+
// creations outside of compaction, it can specify compaction_filter_factory
|
|
139
|
+
// instead of this option. The client should specify only one of the two.
|
|
131
140
|
// compaction_filter takes precedence over compaction_filter_factory if
|
|
132
141
|
// client specifies both.
|
|
133
142
|
//
|
|
@@ -138,12 +147,21 @@ struct ColumnFamilyOptions : public AdvancedColumnFamilyOptions {
|
|
|
138
147
|
// Default: nullptr
|
|
139
148
|
const CompactionFilter* compaction_filter = nullptr;
|
|
140
149
|
|
|
141
|
-
// This is a factory that provides
|
|
142
|
-
// an application to modify/delete a key-value during
|
|
150
|
+
// This is a factory that provides `CompactionFilter` objects which allow
|
|
151
|
+
// an application to modify/delete a key-value during table file creation.
|
|
152
|
+
//
|
|
153
|
+
// Unlike the `compaction_filter` option, which is used when compaction
|
|
154
|
+
// creates a table file, this factory allows using a `CompactionFilter` when a
|
|
155
|
+
// table file is created for various reasons. The factory can decide what
|
|
156
|
+
// `TableFileCreationReason`s use a `CompactionFilter`. For compatibility, by
|
|
157
|
+
// default the decision is to use a `CompactionFilter` for
|
|
158
|
+
// `TableFileCreationReason::kCompaction` only.
|
|
143
159
|
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
//
|
|
160
|
+
// Each thread of work involving creating table files will create a new
|
|
161
|
+
// `CompactionFilter` when it will be used according to the above
|
|
162
|
+
// `TableFileCreationReason`-based decision. This allows the application to
|
|
163
|
+
// know about the different ongoing threads of work and makes it unnecessary
|
|
164
|
+
// for `CompactionFilter` to provide thread-safety.
|
|
147
165
|
//
|
|
148
166
|
// Default: nullptr
|
|
149
167
|
std::shared_ptr<CompactionFilterFactory> compaction_filter_factory = nullptr;
|
|
@@ -197,14 +215,18 @@ struct ColumnFamilyOptions : public AdvancedColumnFamilyOptions {
|
|
|
197
215
|
CompressionType compression;
|
|
198
216
|
|
|
199
217
|
// Compression algorithm that will be used for the bottommost level that
|
|
200
|
-
// contain files.
|
|
218
|
+
// contain files. The behavior for num_levels = 1 is not well defined.
|
|
219
|
+
// Right now, with num_levels = 1, all compaction outputs will use
|
|
220
|
+
// bottommost_compression and all flush outputs still use options.compression,
|
|
221
|
+
// but the behavior is subject to change.
|
|
201
222
|
//
|
|
202
223
|
// Default: kDisableCompressionOption (Disabled)
|
|
203
224
|
CompressionType bottommost_compression = kDisableCompressionOption;
|
|
204
225
|
|
|
205
226
|
// different options for compression algorithms used by bottommost_compression
|
|
206
227
|
// if it is enabled. To enable it, please see the definition of
|
|
207
|
-
// CompressionOptions.
|
|
228
|
+
// CompressionOptions. Behavior for num_levels = 1 is the same as
|
|
229
|
+
// options.bottommost_compression.
|
|
208
230
|
CompressionOptions bottommost_compression_opts;
|
|
209
231
|
|
|
210
232
|
// different options for compression algorithms
|
|
@@ -351,8 +373,68 @@ struct DbPath {
|
|
|
351
373
|
|
|
352
374
|
extern const char* kHostnameForDbHostId;
|
|
353
375
|
|
|
376
|
+
enum class CompactionServiceJobStatus : char {
|
|
377
|
+
kSuccess,
|
|
378
|
+
kFailure,
|
|
379
|
+
kUseLocal,
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
struct CompactionServiceJobInfo {
|
|
383
|
+
std::string db_name;
|
|
384
|
+
std::string db_id;
|
|
385
|
+
std::string db_session_id;
|
|
386
|
+
uint64_t job_id; // job_id is only unique within the current DB and session,
|
|
387
|
+
// restart DB will reset the job_id. `db_id` and
|
|
388
|
+
// `db_session_id` could help you build unique id across
|
|
389
|
+
// different DBs and sessions.
|
|
390
|
+
|
|
391
|
+
Env::Priority priority;
|
|
392
|
+
|
|
393
|
+
CompactionServiceJobInfo(std::string db_name_, std::string db_id_,
|
|
394
|
+
std::string db_session_id_, uint64_t job_id_,
|
|
395
|
+
Env::Priority priority_)
|
|
396
|
+
: db_name(std::move(db_name_)),
|
|
397
|
+
db_id(std::move(db_id_)),
|
|
398
|
+
db_session_id(std::move(db_session_id_)),
|
|
399
|
+
job_id(job_id_),
|
|
400
|
+
priority(priority_) {}
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
// Exceptions MUST NOT propagate out of overridden functions into RocksDB,
|
|
404
|
+
// because RocksDB is not exception-safe. This could cause undefined behavior
|
|
405
|
+
// including data loss, unreported corruption, deadlocks, and more.
|
|
406
|
+
class CompactionService : public Customizable {
|
|
407
|
+
public:
|
|
408
|
+
static const char* Type() { return "CompactionService"; }
|
|
409
|
+
|
|
410
|
+
// Returns the name of this compaction service.
|
|
411
|
+
const char* Name() const override = 0;
|
|
412
|
+
|
|
413
|
+
// Start the remote compaction with `compaction_service_input`, which can be
|
|
414
|
+
// passed to `DB::OpenAndCompact()` on the remote side. `info` provides the
|
|
415
|
+
// information the user might want to know, which includes `job_id`.
|
|
416
|
+
virtual CompactionServiceJobStatus StartV2(
|
|
417
|
+
const CompactionServiceJobInfo& /*info*/,
|
|
418
|
+
const std::string& /*compaction_service_input*/) {
|
|
419
|
+
return CompactionServiceJobStatus::kUseLocal;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
// Wait for remote compaction to finish.
|
|
423
|
+
virtual CompactionServiceJobStatus WaitForCompleteV2(
|
|
424
|
+
const CompactionServiceJobInfo& /*info*/,
|
|
425
|
+
std::string* /*compaction_service_result*/) {
|
|
426
|
+
return CompactionServiceJobStatus::kUseLocal;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
~CompactionService() override = default;
|
|
430
|
+
};
|
|
431
|
+
|
|
354
432
|
struct DBOptions {
|
|
355
433
|
// The function recovers options to the option as in version 4.6.
|
|
434
|
+
// NOT MAINTAINED: This function has not been and is not maintained.
|
|
435
|
+
// DEPRECATED: This function might be removed in a future release.
|
|
436
|
+
// In general, defaults are changed to suit broad interests. Opting
|
|
437
|
+
// out of a change on upgrade should be deliberate and considered.
|
|
356
438
|
DBOptions* OldDefaults(int rocksdb_major_version = 4,
|
|
357
439
|
int rocksdb_minor_version = 6);
|
|
358
440
|
|
|
@@ -393,6 +475,13 @@ struct DBOptions {
|
|
|
393
475
|
// Default: true
|
|
394
476
|
bool paranoid_checks = true;
|
|
395
477
|
|
|
478
|
+
// If true, during memtable flush, RocksDB will validate total entries
|
|
479
|
+
// read in flush, and compare with counter inserted into it.
|
|
480
|
+
// The option is here to turn the feature off in case this new validation
|
|
481
|
+
// feature has a bug.
|
|
482
|
+
// Default: true
|
|
483
|
+
bool flush_verify_memtable_count = true;
|
|
484
|
+
|
|
396
485
|
// If true, the log numbers and sizes of the synced WALs are tracked
|
|
397
486
|
// in MANIFEST, then during DB recovery, if a synced WAL is missing
|
|
398
487
|
// from disk, or the WAL's size does not match the recorded size in
|
|
@@ -410,9 +499,21 @@ struct DBOptions {
|
|
|
410
499
|
// Default: Env::Default()
|
|
411
500
|
Env* env = Env::Default();
|
|
412
501
|
|
|
413
|
-
//
|
|
414
|
-
//
|
|
415
|
-
//
|
|
502
|
+
// Limits internal file read/write bandwidth:
|
|
503
|
+
//
|
|
504
|
+
// - Flush requests write bandwidth at `Env::IOPriority::IO_HIGH`
|
|
505
|
+
// - Compaction requests read and write bandwidth at
|
|
506
|
+
// `Env::IOPriority::IO_LOW`
|
|
507
|
+
// - Reads associated with a `ReadOptions` can be charged at
|
|
508
|
+
// `ReadOptions::rate_limiter_priority` (see that option's API doc for usage
|
|
509
|
+
// and limitations).
|
|
510
|
+
// - Writes associated with a `WriteOptions` can be charged at
|
|
511
|
+
// `WriteOptions::rate_limiter_priority` (see that option's API doc for
|
|
512
|
+
// usage and limitations).
|
|
513
|
+
//
|
|
514
|
+
// Rate limiting is disabled if nullptr. If rate limiter is enabled,
|
|
515
|
+
// bytes_per_sync is set to 1MB by default.
|
|
516
|
+
//
|
|
416
517
|
// Default: nullptr
|
|
417
518
|
std::shared_ptr<RateLimiter> rate_limiter = nullptr;
|
|
418
519
|
|
|
@@ -450,6 +551,10 @@ struct DBOptions {
|
|
|
450
551
|
// on target_file_size_base and target_file_size_multiplier for level-based
|
|
451
552
|
// compaction. For universal-style compaction, you can usually set it to -1.
|
|
452
553
|
//
|
|
554
|
+
// A high value or -1 for this option can cause high memory usage.
|
|
555
|
+
// See BlockBasedTableOptions::reserve_table_reader_memory to constrain
|
|
556
|
+
// memory usage in case of block based table format.
|
|
557
|
+
//
|
|
453
558
|
// Default: -1
|
|
454
559
|
//
|
|
455
560
|
// Dynamically changeable through SetDBOptions() API.
|
|
@@ -465,8 +570,18 @@ struct DBOptions {
|
|
|
465
570
|
// (i.e. the ones that are causing all the space amplification). If set to 0
|
|
466
571
|
// (default), we will dynamically choose the WAL size limit to be
|
|
467
572
|
// [sum of all write_buffer_size * max_write_buffer_number] * 4
|
|
468
|
-
//
|
|
469
|
-
//
|
|
573
|
+
//
|
|
574
|
+
// For example, with 15 column families, each with
|
|
575
|
+
// write_buffer_size = 128 MB
|
|
576
|
+
// max_write_buffer_number = 6
|
|
577
|
+
// max_total_wal_size will be calculated to be [15 * 128MB * 6] * 4 = 45GB
|
|
578
|
+
//
|
|
579
|
+
// The RocksDB wiki has some discussion about how the WAL interacts
|
|
580
|
+
// with memtables and flushing of column families.
|
|
581
|
+
// https://github.com/facebook/rocksdb/wiki/Column-Families
|
|
582
|
+
//
|
|
583
|
+
// This option takes effect only when there are more than one column
|
|
584
|
+
// family as otherwise the wal size is dictated by the write_buffer_size.
|
|
470
585
|
//
|
|
471
586
|
// Default: 0
|
|
472
587
|
//
|
|
@@ -544,13 +659,7 @@ struct DBOptions {
|
|
|
544
659
|
// Dynamically changeable through SetDBOptions() API.
|
|
545
660
|
int max_background_jobs = 2;
|
|
546
661
|
|
|
547
|
-
//
|
|
548
|
-
// value of max_background_jobs. This option is ignored.
|
|
549
|
-
//
|
|
550
|
-
// Dynamically changeable through SetDBOptions() API.
|
|
551
|
-
int base_background_compactions = -1;
|
|
552
|
-
|
|
553
|
-
// NOT SUPPORTED ANYMORE: RocksDB automatically decides this based on the
|
|
662
|
+
// DEPRECATED: RocksDB automatically decides this based on the
|
|
554
663
|
// value of max_background_jobs. For backwards compatibility we will set
|
|
555
664
|
// `max_background_jobs = max_background_compactions + max_background_flushes`
|
|
556
665
|
// in the case where user sets at least one of `max_background_compactions` or
|
|
@@ -576,7 +685,7 @@ struct DBOptions {
|
|
|
576
685
|
// Dynamically changeable through SetDBOptions() API.
|
|
577
686
|
uint32_t max_subcompactions = 1;
|
|
578
687
|
|
|
579
|
-
//
|
|
688
|
+
// DEPRECATED: RocksDB automatically decides this based on the
|
|
580
689
|
// value of max_background_jobs. For backwards compatibility we will set
|
|
581
690
|
// `max_background_jobs = max_background_compactions + max_background_flushes`
|
|
582
691
|
// in the case where user sets at least one of `max_background_compactions` or
|
|
@@ -635,9 +744,6 @@ struct DBOptions {
|
|
|
635
744
|
// Number of shards used for table cache.
|
|
636
745
|
int table_cache_numshardbits = 6;
|
|
637
746
|
|
|
638
|
-
// NOT SUPPORTED ANYMORE
|
|
639
|
-
// int table_cache_remove_scan_count_limit;
|
|
640
|
-
|
|
641
747
|
// The following two fields affect how archived logs will be deleted.
|
|
642
748
|
// 1. If both set to 0, logs will be deleted asap and will not get into
|
|
643
749
|
// the archive.
|
|
@@ -659,7 +765,9 @@ struct DBOptions {
|
|
|
659
765
|
// large amounts of data (such as xfs's allocsize option).
|
|
660
766
|
size_t manifest_preallocation_size = 4 * 1024 * 1024;
|
|
661
767
|
|
|
662
|
-
// Allow the OS to mmap file for reading sst tables.
|
|
768
|
+
// Allow the OS to mmap file for reading sst tables.
|
|
769
|
+
// Not recommended for 32-bit OS.
|
|
770
|
+
// Default: false
|
|
663
771
|
bool allow_mmap_reads = false;
|
|
664
772
|
|
|
665
773
|
// Allow the OS to mmap file for writing.
|
|
@@ -676,7 +784,6 @@ struct DBOptions {
|
|
|
676
784
|
// be used. Memory mapped files are not impacted by these parameters.
|
|
677
785
|
|
|
678
786
|
// Use O_DIRECT for user and compaction reads.
|
|
679
|
-
// When true, we also force new_table_reader_for_compaction_inputs to true.
|
|
680
787
|
// Default: false
|
|
681
788
|
// Not supported in ROCKSDB_LITE mode!
|
|
682
789
|
bool use_direct_reads = false;
|
|
@@ -686,15 +793,20 @@ struct DBOptions {
|
|
|
686
793
|
// Not supported in ROCKSDB_LITE mode!
|
|
687
794
|
bool use_direct_io_for_flush_and_compaction = false;
|
|
688
795
|
|
|
689
|
-
// If false, fallocate() calls are bypassed
|
|
796
|
+
// If false, fallocate() calls are bypassed, which disables file
|
|
797
|
+
// preallocation. The file space preallocation is used to increase the file
|
|
798
|
+
// write/append performance. By default, RocksDB preallocates space for WAL,
|
|
799
|
+
// SST, Manifest files, the extra space is truncated when the file is written.
|
|
800
|
+
// Warning: if you're using btrfs, we would recommend setting
|
|
801
|
+
// `allow_fallocate=false` to disable preallocation. As on btrfs, the extra
|
|
802
|
+
// allocated space cannot be freed, which could be significant if you have
|
|
803
|
+
// lots of files. More details about this limitation:
|
|
804
|
+
// https://github.com/btrfs/btrfs-dev-docs/blob/471c5699336e043114d4bca02adcd57d9dab9c44/data-extent-reference-counts.md
|
|
690
805
|
bool allow_fallocate = true;
|
|
691
806
|
|
|
692
807
|
// Disable child process inherit open files. Default: true
|
|
693
808
|
bool is_fd_close_on_exec = true;
|
|
694
809
|
|
|
695
|
-
// NOT SUPPORTED ANYMORE -- this options is no longer used
|
|
696
|
-
bool skip_log_error_on_recovery = false;
|
|
697
|
-
|
|
698
810
|
// if not zero, dump rocksdb.stats to LOG every stats_dump_period_sec
|
|
699
811
|
//
|
|
700
812
|
// Default: 600 (10 min)
|
|
@@ -728,6 +840,23 @@ struct DBOptions {
|
|
|
728
840
|
// Default: true
|
|
729
841
|
bool advise_random_on_open = true;
|
|
730
842
|
|
|
843
|
+
// [experimental]
|
|
844
|
+
// Used to activate or deactive the Mempurge feature (memtable garbage
|
|
845
|
+
// collection). (deactivated by default). At every flush, the total useful
|
|
846
|
+
// payload (total entries minus garbage entries) is estimated as a ratio
|
|
847
|
+
// [useful payload bytes]/[size of a memtable (in bytes)]. This ratio is then
|
|
848
|
+
// compared to this `threshold` value:
|
|
849
|
+
// - if ratio<threshold: the flush is replaced by a mempurge operation
|
|
850
|
+
// - else: a regular flush operation takes place.
|
|
851
|
+
// Threshold values:
|
|
852
|
+
// 0.0: mempurge deactivated (default).
|
|
853
|
+
// 1.0: recommended threshold value.
|
|
854
|
+
// >1.0 : aggressive mempurge.
|
|
855
|
+
// 0 < threshold < 1.0: mempurge triggered only for very low useful payload
|
|
856
|
+
// ratios.
|
|
857
|
+
// [experimental]
|
|
858
|
+
double experimental_mempurge_threshold = 0.0;
|
|
859
|
+
|
|
731
860
|
// Amount of data to build up in memtables across all column
|
|
732
861
|
// families before writing to disk.
|
|
733
862
|
//
|
|
@@ -762,27 +891,10 @@ struct DBOptions {
|
|
|
762
891
|
enum AccessHint { NONE, NORMAL, SEQUENTIAL, WILLNEED };
|
|
763
892
|
AccessHint access_hint_on_compaction_start = NORMAL;
|
|
764
893
|
|
|
765
|
-
// If true, always create a new file descriptor and new table reader
|
|
766
|
-
// for compaction inputs. Turn this parameter on may introduce extra
|
|
767
|
-
// memory usage in the table reader, if it allocates extra memory
|
|
768
|
-
// for indexes. This will allow file descriptor prefetch options
|
|
769
|
-
// to be set for compaction input files and not to impact file
|
|
770
|
-
// descriptors for the same file used by user queries.
|
|
771
|
-
// Suggest to enable BlockBasedTableOptions.cache_index_and_filter_blocks
|
|
772
|
-
// for this mode if using block-based table.
|
|
773
|
-
//
|
|
774
|
-
// Default: false
|
|
775
|
-
// This flag has no affect on the behavior of compaction and plan to delete
|
|
776
|
-
// in the future.
|
|
777
|
-
bool new_table_reader_for_compaction_inputs = false;
|
|
778
|
-
|
|
779
894
|
// If non-zero, we perform bigger reads when doing compaction. If you're
|
|
780
895
|
// running RocksDB on spinning disks, you should set this to at least 2MB.
|
|
781
896
|
// That way RocksDB's compaction is doing sequential instead of random reads.
|
|
782
897
|
//
|
|
783
|
-
// When non-zero, we also force new_table_reader_for_compaction_inputs to
|
|
784
|
-
// true.
|
|
785
|
-
//
|
|
786
898
|
// Default: 0
|
|
787
899
|
//
|
|
788
900
|
// Dynamically changeable through SetDBOptions() API.
|
|
@@ -806,7 +918,7 @@ struct DBOptions {
|
|
|
806
918
|
size_t random_access_max_buffer_size = 1024 * 1024;
|
|
807
919
|
|
|
808
920
|
// This is the maximum buffer size that is used by WritableFileWriter.
|
|
809
|
-
//
|
|
921
|
+
// With direct IO, we need to maintain an aligned buffer for writes.
|
|
810
922
|
// We allow the buffer to grow until it's size hits the limit in buffered
|
|
811
923
|
// IO and fix the buffer size when using direct IO to ensure alignment of
|
|
812
924
|
// write requests if the logical sector size is unusual
|
|
@@ -833,7 +945,7 @@ struct DBOptions {
|
|
|
833
945
|
// Allows OS to incrementally sync files to disk while they are being
|
|
834
946
|
// written, asynchronously, in the background. This operation can be used
|
|
835
947
|
// to smooth out write I/Os over time. Users shouldn't rely on it for
|
|
836
|
-
//
|
|
948
|
+
// persistence guarantee.
|
|
837
949
|
// Issue one request for every bytes_per_sync written. 0 turns it off.
|
|
838
950
|
//
|
|
839
951
|
// You may consider using rate_limiter to regulate write rate to device.
|
|
@@ -1071,18 +1183,6 @@ struct DBOptions {
|
|
|
1071
1183
|
// Immutable.
|
|
1072
1184
|
bool allow_ingest_behind = false;
|
|
1073
1185
|
|
|
1074
|
-
// Needed to support differential snapshots.
|
|
1075
|
-
// If set to true then DB will only process deletes with sequence number
|
|
1076
|
-
// less than what was set by SetPreserveDeletesSequenceNumber(uint64_t ts).
|
|
1077
|
-
// Clients are responsible to periodically call this method to advance
|
|
1078
|
-
// the cutoff time. If this method is never called and preserve_deletes
|
|
1079
|
-
// is set to true NO deletes will ever be processed.
|
|
1080
|
-
// At the moment this only keeps normal deletes, SingleDeletes will
|
|
1081
|
-
// not be preserved.
|
|
1082
|
-
// DEFAULT: false
|
|
1083
|
-
// Immutable (TODO: make it dynamically changeable)
|
|
1084
|
-
bool preserve_deletes = false;
|
|
1085
|
-
|
|
1086
1186
|
// If enabled it uses two queues for writes, one for the ones with
|
|
1087
1187
|
// disable_memtable and one for the ones that also write to memtable. This
|
|
1088
1188
|
// allows the memtable writes not to lag behind other writes. It can be used
|
|
@@ -1095,6 +1195,12 @@ struct DBOptions {
|
|
|
1095
1195
|
// file.
|
|
1096
1196
|
bool manual_wal_flush = false;
|
|
1097
1197
|
|
|
1198
|
+
// This feature is WORK IN PROGRESS
|
|
1199
|
+
// If enabled WAL records will be compressed before they are written.
|
|
1200
|
+
// Only zstd is supported. Compressed WAL records will be read in supported
|
|
1201
|
+
// versions regardless of the wal_compression settings.
|
|
1202
|
+
CompressionType wal_compression = kNoCompression;
|
|
1203
|
+
|
|
1098
1204
|
// If true, RocksDB supports flushing multiple column families and committing
|
|
1099
1205
|
// their results atomically to MANIFEST. Note that it is not
|
|
1100
1206
|
// necessary to set atomic_flush to true if WAL is always enabled since WAL
|
|
@@ -1187,11 +1293,42 @@ struct DBOptions {
|
|
|
1187
1293
|
// writing a file, by tracing back to the writing host. These corruptions
|
|
1188
1294
|
// may not be caught by the checksum since they happen before checksumming.
|
|
1189
1295
|
// If left as default, the table writer will substitute it with the actual
|
|
1190
|
-
// hostname when writing the SST file. If set to an empty
|
|
1296
|
+
// hostname when writing the SST file. If set to an empty string, the
|
|
1191
1297
|
// property will not be written to the SST file.
|
|
1192
1298
|
//
|
|
1193
1299
|
// Default: hostname
|
|
1194
1300
|
std::string db_host_id = kHostnameForDbHostId;
|
|
1301
|
+
|
|
1302
|
+
// Use this if your DB want to enable checksum handoff for specific file
|
|
1303
|
+
// types writes. Make sure that the File_system you use support the
|
|
1304
|
+
// crc32c checksum verification
|
|
1305
|
+
// Currently supported file tyes: kWALFile, kTableFile, kDescriptorFile.
|
|
1306
|
+
// NOTE: currently RocksDB only generates crc32c based checksum for the
|
|
1307
|
+
// handoff. If the storage layer has different checksum support, user
|
|
1308
|
+
// should enble this set as empty. Otherwise,it may cause unexpected
|
|
1309
|
+
// write failures.
|
|
1310
|
+
FileTypeSet checksum_handoff_file_types;
|
|
1311
|
+
|
|
1312
|
+
// EXPERIMENTAL
|
|
1313
|
+
// CompactionService is a feature allows the user to run compactions on a
|
|
1314
|
+
// different host or process, which offloads the background load from the
|
|
1315
|
+
// primary host.
|
|
1316
|
+
// It's an experimental feature, the interface will be changed without
|
|
1317
|
+
// backward/forward compatibility support for now. Some known issues are still
|
|
1318
|
+
// under development.
|
|
1319
|
+
std::shared_ptr<CompactionService> compaction_service = nullptr;
|
|
1320
|
+
|
|
1321
|
+
// It indicates, which lowest cache tier we want to
|
|
1322
|
+
// use for a certain DB. Currently we support volatile_tier and
|
|
1323
|
+
// non_volatile_tier. They are layered. By setting it to kVolatileTier, only
|
|
1324
|
+
// the block cache (current implemented volatile_tier) is used. So
|
|
1325
|
+
// cache entries will not spill to secondary cache (current
|
|
1326
|
+
// implemented non_volatile_tier), and block cache lookup misses will not
|
|
1327
|
+
// lookup in the secondary cache. When kNonVolatileBlockTier is used, we use
|
|
1328
|
+
// both block cache and secondary cache.
|
|
1329
|
+
//
|
|
1330
|
+
// Default: kNonVolatileBlockTier
|
|
1331
|
+
CacheTier lowest_used_cache_tier = CacheTier::kNonVolatileBlockTier;
|
|
1195
1332
|
};
|
|
1196
1333
|
|
|
1197
1334
|
// Options to control the behavior of a database (passed to DB::Open)
|
|
@@ -1203,7 +1340,11 @@ struct Options : public DBOptions, public ColumnFamilyOptions {
|
|
|
1203
1340
|
const ColumnFamilyOptions& column_family_options)
|
|
1204
1341
|
: DBOptions(db_options), ColumnFamilyOptions(column_family_options) {}
|
|
1205
1342
|
|
|
1206
|
-
//
|
|
1343
|
+
// Change to some default settings from an older version.
|
|
1344
|
+
// NOT MAINTAINED: This function has not been and is not maintained.
|
|
1345
|
+
// DEPRECATED: This function might be removed in a future release.
|
|
1346
|
+
// In general, defaults are changed to suit broad interests. Opting
|
|
1347
|
+
// out of a change on upgrade should be deliberate and considered.
|
|
1207
1348
|
Options* OldDefaults(int rocksdb_major_version = 4,
|
|
1208
1349
|
int rocksdb_minor_version = 6);
|
|
1209
1350
|
|
|
@@ -1226,6 +1367,12 @@ struct Options : public DBOptions, public ColumnFamilyOptions {
|
|
|
1226
1367
|
// Use this if your DB is very small (like under 1GB) and you don't want to
|
|
1227
1368
|
// spend lots of memory for memtables.
|
|
1228
1369
|
Options* OptimizeForSmallDb();
|
|
1370
|
+
|
|
1371
|
+
// Disable some checks that should not be necessary in the absence of
|
|
1372
|
+
// software logic errors or CPU+memory hardware errors. This can improve
|
|
1373
|
+
// write speeds but is only recommended for temporary use. Does not
|
|
1374
|
+
// change protection against corrupt storage (e.g. verify_checksums).
|
|
1375
|
+
Options* DisableExtraChecks();
|
|
1229
1376
|
};
|
|
1230
1377
|
|
|
1231
1378
|
//
|
|
@@ -1266,19 +1413,28 @@ struct ReadOptions {
|
|
|
1266
1413
|
// Default: nullptr
|
|
1267
1414
|
const Slice* iterate_lower_bound;
|
|
1268
1415
|
|
|
1269
|
-
// "iterate_upper_bound" defines the extent
|
|
1416
|
+
// "iterate_upper_bound" defines the extent up to which the forward iterator
|
|
1270
1417
|
// can returns entries. Once the bound is reached, Valid() will be false.
|
|
1271
1418
|
// "iterate_upper_bound" is exclusive ie the bound value is
|
|
1272
|
-
// not a valid entry. If prefix_extractor is not null
|
|
1273
|
-
//
|
|
1274
|
-
//
|
|
1419
|
+
// not a valid entry. If prefix_extractor is not null:
|
|
1420
|
+
// 1. If options.auto_prefix_mode = true, iterate_upper_bound will be used
|
|
1421
|
+
// to infer whether prefix iterating (e.g. applying prefix bloom filter)
|
|
1422
|
+
// can be used within RocksDB. This is done by comparing
|
|
1423
|
+
// iterate_upper_bound with the seek key.
|
|
1424
|
+
// 2. If options.auto_prefix_mode = false, iterate_upper_bound only takes
|
|
1425
|
+
// effect if it shares the same prefix as the seek key. If
|
|
1426
|
+
// iterate_upper_bound is outside the prefix of the seek key, then keys
|
|
1427
|
+
// returned outside the prefix range will be undefined, just as if
|
|
1428
|
+
// iterate_upper_bound = null.
|
|
1429
|
+
// If iterate_upper_bound is not null, SeekToLast() will position the iterator
|
|
1430
|
+
// at the first key smaller than iterate_upper_bound.
|
|
1275
1431
|
//
|
|
1276
1432
|
// Default: nullptr
|
|
1277
1433
|
const Slice* iterate_upper_bound;
|
|
1278
1434
|
|
|
1279
1435
|
// RocksDB does auto-readahead for iterators on noticing more than two reads
|
|
1280
1436
|
// for a table file. The readahead starts at 8KB and doubles on every
|
|
1281
|
-
// additional read
|
|
1437
|
+
// additional read up to 256KB.
|
|
1282
1438
|
// This option can help if most of the range scans are large, and if it is
|
|
1283
1439
|
// determined that a larger readahead than that enabled by auto-readahead is
|
|
1284
1440
|
// needed.
|
|
@@ -1304,7 +1460,7 @@ struct ReadOptions {
|
|
|
1304
1460
|
// Default: true
|
|
1305
1461
|
bool verify_checksums;
|
|
1306
1462
|
|
|
1307
|
-
// Should the "data block"/"index block"
|
|
1463
|
+
// Should the "data block"/"index block" read for this iteration be placed in
|
|
1308
1464
|
// block cache?
|
|
1309
1465
|
// Callers may wish to set this field to false for bulk scans.
|
|
1310
1466
|
// This would help not to the change eviction order of existing items in the
|
|
@@ -1328,15 +1484,14 @@ struct ReadOptions {
|
|
|
1328
1484
|
// used in the table. Some table format (e.g. plain table) may not support
|
|
1329
1485
|
// this option.
|
|
1330
1486
|
// If true when calling Get(), we also skip prefix bloom when reading from
|
|
1331
|
-
// block based table
|
|
1332
|
-
// changing implementation of prefix extractor.
|
|
1487
|
+
// block based table, which only affects Get() performance.
|
|
1333
1488
|
// Default: false
|
|
1334
1489
|
bool total_order_seek;
|
|
1335
1490
|
|
|
1336
1491
|
// When true, by default use total_order_seek = true, and RocksDB can
|
|
1337
1492
|
// selectively enable prefix seek mode if won't generate a different result
|
|
1338
1493
|
// from total_order_seek, based on seek key, and iterator upper bound.
|
|
1339
|
-
// Not
|
|
1494
|
+
// Not supported in ROCKSDB_LITE mode, in the way that even with value true
|
|
1340
1495
|
// prefix mode is not used.
|
|
1341
1496
|
// Default: false
|
|
1342
1497
|
bool auto_prefix_mode;
|
|
@@ -1363,9 +1518,11 @@ struct ReadOptions {
|
|
|
1363
1518
|
// Default: false
|
|
1364
1519
|
bool background_purge_on_iterator_cleanup;
|
|
1365
1520
|
|
|
1366
|
-
// If true,
|
|
1367
|
-
//
|
|
1368
|
-
//
|
|
1521
|
+
// If true, range tombstones handling will be skipped in key lookup paths.
|
|
1522
|
+
// For DB instances that don't use DeleteRange() calls, this setting can
|
|
1523
|
+
// be used to optimize the read performance.
|
|
1524
|
+
// Note that, if this assumption (of no previous DeleteRange() calls) is
|
|
1525
|
+
// broken, stale keys could be served in read paths.
|
|
1369
1526
|
// Default: false
|
|
1370
1527
|
bool ignore_range_deletions;
|
|
1371
1528
|
|
|
@@ -1377,13 +1534,6 @@ struct ReadOptions {
|
|
|
1377
1534
|
// Default: empty (every table will be scanned)
|
|
1378
1535
|
std::function<bool(const TableProperties&)> table_filter;
|
|
1379
1536
|
|
|
1380
|
-
// Needed to support differential snapshots. Has 2 effects:
|
|
1381
|
-
// 1) Iterator will skip all internal keys with seqnum < iter_start_seqnum
|
|
1382
|
-
// 2) if this param > 0 iterator will return INTERNAL keys instead of
|
|
1383
|
-
// user keys; e.g. return tombstones as well.
|
|
1384
|
-
// Default: 0 (don't filter by seqnum, return user keys)
|
|
1385
|
-
SequenceNumber iter_start_seqnum;
|
|
1386
|
-
|
|
1387
1537
|
// Timestamp of operation. Read should return the latest data visible to the
|
|
1388
1538
|
// specified timestamp. All timestamps of the same database must be of the
|
|
1389
1539
|
// same length and format. The user is responsible for providing a customized
|
|
@@ -1412,7 +1562,7 @@ struct ReadOptions {
|
|
|
1412
1562
|
// A timeout in microseconds to be passed to the underlying FileSystem for
|
|
1413
1563
|
// reads. As opposed to deadline, this determines the timeout for each
|
|
1414
1564
|
// individual file read request. If a MultiGet/Get/Seek/Next etc call
|
|
1415
|
-
// results in multiple reads, each read can last
|
|
1565
|
+
// results in multiple reads, each read can last up to io_timeout us.
|
|
1416
1566
|
std::chrono::microseconds io_timeout;
|
|
1417
1567
|
|
|
1418
1568
|
// It limits the maximum cumulative value size of the keys in batch while
|
|
@@ -1422,6 +1572,48 @@ struct ReadOptions {
|
|
|
1422
1572
|
// Default: std::numeric_limits<uint64_t>::max()
|
|
1423
1573
|
uint64_t value_size_soft_limit;
|
|
1424
1574
|
|
|
1575
|
+
// For iterators, RocksDB does auto-readahead on noticing more than two
|
|
1576
|
+
// sequential reads for a table file if user doesn't provide readahead_size.
|
|
1577
|
+
// The readahead starts at 8KB and doubles on every additional read upto
|
|
1578
|
+
// max_auto_readahead_size only when reads are sequential. However at each
|
|
1579
|
+
// level, if iterator moves over next file, readahead_size starts again from
|
|
1580
|
+
// 8KB.
|
|
1581
|
+
//
|
|
1582
|
+
// By enabling this option, RocksDB will do some enhancements for
|
|
1583
|
+
// prefetching the data.
|
|
1584
|
+
//
|
|
1585
|
+
// Default: false
|
|
1586
|
+
bool adaptive_readahead;
|
|
1587
|
+
|
|
1588
|
+
// For file reads associated with this option, charge the internal rate
|
|
1589
|
+
// limiter (see `DBOptions::rate_limiter`) at the specified priority. The
|
|
1590
|
+
// special value `Env::IO_TOTAL` disables charging the rate limiter.
|
|
1591
|
+
//
|
|
1592
|
+
// The rate limiting is bypassed no matter this option's value for file reads
|
|
1593
|
+
// on plain tables (these can exist when `ColumnFamilyOptions::table_factory`
|
|
1594
|
+
// is a `PlainTableFactory`) and cuckoo tables (these can exist when
|
|
1595
|
+
// `ColumnFamilyOptions::table_factory` is a `CuckooTableFactory`).
|
|
1596
|
+
//
|
|
1597
|
+
// The new `DB::MultiGet()` APIs (i.e., the ones returning `void`) will return
|
|
1598
|
+
// `Status::NotSupported` when that operation requires file read(s) and
|
|
1599
|
+
// `rate_limiter_priority != Env::IO_TOTAL`.
|
|
1600
|
+
//
|
|
1601
|
+
// The bytes charged to rate limiter may not exactly match the file read bytes
|
|
1602
|
+
// since there are some seemingly insignificant reads, like for file
|
|
1603
|
+
// headers/footers, that we currently do not charge to rate limiter.
|
|
1604
|
+
//
|
|
1605
|
+
// Default: `Env::IO_TOTAL`.
|
|
1606
|
+
Env::IOPriority rate_limiter_priority = Env::IO_TOTAL;
|
|
1607
|
+
|
|
1608
|
+
// Experimental
|
|
1609
|
+
//
|
|
1610
|
+
// If async_io is enabled, RocksDB will prefetch some of data asynchronously.
|
|
1611
|
+
// RocksDB apply it if reads are sequential and its internal automatic
|
|
1612
|
+
// prefetching.
|
|
1613
|
+
//
|
|
1614
|
+
// Default: false
|
|
1615
|
+
bool async_io;
|
|
1616
|
+
|
|
1425
1617
|
ReadOptions();
|
|
1426
1618
|
ReadOptions(bool cksum, bool cache);
|
|
1427
1619
|
};
|
|
@@ -1466,7 +1658,7 @@ struct WriteOptions {
|
|
|
1466
1658
|
bool no_slowdown;
|
|
1467
1659
|
|
|
1468
1660
|
// If true, this write request is of lower priority if compaction is
|
|
1469
|
-
// behind. In this case, no_slowdown = true, the request will be
|
|
1661
|
+
// behind. In this case, no_slowdown = true, the request will be canceled
|
|
1470
1662
|
// immediately with Status::Incomplete() returned. Otherwise, it will be
|
|
1471
1663
|
// slowed down. The slowdown value is determined by RocksDB to guarantee
|
|
1472
1664
|
// it introduces minimum impacts to high priority writes.
|
|
@@ -1483,16 +1675,20 @@ struct WriteOptions {
|
|
|
1483
1675
|
// Default: false
|
|
1484
1676
|
bool memtable_insert_hint_per_batch;
|
|
1485
1677
|
|
|
1486
|
-
//
|
|
1487
|
-
//
|
|
1488
|
-
//
|
|
1489
|
-
//
|
|
1490
|
-
//
|
|
1491
|
-
//
|
|
1492
|
-
//
|
|
1493
|
-
//
|
|
1494
|
-
//
|
|
1495
|
-
|
|
1678
|
+
// For writes associated with this option, charge the internal rate
|
|
1679
|
+
// limiter (see `DBOptions::rate_limiter`) at the specified priority. The
|
|
1680
|
+
// special value `Env::IO_TOTAL` disables charging the rate limiter.
|
|
1681
|
+
//
|
|
1682
|
+
// Currently the support covers automatic WAL flushes, which happen during
|
|
1683
|
+
// live updates (`Put()`, `Write()`, `Delete()`, etc.)
|
|
1684
|
+
// when `WriteOptions::disableWAL == false`
|
|
1685
|
+
// and `DBOptions::manual_wal_flush == false`.
|
|
1686
|
+
//
|
|
1687
|
+
// Only `Env::IO_USER` and `Env::IO_TOTAL` are allowed
|
|
1688
|
+
// due to implementation constraints.
|
|
1689
|
+
//
|
|
1690
|
+
// Default: `Env::IO_TOTAL`
|
|
1691
|
+
Env::IOPriority rate_limiter_priority;
|
|
1496
1692
|
|
|
1497
1693
|
WriteOptions()
|
|
1498
1694
|
: sync(false),
|
|
@@ -1501,7 +1697,7 @@ struct WriteOptions {
|
|
|
1501
1697
|
no_slowdown(false),
|
|
1502
1698
|
low_pri(false),
|
|
1503
1699
|
memtable_insert_hint_per_batch(false),
|
|
1504
|
-
|
|
1700
|
+
rate_limiter_priority(Env::IO_TOTAL) {}
|
|
1505
1701
|
};
|
|
1506
1702
|
|
|
1507
1703
|
// Options that control flush operations
|
|
@@ -1581,6 +1777,15 @@ struct CompactRangeOptions {
|
|
|
1581
1777
|
bool allow_write_stall = false;
|
|
1582
1778
|
// If > 0, it will replace the option in the DBOptions for this compaction.
|
|
1583
1779
|
uint32_t max_subcompactions = 0;
|
|
1780
|
+
// Set user-defined timestamp low bound, the data with older timestamp than
|
|
1781
|
+
// low bound maybe GCed by compaction. Default: nullptr
|
|
1782
|
+
Slice* full_history_ts_low = nullptr;
|
|
1783
|
+
|
|
1784
|
+
// Allows cancellation of an in-progress manual compaction.
|
|
1785
|
+
//
|
|
1786
|
+
// Cancellation can be delayed waiting on automatic compactions when used
|
|
1787
|
+
// together with `exclusive_manual_compaction == true`.
|
|
1788
|
+
std::atomic<bool>* canceled = nullptr;
|
|
1584
1789
|
};
|
|
1585
1790
|
|
|
1586
1791
|
// IngestExternalFileOptions is used by IngestExternalFile()
|
|
@@ -1600,7 +1805,7 @@ struct IngestExternalFileOptions {
|
|
|
1600
1805
|
bool allow_blocking_flush = true;
|
|
1601
1806
|
// Set to true if you would like duplicate keys in the file being ingested
|
|
1602
1807
|
// to be skipped rather than overwriting existing data under that key.
|
|
1603
|
-
//
|
|
1808
|
+
// Use case: back-fill of some historical data in the database without
|
|
1604
1809
|
// over-writing existing newer version of data.
|
|
1605
1810
|
// This option could only be used if the DB has been running
|
|
1606
1811
|
// with allow_ingest_behind=true since the dawn of time.
|
|
@@ -1640,7 +1845,7 @@ struct IngestExternalFileOptions {
|
|
|
1640
1845
|
// will be ignored; 2) If DB enable the checksum function, we calculate the
|
|
1641
1846
|
// sst file checksum after the file is moved or copied and compare the
|
|
1642
1847
|
// checksum and checksum name. If checksum or checksum function name does
|
|
1643
|
-
// not match, ingestion will be failed. If the verification is
|
|
1848
|
+
// not match, ingestion will be failed. If the verification is successful,
|
|
1644
1849
|
// checksum and checksum function name will be stored in Manifest.
|
|
1645
1850
|
// If this option is set to FALSE, 1) if DB does not enable checksum,
|
|
1646
1851
|
// the ingested checksum information will be ignored; 2) if DB enable the
|
|
@@ -1650,6 +1855,14 @@ struct IngestExternalFileOptions {
|
|
|
1650
1855
|
// ingestion. However, if no checksum information is provided with the
|
|
1651
1856
|
// ingested files, DB will generate the checksum and store in the Manifest.
|
|
1652
1857
|
bool verify_file_checksum = true;
|
|
1858
|
+
// Set to TRUE if user wants file to be ingested to the bottommost level. An
|
|
1859
|
+
// error of Status::TryAgain() will be returned if a file cannot fit in the
|
|
1860
|
+
// bottommost level when calling
|
|
1861
|
+
// DB::IngestExternalFile()/DB::IngestExternalFiles(). The user should clear
|
|
1862
|
+
// the bottommost level in the overlapping range before re-attempt.
|
|
1863
|
+
//
|
|
1864
|
+
// ingest_behind takes precedence over fail_if_not_bottommost_level.
|
|
1865
|
+
bool fail_if_not_bottommost_level = false;
|
|
1653
1866
|
};
|
|
1654
1867
|
|
|
1655
1868
|
enum TraceFilterType : uint64_t {
|
|
@@ -1658,7 +1871,13 @@ enum TraceFilterType : uint64_t {
|
|
|
1658
1871
|
// Do not trace the get operations
|
|
1659
1872
|
kTraceFilterGet = 0x1 << 0,
|
|
1660
1873
|
// Do not trace the write operations
|
|
1661
|
-
kTraceFilterWrite = 0x1 << 1
|
|
1874
|
+
kTraceFilterWrite = 0x1 << 1,
|
|
1875
|
+
// Do not trace the `Iterator::Seek()` operations
|
|
1876
|
+
kTraceFilterIteratorSeek = 0x1 << 2,
|
|
1877
|
+
// Do not trace the `Iterator::SeekForPrev()` operations
|
|
1878
|
+
kTraceFilterIteratorSeekForPrev = 0x1 << 3,
|
|
1879
|
+
// Do not trace the `MultiGet()` operations
|
|
1880
|
+
kTraceFilterMultiGet = 0x1 << 4,
|
|
1662
1881
|
};
|
|
1663
1882
|
|
|
1664
1883
|
// TraceOptions is used for StartTrace
|
|
@@ -1671,6 +1890,13 @@ struct TraceOptions {
|
|
|
1671
1890
|
uint64_t sampling_frequency = 1;
|
|
1672
1891
|
// Note: The filtering happens before sampling.
|
|
1673
1892
|
uint64_t filter = kTraceFilterNone;
|
|
1893
|
+
// When true, the order of write records in the trace will match the order of
|
|
1894
|
+
// the corresponding write records in the WAL and applied to the DB. There may
|
|
1895
|
+
// be a performance penalty associated with preserving this ordering.
|
|
1896
|
+
//
|
|
1897
|
+
// Default: false. This means write records in the trace may be in an order
|
|
1898
|
+
// different from the WAL's order.
|
|
1899
|
+
bool preserve_write_order = false;
|
|
1674
1900
|
};
|
|
1675
1901
|
|
|
1676
1902
|
// ImportColumnFamilyOptions is used by ImportColumnFamily()
|
|
@@ -1682,10 +1908,10 @@ struct ImportColumnFamilyOptions {
|
|
|
1682
1908
|
// Options used with DB::GetApproximateSizes()
|
|
1683
1909
|
struct SizeApproximationOptions {
|
|
1684
1910
|
// Defines whether the returned size should include the recently written
|
|
1685
|
-
// data in the
|
|
1686
|
-
bool
|
|
1911
|
+
// data in the memtables. If set to false, include_files must be true.
|
|
1912
|
+
bool include_memtables = false;
|
|
1687
1913
|
// Defines whether the returned size should include data serialized to disk.
|
|
1688
|
-
// If set to false,
|
|
1914
|
+
// If set to false, include_memtables must be true.
|
|
1689
1915
|
bool include_files = true;
|
|
1690
1916
|
// When approximating the files total size that is used to store a keys range
|
|
1691
1917
|
// using DB::GetApproximateSizes, allow approximation with an error margin of
|
|
@@ -1699,4 +1925,48 @@ struct SizeApproximationOptions {
|
|
|
1699
1925
|
double files_size_error_margin = -1.0;
|
|
1700
1926
|
};
|
|
1701
1927
|
|
|
1928
|
+
struct CompactionServiceOptionsOverride {
|
|
1929
|
+
// Currently pointer configurations are not passed to compaction service
|
|
1930
|
+
// compaction so the user needs to set it. It will be removed once pointer
|
|
1931
|
+
// configuration passing is supported.
|
|
1932
|
+
Env* env = Env::Default();
|
|
1933
|
+
std::shared_ptr<FileChecksumGenFactory> file_checksum_gen_factory = nullptr;
|
|
1934
|
+
|
|
1935
|
+
const Comparator* comparator = BytewiseComparator();
|
|
1936
|
+
std::shared_ptr<MergeOperator> merge_operator = nullptr;
|
|
1937
|
+
const CompactionFilter* compaction_filter = nullptr;
|
|
1938
|
+
std::shared_ptr<CompactionFilterFactory> compaction_filter_factory = nullptr;
|
|
1939
|
+
std::shared_ptr<const SliceTransform> prefix_extractor = nullptr;
|
|
1940
|
+
std::shared_ptr<TableFactory> table_factory;
|
|
1941
|
+
std::shared_ptr<SstPartitionerFactory> sst_partitioner_factory = nullptr;
|
|
1942
|
+
|
|
1943
|
+
// Only subsets of events are triggered in remote compaction worker, like:
|
|
1944
|
+
// `OnTableFileCreated`, `OnTableFileCreationStarted`,
|
|
1945
|
+
// `ShouldBeNotifiedOnFileIO` `OnSubcompactionBegin`,
|
|
1946
|
+
// `OnSubcompactionCompleted`, etc. Worth mentioning, `OnCompactionBegin` and
|
|
1947
|
+
// `OnCompactionCompleted` won't be triggered. They will be triggered on the
|
|
1948
|
+
// primary DB side.
|
|
1949
|
+
std::vector<std::shared_ptr<EventListener>> listeners;
|
|
1950
|
+
|
|
1951
|
+
// statistics is used to collect DB operation metrics, the metrics won't be
|
|
1952
|
+
// returned to CompactionService primary host, to collect that, the user needs
|
|
1953
|
+
// to set it here.
|
|
1954
|
+
std::shared_ptr<Statistics> statistics = nullptr;
|
|
1955
|
+
};
|
|
1956
|
+
|
|
1957
|
+
struct OpenAndCompactOptions {
|
|
1958
|
+
// Allows cancellation of an in-progress compaction.
|
|
1959
|
+
std::atomic<bool>* canceled = nullptr;
|
|
1960
|
+
};
|
|
1961
|
+
|
|
1962
|
+
#ifndef ROCKSDB_LITE
|
|
1963
|
+
struct LiveFilesStorageInfoOptions {
|
|
1964
|
+
// Whether to populate FileStorageInfo::file_checksum* or leave blank
|
|
1965
|
+
bool include_checksum_info = false;
|
|
1966
|
+
// Flushes memtables if total size in bytes of live WAL files is >= this
|
|
1967
|
+
// number. Default: always force a flush without checking sizes.
|
|
1968
|
+
uint64_t wal_size_for_flush = 0;
|
|
1969
|
+
};
|
|
1970
|
+
#endif // !ROCKSDB_LITE
|
|
1971
|
+
|
|
1702
1972
|
} // namespace ROCKSDB_NAMESPACE
|