@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
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
#include "db/version_edit.h"
|
|
15
15
|
#include "env/file_system_tracer.h"
|
|
16
16
|
#include "port/port.h"
|
|
17
|
-
#include "rocksdb/env.h"
|
|
18
17
|
#include "rocksdb/file_checksum.h"
|
|
19
18
|
#include "rocksdb/file_system.h"
|
|
20
19
|
#include "rocksdb/io_status.h"
|
|
@@ -25,6 +24,7 @@
|
|
|
25
24
|
|
|
26
25
|
namespace ROCKSDB_NAMESPACE {
|
|
27
26
|
class Statistics;
|
|
27
|
+
class SystemClock;
|
|
28
28
|
|
|
29
29
|
// WritableFileWriter is a wrapper on top of Env::WritableFile. It provides
|
|
30
30
|
// facilities to:
|
|
@@ -42,7 +42,7 @@ class WritableFileWriter {
|
|
|
42
42
|
const FileOperationInfo::FinishTimePoint& finish_ts,
|
|
43
43
|
const IOStatus& io_status) {
|
|
44
44
|
FileOperationInfo info(FileOperationType::kWrite, file_name_, start_ts,
|
|
45
|
-
finish_ts, io_status);
|
|
45
|
+
finish_ts, io_status, temperature_);
|
|
46
46
|
info.offset = offset;
|
|
47
47
|
info.length = length;
|
|
48
48
|
|
|
@@ -56,7 +56,7 @@ class WritableFileWriter {
|
|
|
56
56
|
const FileOperationInfo::FinishTimePoint& finish_ts,
|
|
57
57
|
const IOStatus& io_status) {
|
|
58
58
|
FileOperationInfo info(FileOperationType::kFlush, file_name_, start_ts,
|
|
59
|
-
finish_ts, io_status);
|
|
59
|
+
finish_ts, io_status, temperature_);
|
|
60
60
|
|
|
61
61
|
for (auto& listener : listeners_) {
|
|
62
62
|
listener->OnFileFlushFinish(info);
|
|
@@ -68,7 +68,8 @@ class WritableFileWriter {
|
|
|
68
68
|
const FileOperationInfo::FinishTimePoint& finish_ts,
|
|
69
69
|
const IOStatus& io_status,
|
|
70
70
|
FileOperationType type = FileOperationType::kSync) {
|
|
71
|
-
FileOperationInfo info(type, file_name_, start_ts, finish_ts, io_status
|
|
71
|
+
FileOperationInfo info(type, file_name_, start_ts, finish_ts, io_status,
|
|
72
|
+
temperature_);
|
|
72
73
|
|
|
73
74
|
for (auto& listener : listeners_) {
|
|
74
75
|
listener->OnFileSyncFinish(info);
|
|
@@ -81,7 +82,7 @@ class WritableFileWriter {
|
|
|
81
82
|
const FileOperationInfo::FinishTimePoint& finish_ts,
|
|
82
83
|
const IOStatus& io_status) {
|
|
83
84
|
FileOperationInfo info(FileOperationType::kRangeSync, file_name_, start_ts,
|
|
84
|
-
finish_ts, io_status);
|
|
85
|
+
finish_ts, io_status, temperature_);
|
|
85
86
|
info.offset = offset;
|
|
86
87
|
info.length = length;
|
|
87
88
|
|
|
@@ -95,7 +96,7 @@ class WritableFileWriter {
|
|
|
95
96
|
const FileOperationInfo::FinishTimePoint& finish_ts,
|
|
96
97
|
const IOStatus& io_status) {
|
|
97
98
|
FileOperationInfo info(FileOperationType::kTruncate, file_name_, start_ts,
|
|
98
|
-
finish_ts, io_status);
|
|
99
|
+
finish_ts, io_status, temperature_);
|
|
99
100
|
|
|
100
101
|
for (auto& listener : listeners_) {
|
|
101
102
|
listener->OnFileTruncateFinish(info);
|
|
@@ -107,21 +108,36 @@ class WritableFileWriter {
|
|
|
107
108
|
const FileOperationInfo::FinishTimePoint& finish_ts,
|
|
108
109
|
const IOStatus& io_status) {
|
|
109
110
|
FileOperationInfo info(FileOperationType::kClose, file_name_, start_ts,
|
|
110
|
-
finish_ts, io_status);
|
|
111
|
+
finish_ts, io_status, temperature_);
|
|
111
112
|
|
|
112
113
|
for (auto& listener : listeners_) {
|
|
113
114
|
listener->OnFileCloseFinish(info);
|
|
114
115
|
}
|
|
115
116
|
info.status.PermitUncheckedError();
|
|
116
117
|
}
|
|
118
|
+
|
|
119
|
+
void NotifyOnIOError(const IOStatus& io_status, FileOperationType operation,
|
|
120
|
+
const std::string& file_path, size_t length = 0,
|
|
121
|
+
uint64_t offset = 0) {
|
|
122
|
+
if (listeners_.empty()) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
IOErrorInfo io_error_info(io_status, operation, file_path, length, offset);
|
|
126
|
+
for (auto& listener : listeners_) {
|
|
127
|
+
listener->OnIOError(io_error_info);
|
|
128
|
+
}
|
|
129
|
+
io_error_info.io_status.PermitUncheckedError();
|
|
130
|
+
}
|
|
117
131
|
#endif // ROCKSDB_LITE
|
|
118
132
|
|
|
119
133
|
bool ShouldNotifyListeners() const { return !listeners_.empty(); }
|
|
120
134
|
void UpdateFileChecksum(const Slice& data);
|
|
135
|
+
void Crc32cHandoffChecksumCalculation(const char* data, size_t size,
|
|
136
|
+
char* buf);
|
|
121
137
|
|
|
122
138
|
std::string file_name_;
|
|
123
139
|
FSWritableFilePtr writable_file_;
|
|
124
|
-
|
|
140
|
+
SystemClock* clock_;
|
|
125
141
|
AlignedBuffer buf_;
|
|
126
142
|
size_t max_buffer_size_;
|
|
127
143
|
// Actually written data size can be used for truncate
|
|
@@ -141,18 +157,26 @@ class WritableFileWriter {
|
|
|
141
157
|
std::vector<std::shared_ptr<EventListener>> listeners_;
|
|
142
158
|
std::unique_ptr<FileChecksumGenerator> checksum_generator_;
|
|
143
159
|
bool checksum_finalized_;
|
|
160
|
+
bool perform_data_verification_;
|
|
161
|
+
uint32_t buffered_data_crc32c_checksum_;
|
|
162
|
+
bool buffered_data_with_checksum_;
|
|
163
|
+
#ifndef ROCKSDB_LITE
|
|
164
|
+
Temperature temperature_;
|
|
165
|
+
#endif // ROCKSDB_LITE
|
|
144
166
|
|
|
145
167
|
public:
|
|
146
168
|
WritableFileWriter(
|
|
147
169
|
std::unique_ptr<FSWritableFile>&& file, const std::string& _file_name,
|
|
148
|
-
const FileOptions& options,
|
|
170
|
+
const FileOptions& options, SystemClock* clock = nullptr,
|
|
149
171
|
const std::shared_ptr<IOTracer>& io_tracer = nullptr,
|
|
150
172
|
Statistics* stats = nullptr,
|
|
151
173
|
const std::vector<std::shared_ptr<EventListener>>& listeners = {},
|
|
152
|
-
FileChecksumGenFactory* file_checksum_gen_factory = nullptr
|
|
174
|
+
FileChecksumGenFactory* file_checksum_gen_factory = nullptr,
|
|
175
|
+
bool perform_data_verification = false,
|
|
176
|
+
bool buffered_data_with_checksum = false)
|
|
153
177
|
: file_name_(_file_name),
|
|
154
|
-
writable_file_(std::move(file), io_tracer),
|
|
155
|
-
|
|
178
|
+
writable_file_(std::move(file), io_tracer, _file_name),
|
|
179
|
+
clock_(clock),
|
|
156
180
|
buf_(),
|
|
157
181
|
max_buffer_size_(options.writable_file_max_buffer_size),
|
|
158
182
|
filesize_(0),
|
|
@@ -166,7 +190,14 @@ class WritableFileWriter {
|
|
|
166
190
|
stats_(stats),
|
|
167
191
|
listeners_(),
|
|
168
192
|
checksum_generator_(nullptr),
|
|
169
|
-
checksum_finalized_(false)
|
|
193
|
+
checksum_finalized_(false),
|
|
194
|
+
perform_data_verification_(perform_data_verification),
|
|
195
|
+
buffered_data_crc32c_checksum_(0),
|
|
196
|
+
buffered_data_with_checksum_(buffered_data_with_checksum) {
|
|
197
|
+
#ifndef ROCKSDB_LITE
|
|
198
|
+
temperature_ = options.temperature;
|
|
199
|
+
#endif // ROCKSDB_LITE
|
|
200
|
+
assert(!use_direct_io() || max_buffer_size_ > 0);
|
|
170
201
|
TEST_SYNC_POINT_CALLBACK("WritableFileWriter::WritableFileWriter:0",
|
|
171
202
|
reinterpret_cast<void*>(max_buffer_size_));
|
|
172
203
|
buf_.Alignment(writable_file_->GetRequiredBufferAlignment());
|
|
@@ -190,6 +221,10 @@ class WritableFileWriter {
|
|
|
190
221
|
}
|
|
191
222
|
}
|
|
192
223
|
|
|
224
|
+
static IOStatus Create(const std::shared_ptr<FileSystem>& fs,
|
|
225
|
+
const std::string& fname, const FileOptions& file_opts,
|
|
226
|
+
std::unique_ptr<WritableFileWriter>* writer,
|
|
227
|
+
IODebugContext* dbg);
|
|
193
228
|
WritableFileWriter(const WritableFileWriter&) = delete;
|
|
194
229
|
|
|
195
230
|
WritableFileWriter& operator=(const WritableFileWriter&) = delete;
|
|
@@ -201,11 +236,15 @@ class WritableFileWriter {
|
|
|
201
236
|
|
|
202
237
|
std::string file_name() const { return file_name_; }
|
|
203
238
|
|
|
204
|
-
|
|
239
|
+
// When this Append API is called, if the crc32c_checksum is not provided, we
|
|
240
|
+
// will calculate the checksum internally.
|
|
241
|
+
IOStatus Append(const Slice& data, uint32_t crc32c_checksum = 0,
|
|
242
|
+
Env::IOPriority op_rate_limiter_priority = Env::IO_TOTAL);
|
|
205
243
|
|
|
206
|
-
IOStatus Pad(const size_t pad_bytes
|
|
244
|
+
IOStatus Pad(const size_t pad_bytes,
|
|
245
|
+
Env::IOPriority op_rate_limiter_priority = Env::IO_TOTAL);
|
|
207
246
|
|
|
208
|
-
IOStatus Flush();
|
|
247
|
+
IOStatus Flush(Env::IOPriority op_rate_limiter_priority = Env::IO_TOTAL);
|
|
209
248
|
|
|
210
249
|
IOStatus Close();
|
|
211
250
|
|
|
@@ -238,13 +277,21 @@ class WritableFileWriter {
|
|
|
238
277
|
const char* GetFileChecksumFuncName() const;
|
|
239
278
|
|
|
240
279
|
private:
|
|
280
|
+
static Env::IOPriority DecideRateLimiterPriority(
|
|
281
|
+
Env::IOPriority writable_file_io_priority,
|
|
282
|
+
Env::IOPriority op_rate_limiter_priority);
|
|
283
|
+
|
|
241
284
|
// Used when os buffering is OFF and we are writing
|
|
242
285
|
// DMA such as in Direct I/O mode
|
|
243
286
|
#ifndef ROCKSDB_LITE
|
|
244
|
-
IOStatus WriteDirect();
|
|
287
|
+
IOStatus WriteDirect(Env::IOPriority op_rate_limiter_priority);
|
|
288
|
+
IOStatus WriteDirectWithChecksum(Env::IOPriority op_rate_limiter_priority);
|
|
245
289
|
#endif // !ROCKSDB_LITE
|
|
246
|
-
// Normal write
|
|
247
|
-
IOStatus WriteBuffered(const char* data, size_t size
|
|
290
|
+
// Normal write.
|
|
291
|
+
IOStatus WriteBuffered(const char* data, size_t size,
|
|
292
|
+
Env::IOPriority op_rate_limiter_priority);
|
|
293
|
+
IOStatus WriteBufferedWithChecksum(const char* data, size_t size,
|
|
294
|
+
Env::IOPriority op_rate_limiter_priority);
|
|
248
295
|
IOStatus RangeSync(uint64_t offset, uint64_t nbytes);
|
|
249
296
|
IOStatus SyncInternal(bool use_fsync);
|
|
250
297
|
};
|
|
@@ -70,6 +70,10 @@ struct CompactionOptionsFIFO {
|
|
|
70
70
|
// Default: false;
|
|
71
71
|
bool allow_compaction = false;
|
|
72
72
|
|
|
73
|
+
// When not 0, if the data in the file is older than this threshold, RocksDB
|
|
74
|
+
// will soon move the file to warm temperature.
|
|
75
|
+
uint64_t age_for_warm = 0;
|
|
76
|
+
|
|
73
77
|
CompactionOptionsFIFO() : max_table_files_size(1 * 1024 * 1024 * 1024) {}
|
|
74
78
|
CompactionOptionsFIFO(uint64_t _max_table_files_size, bool _allow_compaction)
|
|
75
79
|
: max_table_files_size(_max_table_files_size),
|
|
@@ -101,9 +105,14 @@ struct CompressionOptions {
|
|
|
101
105
|
//
|
|
102
106
|
// When compression dictionary is disabled, we compress and write each block
|
|
103
107
|
// before buffering data for the next one. When compression dictionary is
|
|
104
|
-
// enabled, we buffer
|
|
108
|
+
// enabled, we buffer SST file data in-memory so we can sample it, as data
|
|
105
109
|
// can only be compressed and written after the dictionary has been finalized.
|
|
106
|
-
//
|
|
110
|
+
//
|
|
111
|
+
// The amount of data buffered can be limited by `max_dict_buffer_bytes`. This
|
|
112
|
+
// buffered memory is charged to the block cache when there is a block cache.
|
|
113
|
+
// If block cache insertion fails with `Status::Incomplete` (i.e., it is
|
|
114
|
+
// full), we finalize the dictionary with whatever data we have and then stop
|
|
115
|
+
// buffering.
|
|
107
116
|
//
|
|
108
117
|
// Default: 0.
|
|
109
118
|
uint32_t max_dict_bytes;
|
|
@@ -143,6 +152,27 @@ struct CompressionOptions {
|
|
|
143
152
|
// Default: false.
|
|
144
153
|
bool enabled;
|
|
145
154
|
|
|
155
|
+
// Limit on data buffering when gathering samples to build a dictionary. Zero
|
|
156
|
+
// means no limit. When dictionary is disabled (`max_dict_bytes == 0`),
|
|
157
|
+
// enabling this limit (`max_dict_buffer_bytes != 0`) has no effect.
|
|
158
|
+
//
|
|
159
|
+
// In compaction, the buffering is limited to the target file size (see
|
|
160
|
+
// `target_file_size_base` and `target_file_size_multiplier`) even if this
|
|
161
|
+
// setting permits more buffering. Since we cannot determine where the file
|
|
162
|
+
// should be cut until data blocks are compressed with dictionary, buffering
|
|
163
|
+
// more than the target file size could lead to selecting samples that belong
|
|
164
|
+
// to a later output SST.
|
|
165
|
+
//
|
|
166
|
+
// Limiting too strictly may harm dictionary effectiveness since it forces
|
|
167
|
+
// RocksDB to pick samples from the initial portion of the output SST, which
|
|
168
|
+
// may not be representative of the whole file. Configuring this limit below
|
|
169
|
+
// `zstd_max_train_bytes` (when enabled) can restrict how many samples we can
|
|
170
|
+
// pass to the dictionary trainer. Configuring it below `max_dict_bytes` can
|
|
171
|
+
// restrict the size of the final dictionary.
|
|
172
|
+
//
|
|
173
|
+
// Default: 0 (unlimited)
|
|
174
|
+
uint64_t max_dict_buffer_bytes;
|
|
175
|
+
|
|
146
176
|
CompressionOptions()
|
|
147
177
|
: window_bits(-14),
|
|
148
178
|
level(kDefaultCompressionLevel),
|
|
@@ -150,17 +180,39 @@ struct CompressionOptions {
|
|
|
150
180
|
max_dict_bytes(0),
|
|
151
181
|
zstd_max_train_bytes(0),
|
|
152
182
|
parallel_threads(1),
|
|
153
|
-
enabled(false)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
183
|
+
enabled(false),
|
|
184
|
+
max_dict_buffer_bytes(0) {}
|
|
185
|
+
CompressionOptions(int wbits, int _lev, int _strategy,
|
|
186
|
+
uint32_t _max_dict_bytes, uint32_t _zstd_max_train_bytes,
|
|
187
|
+
uint32_t _parallel_threads, bool _enabled,
|
|
188
|
+
uint64_t _max_dict_buffer_bytes)
|
|
157
189
|
: window_bits(wbits),
|
|
158
190
|
level(_lev),
|
|
159
191
|
strategy(_strategy),
|
|
160
192
|
max_dict_bytes(_max_dict_bytes),
|
|
161
193
|
zstd_max_train_bytes(_zstd_max_train_bytes),
|
|
162
194
|
parallel_threads(_parallel_threads),
|
|
163
|
-
enabled(_enabled)
|
|
195
|
+
enabled(_enabled),
|
|
196
|
+
max_dict_buffer_bytes(_max_dict_buffer_bytes) {}
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
// Temperature of a file. Used to pass to FileSystem for a different
|
|
200
|
+
// placement and/or coding.
|
|
201
|
+
// Reserve some numbers in the middle, in case we need to insert new tier
|
|
202
|
+
// there.
|
|
203
|
+
enum class Temperature : uint8_t {
|
|
204
|
+
kUnknown = 0,
|
|
205
|
+
kHot = 0x04,
|
|
206
|
+
kWarm = 0x08,
|
|
207
|
+
kCold = 0x0C,
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// The control option of how the cache tiers will be used. Currently rocksdb
|
|
211
|
+
// support block cahe (volatile tier), secondary cache (non-volatile tier).
|
|
212
|
+
// In the future, we may add more caching layers.
|
|
213
|
+
enum class CacheTier : uint8_t {
|
|
214
|
+
kVolatileTier = 0,
|
|
215
|
+
kNonVolatileBlockTier = 0x01,
|
|
164
216
|
};
|
|
165
217
|
|
|
166
218
|
enum UpdateStatus { // Return status For inplace update callback
|
|
@@ -201,17 +253,32 @@ struct AdvancedColumnFamilyOptions {
|
|
|
201
253
|
// ignored.
|
|
202
254
|
int max_write_buffer_number_to_maintain = 0;
|
|
203
255
|
|
|
204
|
-
// The
|
|
205
|
-
//
|
|
206
|
-
//
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
//
|
|
211
|
-
//
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
//
|
|
256
|
+
// The target number of write history bytes to hold in memory. Write history
|
|
257
|
+
// comprises the latest write buffers (memtables). To reach the target, write
|
|
258
|
+
// buffers that were most recently flushed to SST files may be retained in
|
|
259
|
+
// memory.
|
|
260
|
+
//
|
|
261
|
+
// This controls the target amount of write history that will be available
|
|
262
|
+
// in memory for conflict checking when Transactions are used.
|
|
263
|
+
//
|
|
264
|
+
// This target may be undershot when the CF first opens and has not recovered
|
|
265
|
+
// or received enough writes to reach the target. After reaching the target
|
|
266
|
+
// once, it is guaranteed to never undershoot again. That guarantee is
|
|
267
|
+
// implemented by retaining flushed write buffers in-memory until the oldest
|
|
268
|
+
// one can be trimmed without dropping below the target.
|
|
269
|
+
//
|
|
270
|
+
// Examples with `max_write_buffer_size_to_maintain` set to 32MB:
|
|
271
|
+
//
|
|
272
|
+
// - One mutable memtable of 64MB, one unflushed immutable memtable of 64MB,
|
|
273
|
+
// and zero flushed immutable memtables. Nothing trimmable exists.
|
|
274
|
+
// - One mutable memtable of 16MB, zero unflushed immutable memtables, and
|
|
275
|
+
// one flushed immutable memtable of 64MB. Trimming is disallowed because
|
|
276
|
+
// dropping the earliest (only) flushed immutable memtable would result in
|
|
277
|
+
// write history of 16MB < 32MB.
|
|
278
|
+
// - One mutable memtable of 24MB, one unflushed immutable memtable of 16MB,
|
|
279
|
+
// and one flushed immutable memtable of 16MB. The earliest (only) flushed
|
|
280
|
+
// immutable memtable is trimmed because without it we still have
|
|
281
|
+
// 16MB + 24MB = 40MB > 32MB of write history.
|
|
215
282
|
//
|
|
216
283
|
// When using an OptimisticTransactionDB:
|
|
217
284
|
// If this value is too low, some transactions may fail at commit time due
|
|
@@ -260,47 +327,57 @@ struct AdvancedColumnFamilyOptions {
|
|
|
260
327
|
// delta_value - Delta value to be merged with the existing_value.
|
|
261
328
|
// Stored in transaction logs.
|
|
262
329
|
// merged_value - Set when delta is applied on the previous value.
|
|
263
|
-
|
|
330
|
+
//
|
|
264
331
|
// Applicable only when inplace_update_support is true,
|
|
265
332
|
// this callback function is called at the time of updating the memtable
|
|
266
333
|
// as part of a Put operation, lets say Put(key, delta_value). It allows the
|
|
267
334
|
// 'delta_value' specified as part of the Put operation to be merged with
|
|
268
335
|
// an 'existing_value' of the key in the database.
|
|
269
|
-
|
|
336
|
+
//
|
|
270
337
|
// If the merged value is smaller in size that the 'existing_value',
|
|
271
338
|
// then this function can update the 'existing_value' buffer inplace and
|
|
272
339
|
// the corresponding 'existing_value'_size pointer, if it wishes to.
|
|
273
340
|
// The callback should return UpdateStatus::UPDATED_INPLACE.
|
|
274
341
|
// In this case. (In this case, the snapshot-semantics of the rocksdb
|
|
275
342
|
// Iterator is not atomic anymore).
|
|
276
|
-
|
|
343
|
+
//
|
|
277
344
|
// If the merged value is larger in size than the 'existing_value' or the
|
|
278
345
|
// application does not wish to modify the 'existing_value' buffer inplace,
|
|
279
346
|
// then the merged value should be returned via *merge_value. It is set by
|
|
280
347
|
// merging the 'existing_value' and the Put 'delta_value'. The callback should
|
|
281
348
|
// return UpdateStatus::UPDATED in this case. This merged value will be added
|
|
282
349
|
// to the memtable.
|
|
283
|
-
|
|
350
|
+
//
|
|
284
351
|
// If merging fails or the application does not wish to take any action,
|
|
285
352
|
// then the callback should return UpdateStatus::UPDATE_FAILED.
|
|
286
|
-
|
|
353
|
+
//
|
|
287
354
|
// Please remember that the original call from the application is Put(key,
|
|
288
355
|
// delta_value). So the transaction log (if enabled) will still contain (key,
|
|
289
356
|
// delta_value). The 'merged_value' is not stored in the transaction log.
|
|
290
357
|
// Hence the inplace_callback function should be consistent across db reopens.
|
|
291
|
-
|
|
358
|
+
//
|
|
359
|
+
// RocksDB callbacks are NOT exception-safe. A callback completing with an
|
|
360
|
+
// exception can lead to undefined behavior in RocksDB, including data loss,
|
|
361
|
+
// unreported corruption, deadlocks, and more.
|
|
362
|
+
//
|
|
292
363
|
// Default: nullptr
|
|
293
364
|
UpdateStatus (*inplace_callback)(char* existing_value,
|
|
294
365
|
uint32_t* existing_value_size,
|
|
295
366
|
Slice delta_value,
|
|
296
367
|
std::string* merged_value) = nullptr;
|
|
297
368
|
|
|
298
|
-
//
|
|
299
|
-
//
|
|
369
|
+
// Should really be called `memtable_bloom_size_ratio`. Enables a dynamic
|
|
370
|
+
// Bloom filter in memtable to optimize many queries that must go beyond
|
|
371
|
+
// the memtable. The size in bytes of the filter is
|
|
300
372
|
// write_buffer_size * memtable_prefix_bloom_size_ratio.
|
|
301
|
-
// If
|
|
373
|
+
// * If prefix_extractor is set, the filter includes prefixes.
|
|
374
|
+
// * If memtable_whole_key_filtering, the filter includes whole keys.
|
|
375
|
+
// * If both, the filter includes both.
|
|
376
|
+
// * If neither, the feature is disabled.
|
|
302
377
|
//
|
|
303
|
-
//
|
|
378
|
+
// If this value is larger than 0.25, it is sanitized to 0.25.
|
|
379
|
+
//
|
|
380
|
+
// Default: 0 (disabled)
|
|
304
381
|
//
|
|
305
382
|
// Dynamically changeable through SetOptions() API
|
|
306
383
|
double memtable_prefix_bloom_size_ratio = 0.0;
|
|
@@ -309,7 +386,7 @@ struct AdvancedColumnFamilyOptions {
|
|
|
309
386
|
// if memtable_prefix_bloom_size_ratio is not 0. Enabling whole key filtering
|
|
310
387
|
// can potentially reduce CPU usage for point-look-ups.
|
|
311
388
|
//
|
|
312
|
-
// Default: false (
|
|
389
|
+
// Default: false (disabled)
|
|
313
390
|
//
|
|
314
391
|
// Dynamically changeable through SetOptions() API
|
|
315
392
|
bool memtable_whole_key_filtering = false;
|
|
@@ -344,7 +421,7 @@ struct AdvancedColumnFamilyOptions {
|
|
|
344
421
|
// example would be updating the same key over and over again, in which case
|
|
345
422
|
// the prefix can be the key itself.
|
|
346
423
|
//
|
|
347
|
-
// Default: nullptr (
|
|
424
|
+
// Default: nullptr (disabled)
|
|
348
425
|
std::shared_ptr<const SliceTransform>
|
|
349
426
|
memtable_insert_with_hint_prefix_extractor = nullptr;
|
|
350
427
|
|
|
@@ -357,7 +434,8 @@ struct AdvancedColumnFamilyOptions {
|
|
|
357
434
|
|
|
358
435
|
// size of one block in arena memory allocation.
|
|
359
436
|
// If <= 0, a proper value is automatically calculated (usually 1/8 of
|
|
360
|
-
// writer_buffer_size, rounded up to a multiple of 4KB
|
|
437
|
+
// writer_buffer_size, rounded up to a multiple of 4KB, or 1MB which ever is
|
|
438
|
+
// smaller).
|
|
361
439
|
//
|
|
362
440
|
// There are two additional restriction of the specified size:
|
|
363
441
|
// (1) size should be in the range of [4096, 2 << 30] and
|
|
@@ -393,6 +471,14 @@ struct AdvancedColumnFamilyOptions {
|
|
|
393
471
|
// according to compression_per_level[1], L3 using compression_per_level[2]
|
|
394
472
|
// and L4 using compression_per_level[3]. Compaction for each level can
|
|
395
473
|
// change when data grows.
|
|
474
|
+
//
|
|
475
|
+
// NOTE: if the vector size is smaller than the level number, the undefined
|
|
476
|
+
// lower level uses the last option in the vector, for example, for 3 level
|
|
477
|
+
// LSM tree the following settings are the same:
|
|
478
|
+
// {kNoCompression, kSnappyCompression}
|
|
479
|
+
// {kNoCompression, kSnappyCompression, kSnappyCompression}
|
|
480
|
+
//
|
|
481
|
+
// Dynamically changeable through SetOptions() API
|
|
396
482
|
std::vector<CompressionType> compression_per_level;
|
|
397
483
|
|
|
398
484
|
// Number of levels for this database
|
|
@@ -610,8 +696,8 @@ struct AdvancedColumnFamilyOptions {
|
|
|
610
696
|
// the tables.
|
|
611
697
|
// Default: empty vector -- no user-defined statistics collection will be
|
|
612
698
|
// performed.
|
|
613
|
-
|
|
614
|
-
|
|
699
|
+
using TablePropertiesCollectorFactories =
|
|
700
|
+
std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>;
|
|
615
701
|
TablePropertiesCollectorFactories table_properties_collector_factories;
|
|
616
702
|
|
|
617
703
|
// Maximum number of successive merge operations on a key in the memtable.
|
|
@@ -664,7 +750,9 @@ struct AdvancedColumnFamilyOptions {
|
|
|
664
750
|
// LSM changes (Flush, Compaction, AddFile). When this option is true, these
|
|
665
751
|
// checks are also enabled in release mode. These checks were historically
|
|
666
752
|
// disabled in release mode, but are now enabled by default for proactive
|
|
667
|
-
// corruption detection
|
|
753
|
+
// corruption detection. The CPU overhead is negligible for normal mixed
|
|
754
|
+
// operations but can slow down saturated writing. See
|
|
755
|
+
// Options::DisableExtraChecks().
|
|
668
756
|
// Default: true
|
|
669
757
|
bool force_consistency_checks = true;
|
|
670
758
|
|
|
@@ -682,7 +770,7 @@ struct AdvancedColumnFamilyOptions {
|
|
|
682
770
|
// updated from the file system.
|
|
683
771
|
// Pre-req: This needs max_open_files to be set to -1.
|
|
684
772
|
// In Level: Non-bottom-level files older than TTL will go through the
|
|
685
|
-
//
|
|
773
|
+
// compaction process.
|
|
686
774
|
// In FIFO: Files older than TTL will be deleted.
|
|
687
775
|
// unit: seconds. Ex: 1 day = 1 * 24 * 60 * 60
|
|
688
776
|
// In FIFO, this option will have the same meaning as
|
|
@@ -735,20 +823,29 @@ struct AdvancedColumnFamilyOptions {
|
|
|
735
823
|
// data is left uncompressed (unless compression is also requested).
|
|
736
824
|
uint64_t sample_for_compression = 0;
|
|
737
825
|
|
|
738
|
-
//
|
|
826
|
+
// EXPERIMENTAL
|
|
827
|
+
// The feature is still in development and is incomplete.
|
|
828
|
+
// If this option is set, when creating bottommost files, pass this
|
|
829
|
+
// temperature to FileSystem used. Should be no-op for default FileSystem
|
|
830
|
+
// and users need to plug in their own FileSystem to take advantage of it.
|
|
831
|
+
//
|
|
832
|
+
// Dynamically changeable through the SetOptions() API
|
|
833
|
+
Temperature bottommost_temperature = Temperature::kUnknown;
|
|
834
|
+
|
|
739
835
|
// When set, large values (blobs) are written to separate blob files, and
|
|
740
836
|
// only pointers to them are stored in SST files. This can reduce write
|
|
741
837
|
// amplification for large-value use cases at the cost of introducing a level
|
|
742
838
|
// of indirection for reads. See also the options min_blob_size,
|
|
743
839
|
// blob_file_size, blob_compression_type, enable_blob_garbage_collection,
|
|
744
|
-
//
|
|
840
|
+
// blob_garbage_collection_age_cutoff,
|
|
841
|
+
// blob_garbage_collection_force_threshold, and blob_compaction_readahead_size
|
|
842
|
+
// below.
|
|
745
843
|
//
|
|
746
844
|
// Default: false
|
|
747
845
|
//
|
|
748
846
|
// Dynamically changeable through the SetOptions() API
|
|
749
847
|
bool enable_blob_files = false;
|
|
750
848
|
|
|
751
|
-
// UNDER CONSTRUCTION -- DO NOT USE
|
|
752
849
|
// The size of the smallest value to be stored separately in a blob file.
|
|
753
850
|
// Values which have an uncompressed size smaller than this threshold are
|
|
754
851
|
// stored alongside the keys in SST files in the usual fashion. A value of
|
|
@@ -761,7 +858,6 @@ struct AdvancedColumnFamilyOptions {
|
|
|
761
858
|
// Dynamically changeable through the SetOptions() API
|
|
762
859
|
uint64_t min_blob_size = 0;
|
|
763
860
|
|
|
764
|
-
// UNDER CONSTRUCTION -- DO NOT USE
|
|
765
861
|
// The size limit for blob files. When writing blob files, a new file is
|
|
766
862
|
// opened once this limit is reached. Note that enable_blob_files has to be
|
|
767
863
|
// set in order for this option to have any effect.
|
|
@@ -771,7 +867,6 @@ struct AdvancedColumnFamilyOptions {
|
|
|
771
867
|
// Dynamically changeable through the SetOptions() API
|
|
772
868
|
uint64_t blob_file_size = 1ULL << 28;
|
|
773
869
|
|
|
774
|
-
// UNDER CONSTRUCTION -- DO NOT USE
|
|
775
870
|
// The compression algorithm to use for large values stored in blob files.
|
|
776
871
|
// Note that enable_blob_files has to be set in order for this option to have
|
|
777
872
|
// any effect.
|
|
@@ -781,19 +876,18 @@ struct AdvancedColumnFamilyOptions {
|
|
|
781
876
|
// Dynamically changeable through the SetOptions() API
|
|
782
877
|
CompressionType blob_compression_type = kNoCompression;
|
|
783
878
|
|
|
784
|
-
// UNDER CONSTRUCTION -- DO NOT USE
|
|
785
879
|
// Enables garbage collection of blobs. Blob GC is performed as part of
|
|
786
880
|
// compaction. Valid blobs residing in blob files older than a cutoff get
|
|
787
881
|
// relocated to new files as they are encountered during compaction, which
|
|
788
882
|
// makes it possible to clean up blob files once they contain nothing but
|
|
789
|
-
// obsolete/garbage blobs. See also blob_garbage_collection_age_cutoff
|
|
883
|
+
// obsolete/garbage blobs. See also blob_garbage_collection_age_cutoff and
|
|
884
|
+
// blob_garbage_collection_force_threshold below.
|
|
790
885
|
//
|
|
791
886
|
// Default: false
|
|
792
887
|
//
|
|
793
888
|
// Dynamically changeable through the SetOptions() API
|
|
794
889
|
bool enable_blob_garbage_collection = false;
|
|
795
890
|
|
|
796
|
-
// UNDER CONSTRUCTION -- DO NOT USE
|
|
797
891
|
// The cutoff in terms of blob file age for garbage collection. Blobs in
|
|
798
892
|
// the oldest N blob files will be relocated when encountered during
|
|
799
893
|
// compaction, where N = garbage_collection_cutoff * number_of_blob_files.
|
|
@@ -805,35 +899,32 @@ struct AdvancedColumnFamilyOptions {
|
|
|
805
899
|
// Dynamically changeable through the SetOptions() API
|
|
806
900
|
double blob_garbage_collection_age_cutoff = 0.25;
|
|
807
901
|
|
|
902
|
+
// If the ratio of garbage in the oldest blob files exceeds this threshold,
|
|
903
|
+
// targeted compactions are scheduled in order to force garbage collecting
|
|
904
|
+
// the blob files in question, assuming they are all eligible based on the
|
|
905
|
+
// value of blob_garbage_collection_age_cutoff above. This option is
|
|
906
|
+
// currently only supported with leveled compactions.
|
|
907
|
+
// Note that enable_blob_garbage_collection has to be set in order for this
|
|
908
|
+
// option to have any effect.
|
|
909
|
+
//
|
|
910
|
+
// Default: 1.0
|
|
911
|
+
//
|
|
912
|
+
// Dynamically changeable through the SetOptions() API
|
|
913
|
+
double blob_garbage_collection_force_threshold = 1.0;
|
|
914
|
+
|
|
915
|
+
// Compaction readahead for blob files.
|
|
916
|
+
//
|
|
917
|
+
// Default: 0
|
|
918
|
+
//
|
|
919
|
+
// Dynamically changeable through the SetOptions() API
|
|
920
|
+
uint64_t blob_compaction_readahead_size = 0;
|
|
921
|
+
|
|
808
922
|
// Create ColumnFamilyOptions with default values for all fields
|
|
809
923
|
AdvancedColumnFamilyOptions();
|
|
810
924
|
// Create ColumnFamilyOptions from Options
|
|
811
925
|
explicit AdvancedColumnFamilyOptions(const Options& options);
|
|
812
926
|
|
|
813
927
|
// ---------------- OPTIONS NOT SUPPORTED ANYMORE ----------------
|
|
814
|
-
|
|
815
|
-
// NOT SUPPORTED ANYMORE
|
|
816
|
-
// This does not do anything anymore.
|
|
817
|
-
int max_mem_compaction_level;
|
|
818
|
-
|
|
819
|
-
// NOT SUPPORTED ANYMORE -- this options is no longer used
|
|
820
|
-
// Puts are delayed to options.delayed_write_rate when any level has a
|
|
821
|
-
// compaction score that exceeds soft_rate_limit. This is ignored when == 0.0.
|
|
822
|
-
//
|
|
823
|
-
// Default: 0 (disabled)
|
|
824
|
-
//
|
|
825
|
-
// Dynamically changeable through SetOptions() API
|
|
826
|
-
double soft_rate_limit = 0.0;
|
|
827
|
-
|
|
828
|
-
// NOT SUPPORTED ANYMORE -- this options is no longer used
|
|
829
|
-
double hard_rate_limit = 0.0;
|
|
830
|
-
|
|
831
|
-
// NOT SUPPORTED ANYMORE -- this options is no longer used
|
|
832
|
-
unsigned int rate_limit_delay_max_milliseconds = 100;
|
|
833
|
-
|
|
834
|
-
// NOT SUPPORTED ANYMORE
|
|
835
|
-
// Does not have any effect.
|
|
836
|
-
bool purge_redundant_kvs_while_flush = true;
|
|
837
928
|
};
|
|
838
929
|
|
|
839
930
|
} // namespace ROCKSDB_NAMESPACE
|