@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,12 +17,16 @@
|
|
|
17
17
|
#pragma once
|
|
18
18
|
|
|
19
19
|
#include <stdint.h>
|
|
20
|
+
|
|
20
21
|
#include <cstdarg>
|
|
21
22
|
#include <functional>
|
|
22
23
|
#include <limits>
|
|
23
24
|
#include <memory>
|
|
24
25
|
#include <string>
|
|
25
26
|
#include <vector>
|
|
27
|
+
|
|
28
|
+
#include "rocksdb/customizable.h"
|
|
29
|
+
#include "rocksdb/functor_wrapper.h"
|
|
26
30
|
#include "rocksdb/status.h"
|
|
27
31
|
#include "rocksdb/thread_status.h"
|
|
28
32
|
|
|
@@ -35,7 +39,7 @@
|
|
|
35
39
|
|
|
36
40
|
#if defined(__GNUC__) || defined(__clang__)
|
|
37
41
|
#define ROCKSDB_PRINTF_FORMAT_ATTR(format_param, dots_param) \
|
|
38
|
-
|
|
42
|
+
__attribute__((__format__(__printf__, format_param, dots_param)))
|
|
39
43
|
#else
|
|
40
44
|
#define ROCKSDB_PRINTF_FORMAT_ATTR(format_param, dots_param)
|
|
41
45
|
#endif
|
|
@@ -48,6 +52,7 @@ class Logger;
|
|
|
48
52
|
class RandomAccessFile;
|
|
49
53
|
class SequentialFile;
|
|
50
54
|
class Slice;
|
|
55
|
+
struct DataVerificationInfo;
|
|
51
56
|
class WritableFile;
|
|
52
57
|
class RandomRWFile;
|
|
53
58
|
class MemoryMappedFileBuffer;
|
|
@@ -59,6 +64,8 @@ class RateLimiter;
|
|
|
59
64
|
class ThreadStatusUpdater;
|
|
60
65
|
struct ThreadStatus;
|
|
61
66
|
class FileSystem;
|
|
67
|
+
class SystemClock;
|
|
68
|
+
struct ConfigOptions;
|
|
62
69
|
|
|
63
70
|
const size_t kDefaultPageSize = 4 * 1024;
|
|
64
71
|
|
|
@@ -77,7 +84,8 @@ struct EnvOptions {
|
|
|
77
84
|
// Construct from Options
|
|
78
85
|
explicit EnvOptions(const DBOptions& options);
|
|
79
86
|
|
|
80
|
-
// If true, then use mmap to read data
|
|
87
|
+
// If true, then use mmap to read data.
|
|
88
|
+
// Not recommended for 32-bit OS.
|
|
81
89
|
bool use_mmap_reads = false;
|
|
82
90
|
|
|
83
91
|
// If true, then use mmap to write data
|
|
@@ -139,8 +147,12 @@ struct EnvOptions {
|
|
|
139
147
|
RateLimiter* rate_limiter = nullptr;
|
|
140
148
|
};
|
|
141
149
|
|
|
142
|
-
|
|
150
|
+
// Exceptions MUST NOT propagate out of overridden functions into RocksDB,
|
|
151
|
+
// because RocksDB is not exception-safe. This could cause undefined behavior
|
|
152
|
+
// including data loss, unreported corruption, deadlocks, and more.
|
|
153
|
+
class Env : public Customizable {
|
|
143
154
|
public:
|
|
155
|
+
static const char* kDefaultName() { return "DefaultEnv"; }
|
|
144
156
|
struct FileAttributes {
|
|
145
157
|
// File name
|
|
146
158
|
std::string name;
|
|
@@ -150,23 +162,62 @@ class Env {
|
|
|
150
162
|
};
|
|
151
163
|
|
|
152
164
|
Env();
|
|
153
|
-
// Construct an Env with a separate FileSystem
|
|
154
|
-
|
|
165
|
+
// Construct an Env with a separate FileSystem and/or SystemClock
|
|
166
|
+
// implementation
|
|
167
|
+
explicit Env(const std::shared_ptr<FileSystem>& fs);
|
|
168
|
+
Env(const std::shared_ptr<FileSystem>& fs,
|
|
169
|
+
const std::shared_ptr<SystemClock>& clock);
|
|
155
170
|
// No copying allowed
|
|
156
171
|
Env(const Env&) = delete;
|
|
157
172
|
void operator=(const Env&) = delete;
|
|
158
173
|
|
|
159
|
-
|
|
174
|
+
~Env() override;
|
|
160
175
|
|
|
161
176
|
static const char* Type() { return "Environment"; }
|
|
162
177
|
|
|
178
|
+
// Deprecated. Will be removed in a major release. Derived classes
|
|
179
|
+
// should implement this method.
|
|
180
|
+
const char* Name() const override { return ""; }
|
|
181
|
+
|
|
163
182
|
// Loads the environment specified by the input value into the result
|
|
183
|
+
// The CreateFromString alternative should be used; this method may be
|
|
184
|
+
// deprecated in a future release.
|
|
164
185
|
static Status LoadEnv(const std::string& value, Env** result);
|
|
165
186
|
|
|
166
187
|
// Loads the environment specified by the input value into the result
|
|
188
|
+
// The CreateFromString alternative should be used; this method may be
|
|
189
|
+
// deprecated in a future release.
|
|
167
190
|
static Status LoadEnv(const std::string& value, Env** result,
|
|
168
191
|
std::shared_ptr<Env>* guard);
|
|
169
192
|
|
|
193
|
+
// Loads the environment specified by the input value into the result
|
|
194
|
+
// @see Customizable for a more detailed description of the parameters and
|
|
195
|
+
// return codes
|
|
196
|
+
//
|
|
197
|
+
// @param config_options Controls how the environment is loaded.
|
|
198
|
+
// @param value the name and associated properties for the environment.
|
|
199
|
+
// @param result On success, the environment that was loaded.
|
|
200
|
+
// @param guard If specified and the loaded environment is not static,
|
|
201
|
+
// this value will contain the loaded environment (guard.get() ==
|
|
202
|
+
// result).
|
|
203
|
+
// @return OK If the environment was successfully loaded (and optionally
|
|
204
|
+
// prepared)
|
|
205
|
+
// @return not-OK if the load failed.
|
|
206
|
+
static Status CreateFromString(const ConfigOptions& config_options,
|
|
207
|
+
const std::string& value, Env** result);
|
|
208
|
+
static Status CreateFromString(const ConfigOptions& config_options,
|
|
209
|
+
const std::string& value, Env** result,
|
|
210
|
+
std::shared_ptr<Env>* guard);
|
|
211
|
+
|
|
212
|
+
// Loads the environment specified by the env and fs uri.
|
|
213
|
+
// If both are specified, an error is returned.
|
|
214
|
+
// Otherwise, the environment is created by loading (via CreateFromString)
|
|
215
|
+
// the appropriate env/fs from the corresponding values.
|
|
216
|
+
static Status CreateFromUri(const ConfigOptions& options,
|
|
217
|
+
const std::string& env_uri,
|
|
218
|
+
const std::string& fs_uri, Env** result,
|
|
219
|
+
std::shared_ptr<Env>* guard);
|
|
220
|
+
|
|
170
221
|
// Return a default environment suitable for the current operating
|
|
171
222
|
// system. Sophisticated users may wish to provide their own Env
|
|
172
223
|
// implementation instead of relying on this default environment.
|
|
@@ -225,11 +276,12 @@ class Env {
|
|
|
225
276
|
std::unique_ptr<WritableFile>* result,
|
|
226
277
|
const EnvOptions& options) = 0;
|
|
227
278
|
|
|
228
|
-
// Create an object that writes to a
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
// returns
|
|
279
|
+
// Create an object that writes to a file with the specified name.
|
|
280
|
+
// `WritableFile::Append()`s will append after any existing content. If the
|
|
281
|
+
// file does not already exist, creates it.
|
|
282
|
+
//
|
|
283
|
+
// On success, stores a pointer to the file in *result and returns OK. On
|
|
284
|
+
// failure stores nullptr in *result and returns non-OK.
|
|
233
285
|
//
|
|
234
286
|
// The returned file will only be accessed by one thread at a time.
|
|
235
287
|
virtual Status ReopenWritableFile(const std::string& /*fname*/,
|
|
@@ -393,7 +445,13 @@ class Env {
|
|
|
393
445
|
static std::string PriorityToString(Priority priority);
|
|
394
446
|
|
|
395
447
|
// Priority for requesting bytes in rate limiter scheduler
|
|
396
|
-
enum IOPriority {
|
|
448
|
+
enum IOPriority {
|
|
449
|
+
IO_LOW = 0,
|
|
450
|
+
IO_MID = 1,
|
|
451
|
+
IO_HIGH = 2,
|
|
452
|
+
IO_USER = 3,
|
|
453
|
+
IO_TOTAL = 4
|
|
454
|
+
};
|
|
397
455
|
|
|
398
456
|
// Arrange to run "(*function)(arg)" once in a background thread, in
|
|
399
457
|
// the thread pool specified by pri. By default, jobs go to the 'LOW'
|
|
@@ -417,6 +475,21 @@ class Env {
|
|
|
417
475
|
// When "function(arg)" returns, the thread will be destroyed.
|
|
418
476
|
virtual void StartThread(void (*function)(void* arg), void* arg) = 0;
|
|
419
477
|
|
|
478
|
+
// Start a new thread, invoking "function(args...)" within the new thread.
|
|
479
|
+
// When "function(args...)" returns, the thread will be destroyed.
|
|
480
|
+
template <typename FunctionT, typename... Args>
|
|
481
|
+
void StartThreadTyped(FunctionT function, Args&&... args) {
|
|
482
|
+
using FWType = FunctorWrapper<Args...>;
|
|
483
|
+
StartThread(
|
|
484
|
+
[](void* arg) {
|
|
485
|
+
auto* functor = static_cast<FWType*>(arg);
|
|
486
|
+
functor->invoke();
|
|
487
|
+
delete functor;
|
|
488
|
+
},
|
|
489
|
+
new FWType(std::function<void(Args...)>(function),
|
|
490
|
+
std::forward<Args>(args)...));
|
|
491
|
+
}
|
|
492
|
+
|
|
420
493
|
// Wait for all threads started by StartThread to terminate.
|
|
421
494
|
virtual void WaitForJoin() {}
|
|
422
495
|
|
|
@@ -432,7 +505,7 @@ class Env {
|
|
|
432
505
|
virtual Status GetTestDirectory(std::string* path) = 0;
|
|
433
506
|
|
|
434
507
|
// Create and returns a default logger (an instance of EnvLogger) for storing
|
|
435
|
-
// informational messages. Derived classes can
|
|
508
|
+
// informational messages. Derived classes can override to provide custom
|
|
436
509
|
// logger.
|
|
437
510
|
virtual Status NewLogger(const std::string& fname,
|
|
438
511
|
std::shared_ptr<Logger>* result);
|
|
@@ -503,7 +576,10 @@ class Env {
|
|
|
503
576
|
// Converts seconds-since-Jan-01-1970 to a printable string
|
|
504
577
|
virtual std::string TimeToString(uint64_t time) = 0;
|
|
505
578
|
|
|
506
|
-
// Generates a unique
|
|
579
|
+
// Generates a human-readable unique ID that can be used to identify a DB.
|
|
580
|
+
// In built-in implementations, this is an RFC-4122 UUID string, but might
|
|
581
|
+
// not be in all implementations. Overriding is not recommended.
|
|
582
|
+
// NOTE: this has not be validated for use in cryptography
|
|
507
583
|
virtual std::string GenerateUniqueId();
|
|
508
584
|
|
|
509
585
|
// OptimizeForLogWrite will create a new EnvOptions object that is a copy of
|
|
@@ -541,6 +617,13 @@ class Env {
|
|
|
541
617
|
const EnvOptions& env_options,
|
|
542
618
|
const ImmutableDBOptions& db_options) const;
|
|
543
619
|
|
|
620
|
+
// OptimizeForBlobFileRead will create a new EnvOptions object that
|
|
621
|
+
// is a copy of the EnvOptions in the parameters, but is optimized for reading
|
|
622
|
+
// blob files.
|
|
623
|
+
virtual EnvOptions OptimizeForBlobFileRead(
|
|
624
|
+
const EnvOptions& env_options,
|
|
625
|
+
const ImmutableDBOptions& db_options) const;
|
|
626
|
+
|
|
544
627
|
// Returns the status of all threads that belong to the current Env.
|
|
545
628
|
virtual Status GetThreadList(std::vector<ThreadStatus>* /*thread_list*/) {
|
|
546
629
|
return Status::NotSupported("Env::GetThreadList() not supported.");
|
|
@@ -576,6 +659,10 @@ class Env {
|
|
|
576
659
|
// could be a fully implemented one, or a wrapper class around the Env
|
|
577
660
|
const std::shared_ptr<FileSystem>& GetFileSystem() const;
|
|
578
661
|
|
|
662
|
+
// Get the SystemClock implementation this Env was constructed with. It
|
|
663
|
+
// could be a fully implemented one, or a wrapper class around the Env
|
|
664
|
+
const std::shared_ptr<SystemClock>& GetSystemClock() const;
|
|
665
|
+
|
|
579
666
|
// If you're adding methods here, remember to add them to EnvWrapper too.
|
|
580
667
|
|
|
581
668
|
protected:
|
|
@@ -586,6 +673,9 @@ class Env {
|
|
|
586
673
|
// Pointer to the underlying FileSystem implementation
|
|
587
674
|
std::shared_ptr<FileSystem> file_system_;
|
|
588
675
|
|
|
676
|
+
// Pointer to the underlying SystemClock implementation
|
|
677
|
+
std::shared_ptr<SystemClock> system_clock_;
|
|
678
|
+
|
|
589
679
|
private:
|
|
590
680
|
static const size_t kMaxHostNameLen = 256;
|
|
591
681
|
};
|
|
@@ -608,6 +698,10 @@ class SequentialFile {
|
|
|
608
698
|
// "scratch[0..n-1]" must be live when "*result" is used.
|
|
609
699
|
// If an error was encountered, returns a non-OK status.
|
|
610
700
|
//
|
|
701
|
+
// After call, result->size() < n only if end of file has been
|
|
702
|
+
// reached (or non-OK status). Read might fail if called again after
|
|
703
|
+
// first result->size() < n.
|
|
704
|
+
//
|
|
611
705
|
// REQUIRES: External synchronization
|
|
612
706
|
virtual Status Read(size_t n, Slice* result, char* scratch) = 0;
|
|
613
707
|
|
|
@@ -653,7 +747,8 @@ struct ReadRequest {
|
|
|
653
747
|
// File offset in bytes
|
|
654
748
|
uint64_t offset;
|
|
655
749
|
|
|
656
|
-
// Length to read in bytes
|
|
750
|
+
// Length to read in bytes. `result` only returns fewer bytes if end of file
|
|
751
|
+
// is hit (or `status` is not OK).
|
|
657
752
|
size_t len;
|
|
658
753
|
|
|
659
754
|
// A buffer that MultiRead() can optionally place data in. It can
|
|
@@ -682,6 +777,10 @@ class RandomAccessFile {
|
|
|
682
777
|
// "*result" is used. If an error was encountered, returns a non-OK
|
|
683
778
|
// status.
|
|
684
779
|
//
|
|
780
|
+
// After call, result->size() < n only if end of file has been
|
|
781
|
+
// reached (or non-OK status). Read might fail if called again after
|
|
782
|
+
// first result->size() < n.
|
|
783
|
+
//
|
|
685
784
|
// Safe for concurrent use by multiple threads.
|
|
686
785
|
// If Direct I/O enabled, offset, n, and scratch should be aligned properly.
|
|
687
786
|
virtual Status Read(uint64_t offset, size_t n, Slice* result,
|
|
@@ -777,10 +876,22 @@ class WritableFile {
|
|
|
777
876
|
virtual ~WritableFile();
|
|
778
877
|
|
|
779
878
|
// Append data to the end of the file
|
|
780
|
-
// Note: A
|
|
879
|
+
// Note: A WriteableFile object must support either Append or
|
|
781
880
|
// PositionedAppend, so the users cannot mix the two.
|
|
782
881
|
virtual Status Append(const Slice& data) = 0;
|
|
783
882
|
|
|
883
|
+
// Append data with verification information.
|
|
884
|
+
// Note that this API change is experimental and it might be changed in
|
|
885
|
+
// the future. Currently, RocksDB only generates crc32c based checksum for
|
|
886
|
+
// the file writes when the checksum handoff option is set.
|
|
887
|
+
// Expected behavior: if currently ChecksumType::kCRC32C is not supported by
|
|
888
|
+
// WritableFile, the information in DataVerificationInfo can be ignored
|
|
889
|
+
// (i.e. does not perform checksum verification).
|
|
890
|
+
virtual Status Append(const Slice& data,
|
|
891
|
+
const DataVerificationInfo& /* verification_info */) {
|
|
892
|
+
return Append(data);
|
|
893
|
+
}
|
|
894
|
+
|
|
784
895
|
// PositionedAppend data to the specified offset. The new EOF after append
|
|
785
896
|
// must be larger than the previous EOF. This is to be used when writes are
|
|
786
897
|
// not backed by OS buffers and hence has to always start from the start of
|
|
@@ -807,6 +918,19 @@ class WritableFile {
|
|
|
807
918
|
"WritableFile::PositionedAppend() not supported.");
|
|
808
919
|
}
|
|
809
920
|
|
|
921
|
+
// PositionedAppend data with verification information.
|
|
922
|
+
// Note that this API change is experimental and it might be changed in
|
|
923
|
+
// the future. Currently, RocksDB only generates crc32c based checksum for
|
|
924
|
+
// the file writes when the checksum handoff option is set.
|
|
925
|
+
// Expected behavior: if currently ChecksumType::kCRC32C is not supported by
|
|
926
|
+
// WritableFile, the information in DataVerificationInfo can be ignored
|
|
927
|
+
// (i.e. does not perform checksum verification).
|
|
928
|
+
virtual Status PositionedAppend(
|
|
929
|
+
const Slice& /* data */, uint64_t /* offset */,
|
|
930
|
+
const DataVerificationInfo& /* verification_info */) {
|
|
931
|
+
return Status::NotSupported("PositionedAppend");
|
|
932
|
+
}
|
|
933
|
+
|
|
810
934
|
// Truncate is necessary to trim the file to the correct size
|
|
811
935
|
// before closing. It is not always possible to keep track of the file
|
|
812
936
|
// size due to whole pages writes. The behavior is undefined if called
|
|
@@ -835,8 +959,16 @@ class WritableFile {
|
|
|
835
959
|
// Use the returned alignment value to allocate
|
|
836
960
|
// aligned buffer for Direct I/O
|
|
837
961
|
virtual size_t GetRequiredBufferAlignment() const { return kDefaultPageSize; }
|
|
962
|
+
|
|
838
963
|
/*
|
|
839
|
-
*
|
|
964
|
+
* If rate limiting is enabled, change the file-granularity priority used in
|
|
965
|
+
* rate-limiting writes.
|
|
966
|
+
*
|
|
967
|
+
* In the presence of finer-granularity priority such as
|
|
968
|
+
* `WriteOptions::rate_limiter_priority`, this file-granularity priority may
|
|
969
|
+
* be overridden by a non-Env::IO_TOTAL finer-granularity priority and used as
|
|
970
|
+
* a fallback for Env::IO_TOTAL finer-granularity priority.
|
|
971
|
+
*
|
|
840
972
|
* If rate limiting is not enabled, this call has no effect.
|
|
841
973
|
*/
|
|
842
974
|
virtual void SetIOPriority(Env::IOPriority pri) { io_priority_ = pri; }
|
|
@@ -966,6 +1098,11 @@ class RandomRWFile {
|
|
|
966
1098
|
|
|
967
1099
|
// Read up to `n` bytes starting from offset `offset` and store them in
|
|
968
1100
|
// result, provided `scratch` size should be at least `n`.
|
|
1101
|
+
//
|
|
1102
|
+
// After call, result->size() < n only if end of file has been
|
|
1103
|
+
// reached (or non-OK status). Read might fail if called again after
|
|
1104
|
+
// first result->size() < n.
|
|
1105
|
+
//
|
|
969
1106
|
// Returns Status::OK() on success.
|
|
970
1107
|
virtual Status Read(uint64_t offset, size_t n, Slice* result,
|
|
971
1108
|
char* scratch) const = 0;
|
|
@@ -1031,6 +1168,10 @@ enum InfoLogLevel : unsigned char {
|
|
|
1031
1168
|
};
|
|
1032
1169
|
|
|
1033
1170
|
// An interface for writing log messages.
|
|
1171
|
+
//
|
|
1172
|
+
// Exceptions MUST NOT propagate out of overridden functions into RocksDB,
|
|
1173
|
+
// because RocksDB is not exception-safe. This could cause undefined behavior
|
|
1174
|
+
// including data loss, unreported corruption, deadlocks, and more.
|
|
1034
1175
|
class Logger {
|
|
1035
1176
|
public:
|
|
1036
1177
|
size_t kDoNotSupportGetLogFileSize = (std::numeric_limits<size_t>::max)();
|
|
@@ -1091,7 +1232,9 @@ class Logger {
|
|
|
1091
1232
|
InfoLogLevel log_level_;
|
|
1092
1233
|
};
|
|
1093
1234
|
|
|
1094
|
-
// Identifies a locked file.
|
|
1235
|
+
// Identifies a locked file. Except in custom Env/Filesystem implementations,
|
|
1236
|
+
// the lifetime of a FileLock object should be managed only by LockFile() and
|
|
1237
|
+
// UnlockFile().
|
|
1095
1238
|
class FileLock {
|
|
1096
1239
|
public:
|
|
1097
1240
|
FileLock() {}
|
|
@@ -1211,248 +1354,297 @@ extern Status ReadFileToString(Env* env, const std::string& fname,
|
|
|
1211
1354
|
// functionality of another Env.
|
|
1212
1355
|
class EnvWrapper : public Env {
|
|
1213
1356
|
public:
|
|
1357
|
+
// The Target struct allows an Env to be stored as a raw (Env*) or
|
|
1358
|
+
// std::shared_ptr<Env>. By using this struct, the wrapping/calling
|
|
1359
|
+
// class does not need to worry about the ownership/lifetime of the
|
|
1360
|
+
// wrapped target env. If the guard is set, then the Env will point
|
|
1361
|
+
// to the guard.get().
|
|
1362
|
+
struct Target {
|
|
1363
|
+
Env* env; // The raw Env
|
|
1364
|
+
std::shared_ptr<Env> guard; // The guarded Env
|
|
1365
|
+
|
|
1366
|
+
// Creates a Target without assuming ownership of the target Env
|
|
1367
|
+
explicit Target(Env* t) : env(t) {}
|
|
1368
|
+
|
|
1369
|
+
// Creates a Target from the guarded env, assuming ownership
|
|
1370
|
+
explicit Target(std::unique_ptr<Env>&& t) : guard(t.release()) {
|
|
1371
|
+
env = guard.get();
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
// Creates a Target from the guarded env, assuming ownership
|
|
1375
|
+
explicit Target(const std::shared_ptr<Env>& t) : guard(t) {
|
|
1376
|
+
env = guard.get();
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
// Makes sure the raw Env is not nullptr
|
|
1380
|
+
void Prepare() {
|
|
1381
|
+
if (guard.get() != nullptr) {
|
|
1382
|
+
env = guard.get();
|
|
1383
|
+
} else if (env == nullptr) {
|
|
1384
|
+
env = Env::Default();
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
};
|
|
1388
|
+
|
|
1214
1389
|
// Initialize an EnvWrapper that delegates all calls to *t
|
|
1215
|
-
explicit EnvWrapper(Env* t)
|
|
1390
|
+
explicit EnvWrapper(Env* t);
|
|
1391
|
+
explicit EnvWrapper(std::unique_ptr<Env>&& t);
|
|
1392
|
+
explicit EnvWrapper(const std::shared_ptr<Env>& t);
|
|
1216
1393
|
~EnvWrapper() override;
|
|
1217
1394
|
|
|
1218
1395
|
// Return the target to which this Env forwards all calls
|
|
1219
|
-
Env* target() const { return target_; }
|
|
1396
|
+
Env* target() const { return target_.env; }
|
|
1397
|
+
|
|
1398
|
+
// Deprecated. Will be removed in a major release. Derived classes
|
|
1399
|
+
// should implement this method.
|
|
1400
|
+
const char* Name() const override { return target_.env->Name(); }
|
|
1220
1401
|
|
|
1221
1402
|
// The following text is boilerplate that forwards all methods to target()
|
|
1222
1403
|
Status RegisterDbPaths(const std::vector<std::string>& paths) override {
|
|
1223
|
-
return target_->RegisterDbPaths(paths);
|
|
1404
|
+
return target_.env->RegisterDbPaths(paths);
|
|
1224
1405
|
}
|
|
1225
1406
|
|
|
1226
1407
|
Status UnregisterDbPaths(const std::vector<std::string>& paths) override {
|
|
1227
|
-
return target_->UnregisterDbPaths(paths);
|
|
1408
|
+
return target_.env->UnregisterDbPaths(paths);
|
|
1228
1409
|
}
|
|
1229
1410
|
|
|
1230
1411
|
Status NewSequentialFile(const std::string& f,
|
|
1231
1412
|
std::unique_ptr<SequentialFile>* r,
|
|
1232
1413
|
const EnvOptions& options) override {
|
|
1233
|
-
return target_->NewSequentialFile(f, r, options);
|
|
1414
|
+
return target_.env->NewSequentialFile(f, r, options);
|
|
1234
1415
|
}
|
|
1235
1416
|
Status NewRandomAccessFile(const std::string& f,
|
|
1236
1417
|
std::unique_ptr<RandomAccessFile>* r,
|
|
1237
1418
|
const EnvOptions& options) override {
|
|
1238
|
-
return target_->NewRandomAccessFile(f, r, options);
|
|
1419
|
+
return target_.env->NewRandomAccessFile(f, r, options);
|
|
1239
1420
|
}
|
|
1240
1421
|
Status NewWritableFile(const std::string& f, std::unique_ptr<WritableFile>* r,
|
|
1241
1422
|
const EnvOptions& options) override {
|
|
1242
|
-
return target_->NewWritableFile(f, r, options);
|
|
1423
|
+
return target_.env->NewWritableFile(f, r, options);
|
|
1243
1424
|
}
|
|
1244
1425
|
Status ReopenWritableFile(const std::string& fname,
|
|
1245
1426
|
std::unique_ptr<WritableFile>* result,
|
|
1246
1427
|
const EnvOptions& options) override {
|
|
1247
|
-
return target_->ReopenWritableFile(fname, result, options);
|
|
1428
|
+
return target_.env->ReopenWritableFile(fname, result, options);
|
|
1248
1429
|
}
|
|
1249
1430
|
Status ReuseWritableFile(const std::string& fname,
|
|
1250
1431
|
const std::string& old_fname,
|
|
1251
1432
|
std::unique_ptr<WritableFile>* r,
|
|
1252
1433
|
const EnvOptions& options) override {
|
|
1253
|
-
return target_->ReuseWritableFile(fname, old_fname, r, options);
|
|
1434
|
+
return target_.env->ReuseWritableFile(fname, old_fname, r, options);
|
|
1254
1435
|
}
|
|
1255
1436
|
Status NewRandomRWFile(const std::string& fname,
|
|
1256
1437
|
std::unique_ptr<RandomRWFile>* result,
|
|
1257
1438
|
const EnvOptions& options) override {
|
|
1258
|
-
return target_->NewRandomRWFile(fname, result, options);
|
|
1439
|
+
return target_.env->NewRandomRWFile(fname, result, options);
|
|
1259
1440
|
}
|
|
1260
1441
|
Status NewMemoryMappedFileBuffer(
|
|
1261
1442
|
const std::string& fname,
|
|
1262
1443
|
std::unique_ptr<MemoryMappedFileBuffer>* result) override {
|
|
1263
|
-
return target_->NewMemoryMappedFileBuffer(fname, result);
|
|
1444
|
+
return target_.env->NewMemoryMappedFileBuffer(fname, result);
|
|
1264
1445
|
}
|
|
1265
1446
|
Status NewDirectory(const std::string& name,
|
|
1266
1447
|
std::unique_ptr<Directory>* result) override {
|
|
1267
|
-
return target_->NewDirectory(name, result);
|
|
1448
|
+
return target_.env->NewDirectory(name, result);
|
|
1268
1449
|
}
|
|
1269
1450
|
Status FileExists(const std::string& f) override {
|
|
1270
|
-
return target_->FileExists(f);
|
|
1451
|
+
return target_.env->FileExists(f);
|
|
1271
1452
|
}
|
|
1272
1453
|
Status GetChildren(const std::string& dir,
|
|
1273
1454
|
std::vector<std::string>* r) override {
|
|
1274
|
-
return target_->GetChildren(dir, r);
|
|
1455
|
+
return target_.env->GetChildren(dir, r);
|
|
1275
1456
|
}
|
|
1276
1457
|
Status GetChildrenFileAttributes(
|
|
1277
1458
|
const std::string& dir, std::vector<FileAttributes>* result) override {
|
|
1278
|
-
return target_->GetChildrenFileAttributes(dir, result);
|
|
1459
|
+
return target_.env->GetChildrenFileAttributes(dir, result);
|
|
1279
1460
|
}
|
|
1280
1461
|
Status DeleteFile(const std::string& f) override {
|
|
1281
|
-
return target_->DeleteFile(f);
|
|
1462
|
+
return target_.env->DeleteFile(f);
|
|
1282
1463
|
}
|
|
1283
1464
|
Status Truncate(const std::string& fname, size_t size) override {
|
|
1284
|
-
return target_->Truncate(fname, size);
|
|
1465
|
+
return target_.env->Truncate(fname, size);
|
|
1285
1466
|
}
|
|
1286
1467
|
Status CreateDir(const std::string& d) override {
|
|
1287
|
-
return target_->CreateDir(d);
|
|
1468
|
+
return target_.env->CreateDir(d);
|
|
1288
1469
|
}
|
|
1289
1470
|
Status CreateDirIfMissing(const std::string& d) override {
|
|
1290
|
-
return target_->CreateDirIfMissing(d);
|
|
1471
|
+
return target_.env->CreateDirIfMissing(d);
|
|
1291
1472
|
}
|
|
1292
1473
|
Status DeleteDir(const std::string& d) override {
|
|
1293
|
-
return target_->DeleteDir(d);
|
|
1474
|
+
return target_.env->DeleteDir(d);
|
|
1294
1475
|
}
|
|
1295
1476
|
Status GetFileSize(const std::string& f, uint64_t* s) override {
|
|
1296
|
-
return target_->GetFileSize(f, s);
|
|
1477
|
+
return target_.env->GetFileSize(f, s);
|
|
1297
1478
|
}
|
|
1298
1479
|
|
|
1299
1480
|
Status GetFileModificationTime(const std::string& fname,
|
|
1300
1481
|
uint64_t* file_mtime) override {
|
|
1301
|
-
return target_->GetFileModificationTime(fname, file_mtime);
|
|
1482
|
+
return target_.env->GetFileModificationTime(fname, file_mtime);
|
|
1302
1483
|
}
|
|
1303
1484
|
|
|
1304
1485
|
Status RenameFile(const std::string& s, const std::string& t) override {
|
|
1305
|
-
return target_->RenameFile(s, t);
|
|
1486
|
+
return target_.env->RenameFile(s, t);
|
|
1306
1487
|
}
|
|
1307
1488
|
|
|
1308
1489
|
Status LinkFile(const std::string& s, const std::string& t) override {
|
|
1309
|
-
return target_->LinkFile(s, t);
|
|
1490
|
+
return target_.env->LinkFile(s, t);
|
|
1310
1491
|
}
|
|
1311
1492
|
|
|
1312
1493
|
Status NumFileLinks(const std::string& fname, uint64_t* count) override {
|
|
1313
|
-
return target_->NumFileLinks(fname, count);
|
|
1494
|
+
return target_.env->NumFileLinks(fname, count);
|
|
1314
1495
|
}
|
|
1315
1496
|
|
|
1316
1497
|
Status AreFilesSame(const std::string& first, const std::string& second,
|
|
1317
1498
|
bool* res) override {
|
|
1318
|
-
return target_->AreFilesSame(first, second, res);
|
|
1499
|
+
return target_.env->AreFilesSame(first, second, res);
|
|
1319
1500
|
}
|
|
1320
1501
|
|
|
1321
1502
|
Status LockFile(const std::string& f, FileLock** l) override {
|
|
1322
|
-
return target_->LockFile(f, l);
|
|
1503
|
+
return target_.env->LockFile(f, l);
|
|
1323
1504
|
}
|
|
1324
1505
|
|
|
1325
|
-
Status UnlockFile(FileLock* l) override { return target_->UnlockFile(l); }
|
|
1506
|
+
Status UnlockFile(FileLock* l) override { return target_.env->UnlockFile(l); }
|
|
1326
1507
|
|
|
1327
1508
|
Status IsDirectory(const std::string& path, bool* is_dir) override {
|
|
1328
|
-
return target_->IsDirectory(path, is_dir);
|
|
1509
|
+
return target_.env->IsDirectory(path, is_dir);
|
|
1329
1510
|
}
|
|
1330
1511
|
|
|
1331
1512
|
Status LoadLibrary(const std::string& lib_name,
|
|
1332
1513
|
const std::string& search_path,
|
|
1333
1514
|
std::shared_ptr<DynamicLibrary>* result) override {
|
|
1334
|
-
return target_->LoadLibrary(lib_name, search_path, result);
|
|
1515
|
+
return target_.env->LoadLibrary(lib_name, search_path, result);
|
|
1335
1516
|
}
|
|
1336
1517
|
|
|
1337
1518
|
void Schedule(void (*f)(void* arg), void* a, Priority pri,
|
|
1338
1519
|
void* tag = nullptr, void (*u)(void* arg) = nullptr) override {
|
|
1339
|
-
return target_->Schedule(f, a, pri, tag, u);
|
|
1520
|
+
return target_.env->Schedule(f, a, pri, tag, u);
|
|
1340
1521
|
}
|
|
1341
1522
|
|
|
1342
1523
|
int UnSchedule(void* tag, Priority pri) override {
|
|
1343
|
-
return target_->UnSchedule(tag, pri);
|
|
1524
|
+
return target_.env->UnSchedule(tag, pri);
|
|
1344
1525
|
}
|
|
1345
1526
|
|
|
1346
1527
|
void StartThread(void (*f)(void*), void* a) override {
|
|
1347
|
-
return target_->StartThread(f, a);
|
|
1528
|
+
return target_.env->StartThread(f, a);
|
|
1348
1529
|
}
|
|
1349
|
-
void WaitForJoin() override { return target_->WaitForJoin(); }
|
|
1530
|
+
void WaitForJoin() override { return target_.env->WaitForJoin(); }
|
|
1350
1531
|
unsigned int GetThreadPoolQueueLen(Priority pri = LOW) const override {
|
|
1351
|
-
return target_->GetThreadPoolQueueLen(pri);
|
|
1532
|
+
return target_.env->GetThreadPoolQueueLen(pri);
|
|
1352
1533
|
}
|
|
1353
1534
|
Status GetTestDirectory(std::string* path) override {
|
|
1354
|
-
return target_->GetTestDirectory(path);
|
|
1535
|
+
return target_.env->GetTestDirectory(path);
|
|
1355
1536
|
}
|
|
1356
1537
|
Status NewLogger(const std::string& fname,
|
|
1357
1538
|
std::shared_ptr<Logger>* result) override {
|
|
1358
|
-
return target_->NewLogger(fname, result);
|
|
1539
|
+
return target_.env->NewLogger(fname, result);
|
|
1359
1540
|
}
|
|
1360
|
-
uint64_t NowMicros() override { return target_->NowMicros(); }
|
|
1361
|
-
uint64_t NowNanos() override { return target_->NowNanos(); }
|
|
1362
|
-
uint64_t NowCPUNanos() override { return target_->NowCPUNanos(); }
|
|
1541
|
+
uint64_t NowMicros() override { return target_.env->NowMicros(); }
|
|
1542
|
+
uint64_t NowNanos() override { return target_.env->NowNanos(); }
|
|
1543
|
+
uint64_t NowCPUNanos() override { return target_.env->NowCPUNanos(); }
|
|
1363
1544
|
|
|
1364
1545
|
void SleepForMicroseconds(int micros) override {
|
|
1365
|
-
target_->SleepForMicroseconds(micros);
|
|
1546
|
+
target_.env->SleepForMicroseconds(micros);
|
|
1366
1547
|
}
|
|
1367
1548
|
Status GetHostName(char* name, uint64_t len) override {
|
|
1368
|
-
return target_->GetHostName(name, len);
|
|
1549
|
+
return target_.env->GetHostName(name, len);
|
|
1369
1550
|
}
|
|
1370
1551
|
Status GetCurrentTime(int64_t* unix_time) override {
|
|
1371
|
-
return target_->GetCurrentTime(unix_time);
|
|
1552
|
+
return target_.env->GetCurrentTime(unix_time);
|
|
1372
1553
|
}
|
|
1373
1554
|
Status GetAbsolutePath(const std::string& db_path,
|
|
1374
1555
|
std::string* output_path) override {
|
|
1375
|
-
return target_->GetAbsolutePath(db_path, output_path);
|
|
1556
|
+
return target_.env->GetAbsolutePath(db_path, output_path);
|
|
1376
1557
|
}
|
|
1377
1558
|
void SetBackgroundThreads(int num, Priority pri) override {
|
|
1378
|
-
return target_->SetBackgroundThreads(num, pri);
|
|
1559
|
+
return target_.env->SetBackgroundThreads(num, pri);
|
|
1379
1560
|
}
|
|
1380
1561
|
int GetBackgroundThreads(Priority pri) override {
|
|
1381
|
-
return target_->GetBackgroundThreads(pri);
|
|
1562
|
+
return target_.env->GetBackgroundThreads(pri);
|
|
1382
1563
|
}
|
|
1383
1564
|
|
|
1384
1565
|
Status SetAllowNonOwnerAccess(bool allow_non_owner_access) override {
|
|
1385
|
-
return target_->SetAllowNonOwnerAccess(allow_non_owner_access);
|
|
1566
|
+
return target_.env->SetAllowNonOwnerAccess(allow_non_owner_access);
|
|
1386
1567
|
}
|
|
1387
1568
|
|
|
1388
1569
|
void IncBackgroundThreadsIfNeeded(int num, Priority pri) override {
|
|
1389
|
-
return target_->IncBackgroundThreadsIfNeeded(num, pri);
|
|
1570
|
+
return target_.env->IncBackgroundThreadsIfNeeded(num, pri);
|
|
1390
1571
|
}
|
|
1391
1572
|
|
|
1392
1573
|
void LowerThreadPoolIOPriority(Priority pool) override {
|
|
1393
|
-
target_->LowerThreadPoolIOPriority(pool);
|
|
1574
|
+
target_.env->LowerThreadPoolIOPriority(pool);
|
|
1394
1575
|
}
|
|
1395
1576
|
|
|
1396
1577
|
void LowerThreadPoolCPUPriority(Priority pool) override {
|
|
1397
|
-
target_->LowerThreadPoolCPUPriority(pool);
|
|
1578
|
+
target_.env->LowerThreadPoolCPUPriority(pool);
|
|
1398
1579
|
}
|
|
1399
1580
|
|
|
1400
1581
|
Status LowerThreadPoolCPUPriority(Priority pool, CpuPriority pri) override {
|
|
1401
|
-
return target_->LowerThreadPoolCPUPriority(pool, pri);
|
|
1582
|
+
return target_.env->LowerThreadPoolCPUPriority(pool, pri);
|
|
1402
1583
|
}
|
|
1403
1584
|
|
|
1404
1585
|
std::string TimeToString(uint64_t time) override {
|
|
1405
|
-
return target_->TimeToString(time);
|
|
1586
|
+
return target_.env->TimeToString(time);
|
|
1406
1587
|
}
|
|
1407
1588
|
|
|
1408
1589
|
Status GetThreadList(std::vector<ThreadStatus>* thread_list) override {
|
|
1409
|
-
return target_->GetThreadList(thread_list);
|
|
1590
|
+
return target_.env->GetThreadList(thread_list);
|
|
1410
1591
|
}
|
|
1411
1592
|
|
|
1412
1593
|
ThreadStatusUpdater* GetThreadStatusUpdater() const override {
|
|
1413
|
-
return target_->GetThreadStatusUpdater();
|
|
1594
|
+
return target_.env->GetThreadStatusUpdater();
|
|
1414
1595
|
}
|
|
1415
1596
|
|
|
1416
|
-
uint64_t GetThreadID() const override { return target_->GetThreadID(); }
|
|
1597
|
+
uint64_t GetThreadID() const override { return target_.env->GetThreadID(); }
|
|
1417
1598
|
|
|
1418
1599
|
std::string GenerateUniqueId() override {
|
|
1419
|
-
return target_->GenerateUniqueId();
|
|
1600
|
+
return target_.env->GenerateUniqueId();
|
|
1420
1601
|
}
|
|
1421
1602
|
|
|
1422
1603
|
EnvOptions OptimizeForLogRead(const EnvOptions& env_options) const override {
|
|
1423
|
-
return target_->OptimizeForLogRead(env_options);
|
|
1604
|
+
return target_.env->OptimizeForLogRead(env_options);
|
|
1424
1605
|
}
|
|
1425
1606
|
EnvOptions OptimizeForManifestRead(
|
|
1426
1607
|
const EnvOptions& env_options) const override {
|
|
1427
|
-
return target_->OptimizeForManifestRead(env_options);
|
|
1608
|
+
return target_.env->OptimizeForManifestRead(env_options);
|
|
1428
1609
|
}
|
|
1429
1610
|
EnvOptions OptimizeForLogWrite(const EnvOptions& env_options,
|
|
1430
1611
|
const DBOptions& db_options) const override {
|
|
1431
|
-
return target_->OptimizeForLogWrite(env_options, db_options);
|
|
1612
|
+
return target_.env->OptimizeForLogWrite(env_options, db_options);
|
|
1432
1613
|
}
|
|
1433
1614
|
EnvOptions OptimizeForManifestWrite(
|
|
1434
1615
|
const EnvOptions& env_options) const override {
|
|
1435
|
-
return target_->OptimizeForManifestWrite(env_options);
|
|
1616
|
+
return target_.env->OptimizeForManifestWrite(env_options);
|
|
1436
1617
|
}
|
|
1437
1618
|
EnvOptions OptimizeForCompactionTableWrite(
|
|
1438
1619
|
const EnvOptions& env_options,
|
|
1439
1620
|
const ImmutableDBOptions& immutable_ops) const override {
|
|
1440
|
-
return target_->OptimizeForCompactionTableWrite(env_options,
|
|
1621
|
+
return target_.env->OptimizeForCompactionTableWrite(env_options,
|
|
1622
|
+
immutable_ops);
|
|
1441
1623
|
}
|
|
1442
1624
|
EnvOptions OptimizeForCompactionTableRead(
|
|
1443
1625
|
const EnvOptions& env_options,
|
|
1444
1626
|
const ImmutableDBOptions& db_options) const override {
|
|
1445
|
-
return target_->OptimizeForCompactionTableRead(env_options, db_options);
|
|
1627
|
+
return target_.env->OptimizeForCompactionTableRead(env_options, db_options);
|
|
1628
|
+
}
|
|
1629
|
+
EnvOptions OptimizeForBlobFileRead(
|
|
1630
|
+
const EnvOptions& env_options,
|
|
1631
|
+
const ImmutableDBOptions& db_options) const override {
|
|
1632
|
+
return target_.env->OptimizeForBlobFileRead(env_options, db_options);
|
|
1446
1633
|
}
|
|
1447
1634
|
Status GetFreeSpace(const std::string& path, uint64_t* diskfree) override {
|
|
1448
|
-
return target_->GetFreeSpace(path, diskfree);
|
|
1635
|
+
return target_.env->GetFreeSpace(path, diskfree);
|
|
1449
1636
|
}
|
|
1450
1637
|
void SanitizeEnvOptions(EnvOptions* env_opts) const override {
|
|
1451
|
-
target_->SanitizeEnvOptions(env_opts);
|
|
1638
|
+
target_.env->SanitizeEnvOptions(env_opts);
|
|
1452
1639
|
}
|
|
1640
|
+
Status PrepareOptions(const ConfigOptions& options) override;
|
|
1641
|
+
#ifndef ROCKSDB_LITE
|
|
1642
|
+
std::string SerializeOptions(const ConfigOptions& config_options,
|
|
1643
|
+
const std::string& header) const override;
|
|
1644
|
+
#endif // ROCKSDB_LITE
|
|
1453
1645
|
|
|
1454
1646
|
private:
|
|
1455
|
-
|
|
1647
|
+
Target target_;
|
|
1456
1648
|
};
|
|
1457
1649
|
|
|
1458
1650
|
class SequentialFileWrapper : public SequentialFile {
|
|
@@ -1515,9 +1707,18 @@ class WritableFileWrapper : public WritableFile {
|
|
|
1515
1707
|
explicit WritableFileWrapper(WritableFile* t) : target_(t) {}
|
|
1516
1708
|
|
|
1517
1709
|
Status Append(const Slice& data) override { return target_->Append(data); }
|
|
1710
|
+
Status Append(const Slice& data,
|
|
1711
|
+
const DataVerificationInfo& verification_info) override {
|
|
1712
|
+
return target_->Append(data, verification_info);
|
|
1713
|
+
}
|
|
1518
1714
|
Status PositionedAppend(const Slice& data, uint64_t offset) override {
|
|
1519
1715
|
return target_->PositionedAppend(data, offset);
|
|
1520
1716
|
}
|
|
1717
|
+
Status PositionedAppend(
|
|
1718
|
+
const Slice& data, uint64_t offset,
|
|
1719
|
+
const DataVerificationInfo& verification_info) override {
|
|
1720
|
+
return target_->PositionedAppend(data, offset, verification_info);
|
|
1721
|
+
}
|
|
1521
1722
|
Status Truncate(uint64_t size) override { return target_->Truncate(size); }
|
|
1522
1723
|
Status Close() override { return target_->Close(); }
|
|
1523
1724
|
Status Flush() override { return target_->Flush(); }
|
|
@@ -1651,10 +1852,6 @@ class LoggerWrapper : public Logger {
|
|
|
1651
1852
|
// *base_env must remain live while the result is in use.
|
|
1652
1853
|
Env* NewMemEnv(Env* base_env);
|
|
1653
1854
|
|
|
1654
|
-
// Returns a new environment that is used for HDFS environment.
|
|
1655
|
-
// This is a factory method for HdfsEnv declared in hdfs/env_hdfs.h
|
|
1656
|
-
Status NewHdfsEnv(Env** hdfs_env, const std::string& fsname);
|
|
1657
|
-
|
|
1658
1855
|
// Returns a new environment that measures function call times for filesystem
|
|
1659
1856
|
// operations, reporting results to variables in PerfContext.
|
|
1660
1857
|
// This is a factory method for TimedEnv defined in utilities/env_timed.cc.
|
|
@@ -1666,6 +1863,8 @@ Env* NewTimedEnv(Env* base_env);
|
|
|
1666
1863
|
Status NewEnvLogger(const std::string& fname, Env* env,
|
|
1667
1864
|
std::shared_ptr<Logger>* result);
|
|
1668
1865
|
|
|
1866
|
+
// Creates a new Env based on Env::Default() but modified to use the specified
|
|
1867
|
+
// FileSystem.
|
|
1669
1868
|
std::unique_ptr<Env> NewCompositeEnv(const std::shared_ptr<FileSystem>& fs);
|
|
1670
1869
|
|
|
1671
1870
|
} // namespace ROCKSDB_NAMESPACE
|