@nxtedition/rocksdb 5.2.21 → 5.2.26
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 +216 -252
- package/binding.gyp +78 -72
- 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/README.md +4 -4
- 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/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/README.md +60 -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/plugin/README.md +43 -0
- 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/package.json +8 -8
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x86/node.napi.node +0 -0
- package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
- 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/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/prebuilds/linux-x64/node.napi.glibc.node +0 -0
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#pragma once
|
|
18
18
|
|
|
19
19
|
#include <stdint.h>
|
|
20
|
+
|
|
20
21
|
#include <chrono>
|
|
21
22
|
#include <cstdarg>
|
|
22
23
|
#include <functional>
|
|
@@ -24,10 +25,14 @@
|
|
|
24
25
|
#include <memory>
|
|
25
26
|
#include <sstream>
|
|
26
27
|
#include <string>
|
|
28
|
+
#include <unordered_map>
|
|
27
29
|
#include <vector>
|
|
30
|
+
|
|
31
|
+
#include "rocksdb/customizable.h"
|
|
28
32
|
#include "rocksdb/env.h"
|
|
29
33
|
#include "rocksdb/io_status.h"
|
|
30
34
|
#include "rocksdb/options.h"
|
|
35
|
+
#include "rocksdb/table.h"
|
|
31
36
|
#include "rocksdb/thread_status.h"
|
|
32
37
|
|
|
33
38
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -43,6 +48,7 @@ class Slice;
|
|
|
43
48
|
struct ImmutableDBOptions;
|
|
44
49
|
struct MutableDBOptions;
|
|
45
50
|
class RateLimiter;
|
|
51
|
+
struct ConfigOptions;
|
|
46
52
|
|
|
47
53
|
using AccessPattern = RandomAccessFile::AccessPattern;
|
|
48
54
|
using FileAttributes = Env::FileAttributes;
|
|
@@ -83,10 +89,54 @@ struct IOOptions {
|
|
|
83
89
|
// Priority - high or low
|
|
84
90
|
IOPriority prio;
|
|
85
91
|
|
|
92
|
+
// Priority used to charge rate limiter configured in file system level (if
|
|
93
|
+
// any)
|
|
94
|
+
// Limitation: right now RocksDB internal does not consider this
|
|
95
|
+
// rate_limiter_priority
|
|
96
|
+
Env::IOPriority rate_limiter_priority;
|
|
97
|
+
|
|
86
98
|
// Type of data being read/written
|
|
87
99
|
IOType type;
|
|
88
100
|
|
|
89
|
-
|
|
101
|
+
// EXPERIMENTAL
|
|
102
|
+
// An option map that's opaque to RocksDB. It can be used to implement a
|
|
103
|
+
// custom contract between a FileSystem user and the provider. This is only
|
|
104
|
+
// useful in cases where a RocksDB user directly uses the FileSystem or file
|
|
105
|
+
// object for their own purposes, and wants to pass extra options to APIs
|
|
106
|
+
// such as NewRandomAccessFile and NewWritableFile.
|
|
107
|
+
std::unordered_map<std::string, std::string> property_bag;
|
|
108
|
+
|
|
109
|
+
// Force directory fsync, some file systems like btrfs may skip directory
|
|
110
|
+
// fsync, set this to force the fsync
|
|
111
|
+
bool force_dir_fsync;
|
|
112
|
+
|
|
113
|
+
IOOptions() : IOOptions(false) {}
|
|
114
|
+
|
|
115
|
+
explicit IOOptions(bool force_dir_fsync_)
|
|
116
|
+
: timeout(std::chrono::microseconds::zero()),
|
|
117
|
+
prio(IOPriority::kIOLow),
|
|
118
|
+
rate_limiter_priority(Env::IO_TOTAL),
|
|
119
|
+
type(IOType::kUnknown),
|
|
120
|
+
force_dir_fsync(force_dir_fsync_) {}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
struct DirFsyncOptions {
|
|
124
|
+
enum FsyncReason : uint8_t {
|
|
125
|
+
kNewFileSynced,
|
|
126
|
+
kFileRenamed,
|
|
127
|
+
kDirRenamed,
|
|
128
|
+
kFileDeleted,
|
|
129
|
+
kDefault,
|
|
130
|
+
} reason;
|
|
131
|
+
|
|
132
|
+
std::string renamed_new_name; // for kFileRenamed
|
|
133
|
+
// add other options for other FsyncReason
|
|
134
|
+
|
|
135
|
+
DirFsyncOptions();
|
|
136
|
+
|
|
137
|
+
explicit DirFsyncOptions(std::string file_renamed_new_name);
|
|
138
|
+
|
|
139
|
+
explicit DirFsyncOptions(FsyncReason fsync_reason);
|
|
90
140
|
};
|
|
91
141
|
|
|
92
142
|
// File scope options that control how a file is opened/created and accessed
|
|
@@ -97,18 +147,32 @@ struct FileOptions : EnvOptions {
|
|
|
97
147
|
// to be issued for the file open/creation
|
|
98
148
|
IOOptions io_options;
|
|
99
149
|
|
|
100
|
-
|
|
150
|
+
// EXPERIMENTAL
|
|
151
|
+
// The feature is in development and is subject to change.
|
|
152
|
+
// When creating a new file, set the temperature of the file so that
|
|
153
|
+
// underlying file systems can put it with appropriate storage media and/or
|
|
154
|
+
// coding.
|
|
155
|
+
Temperature temperature = Temperature::kUnknown;
|
|
156
|
+
|
|
157
|
+
// The checksum type that is used to calculate the checksum value for
|
|
158
|
+
// handoff during file writes.
|
|
159
|
+
ChecksumType handoff_checksum_type;
|
|
160
|
+
|
|
161
|
+
FileOptions() : EnvOptions(), handoff_checksum_type(ChecksumType::kCRC32c) {}
|
|
101
162
|
|
|
102
163
|
FileOptions(const DBOptions& opts)
|
|
103
|
-
|
|
164
|
+
: EnvOptions(opts), handoff_checksum_type(ChecksumType::kCRC32c) {}
|
|
104
165
|
|
|
105
166
|
FileOptions(const EnvOptions& opts)
|
|
106
|
-
|
|
167
|
+
: EnvOptions(opts), handoff_checksum_type(ChecksumType::kCRC32c) {}
|
|
107
168
|
|
|
108
169
|
FileOptions(const FileOptions& opts)
|
|
109
|
-
|
|
170
|
+
: EnvOptions(opts),
|
|
171
|
+
io_options(opts.io_options),
|
|
172
|
+
temperature(opts.temperature),
|
|
173
|
+
handoff_checksum_type(opts.handoff_checksum_type) {}
|
|
110
174
|
|
|
111
|
-
FileOptions& operator=(const FileOptions&
|
|
175
|
+
FileOptions& operator=(const FileOptions&) = default;
|
|
112
176
|
};
|
|
113
177
|
|
|
114
178
|
// A structure to pass back some debugging information from the FileSystem
|
|
@@ -123,12 +187,36 @@ struct IODebugContext {
|
|
|
123
187
|
// To be set by the FileSystem implementation
|
|
124
188
|
std::string msg;
|
|
125
189
|
|
|
190
|
+
// To be set by the underlying FileSystem implementation.
|
|
191
|
+
std::string request_id;
|
|
192
|
+
|
|
193
|
+
// In order to log required information in IO tracing for different
|
|
194
|
+
// operations, Each bit in trace_data stores which corresponding info from
|
|
195
|
+
// IODebugContext will be added in the trace. Foreg, if trace_data = 1, it
|
|
196
|
+
// means bit at position 0 is set so TraceData::kRequestID (request_id) will
|
|
197
|
+
// be logged in the trace record.
|
|
198
|
+
//
|
|
199
|
+
enum TraceData : char {
|
|
200
|
+
// The value of each enum represents the bitwise position for
|
|
201
|
+
// that information in trace_data which will be used by IOTracer for
|
|
202
|
+
// tracing. Make sure to add them sequentially.
|
|
203
|
+
kRequestID = 0,
|
|
204
|
+
};
|
|
205
|
+
uint64_t trace_data = 0;
|
|
206
|
+
|
|
126
207
|
IODebugContext() {}
|
|
127
208
|
|
|
128
209
|
void AddCounter(std::string& name, uint64_t value) {
|
|
129
210
|
counters.emplace(name, value);
|
|
130
211
|
}
|
|
131
212
|
|
|
213
|
+
// Called by underlying file system to set request_id and log request_id in
|
|
214
|
+
// IOTracing.
|
|
215
|
+
void SetRequestId(const std::string& _request_id) {
|
|
216
|
+
request_id = _request_id;
|
|
217
|
+
trace_data |= (1 << TraceData::kRequestID);
|
|
218
|
+
}
|
|
219
|
+
|
|
132
220
|
std::string ToString() {
|
|
133
221
|
std::ostringstream ss;
|
|
134
222
|
ss << file_path << ", ";
|
|
@@ -140,6 +228,11 @@ struct IODebugContext {
|
|
|
140
228
|
}
|
|
141
229
|
};
|
|
142
230
|
|
|
231
|
+
// A function pointer type for custom destruction of void pointer passed to
|
|
232
|
+
// ReadAsync API. RocksDB/caller is responsible for deleting the void pointer
|
|
233
|
+
// allocated by FS in ReadAsync API.
|
|
234
|
+
using IOHandleDeleter = std::function<void(void*)>;
|
|
235
|
+
|
|
143
236
|
// The FileSystem, FSSequentialFile, FSRandomAccessFile, FSWritableFile,
|
|
144
237
|
// FSRandomRWFileclass, and FSDIrectory classes define the interface between
|
|
145
238
|
// RocksDB and storage systems, such as Posix filesystems,
|
|
@@ -154,7 +247,13 @@ struct IODebugContext {
|
|
|
154
247
|
// of the APIs is of type IOStatus, which can indicate an error code/sub-code,
|
|
155
248
|
// as well as metadata about the error such as its scope and whether its
|
|
156
249
|
// retryable.
|
|
157
|
-
|
|
250
|
+
// NewCompositeEnv can be used to create an Env with a custom FileSystem for
|
|
251
|
+
// DBOptions::env.
|
|
252
|
+
//
|
|
253
|
+
// Exceptions MUST NOT propagate out of overridden functions into RocksDB,
|
|
254
|
+
// because RocksDB is not exception-safe. This could cause undefined behavior
|
|
255
|
+
// including data loss, unreported corruption, deadlocks, and more.
|
|
256
|
+
class FileSystem : public Customizable {
|
|
158
257
|
public:
|
|
159
258
|
FileSystem();
|
|
160
259
|
|
|
@@ -163,19 +262,30 @@ class FileSystem {
|
|
|
163
262
|
|
|
164
263
|
virtual ~FileSystem();
|
|
165
264
|
|
|
166
|
-
virtual const char* Name() const = 0;
|
|
167
|
-
|
|
168
265
|
static const char* Type() { return "FileSystem"; }
|
|
266
|
+
static const char* kDefaultName() { return "DefaultFileSystem"; }
|
|
169
267
|
|
|
170
268
|
// Loads the FileSystem specified by the input value into the result
|
|
269
|
+
// The CreateFromString alternative should be used; this method may be
|
|
270
|
+
// deprecated in a future release.
|
|
171
271
|
static Status Load(const std::string& value,
|
|
172
272
|
std::shared_ptr<FileSystem>* result);
|
|
173
273
|
|
|
174
|
-
//
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
274
|
+
// Loads the FileSystem specified by the input value into the result
|
|
275
|
+
// @see Customizable for a more detailed description of the parameters and
|
|
276
|
+
// return codes
|
|
277
|
+
// @param config_options Controls how the FileSystem is loaded
|
|
278
|
+
// @param value The name and optional properties describing the file system
|
|
279
|
+
// to load.
|
|
280
|
+
// @param result On success, returns the loaded FileSystem
|
|
281
|
+
// @return OK if the FileSystem was successfully loaded.
|
|
282
|
+
// @return not-OK if the load failed.
|
|
283
|
+
static Status CreateFromString(const ConfigOptions& options,
|
|
284
|
+
const std::string& value,
|
|
285
|
+
std::shared_ptr<FileSystem>* result);
|
|
286
|
+
|
|
287
|
+
// Return a default FileSystem suitable for the current operating
|
|
288
|
+
// system.
|
|
179
289
|
static std::shared_ptr<FileSystem> Default();
|
|
180
290
|
|
|
181
291
|
// Handles the event when a new DB or a new ColumnFamily starts using the
|
|
@@ -252,11 +362,12 @@ class FileSystem {
|
|
|
252
362
|
std::unique_ptr<FSWritableFile>* result,
|
|
253
363
|
IODebugContext* dbg) = 0;
|
|
254
364
|
|
|
255
|
-
// Create an object that writes to a
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
// returns
|
|
365
|
+
// Create an object that writes to a file with the specified name.
|
|
366
|
+
// `FSWritableFile::Append()`s will append after any existing content. If the
|
|
367
|
+
// file does not already exist, creates it.
|
|
368
|
+
//
|
|
369
|
+
// On success, stores a pointer to the file in *result and returns OK. On
|
|
370
|
+
// failure stores nullptr in *result and returns non-OK.
|
|
260
371
|
//
|
|
261
372
|
// The returned file will only be accessed by one thread at a time.
|
|
262
373
|
virtual IOStatus ReopenWritableFile(
|
|
@@ -464,7 +575,7 @@ class FileSystem {
|
|
|
464
575
|
IODebugContext* dbg) = 0;
|
|
465
576
|
|
|
466
577
|
// Create and returns a default logger (an instance of EnvLogger) for storing
|
|
467
|
-
// informational messages. Derived classes can
|
|
578
|
+
// informational messages. Derived classes can override to provide custom
|
|
468
579
|
// logger.
|
|
469
580
|
virtual IOStatus NewLogger(const std::string& fname, const IOOptions& io_opts,
|
|
470
581
|
std::shared_ptr<Logger>* result,
|
|
@@ -517,6 +628,13 @@ class FileSystem {
|
|
|
517
628
|
const FileOptions& file_options,
|
|
518
629
|
const ImmutableDBOptions& db_options) const;
|
|
519
630
|
|
|
631
|
+
// OptimizeForBlobFileRead will create a new FileOptions object that
|
|
632
|
+
// is a copy of the FileOptions in the parameters, but is optimized for
|
|
633
|
+
// reading blob files.
|
|
634
|
+
virtual FileOptions OptimizeForBlobFileRead(
|
|
635
|
+
const FileOptions& file_options,
|
|
636
|
+
const ImmutableDBOptions& db_options) const;
|
|
637
|
+
|
|
520
638
|
// This seems to clash with a macro on Windows, so #undef it here
|
|
521
639
|
#ifdef GetFreeSpace
|
|
522
640
|
#undef GetFreeSpace
|
|
@@ -534,6 +652,22 @@ class FileSystem {
|
|
|
534
652
|
const IOOptions& options, bool* is_dir,
|
|
535
653
|
IODebugContext* /*dgb*/) = 0;
|
|
536
654
|
|
|
655
|
+
// EXPERIMENTAL
|
|
656
|
+
// Poll for completion of read IO requests. The Poll() method should call the
|
|
657
|
+
// callback functions to indicate completion of read requests.
|
|
658
|
+
// Underlying FS is required to support Poll API. Poll implementation should
|
|
659
|
+
// ensure that the callback gets called at IO completion, and return only
|
|
660
|
+
// after the callback has been called.
|
|
661
|
+
// If Poll returns partial results for any reads, its caller reponsibility to
|
|
662
|
+
// call Read or ReadAsync in order to get the remaining bytes.
|
|
663
|
+
//
|
|
664
|
+
// Default implementation is to return IOStatus::OK.
|
|
665
|
+
|
|
666
|
+
virtual IOStatus Poll(std::vector<void*>& /*io_handles*/,
|
|
667
|
+
size_t /*min_completions*/) {
|
|
668
|
+
return IOStatus::OK();
|
|
669
|
+
}
|
|
670
|
+
|
|
537
671
|
// If you're adding methods here, remember to add them to EnvWrapper too.
|
|
538
672
|
|
|
539
673
|
private:
|
|
@@ -554,6 +688,10 @@ class FSSequentialFile {
|
|
|
554
688
|
// "scratch[0..n-1]" must be live when "*result" is used.
|
|
555
689
|
// If an error was encountered, returns a non-OK status.
|
|
556
690
|
//
|
|
691
|
+
// After call, result->size() < n only if end of file has been
|
|
692
|
+
// reached (or non-OK status). Read might fail if called again after
|
|
693
|
+
// first result->size() < n.
|
|
694
|
+
//
|
|
557
695
|
// REQUIRES: External synchronization
|
|
558
696
|
virtual IOStatus Read(size_t n, const IOOptions& options, Slice* result,
|
|
559
697
|
char* scratch, IODebugContext* dbg) = 0;
|
|
@@ -591,27 +729,47 @@ class FSSequentialFile {
|
|
|
591
729
|
return IOStatus::NotSupported("PositionedRead");
|
|
592
730
|
}
|
|
593
731
|
|
|
732
|
+
// EXPERIMENTAL
|
|
733
|
+
// When available, returns the actual temperature for the file. This is
|
|
734
|
+
// useful in case some outside process moves a file from one tier to another,
|
|
735
|
+
// though the temperature is generally expected not to change while a file is
|
|
736
|
+
// open.
|
|
737
|
+
virtual Temperature GetTemperature() const { return Temperature::kUnknown; }
|
|
738
|
+
|
|
594
739
|
// If you're adding methods here, remember to add them to
|
|
595
740
|
// SequentialFileWrapper too.
|
|
596
741
|
};
|
|
597
742
|
|
|
598
|
-
// A read IO request structure for use in MultiRead
|
|
743
|
+
// A read IO request structure for use in MultiRead and asynchronous Read APIs.
|
|
599
744
|
struct FSReadRequest {
|
|
600
|
-
//
|
|
745
|
+
// Input parameter that represents the file offset in bytes.
|
|
601
746
|
uint64_t offset;
|
|
602
747
|
|
|
603
|
-
//
|
|
748
|
+
// Input parameter that represents the length to read in bytes. `result` only
|
|
749
|
+
// returns fewer bytes if end of file is hit (or `status` is not OK).
|
|
604
750
|
size_t len;
|
|
605
751
|
|
|
606
752
|
// A buffer that MultiRead() can optionally place data in. It can
|
|
607
|
-
// ignore this and allocate its own buffer
|
|
753
|
+
// ignore this and allocate its own buffer.
|
|
754
|
+
// The lifecycle of scratch will be until IO is completed.
|
|
755
|
+
//
|
|
756
|
+
// In case of asynchronous reads, its an output parameter and it will be
|
|
757
|
+
// maintained until callback has been called. Scratch is allocated by RocksDB
|
|
758
|
+
// and will be passed to underlying FileSystem.
|
|
608
759
|
char* scratch;
|
|
609
760
|
|
|
610
761
|
// Output parameter set by MultiRead() to point to the data buffer, and
|
|
611
762
|
// the number of valid bytes
|
|
763
|
+
//
|
|
764
|
+
// In case of asynchronous reads, this output parameter is set by Async Read
|
|
765
|
+
// APIs to point to the data buffer, and
|
|
766
|
+
// the number of valid bytes.
|
|
767
|
+
// Slice result should point to scratch i.e the data should
|
|
768
|
+
// always be read into scratch.
|
|
612
769
|
Slice result;
|
|
613
770
|
|
|
614
|
-
//
|
|
771
|
+
// Output parameter set by underlying FileSystem that represents status of
|
|
772
|
+
// read request.
|
|
615
773
|
IOStatus status;
|
|
616
774
|
};
|
|
617
775
|
|
|
@@ -630,6 +788,10 @@ class FSRandomAccessFile {
|
|
|
630
788
|
// "*result" is used. If an error was encountered, returns a non-OK
|
|
631
789
|
// status.
|
|
632
790
|
//
|
|
791
|
+
// After call, result->size() < n only if end of file has been
|
|
792
|
+
// reached (or non-OK status). Read might fail if called again after
|
|
793
|
+
// first result->size() < n.
|
|
794
|
+
//
|
|
633
795
|
// Safe for concurrent use by multiple threads.
|
|
634
796
|
// If Direct I/O enabled, offset, n, and scratch should be aligned properly.
|
|
635
797
|
virtual IOStatus Read(uint64_t offset, size_t n, const IOOptions& options,
|
|
@@ -648,10 +810,11 @@ class FSRandomAccessFile {
|
|
|
648
810
|
// Read a bunch of blocks as described by reqs. The blocks can
|
|
649
811
|
// optionally be read in parallel. This is a synchronous call, i.e it
|
|
650
812
|
// should return after all reads have completed. The reads will be
|
|
651
|
-
// non-overlapping. If the function return Status
|
|
652
|
-
// individual requests will be ignored and return
|
|
653
|
-
// for all read requests. The function return status
|
|
654
|
-
//
|
|
813
|
+
// non-overlapping but can be in any order. If the function return Status
|
|
814
|
+
// is not ok, status of individual requests will be ignored and return
|
|
815
|
+
// status will be assumed for all read requests. The function return status
|
|
816
|
+
// is only meant for errors that occur before processing individual read
|
|
817
|
+
// requests.
|
|
655
818
|
virtual IOStatus MultiRead(FSReadRequest* reqs, size_t num_reqs,
|
|
656
819
|
const IOOptions& options, IODebugContext* dbg) {
|
|
657
820
|
assert(reqs != nullptr);
|
|
@@ -702,12 +865,52 @@ class FSRandomAccessFile {
|
|
|
702
865
|
return IOStatus::NotSupported("InvalidateCache not supported.");
|
|
703
866
|
}
|
|
704
867
|
|
|
868
|
+
// EXPERIMENTAL
|
|
869
|
+
// This API reads the requested data in FSReadRequest asynchronously. This is
|
|
870
|
+
// a asynchronous call, i.e it should return after submitting the request.
|
|
871
|
+
//
|
|
872
|
+
// When the read request is completed, callback function specified in cb
|
|
873
|
+
// should be called with arguments cb_arg and the result populated in
|
|
874
|
+
// FSReadRequest with result and status fileds updated by FileSystem.
|
|
875
|
+
// cb_arg should be used by the callback to track the original request
|
|
876
|
+
// submitted.
|
|
877
|
+
//
|
|
878
|
+
// This API should also populate io_handle which should be used by
|
|
879
|
+
// underlying FileSystem to store the context in order to distinguish the read
|
|
880
|
+
// requests at their side and provide the custom deletion function in del_fn.
|
|
881
|
+
// RocksDB guarantees that the del_fn for io_handle will be called after
|
|
882
|
+
// receiving the callback. Furthermore, RocksDB guarantees that if it calls
|
|
883
|
+
// the Poll API for this io_handle, del_fn will be called after the Poll
|
|
884
|
+
// returns. RocksDB is responsible for managing the lifetime of io_handle.
|
|
885
|
+
//
|
|
886
|
+
// req contains the request offset and size passed as input parameter of read
|
|
887
|
+
// request and result and status fields are output parameter set by underlying
|
|
888
|
+
// FileSystem. The data should always be read into scratch field.
|
|
889
|
+
//
|
|
890
|
+
// Default implementation is to read the data synchronously.
|
|
891
|
+
virtual IOStatus ReadAsync(
|
|
892
|
+
FSReadRequest& req, const IOOptions& opts,
|
|
893
|
+
std::function<void(const FSReadRequest&, void*)> cb, void* cb_arg,
|
|
894
|
+
void** /*io_handle*/, IOHandleDeleter* /*del_fn*/, IODebugContext* dbg) {
|
|
895
|
+
req.status =
|
|
896
|
+
Read(req.offset, req.len, opts, &(req.result), req.scratch, dbg);
|
|
897
|
+
cb(req, cb_arg);
|
|
898
|
+
return IOStatus::OK();
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
// EXPERIMENTAL
|
|
902
|
+
// When available, returns the actual temperature for the file. This is
|
|
903
|
+
// useful in case some outside process moves a file from one tier to another,
|
|
904
|
+
// though the temperature is generally expected not to change while a file is
|
|
905
|
+
// open.
|
|
906
|
+
virtual Temperature GetTemperature() const { return Temperature::kUnknown; }
|
|
907
|
+
|
|
705
908
|
// If you're adding methods here, remember to add them to
|
|
706
909
|
// RandomAccessFileWrapper too.
|
|
707
910
|
};
|
|
708
911
|
|
|
709
912
|
// A data structure brings the data verification information, which is
|
|
710
|
-
// used
|
|
913
|
+
// used together with data being written to a file.
|
|
711
914
|
struct DataVerificationInfo {
|
|
712
915
|
// checksum of the data being written.
|
|
713
916
|
Slice checksum;
|
|
@@ -735,15 +938,19 @@ class FSWritableFile {
|
|
|
735
938
|
virtual ~FSWritableFile() {}
|
|
736
939
|
|
|
737
940
|
// Append data to the end of the file
|
|
738
|
-
// Note: A
|
|
941
|
+
// Note: A WriteableFile object must support either Append or
|
|
739
942
|
// PositionedAppend, so the users cannot mix the two.
|
|
740
943
|
virtual IOStatus Append(const Slice& data, const IOOptions& options,
|
|
741
944
|
IODebugContext* dbg) = 0;
|
|
742
945
|
|
|
743
|
-
//
|
|
744
|
-
// Append data with verification information
|
|
946
|
+
// Append data with verification information.
|
|
745
947
|
// Note that this API change is experimental and it might be changed in
|
|
746
|
-
// the future. Currently, RocksDB
|
|
948
|
+
// the future. Currently, RocksDB only generates crc32c based checksum for
|
|
949
|
+
// the file writes when the checksum handoff option is set.
|
|
950
|
+
// Expected behavior: if the handoff_checksum_type in FileOptions (currently,
|
|
951
|
+
// ChecksumType::kCRC32C is set as default) is not supported by this
|
|
952
|
+
// FSWritableFile, the information in DataVerificationInfo can be ignored
|
|
953
|
+
// (i.e. does not perform checksum verification).
|
|
747
954
|
virtual IOStatus Append(const Slice& data, const IOOptions& options,
|
|
748
955
|
const DataVerificationInfo& /* verification_info */,
|
|
749
956
|
IODebugContext* dbg) {
|
|
@@ -777,10 +984,14 @@ class FSWritableFile {
|
|
|
777
984
|
return IOStatus::NotSupported("PositionedAppend");
|
|
778
985
|
}
|
|
779
986
|
|
|
780
|
-
// EXPERIMENTAL / CURRENTLY UNUSED
|
|
781
987
|
// PositionedAppend data with verification information.
|
|
782
988
|
// Note that this API change is experimental and it might be changed in
|
|
783
|
-
// the future. Currently, RocksDB
|
|
989
|
+
// the future. Currently, RocksDB only generates crc32c based checksum for
|
|
990
|
+
// the file writes when the checksum handoff option is set.
|
|
991
|
+
// Expected behavior: if the handoff_checksum_type in FileOptions (currently,
|
|
992
|
+
// ChecksumType::kCRC32C is set as default) is not supported by this
|
|
993
|
+
// FSWritableFile, the information in DataVerificationInfo can be ignored
|
|
994
|
+
// (i.e. does not perform checksum verification).
|
|
784
995
|
virtual IOStatus PositionedAppend(
|
|
785
996
|
const Slice& /* data */, uint64_t /* offset */,
|
|
786
997
|
const IOOptions& /*options*/,
|
|
@@ -828,6 +1039,17 @@ class FSWritableFile {
|
|
|
828
1039
|
write_hint_ = hint;
|
|
829
1040
|
}
|
|
830
1041
|
|
|
1042
|
+
/*
|
|
1043
|
+
* If rate limiting is enabled, change the file-granularity priority used in
|
|
1044
|
+
* rate-limiting writes.
|
|
1045
|
+
*
|
|
1046
|
+
* In the presence of finer-granularity priority such as
|
|
1047
|
+
* `WriteOptions::rate_limiter_priority`, this file-granularity priority may
|
|
1048
|
+
* be overridden by a non-Env::IO_TOTAL finer-granularity priority and used as
|
|
1049
|
+
* a fallback for Env::IO_TOTAL finer-granularity priority.
|
|
1050
|
+
*
|
|
1051
|
+
* If rate limiting is not enabled, this call has no effect.
|
|
1052
|
+
*/
|
|
831
1053
|
virtual void SetIOPriority(Env::IOPriority pri) { io_priority_ = pri; }
|
|
832
1054
|
|
|
833
1055
|
virtual Env::IOPriority GetIOPriority() { return io_priority_; }
|
|
@@ -958,6 +1180,11 @@ class FSRandomRWFile {
|
|
|
958
1180
|
|
|
959
1181
|
// Read up to `n` bytes starting from offset `offset` and store them in
|
|
960
1182
|
// result, provided `scratch` size should be at least `n`.
|
|
1183
|
+
//
|
|
1184
|
+
// After call, result->size() < n only if end of file has been
|
|
1185
|
+
// reached (or non-OK status). Read might fail if called again after
|
|
1186
|
+
// first result->size() < n.
|
|
1187
|
+
//
|
|
961
1188
|
// Returns Status::OK() on success.
|
|
962
1189
|
virtual IOStatus Read(uint64_t offset, size_t n, const IOOptions& options,
|
|
963
1190
|
Slice* result, char* scratch,
|
|
@@ -973,6 +1200,13 @@ class FSRandomRWFile {
|
|
|
973
1200
|
|
|
974
1201
|
virtual IOStatus Close(const IOOptions& options, IODebugContext* dbg) = 0;
|
|
975
1202
|
|
|
1203
|
+
// EXPERIMENTAL
|
|
1204
|
+
// When available, returns the actual temperature for the file. This is
|
|
1205
|
+
// useful in case some outside process moves a file from one tier to another,
|
|
1206
|
+
// though the temperature is generally expected not to change while a file is
|
|
1207
|
+
// open.
|
|
1208
|
+
virtual Temperature GetTemperature() const { return Temperature::kUnknown; }
|
|
1209
|
+
|
|
976
1210
|
// If you're adding methods here, remember to add them to
|
|
977
1211
|
// RandomRWFileWrapper too.
|
|
978
1212
|
|
|
@@ -1011,6 +1245,15 @@ class FSDirectory {
|
|
|
1011
1245
|
// Fsync directory. Can be called concurrently from multiple threads.
|
|
1012
1246
|
virtual IOStatus Fsync(const IOOptions& options, IODebugContext* dbg) = 0;
|
|
1013
1247
|
|
|
1248
|
+
// FsyncWithDirOptions after renaming a file. Depends on the filesystem, it
|
|
1249
|
+
// may fsync directory or just the renaming file (e.g. btrfs). By default, it
|
|
1250
|
+
// just calls directory fsync.
|
|
1251
|
+
virtual IOStatus FsyncWithDirOptions(
|
|
1252
|
+
const IOOptions& options, IODebugContext* dbg,
|
|
1253
|
+
const DirFsyncOptions& /*dir_fsync_options*/) {
|
|
1254
|
+
return Fsync(options, dbg);
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1014
1257
|
virtual size_t GetUniqueId(char* /*id*/, size_t /*max_size*/) const {
|
|
1015
1258
|
return 0;
|
|
1016
1259
|
}
|
|
@@ -1052,12 +1295,9 @@ class FSDirectory {
|
|
|
1052
1295
|
class FileSystemWrapper : public FileSystem {
|
|
1053
1296
|
public:
|
|
1054
1297
|
// Initialize an EnvWrapper that delegates all calls to *t
|
|
1055
|
-
explicit FileSystemWrapper(const std::shared_ptr<FileSystem>& t)
|
|
1056
|
-
: target_(t) {}
|
|
1298
|
+
explicit FileSystemWrapper(const std::shared_ptr<FileSystem>& t);
|
|
1057
1299
|
~FileSystemWrapper() override {}
|
|
1058
1300
|
|
|
1059
|
-
const char* Name() const override { return target_->Name(); }
|
|
1060
|
-
|
|
1061
1301
|
// Return the target to which this Env forwards all calls
|
|
1062
1302
|
FileSystem* target() const { return target_.get(); }
|
|
1063
1303
|
|
|
@@ -1234,6 +1474,11 @@ class FileSystemWrapper : public FileSystem {
|
|
|
1234
1474
|
const ImmutableDBOptions& db_options) const override {
|
|
1235
1475
|
return target_->OptimizeForCompactionTableRead(file_options, db_options);
|
|
1236
1476
|
}
|
|
1477
|
+
FileOptions OptimizeForBlobFileRead(
|
|
1478
|
+
const FileOptions& file_options,
|
|
1479
|
+
const ImmutableDBOptions& db_options) const override {
|
|
1480
|
+
return target_->OptimizeForBlobFileRead(file_options, db_options);
|
|
1481
|
+
}
|
|
1237
1482
|
IOStatus GetFreeSpace(const std::string& path, const IOOptions& options,
|
|
1238
1483
|
uint64_t* diskfree, IODebugContext* dbg) override {
|
|
1239
1484
|
return target_->GetFreeSpace(path, options, diskfree, dbg);
|
|
@@ -1243,12 +1488,26 @@ class FileSystemWrapper : public FileSystem {
|
|
|
1243
1488
|
return target_->IsDirectory(path, options, is_dir, dbg);
|
|
1244
1489
|
}
|
|
1245
1490
|
|
|
1246
|
-
|
|
1491
|
+
const Customizable* Inner() const override { return target_.get(); }
|
|
1492
|
+
Status PrepareOptions(const ConfigOptions& options) override;
|
|
1493
|
+
#ifndef ROCKSDB_LITE
|
|
1494
|
+
std::string SerializeOptions(const ConfigOptions& config_options,
|
|
1495
|
+
const std::string& header) const override;
|
|
1496
|
+
#endif // ROCKSDB_LITE
|
|
1497
|
+
|
|
1498
|
+
virtual IOStatus Poll(std::vector<void*>& io_handles,
|
|
1499
|
+
size_t min_completions) override {
|
|
1500
|
+
return target_->Poll(io_handles, min_completions);
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
protected:
|
|
1247
1504
|
std::shared_ptr<FileSystem> target_;
|
|
1248
1505
|
};
|
|
1249
1506
|
|
|
1250
1507
|
class FSSequentialFileWrapper : public FSSequentialFile {
|
|
1251
1508
|
public:
|
|
1509
|
+
// Creates a FileWrapper around the input File object and without
|
|
1510
|
+
// taking ownership of the object
|
|
1252
1511
|
explicit FSSequentialFileWrapper(FSSequentialFile* t) : target_(t) {}
|
|
1253
1512
|
|
|
1254
1513
|
FSSequentialFile* target() const { return target_; }
|
|
@@ -1270,13 +1529,29 @@ class FSSequentialFileWrapper : public FSSequentialFile {
|
|
|
1270
1529
|
IODebugContext* dbg) override {
|
|
1271
1530
|
return target_->PositionedRead(offset, n, options, result, scratch, dbg);
|
|
1272
1531
|
}
|
|
1532
|
+
Temperature GetTemperature() const override {
|
|
1533
|
+
return target_->GetTemperature();
|
|
1534
|
+
}
|
|
1273
1535
|
|
|
1274
1536
|
private:
|
|
1275
1537
|
FSSequentialFile* target_;
|
|
1276
1538
|
};
|
|
1277
1539
|
|
|
1540
|
+
class FSSequentialFileOwnerWrapper : public FSSequentialFileWrapper {
|
|
1541
|
+
public:
|
|
1542
|
+
// Creates a FileWrapper around the input File object and takes
|
|
1543
|
+
// ownership of the object
|
|
1544
|
+
explicit FSSequentialFileOwnerWrapper(std::unique_ptr<FSSequentialFile>&& t)
|
|
1545
|
+
: FSSequentialFileWrapper(t.get()), guard_(std::move(t)) {}
|
|
1546
|
+
|
|
1547
|
+
private:
|
|
1548
|
+
std::unique_ptr<FSSequentialFile> guard_;
|
|
1549
|
+
};
|
|
1550
|
+
|
|
1278
1551
|
class FSRandomAccessFileWrapper : public FSRandomAccessFile {
|
|
1279
1552
|
public:
|
|
1553
|
+
// Creates a FileWrapper around the input File object and without
|
|
1554
|
+
// taking ownership of the object
|
|
1280
1555
|
explicit FSRandomAccessFileWrapper(FSRandomAccessFile* t) : target_(t) {}
|
|
1281
1556
|
|
|
1282
1557
|
FSRandomAccessFile* target() const { return target_; }
|
|
@@ -1305,13 +1580,37 @@ class FSRandomAccessFileWrapper : public FSRandomAccessFile {
|
|
|
1305
1580
|
IOStatus InvalidateCache(size_t offset, size_t length) override {
|
|
1306
1581
|
return target_->InvalidateCache(offset, length);
|
|
1307
1582
|
}
|
|
1583
|
+
IOStatus ReadAsync(FSReadRequest& req, const IOOptions& opts,
|
|
1584
|
+
std::function<void(const FSReadRequest&, void*)> cb,
|
|
1585
|
+
void* cb_arg, void** io_handle, IOHandleDeleter* del_fn,
|
|
1586
|
+
IODebugContext* dbg) override {
|
|
1587
|
+
return target()->ReadAsync(req, opts, cb, cb_arg, io_handle, del_fn, dbg);
|
|
1588
|
+
}
|
|
1589
|
+
Temperature GetTemperature() const override {
|
|
1590
|
+
return target_->GetTemperature();
|
|
1591
|
+
}
|
|
1308
1592
|
|
|
1309
1593
|
private:
|
|
1594
|
+
std::unique_ptr<FSRandomAccessFile> guard_;
|
|
1310
1595
|
FSRandomAccessFile* target_;
|
|
1311
1596
|
};
|
|
1312
1597
|
|
|
1598
|
+
class FSRandomAccessFileOwnerWrapper : public FSRandomAccessFileWrapper {
|
|
1599
|
+
public:
|
|
1600
|
+
// Creates a FileWrapper around the input File object and takes
|
|
1601
|
+
// ownership of the object
|
|
1602
|
+
explicit FSRandomAccessFileOwnerWrapper(
|
|
1603
|
+
std::unique_ptr<FSRandomAccessFile>&& t)
|
|
1604
|
+
: FSRandomAccessFileWrapper(t.get()), guard_(std::move(t)) {}
|
|
1605
|
+
|
|
1606
|
+
private:
|
|
1607
|
+
std::unique_ptr<FSRandomAccessFile> guard_;
|
|
1608
|
+
};
|
|
1609
|
+
|
|
1313
1610
|
class FSWritableFileWrapper : public FSWritableFile {
|
|
1314
1611
|
public:
|
|
1612
|
+
// Creates a FileWrapper around the input File object and without
|
|
1613
|
+
// taking ownership of the object
|
|
1315
1614
|
explicit FSWritableFileWrapper(FSWritableFile* t) : target_(t) {}
|
|
1316
1615
|
|
|
1317
1616
|
FSWritableFile* target() const { return target_; }
|
|
@@ -1409,8 +1708,21 @@ class FSWritableFileWrapper : public FSWritableFile {
|
|
|
1409
1708
|
FSWritableFile* target_;
|
|
1410
1709
|
};
|
|
1411
1710
|
|
|
1711
|
+
class FSWritableFileOwnerWrapper : public FSWritableFileWrapper {
|
|
1712
|
+
public:
|
|
1713
|
+
// Creates a FileWrapper around the input File object and takes
|
|
1714
|
+
// ownership of the object
|
|
1715
|
+
explicit FSWritableFileOwnerWrapper(std::unique_ptr<FSWritableFile>&& t)
|
|
1716
|
+
: FSWritableFileWrapper(t.get()), guard_(std::move(t)) {}
|
|
1717
|
+
|
|
1718
|
+
private:
|
|
1719
|
+
std::unique_ptr<FSWritableFile> guard_;
|
|
1720
|
+
};
|
|
1721
|
+
|
|
1412
1722
|
class FSRandomRWFileWrapper : public FSRandomRWFile {
|
|
1413
1723
|
public:
|
|
1724
|
+
// Creates a FileWrapper around the input File object and without
|
|
1725
|
+
// taking ownership of the object
|
|
1414
1726
|
explicit FSRandomRWFileWrapper(FSRandomRWFile* t) : target_(t) {}
|
|
1415
1727
|
|
|
1416
1728
|
FSRandomRWFile* target() const { return target_; }
|
|
@@ -1440,23 +1752,54 @@ class FSRandomRWFileWrapper : public FSRandomRWFile {
|
|
|
1440
1752
|
IOStatus Close(const IOOptions& options, IODebugContext* dbg) override {
|
|
1441
1753
|
return target_->Close(options, dbg);
|
|
1442
1754
|
}
|
|
1755
|
+
Temperature GetTemperature() const override {
|
|
1756
|
+
return target_->GetTemperature();
|
|
1757
|
+
}
|
|
1443
1758
|
|
|
1444
1759
|
private:
|
|
1445
1760
|
FSRandomRWFile* target_;
|
|
1446
1761
|
};
|
|
1447
1762
|
|
|
1763
|
+
class FSRandomRWFileOwnerWrapper : public FSRandomRWFileWrapper {
|
|
1764
|
+
public:
|
|
1765
|
+
// Creates a FileWrapper around the input File object and takes
|
|
1766
|
+
// ownership of the object
|
|
1767
|
+
explicit FSRandomRWFileOwnerWrapper(std::unique_ptr<FSRandomRWFile>&& t)
|
|
1768
|
+
: FSRandomRWFileWrapper(t.get()), guard_(std::move(t)) {}
|
|
1769
|
+
|
|
1770
|
+
private:
|
|
1771
|
+
std::unique_ptr<FSRandomRWFile> guard_;
|
|
1772
|
+
};
|
|
1773
|
+
|
|
1448
1774
|
class FSDirectoryWrapper : public FSDirectory {
|
|
1449
1775
|
public:
|
|
1776
|
+
// Creates a FileWrapper around the input File object and takes
|
|
1777
|
+
// ownership of the object
|
|
1778
|
+
explicit FSDirectoryWrapper(std::unique_ptr<FSDirectory>&& t)
|
|
1779
|
+
: guard_(std::move(t)) {
|
|
1780
|
+
target_ = guard_.get();
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
// Creates a FileWrapper around the input File object and without
|
|
1784
|
+
// taking ownership of the object
|
|
1450
1785
|
explicit FSDirectoryWrapper(FSDirectory* t) : target_(t) {}
|
|
1451
1786
|
|
|
1452
1787
|
IOStatus Fsync(const IOOptions& options, IODebugContext* dbg) override {
|
|
1453
1788
|
return target_->Fsync(options, dbg);
|
|
1454
1789
|
}
|
|
1790
|
+
|
|
1791
|
+
IOStatus FsyncWithDirOptions(
|
|
1792
|
+
const IOOptions& options, IODebugContext* dbg,
|
|
1793
|
+
const DirFsyncOptions& dir_fsync_options) override {
|
|
1794
|
+
return target_->FsyncWithDirOptions(options, dbg, dir_fsync_options);
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1455
1797
|
size_t GetUniqueId(char* id, size_t max_size) const override {
|
|
1456
1798
|
return target_->GetUniqueId(id, max_size);
|
|
1457
1799
|
}
|
|
1458
1800
|
|
|
1459
1801
|
private:
|
|
1802
|
+
std::unique_ptr<FSDirectory> guard_;
|
|
1460
1803
|
FSDirectory* target_;
|
|
1461
1804
|
};
|
|
1462
1805
|
|