@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
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
//
|
|
6
|
+
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
7
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
8
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
9
|
+
|
|
10
|
+
#pragma once
|
|
11
|
+
#ifndef ROCKSDB_LITE
|
|
12
|
+
|
|
13
|
+
#include <cstdint>
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include <map>
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <vector>
|
|
18
|
+
|
|
19
|
+
#include "rocksdb/env.h"
|
|
20
|
+
#include "rocksdb/io_status.h"
|
|
21
|
+
#include "rocksdb/metadata.h"
|
|
22
|
+
#include "rocksdb/options.h"
|
|
23
|
+
#include "rocksdb/status.h"
|
|
24
|
+
|
|
25
|
+
namespace ROCKSDB_NAMESPACE {
|
|
26
|
+
|
|
27
|
+
// The default DB file checksum function name.
|
|
28
|
+
constexpr char kDbFileChecksumFuncName[] = "FileChecksumCrc32c";
|
|
29
|
+
// The default BackupEngine file checksum function name.
|
|
30
|
+
constexpr char kBackupFileChecksumFuncName[] = "crc32c";
|
|
31
|
+
|
|
32
|
+
struct BackupEngineOptions {
|
|
33
|
+
// Where to keep the backup files. Has to be different than dbname_
|
|
34
|
+
// Best to set this to dbname_ + "/backups"
|
|
35
|
+
// Required
|
|
36
|
+
std::string backup_dir;
|
|
37
|
+
|
|
38
|
+
// Backup Env object. It will be used for backup file I/O. If it's
|
|
39
|
+
// nullptr, backups will be written out using DBs Env. If it's
|
|
40
|
+
// non-nullptr, backup's I/O will be performed using this object.
|
|
41
|
+
// Default: nullptr
|
|
42
|
+
Env* backup_env;
|
|
43
|
+
|
|
44
|
+
// share_table_files supports table and blob files.
|
|
45
|
+
//
|
|
46
|
+
// If share_table_files == true, the backup directory will share table and
|
|
47
|
+
// blob files among backups, to save space among backups of the same DB and to
|
|
48
|
+
// enable incremental backups by only copying new files.
|
|
49
|
+
// If share_table_files == false, each backup will be on its own and will not
|
|
50
|
+
// share any data with other backups.
|
|
51
|
+
//
|
|
52
|
+
// default: true
|
|
53
|
+
bool share_table_files;
|
|
54
|
+
|
|
55
|
+
// Backup info and error messages will be written to info_log
|
|
56
|
+
// if non-nullptr.
|
|
57
|
+
// Default: nullptr
|
|
58
|
+
Logger* info_log;
|
|
59
|
+
|
|
60
|
+
// If sync == true, we can guarantee you'll get consistent backup and
|
|
61
|
+
// restore even on a machine crash/reboot. Backup and restore processes are
|
|
62
|
+
// slower with sync enabled. If sync == false, we can only guarantee that
|
|
63
|
+
// other previously synced backups and restores are not modified while
|
|
64
|
+
// creating a new one.
|
|
65
|
+
// Default: true
|
|
66
|
+
bool sync;
|
|
67
|
+
|
|
68
|
+
// If true, it will delete whatever backups there are already
|
|
69
|
+
// Default: false
|
|
70
|
+
bool destroy_old_data;
|
|
71
|
+
|
|
72
|
+
// If false, we won't backup log files. This option can be useful for backing
|
|
73
|
+
// up in-memory databases where log file are persisted, but table files are in
|
|
74
|
+
// memory.
|
|
75
|
+
// Default: true
|
|
76
|
+
bool backup_log_files;
|
|
77
|
+
|
|
78
|
+
// Max bytes that can be transferred in a second during backup.
|
|
79
|
+
// If 0, go as fast as you can
|
|
80
|
+
// This limit only applies to writes. To also limit reads,
|
|
81
|
+
// a rate limiter able to also limit reads (e.g, its mode = kAllIo)
|
|
82
|
+
// have to be passed in through the option "backup_rate_limiter"
|
|
83
|
+
// Default: 0
|
|
84
|
+
uint64_t backup_rate_limit;
|
|
85
|
+
|
|
86
|
+
// Backup rate limiter. Used to control transfer speed for backup. If this is
|
|
87
|
+
// not null, backup_rate_limit is ignored.
|
|
88
|
+
// Default: nullptr
|
|
89
|
+
std::shared_ptr<RateLimiter> backup_rate_limiter{nullptr};
|
|
90
|
+
|
|
91
|
+
// Max bytes that can be transferred in a second during restore.
|
|
92
|
+
// If 0, go as fast as you can
|
|
93
|
+
// This limit only applies to writes. To also limit reads,
|
|
94
|
+
// a rate limiter able to also limit reads (e.g, its mode = kAllIo)
|
|
95
|
+
// have to be passed in through the option "restore_rate_limiter"
|
|
96
|
+
// Default: 0
|
|
97
|
+
uint64_t restore_rate_limit;
|
|
98
|
+
|
|
99
|
+
// Restore rate limiter. Used to control transfer speed during restore. If
|
|
100
|
+
// this is not null, restore_rate_limit is ignored.
|
|
101
|
+
// Default: nullptr
|
|
102
|
+
std::shared_ptr<RateLimiter> restore_rate_limiter{nullptr};
|
|
103
|
+
|
|
104
|
+
// share_files_with_checksum supports table and blob files.
|
|
105
|
+
//
|
|
106
|
+
// Only used if share_table_files is set to true. Setting to false is
|
|
107
|
+
// DEPRECATED and potentially dangerous because in that case BackupEngine
|
|
108
|
+
// can lose data if backing up databases with distinct or divergent
|
|
109
|
+
// history, for example if restoring from a backup other than the latest,
|
|
110
|
+
// writing to the DB, and creating another backup. Setting to true (default)
|
|
111
|
+
// prevents these issues by ensuring that different table files (SSTs) and
|
|
112
|
+
// blob files with the same number are treated as distinct. See
|
|
113
|
+
// share_files_with_checksum_naming and ShareFilesNaming.
|
|
114
|
+
//
|
|
115
|
+
// Default: true
|
|
116
|
+
bool share_files_with_checksum;
|
|
117
|
+
|
|
118
|
+
// Up to this many background threads will copy files for CreateNewBackup()
|
|
119
|
+
// and RestoreDBFromBackup()
|
|
120
|
+
// Default: 1
|
|
121
|
+
int max_background_operations;
|
|
122
|
+
|
|
123
|
+
// During backup user can get callback every time next
|
|
124
|
+
// callback_trigger_interval_size bytes being copied.
|
|
125
|
+
// Default: 4194304
|
|
126
|
+
uint64_t callback_trigger_interval_size;
|
|
127
|
+
|
|
128
|
+
// For BackupEngineReadOnly, Open() will open at most this many of the
|
|
129
|
+
// latest non-corrupted backups.
|
|
130
|
+
//
|
|
131
|
+
// Note: this setting is ignored (behaves like INT_MAX) for any kind of
|
|
132
|
+
// writable BackupEngine because it would inhibit accounting for shared
|
|
133
|
+
// files for proper backup deletion, including purging any incompletely
|
|
134
|
+
// created backups on creation of a new backup.
|
|
135
|
+
//
|
|
136
|
+
// Default: INT_MAX
|
|
137
|
+
int max_valid_backups_to_open;
|
|
138
|
+
|
|
139
|
+
// ShareFilesNaming describes possible naming schemes for backup
|
|
140
|
+
// table and blob file names when they are stored in the
|
|
141
|
+
// shared_checksum directory (i.e., both share_table_files and
|
|
142
|
+
// share_files_with_checksum are true).
|
|
143
|
+
enum ShareFilesNaming : uint32_t {
|
|
144
|
+
// Backup blob filenames are <file_number>_<crc32c>_<file_size>.blob and
|
|
145
|
+
// backup SST filenames are <file_number>_<crc32c>_<file_size>.sst
|
|
146
|
+
// where <crc32c> is an unsigned decimal integer. This is the
|
|
147
|
+
// original/legacy naming scheme for share_files_with_checksum,
|
|
148
|
+
// with two problems:
|
|
149
|
+
// * At massive scale, collisions on this triple with different file
|
|
150
|
+
// contents is plausible.
|
|
151
|
+
// * Determining the name to use requires computing the checksum,
|
|
152
|
+
// so generally requires reading the whole file even if the file
|
|
153
|
+
// is already backed up.
|
|
154
|
+
//
|
|
155
|
+
// ** ONLY RECOMMENDED FOR PRESERVING OLD BEHAVIOR **
|
|
156
|
+
kLegacyCrc32cAndFileSize = 1U,
|
|
157
|
+
|
|
158
|
+
// Backup SST filenames are <file_number>_s<db_session_id>.sst. This
|
|
159
|
+
// pair of values should be very strongly unique for a given SST file
|
|
160
|
+
// and easily determined before computing a checksum. The 's' indicates
|
|
161
|
+
// the value is a DB session id, not a checksum.
|
|
162
|
+
//
|
|
163
|
+
// Exceptions:
|
|
164
|
+
// * For blob files, kLegacyCrc32cAndFileSize is used as currently
|
|
165
|
+
// db_session_id is not supported by the blob file format.
|
|
166
|
+
// * For old SST files without a DB session id, kLegacyCrc32cAndFileSize
|
|
167
|
+
// will be used instead, matching the names assigned by RocksDB versions
|
|
168
|
+
// not supporting the newer naming scheme.
|
|
169
|
+
// * See also flags below.
|
|
170
|
+
kUseDbSessionId = 2U,
|
|
171
|
+
|
|
172
|
+
kMaskNoNamingFlags = 0xffffU,
|
|
173
|
+
|
|
174
|
+
// If not already part of the naming scheme, insert
|
|
175
|
+
// _<file_size>
|
|
176
|
+
// before .sst and .blob in the name. In case of user code actually parsing
|
|
177
|
+
// the last _<whatever> before the .sst and .blob as the file size, this
|
|
178
|
+
// preserves that feature of kLegacyCrc32cAndFileSize. In other words, this
|
|
179
|
+
// option makes official that unofficial feature of the backup metadata.
|
|
180
|
+
//
|
|
181
|
+
// We do not consider SST and blob file sizes to have sufficient entropy to
|
|
182
|
+
// contribute significantly to naming uniqueness.
|
|
183
|
+
kFlagIncludeFileSize = 1U << 31,
|
|
184
|
+
|
|
185
|
+
kMaskNamingFlags = ~kMaskNoNamingFlags,
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
// Naming option for share_files_with_checksum table and blob files. See
|
|
189
|
+
// ShareFilesNaming for details.
|
|
190
|
+
//
|
|
191
|
+
// Modifying this option cannot introduce a downgrade compatibility issue
|
|
192
|
+
// because RocksDB can read, restore, and delete backups using different file
|
|
193
|
+
// names, and it's OK for a backup directory to use a mixture of table and
|
|
194
|
+
// blob files naming schemes.
|
|
195
|
+
//
|
|
196
|
+
// However, modifying this option and saving more backups to the same
|
|
197
|
+
// directory can lead to the same file getting saved again to that
|
|
198
|
+
// directory, under the new shared name in addition to the old shared
|
|
199
|
+
// name.
|
|
200
|
+
//
|
|
201
|
+
// Default: kUseDbSessionId | kFlagIncludeFileSize
|
|
202
|
+
//
|
|
203
|
+
// Note: This option comes into effect only if both share_files_with_checksum
|
|
204
|
+
// and share_table_files are true.
|
|
205
|
+
ShareFilesNaming share_files_with_checksum_naming;
|
|
206
|
+
|
|
207
|
+
// Major schema version to use when writing backup meta files
|
|
208
|
+
// 1 (default) - compatible with very old versions of RocksDB.
|
|
209
|
+
// 2 - can be read by RocksDB versions >= 6.19.0. Minimum schema version for
|
|
210
|
+
// * (Experimental) saving and restoring file temperature metadata
|
|
211
|
+
int schema_version = 1;
|
|
212
|
+
|
|
213
|
+
// (Experimental - subject to change or removal) When taking a backup and
|
|
214
|
+
// saving file temperature info (minimum schema_version is 2), there are
|
|
215
|
+
// two potential sources of truth for the placement of files into temperature
|
|
216
|
+
// tiers: (a) the current file temperature reported by the FileSystem or
|
|
217
|
+
// (b) the expected file temperature recorded in DB manifest. When this
|
|
218
|
+
// option is false (default), (b) overrides (a) if both are not UNKNOWN.
|
|
219
|
+
// When true, (a) overrides (b) if both are not UNKNOWN. Regardless of this
|
|
220
|
+
// setting, a known temperature overrides UNKNOWN.
|
|
221
|
+
bool current_temperatures_override_manifest = false;
|
|
222
|
+
|
|
223
|
+
void Dump(Logger* logger) const;
|
|
224
|
+
|
|
225
|
+
explicit BackupEngineOptions(
|
|
226
|
+
const std::string& _backup_dir, Env* _backup_env = nullptr,
|
|
227
|
+
bool _share_table_files = true, Logger* _info_log = nullptr,
|
|
228
|
+
bool _sync = true, bool _destroy_old_data = false,
|
|
229
|
+
bool _backup_log_files = true, uint64_t _backup_rate_limit = 0,
|
|
230
|
+
uint64_t _restore_rate_limit = 0, int _max_background_operations = 1,
|
|
231
|
+
uint64_t _callback_trigger_interval_size = 4 * 1024 * 1024,
|
|
232
|
+
int _max_valid_backups_to_open = INT_MAX,
|
|
233
|
+
ShareFilesNaming _share_files_with_checksum_naming =
|
|
234
|
+
static_cast<ShareFilesNaming>(kUseDbSessionId | kFlagIncludeFileSize))
|
|
235
|
+
: backup_dir(_backup_dir),
|
|
236
|
+
backup_env(_backup_env),
|
|
237
|
+
share_table_files(_share_table_files),
|
|
238
|
+
info_log(_info_log),
|
|
239
|
+
sync(_sync),
|
|
240
|
+
destroy_old_data(_destroy_old_data),
|
|
241
|
+
backup_log_files(_backup_log_files),
|
|
242
|
+
backup_rate_limit(_backup_rate_limit),
|
|
243
|
+
restore_rate_limit(_restore_rate_limit),
|
|
244
|
+
share_files_with_checksum(true),
|
|
245
|
+
max_background_operations(_max_background_operations),
|
|
246
|
+
callback_trigger_interval_size(_callback_trigger_interval_size),
|
|
247
|
+
max_valid_backups_to_open(_max_valid_backups_to_open),
|
|
248
|
+
share_files_with_checksum_naming(_share_files_with_checksum_naming) {
|
|
249
|
+
assert(share_table_files || !share_files_with_checksum);
|
|
250
|
+
assert((share_files_with_checksum_naming & kMaskNoNamingFlags) != 0);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
inline BackupEngineOptions::ShareFilesNaming operator&(
|
|
255
|
+
BackupEngineOptions::ShareFilesNaming lhs,
|
|
256
|
+
BackupEngineOptions::ShareFilesNaming rhs) {
|
|
257
|
+
uint32_t l = static_cast<uint32_t>(lhs);
|
|
258
|
+
uint32_t r = static_cast<uint32_t>(rhs);
|
|
259
|
+
assert(r == BackupEngineOptions::kMaskNoNamingFlags ||
|
|
260
|
+
(r & BackupEngineOptions::kMaskNoNamingFlags) == 0);
|
|
261
|
+
return static_cast<BackupEngineOptions::ShareFilesNaming>(l & r);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
inline BackupEngineOptions::ShareFilesNaming operator|(
|
|
265
|
+
BackupEngineOptions::ShareFilesNaming lhs,
|
|
266
|
+
BackupEngineOptions::ShareFilesNaming rhs) {
|
|
267
|
+
uint32_t l = static_cast<uint32_t>(lhs);
|
|
268
|
+
uint32_t r = static_cast<uint32_t>(rhs);
|
|
269
|
+
assert((r & BackupEngineOptions::kMaskNoNamingFlags) == 0);
|
|
270
|
+
return static_cast<BackupEngineOptions::ShareFilesNaming>(l | r);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
struct CreateBackupOptions {
|
|
274
|
+
// Flush will always trigger if 2PC is enabled.
|
|
275
|
+
// If write-ahead logs are disabled, set flush_before_backup=true to
|
|
276
|
+
// avoid losing unflushed key/value pairs from the memtable.
|
|
277
|
+
bool flush_before_backup = false;
|
|
278
|
+
|
|
279
|
+
// Callback for reporting progress, based on callback_trigger_interval_size.
|
|
280
|
+
//
|
|
281
|
+
// RocksDB callbacks are NOT exception-safe. A callback completing with an
|
|
282
|
+
// exception can lead to undefined behavior in RocksDB, including data loss,
|
|
283
|
+
// unreported corruption, deadlocks, and more.
|
|
284
|
+
std::function<void()> progress_callback = []() {};
|
|
285
|
+
|
|
286
|
+
// If false, background_thread_cpu_priority is ignored.
|
|
287
|
+
// Otherwise, the cpu priority can be decreased,
|
|
288
|
+
// if you try to increase the priority, the priority will not change.
|
|
289
|
+
// The initial priority of the threads is CpuPriority::kNormal,
|
|
290
|
+
// so you can decrease to priorities lower than kNormal.
|
|
291
|
+
bool decrease_background_thread_cpu_priority = false;
|
|
292
|
+
CpuPriority background_thread_cpu_priority = CpuPriority::kNormal;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
struct RestoreOptions {
|
|
296
|
+
// If true, restore won't overwrite the existing log files in wal_dir. It will
|
|
297
|
+
// also move all log files from archive directory to wal_dir. Use this option
|
|
298
|
+
// in combination with BackupEngineOptions::backup_log_files = false for
|
|
299
|
+
// persisting in-memory databases.
|
|
300
|
+
// Default: false
|
|
301
|
+
bool keep_log_files;
|
|
302
|
+
|
|
303
|
+
explicit RestoreOptions(bool _keep_log_files = false)
|
|
304
|
+
: keep_log_files(_keep_log_files) {}
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
using BackupID = uint32_t;
|
|
308
|
+
|
|
309
|
+
using BackupFileInfo = FileStorageInfo;
|
|
310
|
+
|
|
311
|
+
struct BackupInfo {
|
|
312
|
+
BackupID backup_id = 0U;
|
|
313
|
+
// Creation time, according to GetCurrentTime
|
|
314
|
+
int64_t timestamp = 0;
|
|
315
|
+
|
|
316
|
+
// Total size in bytes (based on file payloads, not including filesystem
|
|
317
|
+
// overheads or backup meta file)
|
|
318
|
+
uint64_t size = 0U;
|
|
319
|
+
|
|
320
|
+
// Number of backed up files, some of which might be shared with other
|
|
321
|
+
// backups. Does not include backup meta file.
|
|
322
|
+
uint32_t number_files = 0U;
|
|
323
|
+
|
|
324
|
+
// Backup API user metadata
|
|
325
|
+
std::string app_metadata;
|
|
326
|
+
|
|
327
|
+
// Backup file details, if requested with include_file_details=true
|
|
328
|
+
std::vector<BackupFileInfo> file_details;
|
|
329
|
+
|
|
330
|
+
// DB "name" (a directory in the backup_env) for opening this backup as a
|
|
331
|
+
// read-only DB. This should also be used as the DBOptions::wal_dir, such
|
|
332
|
+
// as by default setting wal_dir="". See also env_for_open.
|
|
333
|
+
// This field is only set if include_file_details=true
|
|
334
|
+
std::string name_for_open;
|
|
335
|
+
|
|
336
|
+
// An Env(+FileSystem) for opening this backup as a read-only DB, with
|
|
337
|
+
// DB::OpenForReadOnly or similar. This field is only set if
|
|
338
|
+
// include_file_details=true. (The FileSystem in this Env takes care
|
|
339
|
+
// of making shared backup files openable from the `name_for_open` DB
|
|
340
|
+
// directory.) See also name_for_open.
|
|
341
|
+
//
|
|
342
|
+
// This Env might or might not be shared with other backups. To work
|
|
343
|
+
// around DBOptions::env being a raw pointer, this is a shared_ptr so
|
|
344
|
+
// that keeping either this BackupInfo, the BackupEngine, or a copy of
|
|
345
|
+
// this shared_ptr alive is sufficient to keep the Env alive for use by
|
|
346
|
+
// a read-only DB.
|
|
347
|
+
std::shared_ptr<Env> env_for_open;
|
|
348
|
+
|
|
349
|
+
BackupInfo() {}
|
|
350
|
+
|
|
351
|
+
BackupInfo(BackupID _backup_id, int64_t _timestamp, uint64_t _size,
|
|
352
|
+
uint32_t _number_files, const std::string& _app_metadata)
|
|
353
|
+
: backup_id(_backup_id),
|
|
354
|
+
timestamp(_timestamp),
|
|
355
|
+
size(_size),
|
|
356
|
+
number_files(_number_files),
|
|
357
|
+
app_metadata(_app_metadata) {}
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
class BackupStatistics {
|
|
361
|
+
public:
|
|
362
|
+
BackupStatistics() {
|
|
363
|
+
number_success_backup = 0;
|
|
364
|
+
number_fail_backup = 0;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
BackupStatistics(uint32_t _number_success_backup,
|
|
368
|
+
uint32_t _number_fail_backup)
|
|
369
|
+
: number_success_backup(_number_success_backup),
|
|
370
|
+
number_fail_backup(_number_fail_backup) {}
|
|
371
|
+
|
|
372
|
+
~BackupStatistics() {}
|
|
373
|
+
|
|
374
|
+
void IncrementNumberSuccessBackup();
|
|
375
|
+
void IncrementNumberFailBackup();
|
|
376
|
+
|
|
377
|
+
uint32_t GetNumberSuccessBackup() const;
|
|
378
|
+
uint32_t GetNumberFailBackup() const;
|
|
379
|
+
|
|
380
|
+
std::string ToString() const;
|
|
381
|
+
|
|
382
|
+
private:
|
|
383
|
+
uint32_t number_success_backup;
|
|
384
|
+
uint32_t number_fail_backup;
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
// Read-only functions of a BackupEngine. (Restore writes to another directory
|
|
388
|
+
// not the backup directory.) See BackupEngine comments for details on
|
|
389
|
+
// safe concurrent operations.
|
|
390
|
+
class BackupEngineReadOnlyBase {
|
|
391
|
+
public:
|
|
392
|
+
virtual ~BackupEngineReadOnlyBase() {}
|
|
393
|
+
|
|
394
|
+
// Returns info about the latest good backup in backup_info, or NotFound
|
|
395
|
+
// no good backup exists.
|
|
396
|
+
// Setting include_file_details=true provides information about each
|
|
397
|
+
// backed-up file in BackupInfo::file_details and more.
|
|
398
|
+
virtual Status GetLatestBackupInfo(
|
|
399
|
+
BackupInfo* backup_info, bool include_file_details = false) const = 0;
|
|
400
|
+
|
|
401
|
+
// Returns info about a specific backup in backup_info, or NotFound
|
|
402
|
+
// or Corruption status if the requested backup id does not exist or is
|
|
403
|
+
// known corrupt.
|
|
404
|
+
// Setting include_file_details=true provides information about each
|
|
405
|
+
// backed-up file in BackupInfo::file_details and more.
|
|
406
|
+
virtual Status GetBackupInfo(BackupID backup_id, BackupInfo* backup_info,
|
|
407
|
+
bool include_file_details = false) const = 0;
|
|
408
|
+
|
|
409
|
+
// Returns info about non-corrupt backups in backup_infos.
|
|
410
|
+
// Setting include_file_details=true provides information about each
|
|
411
|
+
// backed-up file in BackupInfo::file_details and more.
|
|
412
|
+
virtual void GetBackupInfo(std::vector<BackupInfo>* backup_infos,
|
|
413
|
+
bool include_file_details = false) const = 0;
|
|
414
|
+
|
|
415
|
+
// Returns info about corrupt backups in corrupt_backups.
|
|
416
|
+
// WARNING: Any write to the BackupEngine could trigger automatic
|
|
417
|
+
// GarbageCollect(), which could delete files that would be needed to
|
|
418
|
+
// manually recover a corrupt backup or to preserve an unrecognized (e.g.
|
|
419
|
+
// incompatible future version) backup.
|
|
420
|
+
virtual void GetCorruptedBackups(
|
|
421
|
+
std::vector<BackupID>* corrupt_backup_ids) const = 0;
|
|
422
|
+
|
|
423
|
+
// Restore to specified db_dir and wal_dir from backup_id.
|
|
424
|
+
virtual IOStatus RestoreDBFromBackup(const RestoreOptions& options,
|
|
425
|
+
BackupID backup_id,
|
|
426
|
+
const std::string& db_dir,
|
|
427
|
+
const std::string& wal_dir) const = 0;
|
|
428
|
+
|
|
429
|
+
// keep for backward compatibility.
|
|
430
|
+
virtual IOStatus RestoreDBFromBackup(
|
|
431
|
+
BackupID backup_id, const std::string& db_dir, const std::string& wal_dir,
|
|
432
|
+
const RestoreOptions& options = RestoreOptions()) const {
|
|
433
|
+
return RestoreDBFromBackup(options, backup_id, db_dir, wal_dir);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
// Like RestoreDBFromBackup but restores from latest non-corrupt backup_id
|
|
437
|
+
virtual IOStatus RestoreDBFromLatestBackup(
|
|
438
|
+
const RestoreOptions& options, const std::string& db_dir,
|
|
439
|
+
const std::string& wal_dir) const = 0;
|
|
440
|
+
|
|
441
|
+
// keep for backward compatibility.
|
|
442
|
+
virtual IOStatus RestoreDBFromLatestBackup(
|
|
443
|
+
const std::string& db_dir, const std::string& wal_dir,
|
|
444
|
+
const RestoreOptions& options = RestoreOptions()) const {
|
|
445
|
+
return RestoreDBFromLatestBackup(options, db_dir, wal_dir);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
// If verify_with_checksum is true, this function
|
|
449
|
+
// inspects the current checksums and file sizes of backup files to see if
|
|
450
|
+
// they match our expectation.
|
|
451
|
+
//
|
|
452
|
+
// If verify_with_checksum is false, this function
|
|
453
|
+
// checks that each file exists and that the size of the file matches our
|
|
454
|
+
// expectation. It does not check file checksum.
|
|
455
|
+
//
|
|
456
|
+
// If this BackupEngine created the backup, it compares the files' current
|
|
457
|
+
// sizes (and current checksum) against the number of bytes written to
|
|
458
|
+
// them (and the checksum calculated) during creation.
|
|
459
|
+
// Otherwise, it compares the files' current sizes (and checksums) against
|
|
460
|
+
// their sizes (and checksums) when the BackupEngine was opened.
|
|
461
|
+
//
|
|
462
|
+
// Returns Status::OK() if all checks are good
|
|
463
|
+
virtual IOStatus VerifyBackup(BackupID backup_id,
|
|
464
|
+
bool verify_with_checksum = false) const = 0;
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
// Append-only functions of a BackupEngine. See BackupEngine comment for
|
|
468
|
+
// details on distinction between Append and Write operations and safe
|
|
469
|
+
// concurrent operations.
|
|
470
|
+
class BackupEngineAppendOnlyBase {
|
|
471
|
+
public:
|
|
472
|
+
virtual ~BackupEngineAppendOnlyBase() {}
|
|
473
|
+
|
|
474
|
+
// same as CreateNewBackup, but stores extra application metadata.
|
|
475
|
+
virtual IOStatus CreateNewBackupWithMetadata(
|
|
476
|
+
const CreateBackupOptions& options, DB* db,
|
|
477
|
+
const std::string& app_metadata, BackupID* new_backup_id = nullptr) = 0;
|
|
478
|
+
|
|
479
|
+
// keep here for backward compatibility.
|
|
480
|
+
virtual IOStatus CreateNewBackupWithMetadata(
|
|
481
|
+
DB* db, const std::string& app_metadata, bool flush_before_backup = false,
|
|
482
|
+
std::function<void()> progress_callback = []() {}) {
|
|
483
|
+
CreateBackupOptions options;
|
|
484
|
+
options.flush_before_backup = flush_before_backup;
|
|
485
|
+
options.progress_callback = progress_callback;
|
|
486
|
+
return CreateNewBackupWithMetadata(options, db, app_metadata);
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
// Captures the state of the database by creating a new (latest) backup.
|
|
490
|
+
// On success (OK status), the BackupID of the new backup is saved to
|
|
491
|
+
// *new_backup_id when not nullptr.
|
|
492
|
+
// NOTE: db_paths and cf_paths are not supported for creating backups,
|
|
493
|
+
// and NotSupported will be returned when the DB (without WALs) uses more
|
|
494
|
+
// than one directory.
|
|
495
|
+
virtual IOStatus CreateNewBackup(const CreateBackupOptions& options, DB* db,
|
|
496
|
+
BackupID* new_backup_id = nullptr) {
|
|
497
|
+
return CreateNewBackupWithMetadata(options, db, "", new_backup_id);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// keep here for backward compatibility.
|
|
501
|
+
virtual IOStatus CreateNewBackup(
|
|
502
|
+
DB* db, bool flush_before_backup = false,
|
|
503
|
+
std::function<void()> progress_callback = []() {}) {
|
|
504
|
+
CreateBackupOptions options;
|
|
505
|
+
options.flush_before_backup = flush_before_backup;
|
|
506
|
+
options.progress_callback = progress_callback;
|
|
507
|
+
return CreateNewBackup(options, db);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
// Call this from another thread if you want to stop the backup
|
|
511
|
+
// that is currently happening. It will return immediately, will
|
|
512
|
+
// not wait for the backup to stop.
|
|
513
|
+
// The backup will stop ASAP and the call to CreateNewBackup will
|
|
514
|
+
// return Status::Incomplete(). It will not clean up after itself, but
|
|
515
|
+
// the state will remain consistent. The state will be cleaned up the
|
|
516
|
+
// next time you call CreateNewBackup or GarbageCollect.
|
|
517
|
+
virtual void StopBackup() = 0;
|
|
518
|
+
|
|
519
|
+
// Will delete any files left over from incomplete creation or deletion of
|
|
520
|
+
// a backup. This is not normally needed as those operations also clean up
|
|
521
|
+
// after prior incomplete calls to the same kind of operation (create or
|
|
522
|
+
// delete). This does not delete corrupt backups but can delete files that
|
|
523
|
+
// would be needed to manually recover a corrupt backup or to preserve an
|
|
524
|
+
// unrecognized (e.g. incompatible future version) backup.
|
|
525
|
+
// NOTE: This is not designed to delete arbitrary files added to the backup
|
|
526
|
+
// directory outside of BackupEngine, and clean-up is always subject to
|
|
527
|
+
// permissions on and availability of the underlying filesystem.
|
|
528
|
+
// NOTE2: For concurrency and interference purposes (see BackupEngine
|
|
529
|
+
// comment), GarbageCollect (GC) is like other Append operations, even
|
|
530
|
+
// though it seems different. Although GC can delete physical data, it does
|
|
531
|
+
// not delete any logical data read by Read operations. GC can interfere
|
|
532
|
+
// with Append or Write operations in another BackupEngine on the same
|
|
533
|
+
// backup_dir, because temporary files will be treated as obsolete and
|
|
534
|
+
// deleted.
|
|
535
|
+
virtual IOStatus GarbageCollect() = 0;
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
// A backup engine for organizing and managing backups.
|
|
539
|
+
// This class is not user-extensible.
|
|
540
|
+
//
|
|
541
|
+
// This class declaration adds "Write" operations in addition to the
|
|
542
|
+
// operations from BackupEngineAppendOnlyBase and BackupEngineReadOnlyBase.
|
|
543
|
+
//
|
|
544
|
+
// # Concurrency between threads on the same BackupEngine* object
|
|
545
|
+
//
|
|
546
|
+
// As of version 6.20, BackupEngine* operations are generally thread-safe,
|
|
547
|
+
// using a read-write lock, though single-thread operation is still
|
|
548
|
+
// recommended to avoid TOCTOU bugs. Specifically, particular kinds of
|
|
549
|
+
// concurrent operations behave like this:
|
|
550
|
+
//
|
|
551
|
+
// op1\op2| Read | Append | Write
|
|
552
|
+
// -------|-------|--------|--------
|
|
553
|
+
// Read | conc | block | block
|
|
554
|
+
// Append | block | block | block
|
|
555
|
+
// Write | block | block | block
|
|
556
|
+
//
|
|
557
|
+
// conc = operations safely proceed concurrently
|
|
558
|
+
// block = one of the operations safely blocks until the other completes.
|
|
559
|
+
// There is generally no guarantee as to which completes first.
|
|
560
|
+
//
|
|
561
|
+
// StopBackup is the only operation that affects an ongoing operation.
|
|
562
|
+
//
|
|
563
|
+
// # Interleaving operations between BackupEngine* objects open on the
|
|
564
|
+
// same backup_dir
|
|
565
|
+
//
|
|
566
|
+
// It is recommended only to have one BackupEngine* object open for a given
|
|
567
|
+
// backup_dir, but it is possible to mix / interleave some operations
|
|
568
|
+
// (regardless of whether they are concurrent) with these caveats:
|
|
569
|
+
//
|
|
570
|
+
// op1\op2| Open | Read | Append | Write
|
|
571
|
+
// -------|--------|--------|--------|--------
|
|
572
|
+
// Open | conc | conc | atomic | unspec
|
|
573
|
+
// Read | conc | conc | old | unspec
|
|
574
|
+
// Append | atomic | old | unspec | unspec
|
|
575
|
+
// Write | unspec | unspec | unspec | unspec
|
|
576
|
+
//
|
|
577
|
+
// Special case: Open with destroy_old_data=true is really a Write
|
|
578
|
+
//
|
|
579
|
+
// conc = operations safely proceed, concurrently when applicable
|
|
580
|
+
// atomic = operations are effectively atomic; if a concurrent Append
|
|
581
|
+
// operation has not completed at some key point during Open, the
|
|
582
|
+
// opened BackupEngine* will never see the result of the Append op.
|
|
583
|
+
// old = Read operations do not include any state changes from other
|
|
584
|
+
// BackupEngine* objects; they return the state at their Open time.
|
|
585
|
+
// unspec = Behavior is unspecified, including possibly trashing the
|
|
586
|
+
// backup_dir, but is "memory safe" (no C++ undefined behavior)
|
|
587
|
+
//
|
|
588
|
+
class BackupEngine : public BackupEngineReadOnlyBase,
|
|
589
|
+
public BackupEngineAppendOnlyBase {
|
|
590
|
+
public:
|
|
591
|
+
virtual ~BackupEngine() {}
|
|
592
|
+
|
|
593
|
+
// BackupEngineOptions have to be the same as the ones used in previous
|
|
594
|
+
// BackupEngines for the same backup directory.
|
|
595
|
+
static IOStatus Open(const BackupEngineOptions& options, Env* db_env,
|
|
596
|
+
BackupEngine** backup_engine_ptr);
|
|
597
|
+
|
|
598
|
+
// keep for backward compatibility.
|
|
599
|
+
static IOStatus Open(Env* db_env, const BackupEngineOptions& options,
|
|
600
|
+
BackupEngine** backup_engine_ptr) {
|
|
601
|
+
return BackupEngine::Open(options, db_env, backup_engine_ptr);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
// Deletes old backups, keeping latest num_backups_to_keep alive.
|
|
605
|
+
// See also DeleteBackup.
|
|
606
|
+
virtual IOStatus PurgeOldBackups(uint32_t num_backups_to_keep) = 0;
|
|
607
|
+
|
|
608
|
+
// Deletes a specific backup. If this operation (or PurgeOldBackups)
|
|
609
|
+
// is not completed due to crash, power failure, etc. the state
|
|
610
|
+
// will be cleaned up the next time you call DeleteBackup,
|
|
611
|
+
// PurgeOldBackups, or GarbageCollect.
|
|
612
|
+
virtual IOStatus DeleteBackup(BackupID backup_id) = 0;
|
|
613
|
+
};
|
|
614
|
+
|
|
615
|
+
// A variant of BackupEngine that only allows "Read" operations. See
|
|
616
|
+
// BackupEngine comment for details. This class is not user-extensible.
|
|
617
|
+
class BackupEngineReadOnly : public BackupEngineReadOnlyBase {
|
|
618
|
+
public:
|
|
619
|
+
virtual ~BackupEngineReadOnly() {}
|
|
620
|
+
|
|
621
|
+
static IOStatus Open(const BackupEngineOptions& options, Env* db_env,
|
|
622
|
+
BackupEngineReadOnly** backup_engine_ptr);
|
|
623
|
+
// keep for backward compatibility.
|
|
624
|
+
static IOStatus Open(Env* db_env, const BackupEngineOptions& options,
|
|
625
|
+
BackupEngineReadOnly** backup_engine_ptr) {
|
|
626
|
+
return BackupEngineReadOnly::Open(options, db_env, backup_engine_ptr);
|
|
627
|
+
}
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
631
|
+
#endif // ROCKSDB_LITE
|