@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
|
@@ -8,25 +8,38 @@
|
|
|
8
8
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
9
9
|
|
|
10
10
|
#pragma once
|
|
11
|
+
#include <algorithm>
|
|
11
12
|
#include <atomic>
|
|
12
13
|
#include <sstream>
|
|
13
14
|
#include <string>
|
|
14
15
|
|
|
15
|
-
#include "file/
|
|
16
|
+
#include "file/readahead_file_info.h"
|
|
16
17
|
#include "port/port.h"
|
|
17
18
|
#include "rocksdb/env.h"
|
|
19
|
+
#include "rocksdb/file_system.h"
|
|
18
20
|
#include "rocksdb/options.h"
|
|
19
21
|
#include "util/aligned_buffer.h"
|
|
20
22
|
|
|
21
23
|
namespace ROCKSDB_NAMESPACE {
|
|
22
24
|
|
|
25
|
+
#define DEAFULT_DECREMENT 8 * 1024
|
|
26
|
+
|
|
27
|
+
struct IOOptions;
|
|
28
|
+
class RandomAccessFileReader;
|
|
29
|
+
|
|
30
|
+
struct BufferInfo {
|
|
31
|
+
AlignedBuffer buffer_;
|
|
32
|
+
uint64_t offset_ = 0;
|
|
33
|
+
};
|
|
34
|
+
|
|
23
35
|
// FilePrefetchBuffer is a smart buffer to store and read data from a file.
|
|
24
36
|
class FilePrefetchBuffer {
|
|
25
37
|
public:
|
|
38
|
+
static const int kMinNumFileReadsToStartAutoReadahead = 2;
|
|
39
|
+
|
|
26
40
|
// Constructor.
|
|
27
41
|
//
|
|
28
42
|
// All arguments are optional.
|
|
29
|
-
// file_reader : the file reader to use. Can be a nullptr.
|
|
30
43
|
// readahead_size : the initial readahead size.
|
|
31
44
|
// max_readahead_size : the maximum readahead size.
|
|
32
45
|
// If max_readahead_size > readahead_size, the readahead size will be
|
|
@@ -38,54 +51,203 @@ class FilePrefetchBuffer {
|
|
|
38
51
|
// for the minimum offset if track_min_offset = true.
|
|
39
52
|
// track_min_offset : Track the minimum offset ever read and collect stats on
|
|
40
53
|
// it. Used for adaptable readahead of the file footer/metadata.
|
|
54
|
+
// implicit_auto_readahead : Readahead is enabled implicitly by rocksdb after
|
|
55
|
+
// doing sequential scans for two times.
|
|
56
|
+
// async_io : When async_io is enabled, if it's implicit_auto_readahead, it
|
|
57
|
+
// prefetches data asynchronously in second buffer while curr_ is being
|
|
58
|
+
// consumed.
|
|
41
59
|
//
|
|
42
|
-
// Automatic readhead is enabled for a file if
|
|
60
|
+
// Automatic readhead is enabled for a file if readahead_size
|
|
43
61
|
// and max_readahead_size are passed in.
|
|
44
|
-
// If file_reader is a nullptr, setting readadhead_size and max_readahead_size
|
|
45
|
-
// does not make any sense. So it does nothing.
|
|
46
62
|
// A user can construct a FilePrefetchBuffer without any arguments, but use
|
|
47
63
|
// `Prefetch` to load data into the buffer.
|
|
48
|
-
FilePrefetchBuffer(
|
|
49
|
-
|
|
50
|
-
bool
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
readahead_size_(
|
|
64
|
+
FilePrefetchBuffer(size_t readahead_size = 0, size_t max_readahead_size = 0,
|
|
65
|
+
bool enable = true, bool track_min_offset = false,
|
|
66
|
+
bool implicit_auto_readahead = false,
|
|
67
|
+
bool async_io = false, FileSystem* fs = nullptr)
|
|
68
|
+
: curr_(0),
|
|
69
|
+
readahead_size_(readahead_size),
|
|
70
|
+
initial_auto_readahead_size_(readahead_size),
|
|
54
71
|
max_readahead_size_(max_readahead_size),
|
|
55
72
|
min_offset_read_(port::kMaxSizet),
|
|
56
73
|
enable_(enable),
|
|
57
|
-
track_min_offset_(track_min_offset)
|
|
74
|
+
track_min_offset_(track_min_offset),
|
|
75
|
+
implicit_auto_readahead_(implicit_auto_readahead),
|
|
76
|
+
prev_offset_(0),
|
|
77
|
+
prev_len_(0),
|
|
78
|
+
num_file_reads_(kMinNumFileReadsToStartAutoReadahead + 1),
|
|
79
|
+
io_handle_(nullptr),
|
|
80
|
+
del_fn_(nullptr),
|
|
81
|
+
async_read_in_progress_(false),
|
|
82
|
+
async_io_(async_io),
|
|
83
|
+
fs_(fs) {
|
|
84
|
+
// If async_io_ is enabled, data is asynchronously filled in second buffer
|
|
85
|
+
// while curr_ is being consumed. If data is overlapping in two buffers,
|
|
86
|
+
// data is copied to third buffer to return continuous buffer.
|
|
87
|
+
bufs_.resize(3);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
~FilePrefetchBuffer() {
|
|
91
|
+
// Wait for any pending async job before destroying the class object.
|
|
92
|
+
if (async_read_in_progress_ && fs_ != nullptr) {
|
|
93
|
+
std::vector<void*> handles;
|
|
94
|
+
handles.emplace_back(io_handle_);
|
|
95
|
+
fs_->Poll(handles, 1).PermitUncheckedError();
|
|
96
|
+
}
|
|
97
|
+
// Release io_handle_.
|
|
98
|
+
if (io_handle_ != nullptr && del_fn_ != nullptr) {
|
|
99
|
+
del_fn_(io_handle_);
|
|
100
|
+
io_handle_ = nullptr;
|
|
101
|
+
del_fn_ = nullptr;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
58
104
|
|
|
59
105
|
// Load data into the buffer from a file.
|
|
60
|
-
// reader
|
|
61
|
-
// offset
|
|
62
|
-
// n
|
|
63
|
-
//
|
|
106
|
+
// reader : the file reader.
|
|
107
|
+
// offset : the file offset to start reading from.
|
|
108
|
+
// n : the number of bytes to read.
|
|
109
|
+
// rate_limiter_priority : rate limiting priority, or `Env::IO_TOTAL` to
|
|
110
|
+
// bypass.
|
|
111
|
+
// is_async_read : if the data should be prefetched by calling read
|
|
112
|
+
// asynchronously. It should be set true when called
|
|
113
|
+
// from TryReadFromCache.
|
|
64
114
|
Status Prefetch(const IOOptions& opts, RandomAccessFileReader* reader,
|
|
65
|
-
uint64_t offset, size_t n,
|
|
115
|
+
uint64_t offset, size_t n,
|
|
116
|
+
Env::IOPriority rate_limiter_priority);
|
|
117
|
+
|
|
118
|
+
Status PrefetchAsync(const IOOptions& opts, RandomAccessFileReader* reader,
|
|
119
|
+
uint64_t offset, size_t length, size_t readahead_size,
|
|
120
|
+
Env::IOPriority rate_limiter_priority,
|
|
121
|
+
bool& copy_to_third_buffer);
|
|
66
122
|
|
|
67
|
-
// Tries returning the data for a file
|
|
123
|
+
// Tries returning the data for a file read from this buffer if that data is
|
|
68
124
|
// in the buffer.
|
|
69
125
|
// It handles tracking the minimum read offset if track_min_offset = true.
|
|
70
|
-
// It also does the exponential readahead when
|
|
126
|
+
// It also does the exponential readahead when readahead_size is set as part
|
|
71
127
|
// of the constructor.
|
|
72
128
|
//
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
|
|
129
|
+
// opts : the IO options to use.
|
|
130
|
+
// reader : the file reader.
|
|
131
|
+
// offset : the file offset.
|
|
132
|
+
// n : the number of bytes.
|
|
133
|
+
// result : output buffer to put the data into.
|
|
134
|
+
// s : output status.
|
|
135
|
+
// rate_limiter_priority : rate limiting priority, or `Env::IO_TOTAL` to
|
|
136
|
+
// bypass.
|
|
137
|
+
// for_compaction : true if cache read is done for compaction read.
|
|
138
|
+
bool TryReadFromCache(const IOOptions& opts, RandomAccessFileReader* reader,
|
|
139
|
+
uint64_t offset, size_t n, Slice* result, Status* s,
|
|
140
|
+
Env::IOPriority rate_limiter_priority,
|
|
141
|
+
bool for_compaction = false);
|
|
142
|
+
|
|
143
|
+
bool TryReadFromCacheAsync(const IOOptions& opts,
|
|
144
|
+
RandomAccessFileReader* reader, uint64_t offset,
|
|
145
|
+
size_t n, Slice* result, Status* status,
|
|
146
|
+
Env::IOPriority rate_limiter_priority,
|
|
147
|
+
bool for_compaction /* = false */);
|
|
79
148
|
|
|
80
149
|
// The minimum `offset` ever passed to TryReadFromCache(). This will nly be
|
|
81
150
|
// tracked if track_min_offset = true.
|
|
82
151
|
size_t min_offset_read() const { return min_offset_read_; }
|
|
83
152
|
|
|
153
|
+
// Called in case of implicit auto prefetching.
|
|
154
|
+
void UpdateReadPattern(const uint64_t& offset, const size_t& len,
|
|
155
|
+
bool decrease_readaheadsize) {
|
|
156
|
+
if (decrease_readaheadsize) {
|
|
157
|
+
// Since this block was eligible for prefetch but it was found in
|
|
158
|
+
// cache, so check and decrease the readahead_size by 8KB (default)
|
|
159
|
+
// if eligible.
|
|
160
|
+
DecreaseReadAheadIfEligible(offset, len);
|
|
161
|
+
}
|
|
162
|
+
prev_offset_ = offset;
|
|
163
|
+
prev_len_ = len;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
void GetReadaheadState(ReadaheadFileInfo::ReadaheadInfo* readahead_info) {
|
|
167
|
+
readahead_info->readahead_size = readahead_size_;
|
|
168
|
+
readahead_info->num_file_reads = num_file_reads_;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
void DecreaseReadAheadIfEligible(uint64_t offset, size_t size,
|
|
172
|
+
size_t value = DEAFULT_DECREMENT) {
|
|
173
|
+
// Decrease the readahead_size if
|
|
174
|
+
// - its enabled internally by RocksDB (implicit_auto_readahead_) and,
|
|
175
|
+
// - readahead_size is greater than 0 and,
|
|
176
|
+
// - this block would have called prefetch API if not found in cache for
|
|
177
|
+
// which conditions are:
|
|
178
|
+
// - few/no bytes are in buffer and,
|
|
179
|
+
// - block is sequential with the previous read and,
|
|
180
|
+
// - num_file_reads_ + 1 (including this read) >
|
|
181
|
+
// kMinNumFileReadsToStartAutoReadahead
|
|
182
|
+
if (implicit_auto_readahead_ && readahead_size_ > 0) {
|
|
183
|
+
if ((offset + size >
|
|
184
|
+
bufs_[curr_].offset_ + bufs_[curr_].buffer_.CurrentSize()) &&
|
|
185
|
+
IsBlockSequential(offset) &&
|
|
186
|
+
(num_file_reads_ + 1 > kMinNumFileReadsToStartAutoReadahead)) {
|
|
187
|
+
readahead_size_ =
|
|
188
|
+
std::max(initial_auto_readahead_size_,
|
|
189
|
+
(readahead_size_ >= value ? readahead_size_ - value : 0));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
bool IsEligibleForPrefetch(uint64_t offset, size_t n) {
|
|
195
|
+
// Prefetch only if this read is sequential otherwise reset readahead_size_
|
|
196
|
+
// to initial value.
|
|
197
|
+
if (!IsBlockSequential(offset)) {
|
|
198
|
+
UpdateReadPattern(offset, n, false /*decrease_readaheadsize*/);
|
|
199
|
+
ResetValues();
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
num_file_reads_++;
|
|
203
|
+
if (num_file_reads_ <= kMinNumFileReadsToStartAutoReadahead) {
|
|
204
|
+
UpdateReadPattern(offset, n, false /*decrease_readaheadsize*/);
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Callback function passed to underlying FS in case of asynchronous reads.
|
|
211
|
+
void PrefetchAsyncCallback(const FSReadRequest& req, void* cb_arg);
|
|
212
|
+
|
|
84
213
|
private:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
214
|
+
// Calculates roundoff offset and length to be prefetched based on alignment
|
|
215
|
+
// and data present in buffer_. It also allocates new buffer or refit tail if
|
|
216
|
+
// required.
|
|
217
|
+
void CalculateOffsetAndLen(size_t alignment, uint64_t offset,
|
|
218
|
+
size_t roundup_len, size_t index, bool refit_tail,
|
|
219
|
+
uint64_t& chunk_len);
|
|
220
|
+
|
|
221
|
+
Status Read(const IOOptions& opts, RandomAccessFileReader* reader,
|
|
222
|
+
Env::IOPriority rate_limiter_priority, uint64_t read_len,
|
|
223
|
+
uint64_t chunk_len, uint64_t rounddown_start, uint32_t index);
|
|
224
|
+
|
|
225
|
+
Status ReadAsync(const IOOptions& opts, RandomAccessFileReader* reader,
|
|
226
|
+
Env::IOPriority rate_limiter_priority, uint64_t read_len,
|
|
227
|
+
uint64_t chunk_len, uint64_t rounddown_start,
|
|
228
|
+
uint32_t index);
|
|
229
|
+
|
|
230
|
+
// Copy the data from src to third buffer.
|
|
231
|
+
void CopyDataToBuffer(uint32_t src, uint64_t& offset, size_t& length);
|
|
232
|
+
|
|
233
|
+
bool IsBlockSequential(const size_t& offset) {
|
|
234
|
+
return (prev_len_ == 0 || (prev_offset_ + prev_len_ == offset));
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Called in case of implicit auto prefetching.
|
|
238
|
+
void ResetValues() {
|
|
239
|
+
num_file_reads_ = 1;
|
|
240
|
+
readahead_size_ = initial_auto_readahead_size_;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
std::vector<BufferInfo> bufs_;
|
|
244
|
+
// curr_ represents the index for bufs_ indicating which buffer is being
|
|
245
|
+
// consumed currently.
|
|
246
|
+
uint32_t curr_;
|
|
88
247
|
size_t readahead_size_;
|
|
248
|
+
size_t initial_auto_readahead_size_;
|
|
249
|
+
// FilePrefetchBuffer object won't be created from Iterator flow if
|
|
250
|
+
// max_readahead_size_ = 0.
|
|
89
251
|
size_t max_readahead_size_;
|
|
90
252
|
// The minimum `offset` ever passed to TryReadFromCache().
|
|
91
253
|
size_t min_offset_read_;
|
|
@@ -95,5 +257,20 @@ class FilePrefetchBuffer {
|
|
|
95
257
|
// If true, track minimum `offset` ever passed to TryReadFromCache(), which
|
|
96
258
|
// can be fetched from min_offset_read().
|
|
97
259
|
bool track_min_offset_;
|
|
260
|
+
|
|
261
|
+
// implicit_auto_readahead is enabled by rocksdb internally after 2
|
|
262
|
+
// sequential IOs.
|
|
263
|
+
bool implicit_auto_readahead_;
|
|
264
|
+
uint64_t prev_offset_;
|
|
265
|
+
size_t prev_len_;
|
|
266
|
+
int64_t num_file_reads_;
|
|
267
|
+
|
|
268
|
+
// io_handle_ is allocated and used by underlying file system in case of
|
|
269
|
+
// asynchronous reads.
|
|
270
|
+
void* io_handle_;
|
|
271
|
+
IOHandleDeleter del_fn_;
|
|
272
|
+
bool async_read_in_progress_;
|
|
273
|
+
bool async_io_;
|
|
274
|
+
FileSystem* fs_;
|
|
98
275
|
};
|
|
99
276
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -18,24 +18,21 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
18
18
|
|
|
19
19
|
// Utility function to copy a file up to a specified length
|
|
20
20
|
IOStatus CopyFile(FileSystem* fs, const std::string& source,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
std::unique_ptr<WritableFileWriter>& dest_writer,
|
|
22
|
+
uint64_t size, bool use_fsync,
|
|
23
|
+
const std::shared_ptr<IOTracer>& io_tracer,
|
|
24
|
+
const Temperature temperature) {
|
|
25
|
+
FileOptions soptions;
|
|
24
26
|
IOStatus io_s;
|
|
25
27
|
std::unique_ptr<SequentialFileReader> src_reader;
|
|
26
|
-
std::unique_ptr<WritableFileWriter> dest_writer;
|
|
27
28
|
|
|
28
29
|
{
|
|
30
|
+
soptions.temperature = temperature;
|
|
29
31
|
std::unique_ptr<FSSequentialFile> srcfile;
|
|
30
32
|
io_s = fs->NewSequentialFile(source, soptions, &srcfile, nullptr);
|
|
31
33
|
if (!io_s.ok()) {
|
|
32
34
|
return io_s;
|
|
33
35
|
}
|
|
34
|
-
std::unique_ptr<FSWritableFile> destfile;
|
|
35
|
-
io_s = fs->NewWritableFile(destination, soptions, &destfile, nullptr);
|
|
36
|
-
if (!io_s.ok()) {
|
|
37
|
-
return io_s;
|
|
38
|
-
}
|
|
39
36
|
|
|
40
37
|
if (size == 0) {
|
|
41
38
|
// default argument means copy everything
|
|
@@ -46,8 +43,6 @@ IOStatus CopyFile(FileSystem* fs, const std::string& source,
|
|
|
46
43
|
}
|
|
47
44
|
src_reader.reset(
|
|
48
45
|
new SequentialFileReader(std::move(srcfile), source, io_tracer));
|
|
49
|
-
dest_writer.reset(
|
|
50
|
-
new WritableFileWriter(std::move(destfile), destination, soptions));
|
|
51
46
|
}
|
|
52
47
|
|
|
53
48
|
char buffer[4096];
|
|
@@ -70,6 +65,30 @@ IOStatus CopyFile(FileSystem* fs, const std::string& source,
|
|
|
70
65
|
return dest_writer->Sync(use_fsync);
|
|
71
66
|
}
|
|
72
67
|
|
|
68
|
+
IOStatus CopyFile(FileSystem* fs, const std::string& source,
|
|
69
|
+
const std::string& destination, uint64_t size, bool use_fsync,
|
|
70
|
+
const std::shared_ptr<IOTracer>& io_tracer,
|
|
71
|
+
const Temperature temperature) {
|
|
72
|
+
FileOptions options;
|
|
73
|
+
IOStatus io_s;
|
|
74
|
+
std::unique_ptr<WritableFileWriter> dest_writer;
|
|
75
|
+
|
|
76
|
+
{
|
|
77
|
+
options.temperature = temperature;
|
|
78
|
+
std::unique_ptr<FSWritableFile> destfile;
|
|
79
|
+
io_s = fs->NewWritableFile(destination, options, &destfile, nullptr);
|
|
80
|
+
if (!io_s.ok()) {
|
|
81
|
+
return io_s;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
dest_writer.reset(
|
|
85
|
+
new WritableFileWriter(std::move(destfile), destination, options));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return CopyFile(fs, source, dest_writer, size, use_fsync, io_tracer,
|
|
89
|
+
temperature);
|
|
90
|
+
}
|
|
91
|
+
|
|
73
92
|
// Utility function to create a file with the provided contents
|
|
74
93
|
IOStatus CreateFile(FileSystem* fs, const std::string& destination,
|
|
75
94
|
const std::string& contents, bool use_fsync) {
|
|
@@ -112,17 +131,6 @@ Status DeleteDBFile(const ImmutableDBOptions* db_options,
|
|
|
112
131
|
#endif
|
|
113
132
|
}
|
|
114
133
|
|
|
115
|
-
bool IsWalDirSameAsDBPath(const ImmutableDBOptions* db_options) {
|
|
116
|
-
bool same = false;
|
|
117
|
-
assert(!db_options->db_paths.empty());
|
|
118
|
-
Status s = db_options->env->AreFilesSame(db_options->wal_dir,
|
|
119
|
-
db_options->db_paths[0].path, &same);
|
|
120
|
-
if (s.IsNotSupported()) {
|
|
121
|
-
same = db_options->wal_dir == db_options->db_paths[0].path;
|
|
122
|
-
}
|
|
123
|
-
return same;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
134
|
// requested_checksum_func_name brings the function name of the checksum
|
|
127
135
|
// generator in checksum_factory. Empty string is permitted, in which case the
|
|
128
136
|
// name of the generator created by the factory is unchecked. When
|
|
@@ -134,7 +142,8 @@ IOStatus GenerateOneFileChecksum(
|
|
|
134
142
|
const std::string& requested_checksum_func_name, std::string* file_checksum,
|
|
135
143
|
std::string* file_checksum_func_name,
|
|
136
144
|
size_t verify_checksums_readahead_size, bool allow_mmap_reads,
|
|
137
|
-
std::shared_ptr<IOTracer>& io_tracer, RateLimiter* rate_limiter
|
|
145
|
+
std::shared_ptr<IOTracer>& io_tracer, RateLimiter* rate_limiter,
|
|
146
|
+
Env::IOPriority rate_limiter_priority) {
|
|
138
147
|
if (checksum_factory == nullptr) {
|
|
139
148
|
return IOStatus::InvalidArgument("Checksum factory is invalid");
|
|
140
149
|
}
|
|
@@ -194,9 +203,9 @@ IOStatus GenerateOneFileChecksum(
|
|
|
194
203
|
? verify_checksums_readahead_size
|
|
195
204
|
: default_max_read_ahead_size;
|
|
196
205
|
|
|
197
|
-
FilePrefetchBuffer prefetch_buffer(
|
|
198
|
-
|
|
199
|
-
|
|
206
|
+
FilePrefetchBuffer prefetch_buffer(readahead_size /* readahead_size */,
|
|
207
|
+
readahead_size /* max_readahead_size */,
|
|
208
|
+
!allow_mmap_reads /* enable */);
|
|
200
209
|
|
|
201
210
|
Slice slice;
|
|
202
211
|
uint64_t offset = 0;
|
|
@@ -204,8 +213,10 @@ IOStatus GenerateOneFileChecksum(
|
|
|
204
213
|
while (size > 0) {
|
|
205
214
|
size_t bytes_to_read =
|
|
206
215
|
static_cast<size_t>(std::min(uint64_t{readahead_size}, size));
|
|
207
|
-
if (!prefetch_buffer.TryReadFromCache(
|
|
208
|
-
|
|
216
|
+
if (!prefetch_buffer.TryReadFromCache(
|
|
217
|
+
opts, reader.get(), offset, bytes_to_read, &slice,
|
|
218
|
+
nullptr /* status */, rate_limiter_priority,
|
|
219
|
+
false /* for_compaction */)) {
|
|
209
220
|
return IOStatus::Corruption("file read failed");
|
|
210
221
|
}
|
|
211
222
|
if (slice.size() == 0) {
|
|
@@ -12,24 +12,32 @@
|
|
|
12
12
|
#include "rocksdb/file_system.h"
|
|
13
13
|
#include "rocksdb/sst_file_writer.h"
|
|
14
14
|
#include "rocksdb/status.h"
|
|
15
|
+
#include "rocksdb/system_clock.h"
|
|
15
16
|
#include "rocksdb/types.h"
|
|
16
17
|
#include "trace_replay/io_tracer.h"
|
|
17
18
|
|
|
18
19
|
namespace ROCKSDB_NAMESPACE {
|
|
19
20
|
// use_fsync maps to options.use_fsync, which determines the way that
|
|
20
21
|
// the file is synced after copying.
|
|
22
|
+
extern IOStatus CopyFile(FileSystem* fs, const std::string& source,
|
|
23
|
+
std::unique_ptr<WritableFileWriter>& dest_writer,
|
|
24
|
+
uint64_t size, bool use_fsync,
|
|
25
|
+
const std::shared_ptr<IOTracer>& io_tracer,
|
|
26
|
+
const Temperature temperature);
|
|
21
27
|
extern IOStatus CopyFile(FileSystem* fs, const std::string& source,
|
|
22
28
|
const std::string& destination, uint64_t size,
|
|
23
29
|
bool use_fsync,
|
|
24
|
-
const std::shared_ptr<IOTracer>& io_tracer
|
|
30
|
+
const std::shared_ptr<IOTracer>& io_tracer,
|
|
31
|
+
const Temperature temperature);
|
|
25
32
|
inline IOStatus CopyFile(const std::shared_ptr<FileSystem>& fs,
|
|
26
33
|
const std::string& source,
|
|
27
34
|
const std::string& destination, uint64_t size,
|
|
28
35
|
bool use_fsync,
|
|
29
|
-
const std::shared_ptr<IOTracer>& io_tracer
|
|
30
|
-
|
|
36
|
+
const std::shared_ptr<IOTracer>& io_tracer,
|
|
37
|
+
const Temperature temperature) {
|
|
38
|
+
return CopyFile(fs.get(), source, destination, size, use_fsync, io_tracer,
|
|
39
|
+
temperature);
|
|
31
40
|
}
|
|
32
|
-
|
|
33
41
|
extern IOStatus CreateFile(FileSystem* fs, const std::string& destination,
|
|
34
42
|
const std::string& contents, bool use_fsync);
|
|
35
43
|
|
|
@@ -44,37 +52,20 @@ extern Status DeleteDBFile(const ImmutableDBOptions* db_options,
|
|
|
44
52
|
const std::string& path_to_sync, const bool force_bg,
|
|
45
53
|
const bool force_fg);
|
|
46
54
|
|
|
47
|
-
extern bool IsWalDirSameAsDBPath(const ImmutableDBOptions* db_options);
|
|
48
|
-
|
|
49
55
|
extern IOStatus GenerateOneFileChecksum(
|
|
50
56
|
FileSystem* fs, const std::string& file_path,
|
|
51
57
|
FileChecksumGenFactory* checksum_factory,
|
|
52
58
|
const std::string& requested_checksum_func_name, std::string* file_checksum,
|
|
53
59
|
std::string* file_checksum_func_name,
|
|
54
60
|
size_t verify_checksums_readahead_size, bool allow_mmap_reads,
|
|
55
|
-
std::shared_ptr<IOTracer>& io_tracer, RateLimiter* rate_limiter
|
|
56
|
-
|
|
57
|
-
inline IOStatus GenerateOneFileChecksum(
|
|
58
|
-
const std::shared_ptr<FileSystem>& fs, const std::string& file_path,
|
|
59
|
-
FileChecksumGenFactory* checksum_factory,
|
|
60
|
-
const std::string& requested_checksum_func_name, std::string* file_checksum,
|
|
61
|
-
std::string* file_checksum_func_name,
|
|
62
|
-
size_t verify_checksums_readahead_size, bool allow_mmap_reads,
|
|
63
|
-
std::shared_ptr<IOTracer>& io_tracer) {
|
|
64
|
-
return GenerateOneFileChecksum(
|
|
65
|
-
fs.get(), file_path, checksum_factory, requested_checksum_func_name,
|
|
66
|
-
file_checksum, file_checksum_func_name, verify_checksums_readahead_size,
|
|
67
|
-
allow_mmap_reads, io_tracer);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
inline IOStatus PrepareIOFromReadOptions(const ReadOptions& ro, Env* env,
|
|
71
|
-
IOOptions& opts) {
|
|
72
|
-
if (!env) {
|
|
73
|
-
env = Env::Default();
|
|
74
|
-
}
|
|
61
|
+
std::shared_ptr<IOTracer>& io_tracer, RateLimiter* rate_limiter,
|
|
62
|
+
Env::IOPriority rate_limiter_priority);
|
|
75
63
|
|
|
64
|
+
inline IOStatus PrepareIOFromReadOptions(const ReadOptions& ro,
|
|
65
|
+
SystemClock* clock, IOOptions& opts) {
|
|
76
66
|
if (ro.deadline.count()) {
|
|
77
|
-
std::chrono::microseconds now =
|
|
67
|
+
std::chrono::microseconds now =
|
|
68
|
+
std::chrono::microseconds(clock->NowMicros());
|
|
78
69
|
// Ensure there is atleast 1us available. We don't want to pass a value of
|
|
79
70
|
// 0 as that means no timeout
|
|
80
71
|
if (now >= ro.deadline) {
|
|
@@ -20,9 +20,14 @@
|
|
|
20
20
|
|
|
21
21
|
namespace ROCKSDB_NAMESPACE {
|
|
22
22
|
|
|
23
|
+
const std::string kCurrentFileName = "CURRENT";
|
|
24
|
+
const std::string kOptionsFileNamePrefix = "OPTIONS-";
|
|
25
|
+
const std::string kTempFileNameSuffix = "dbtmp";
|
|
26
|
+
|
|
23
27
|
static const std::string kRocksDbTFileExt = "sst";
|
|
24
28
|
static const std::string kLevelDbTFileExt = "ldb";
|
|
25
29
|
static const std::string kRocksDBBlobFileExt = "blob";
|
|
30
|
+
static const std::string kArchivalDirName = "archive";
|
|
26
31
|
|
|
27
32
|
// Given a path, flatten the path name by replacing all chars not in
|
|
28
33
|
// {[0-9,a-z,A-Z,-,_,.]} with _. And append '_LOG\0' at the end.
|
|
@@ -96,11 +101,11 @@ std::string BlobFileName(const std::string& dbname, const std::string& blob_dir,
|
|
|
96
101
|
}
|
|
97
102
|
|
|
98
103
|
std::string ArchivalDirectory(const std::string& dir) {
|
|
99
|
-
return dir + "/" +
|
|
104
|
+
return dir + "/" + kArchivalDirName;
|
|
100
105
|
}
|
|
101
106
|
std::string ArchivedLogFileName(const std::string& name, uint64_t number) {
|
|
102
107
|
assert(number > 0);
|
|
103
|
-
return MakeFileName(name + "/" +
|
|
108
|
+
return MakeFileName(name + "/" + kArchivalDirName, number, "log");
|
|
104
109
|
}
|
|
105
110
|
|
|
106
111
|
std::string MakeTableFileName(const std::string& path, uint64_t number) {
|
|
@@ -155,16 +160,20 @@ void FormatFileNumber(uint64_t number, uint32_t path_id, char* out_buf,
|
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
162
|
|
|
158
|
-
std::string DescriptorFileName(
|
|
163
|
+
std::string DescriptorFileName(uint64_t number) {
|
|
159
164
|
assert(number > 0);
|
|
160
165
|
char buf[100];
|
|
161
|
-
snprintf(buf, sizeof(buf), "
|
|
166
|
+
snprintf(buf, sizeof(buf), "MANIFEST-%06llu",
|
|
162
167
|
static_cast<unsigned long long>(number));
|
|
163
|
-
return
|
|
168
|
+
return buf;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
std::string DescriptorFileName(const std::string& dbname, uint64_t number) {
|
|
172
|
+
return dbname + "/" + DescriptorFileName(number);
|
|
164
173
|
}
|
|
165
174
|
|
|
166
175
|
std::string CurrentFileName(const std::string& dbname) {
|
|
167
|
-
return dbname + "/
|
|
176
|
+
return dbname + "/" + kCurrentFileName;
|
|
168
177
|
}
|
|
169
178
|
|
|
170
179
|
std::string LockFileName(const std::string& dbname) {
|
|
@@ -213,11 +222,14 @@ std::string OldInfoLogFileName(const std::string& dbname, uint64_t ts,
|
|
|
213
222
|
return log_dir + "/" + info_log_prefix.buf + ".old." + buf;
|
|
214
223
|
}
|
|
215
224
|
|
|
216
|
-
std::string OptionsFileName(
|
|
225
|
+
std::string OptionsFileName(uint64_t file_num) {
|
|
217
226
|
char buffer[256];
|
|
218
227
|
snprintf(buffer, sizeof(buffer), "%s%06" PRIu64,
|
|
219
228
|
kOptionsFileNamePrefix.c_str(), file_num);
|
|
220
|
-
return
|
|
229
|
+
return buffer;
|
|
230
|
+
}
|
|
231
|
+
std::string OptionsFileName(const std::string& dbname, uint64_t file_num) {
|
|
232
|
+
return dbname + "/" + OptionsFileName(file_num);
|
|
221
233
|
}
|
|
222
234
|
|
|
223
235
|
std::string TempOptionsFileName(const std::string& dbname, uint64_t file_num) {
|
|
@@ -331,11 +343,12 @@ bool ParseFileName(const std::string& fname, uint64_t* number,
|
|
|
331
343
|
// Avoid strtoull() to keep filename format independent of the
|
|
332
344
|
// current locale
|
|
333
345
|
bool archive_dir_found = false;
|
|
334
|
-
if (rest.starts_with(
|
|
335
|
-
if (rest.size() <=
|
|
346
|
+
if (rest.starts_with(kArchivalDirName)) {
|
|
347
|
+
if (rest.size() <= kArchivalDirName.size()) {
|
|
336
348
|
return false;
|
|
337
349
|
}
|
|
338
|
-
rest.remove_prefix(
|
|
350
|
+
rest.remove_prefix(kArchivalDirName.size() +
|
|
351
|
+
1); // Add 1 to remove / also
|
|
339
352
|
if (log_type) {
|
|
340
353
|
*log_type = kArchivedLogFile;
|
|
341
354
|
}
|
|
@@ -383,17 +396,24 @@ IOStatus SetCurrentFile(FileSystem* fs, const std::string& dbname,
|
|
|
383
396
|
contents.remove_prefix(dbname.size() + 1);
|
|
384
397
|
std::string tmp = TempFileName(dbname, descriptor_number);
|
|
385
398
|
IOStatus s = WriteStringToFile(fs, contents.ToString() + "\n", tmp, true);
|
|
399
|
+
TEST_SYNC_POINT_CALLBACK("SetCurrentFile:BeforeRename", &s);
|
|
386
400
|
if (s.ok()) {
|
|
387
|
-
|
|
401
|
+
TEST_KILL_RANDOM_WITH_WEIGHT("SetCurrentFile:0", REDUCE_ODDS2);
|
|
388
402
|
s = fs->RenameFile(tmp, CurrentFileName(dbname), IOOptions(), nullptr);
|
|
389
|
-
|
|
403
|
+
TEST_KILL_RANDOM_WITH_WEIGHT("SetCurrentFile:1", REDUCE_ODDS2);
|
|
404
|
+
TEST_SYNC_POINT_CALLBACK("SetCurrentFile:AfterRename", &s);
|
|
390
405
|
}
|
|
391
406
|
if (s.ok()) {
|
|
392
407
|
if (directory_to_fsync != nullptr) {
|
|
393
|
-
s = directory_to_fsync->
|
|
408
|
+
s = directory_to_fsync->FsyncWithDirOptions(
|
|
409
|
+
IOOptions(), nullptr, DirFsyncOptions(CurrentFileName(dbname)));
|
|
394
410
|
}
|
|
395
411
|
} else {
|
|
396
|
-
fs->DeleteFile(tmp, IOOptions(), nullptr)
|
|
412
|
+
fs->DeleteFile(tmp, IOOptions(), nullptr)
|
|
413
|
+
.PermitUncheckedError(); // NOTE: PermitUncheckedError is acceptable
|
|
414
|
+
// here as we are already handling an error
|
|
415
|
+
// case, and this is just a best-attempt
|
|
416
|
+
// effort at some cleanup
|
|
397
417
|
}
|
|
398
418
|
return s;
|
|
399
419
|
}
|
|
@@ -409,9 +429,19 @@ Status SetIdentityFile(Env* env, const std::string& dbname,
|
|
|
409
429
|
assert(!id.empty());
|
|
410
430
|
// Reserve the filename dbname/000000.dbtmp for the temporary identity file
|
|
411
431
|
std::string tmp = TempFileName(dbname, 0);
|
|
432
|
+
std::string identify_file_name = IdentityFileName(dbname);
|
|
412
433
|
Status s = WriteStringToFile(env, id, tmp, true);
|
|
413
434
|
if (s.ok()) {
|
|
414
|
-
s = env->RenameFile(tmp,
|
|
435
|
+
s = env->RenameFile(tmp, identify_file_name);
|
|
436
|
+
}
|
|
437
|
+
std::unique_ptr<FSDirectory> dir_obj;
|
|
438
|
+
if (s.ok()) {
|
|
439
|
+
s = env->GetFileSystem()->NewDirectory(dbname, IOOptions(), &dir_obj,
|
|
440
|
+
nullptr);
|
|
441
|
+
}
|
|
442
|
+
if (s.ok()) {
|
|
443
|
+
s = dir_obj->FsyncWithDirOptions(IOOptions(), nullptr,
|
|
444
|
+
DirFsyncOptions(identify_file_name));
|
|
415
445
|
}
|
|
416
446
|
if (!s.ok()) {
|
|
417
447
|
env->DeleteFile(tmp).PermitUncheckedError();
|
|
@@ -419,15 +449,16 @@ Status SetIdentityFile(Env* env, const std::string& dbname,
|
|
|
419
449
|
return s;
|
|
420
450
|
}
|
|
421
451
|
|
|
422
|
-
IOStatus SyncManifest(
|
|
452
|
+
IOStatus SyncManifest(const ImmutableDBOptions* db_options,
|
|
423
453
|
WritableFileWriter* file) {
|
|
424
|
-
|
|
425
|
-
StopWatch sw(
|
|
454
|
+
TEST_KILL_RANDOM_WITH_WEIGHT("SyncManifest:0", REDUCE_ODDS2);
|
|
455
|
+
StopWatch sw(db_options->clock, db_options->stats, MANIFEST_FILE_SYNC_MICROS);
|
|
426
456
|
return file->Sync(db_options->use_fsync);
|
|
427
457
|
}
|
|
428
458
|
|
|
429
|
-
Status GetInfoLogFiles(
|
|
430
|
-
const std::string&
|
|
459
|
+
Status GetInfoLogFiles(const std::shared_ptr<FileSystem>& fs,
|
|
460
|
+
const std::string& db_log_dir, const std::string& dbname,
|
|
461
|
+
std::string* parent_dir,
|
|
431
462
|
std::vector<std::string>* info_log_list) {
|
|
432
463
|
assert(parent_dir != nullptr);
|
|
433
464
|
assert(info_log_list != nullptr);
|
|
@@ -443,7 +474,7 @@ Status GetInfoLogFiles(Env* env, const std::string& db_log_dir,
|
|
|
443
474
|
InfoLogPrefix info_log_prefix(!db_log_dir.empty(), dbname);
|
|
444
475
|
|
|
445
476
|
std::vector<std::string> file_names;
|
|
446
|
-
Status s =
|
|
477
|
+
Status s = fs->GetChildren(*parent_dir, IOOptions(), &file_names, nullptr);
|
|
447
478
|
|
|
448
479
|
if (!s.ok()) {
|
|
449
480
|
return s;
|
|
@@ -460,6 +491,12 @@ Status GetInfoLogFiles(Env* env, const std::string& db_log_dir,
|
|
|
460
491
|
|
|
461
492
|
std::string NormalizePath(const std::string& path) {
|
|
462
493
|
std::string dst;
|
|
494
|
+
|
|
495
|
+
if (path.length() > 2 && path[0] == kFilePathSeparator &&
|
|
496
|
+
path[1] == kFilePathSeparator) { // Handle UNC names
|
|
497
|
+
dst.append(2, kFilePathSeparator);
|
|
498
|
+
}
|
|
499
|
+
|
|
463
500
|
for (auto c : path) {
|
|
464
501
|
if (!dst.empty() && (c == kFilePathSeparator || c == '/') &&
|
|
465
502
|
(dst.back() == kFilePathSeparator || dst.back() == '/')) {
|