@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
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
#include <limits>
|
|
25
25
|
#include <map>
|
|
26
26
|
#include <memory>
|
|
27
|
+
#include <optional>
|
|
27
28
|
#include <set>
|
|
28
29
|
#include <string>
|
|
29
30
|
#include <unordered_set>
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
#include "table/get_context.h"
|
|
54
55
|
#include "table/multiget_context.h"
|
|
55
56
|
#include "trace_replay/block_cache_tracer.h"
|
|
57
|
+
#include "util/hash_containers.h"
|
|
56
58
|
|
|
57
59
|
namespace ROCKSDB_NAMESPACE {
|
|
58
60
|
|
|
@@ -71,6 +73,8 @@ class WriteBufferManager;
|
|
|
71
73
|
class MergeContext;
|
|
72
74
|
class ColumnFamilySet;
|
|
73
75
|
class MergeIteratorBuilder;
|
|
76
|
+
class SystemClock;
|
|
77
|
+
class ManifestTailer;
|
|
74
78
|
|
|
75
79
|
// VersionEdit is always supposed to be valid and it is used to point at
|
|
76
80
|
// entries in Manifest. Ideally it should not be used as a container to
|
|
@@ -125,16 +129,15 @@ class VersionStorageInfo {
|
|
|
125
129
|
|
|
126
130
|
void AddFile(int level, FileMetaData* f);
|
|
127
131
|
|
|
132
|
+
void ReserveBlob(size_t size) { blob_files_.reserve(size); }
|
|
133
|
+
|
|
128
134
|
void AddBlobFile(std::shared_ptr<BlobFileMetaData> blob_file_meta);
|
|
129
135
|
|
|
130
|
-
void
|
|
136
|
+
void PrepareForVersionAppend(const ImmutableOptions& immutable_options,
|
|
137
|
+
const MutableCFOptions& mutable_cf_options);
|
|
131
138
|
|
|
132
|
-
//
|
|
133
|
-
void
|
|
134
|
-
|
|
135
|
-
void GenerateFileIndexer() {
|
|
136
|
-
file_indexer_.UpdateIndex(&arena_, num_non_empty_levels_, files_);
|
|
137
|
-
}
|
|
139
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
140
|
+
void SetFinalized();
|
|
138
141
|
|
|
139
142
|
// Update the accumulated stats from a file-meta.
|
|
140
143
|
void UpdateAccumulatedStats(FileMetaData* file_meta);
|
|
@@ -142,13 +145,11 @@ class VersionStorageInfo {
|
|
|
142
145
|
// Decrease the current stat from a to-be-deleted file-meta
|
|
143
146
|
void RemoveCurrentStats(FileMetaData* file_meta);
|
|
144
147
|
|
|
145
|
-
void ComputeCompensatedSizes();
|
|
146
|
-
|
|
147
148
|
// Updates internal structures that keep track of compaction scores
|
|
148
149
|
// We use compaction scores to figure out which compaction to do next
|
|
149
150
|
// REQUIRES: db_mutex held!!
|
|
150
151
|
// TODO find a better way to pass compaction_options_fifo.
|
|
151
|
-
void ComputeCompactionScore(const
|
|
152
|
+
void ComputeCompactionScore(const ImmutableOptions& immutable_options,
|
|
152
153
|
const MutableCFOptions& mutable_cf_options);
|
|
153
154
|
|
|
154
155
|
// Estimate est_comp_needed_bytes_
|
|
@@ -161,13 +162,13 @@ class VersionStorageInfo {
|
|
|
161
162
|
|
|
162
163
|
// This computes ttl_expired_files_ and is called by
|
|
163
164
|
// ComputeCompactionScore()
|
|
164
|
-
void ComputeExpiredTtlFiles(const
|
|
165
|
+
void ComputeExpiredTtlFiles(const ImmutableOptions& ioptions,
|
|
165
166
|
const uint64_t ttl);
|
|
166
167
|
|
|
167
168
|
// This computes files_marked_for_periodic_compaction_ and is called by
|
|
168
169
|
// ComputeCompactionScore()
|
|
169
170
|
void ComputeFilesMarkedForPeriodicCompaction(
|
|
170
|
-
const
|
|
171
|
+
const ImmutableOptions& ioptions,
|
|
171
172
|
const uint64_t periodic_compaction_seconds);
|
|
172
173
|
|
|
173
174
|
// This computes bottommost_files_marked_for_compaction_ and is called by
|
|
@@ -182,23 +183,18 @@ class VersionStorageInfo {
|
|
|
182
183
|
// REQUIRES: DB mutex held
|
|
183
184
|
void ComputeBottommostFilesMarkedForCompaction();
|
|
184
185
|
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
//
|
|
188
|
-
//
|
|
189
|
-
|
|
190
|
-
|
|
186
|
+
// This computes files_marked_for_forced_blob_gc_ and is called by
|
|
187
|
+
// ComputeCompactionScore()
|
|
188
|
+
//
|
|
189
|
+
// REQUIRES: DB mutex held
|
|
190
|
+
void ComputeFilesMarkedForForcedBlobGC(
|
|
191
|
+
double blob_garbage_collection_age_cutoff,
|
|
192
|
+
double blob_garbage_collection_force_threshold);
|
|
191
193
|
|
|
192
|
-
void GenerateLevel0NonOverlapping();
|
|
193
194
|
bool level0_non_overlapping() const {
|
|
194
195
|
return level0_non_overlapping_;
|
|
195
196
|
}
|
|
196
197
|
|
|
197
|
-
// Check whether each file in this version is bottommost (i.e., nothing in its
|
|
198
|
-
// key-range could possibly exist in an older file/level).
|
|
199
|
-
// REQUIRES: This version has not been saved
|
|
200
|
-
void GenerateBottommostFiles();
|
|
201
|
-
|
|
202
198
|
// Updates the oldest snapshot and related internal state, like the bottommost
|
|
203
199
|
// files marked for compaction.
|
|
204
200
|
// REQUIRES: DB mutex held
|
|
@@ -259,21 +255,20 @@ class VersionStorageInfo {
|
|
|
259
255
|
|
|
260
256
|
int num_levels() const { return num_levels_; }
|
|
261
257
|
|
|
262
|
-
// REQUIRES:
|
|
258
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
263
259
|
int num_non_empty_levels() const {
|
|
264
260
|
assert(finalized_);
|
|
265
261
|
return num_non_empty_levels_;
|
|
266
262
|
}
|
|
267
263
|
|
|
268
|
-
// REQUIRES:
|
|
269
|
-
// (CalculateBaseBytes() is called)
|
|
264
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
270
265
|
// This may or may not return number of level files. It is to keep backward
|
|
271
266
|
// compatible behavior in universal compaction.
|
|
272
267
|
int l0_delay_trigger_count() const { return l0_delay_trigger_count_; }
|
|
273
268
|
|
|
274
269
|
void set_l0_delay_trigger_count(int v) { l0_delay_trigger_count_ = v; }
|
|
275
270
|
|
|
276
|
-
// REQUIRES: This version has been saved (see
|
|
271
|
+
// REQUIRES: This version has been saved (see VersionBuilder::SaveTo)
|
|
277
272
|
int NumLevelFiles(int level) const {
|
|
278
273
|
assert(finalized_);
|
|
279
274
|
return static_cast<int>(files_[level].size());
|
|
@@ -282,7 +277,7 @@ class VersionStorageInfo {
|
|
|
282
277
|
// Return the combined file size of all files at the specified level.
|
|
283
278
|
uint64_t NumLevelBytes(int level) const;
|
|
284
279
|
|
|
285
|
-
// REQUIRES: This version has been saved (see
|
|
280
|
+
// REQUIRES: This version has been saved (see VersionBuilder::SaveTo)
|
|
286
281
|
const std::vector<FileMetaData*>& LevelFiles(int level) const {
|
|
287
282
|
return files_[level];
|
|
288
283
|
}
|
|
@@ -311,7 +306,7 @@ class VersionStorageInfo {
|
|
|
311
306
|
size_t position_ = 0;
|
|
312
307
|
};
|
|
313
308
|
|
|
314
|
-
// REQUIRES:
|
|
309
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
315
310
|
FileLocation GetFileLocation(uint64_t file_number) const {
|
|
316
311
|
const auto it = file_locations_.find(file_number);
|
|
317
312
|
|
|
@@ -328,7 +323,7 @@ class VersionStorageInfo {
|
|
|
328
323
|
return it->second;
|
|
329
324
|
}
|
|
330
325
|
|
|
331
|
-
// REQUIRES:
|
|
326
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
332
327
|
FileMetaData* GetFileMetaDataByNumber(uint64_t file_number) const {
|
|
333
328
|
auto location = GetFileLocation(file_number);
|
|
334
329
|
|
|
@@ -339,22 +334,68 @@ class VersionStorageInfo {
|
|
|
339
334
|
return files_[location.GetLevel()][location.GetPosition()];
|
|
340
335
|
}
|
|
341
336
|
|
|
342
|
-
// REQUIRES: This version has been saved (see
|
|
343
|
-
using BlobFiles = std::
|
|
337
|
+
// REQUIRES: This version has been saved (see VersionBuilder::SaveTo)
|
|
338
|
+
using BlobFiles = std::vector<std::shared_ptr<BlobFileMetaData>>;
|
|
344
339
|
const BlobFiles& GetBlobFiles() const { return blob_files_; }
|
|
345
340
|
|
|
341
|
+
// REQUIRES: This version has been saved (see VersionBuilder::SaveTo)
|
|
342
|
+
BlobFiles::const_iterator GetBlobFileMetaDataLB(
|
|
343
|
+
uint64_t blob_file_number) const;
|
|
344
|
+
|
|
345
|
+
// REQUIRES: This version has been saved (see VersionBuilder::SaveTo)
|
|
346
|
+
std::shared_ptr<BlobFileMetaData> GetBlobFileMetaData(
|
|
347
|
+
uint64_t blob_file_number) const {
|
|
348
|
+
const auto it = GetBlobFileMetaDataLB(blob_file_number);
|
|
349
|
+
|
|
350
|
+
assert(it == blob_files_.end() || *it);
|
|
351
|
+
|
|
352
|
+
if (it != blob_files_.end() &&
|
|
353
|
+
(*it)->GetBlobFileNumber() == blob_file_number) {
|
|
354
|
+
return *it;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
return std::shared_ptr<BlobFileMetaData>();
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// REQUIRES: This version has been saved (see VersionBuilder::SaveTo)
|
|
361
|
+
struct BlobStats {
|
|
362
|
+
uint64_t total_file_size = 0;
|
|
363
|
+
uint64_t total_garbage_size = 0;
|
|
364
|
+
double space_amp = 0.0;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
BlobStats GetBlobStats() const {
|
|
368
|
+
uint64_t total_file_size = 0;
|
|
369
|
+
uint64_t total_garbage_size = 0;
|
|
370
|
+
|
|
371
|
+
for (const auto& meta : blob_files_) {
|
|
372
|
+
assert(meta);
|
|
373
|
+
|
|
374
|
+
total_file_size += meta->GetBlobFileSize();
|
|
375
|
+
total_garbage_size += meta->GetGarbageBlobBytes();
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
double space_amp = 0.0;
|
|
379
|
+
if (total_file_size > total_garbage_size) {
|
|
380
|
+
space_amp = static_cast<double>(total_file_size) /
|
|
381
|
+
(total_file_size - total_garbage_size);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
return BlobStats{total_file_size, total_garbage_size, space_amp};
|
|
385
|
+
}
|
|
386
|
+
|
|
346
387
|
const ROCKSDB_NAMESPACE::LevelFilesBrief& LevelFilesBrief(int level) const {
|
|
347
388
|
assert(level < static_cast<int>(level_files_brief_.size()));
|
|
348
389
|
return level_files_brief_[level];
|
|
349
390
|
}
|
|
350
391
|
|
|
351
|
-
// REQUIRES:
|
|
392
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
352
393
|
const std::vector<int>& FilesByCompactionPri(int level) const {
|
|
353
394
|
assert(finalized_);
|
|
354
395
|
return files_by_compaction_pri_[level];
|
|
355
396
|
}
|
|
356
397
|
|
|
357
|
-
// REQUIRES:
|
|
398
|
+
// REQUIRES: ComputeCompactionScore has been called
|
|
358
399
|
// REQUIRES: DB mutex held during access
|
|
359
400
|
const autovector<std::pair<int, FileMetaData*>>& FilesMarkedForCompaction()
|
|
360
401
|
const {
|
|
@@ -362,14 +403,14 @@ class VersionStorageInfo {
|
|
|
362
403
|
return files_marked_for_compaction_;
|
|
363
404
|
}
|
|
364
405
|
|
|
365
|
-
// REQUIRES:
|
|
406
|
+
// REQUIRES: ComputeCompactionScore has been called
|
|
366
407
|
// REQUIRES: DB mutex held during access
|
|
367
408
|
const autovector<std::pair<int, FileMetaData*>>& ExpiredTtlFiles() const {
|
|
368
409
|
assert(finalized_);
|
|
369
410
|
return expired_ttl_files_;
|
|
370
411
|
}
|
|
371
412
|
|
|
372
|
-
// REQUIRES:
|
|
413
|
+
// REQUIRES: ComputeCompactionScore has been called
|
|
373
414
|
// REQUIRES: DB mutex held during access
|
|
374
415
|
const autovector<std::pair<int, FileMetaData*>>&
|
|
375
416
|
FilesMarkedForPeriodicCompaction() const {
|
|
@@ -381,7 +422,7 @@ class VersionStorageInfo {
|
|
|
381
422
|
files_marked_for_periodic_compaction_.emplace_back(level, f);
|
|
382
423
|
}
|
|
383
424
|
|
|
384
|
-
// REQUIRES:
|
|
425
|
+
// REQUIRES: ComputeCompactionScore has been called
|
|
385
426
|
// REQUIRES: DB mutex held during access
|
|
386
427
|
const autovector<std::pair<int, FileMetaData*>>&
|
|
387
428
|
BottommostFilesMarkedForCompaction() const {
|
|
@@ -389,6 +430,14 @@ class VersionStorageInfo {
|
|
|
389
430
|
return bottommost_files_marked_for_compaction_;
|
|
390
431
|
}
|
|
391
432
|
|
|
433
|
+
// REQUIRES: ComputeCompactionScore has been called
|
|
434
|
+
// REQUIRES: DB mutex held during access
|
|
435
|
+
const autovector<std::pair<int, FileMetaData*>>& FilesMarkedForForcedBlobGC()
|
|
436
|
+
const {
|
|
437
|
+
assert(finalized_);
|
|
438
|
+
return files_marked_for_forced_blob_gc_;
|
|
439
|
+
}
|
|
440
|
+
|
|
392
441
|
int base_level() const { return base_level_; }
|
|
393
442
|
double level_multiplier() const { return level_multiplier_; }
|
|
394
443
|
|
|
@@ -404,7 +453,7 @@ class VersionStorageInfo {
|
|
|
404
453
|
return next_file_to_compact_by_size_[level];
|
|
405
454
|
}
|
|
406
455
|
|
|
407
|
-
// REQUIRES:
|
|
456
|
+
// REQUIRES: PrepareForVersionAppend has been called
|
|
408
457
|
const FileIndexer& file_indexer() const {
|
|
409
458
|
assert(finalized_);
|
|
410
459
|
return file_indexer_;
|
|
@@ -432,7 +481,7 @@ class VersionStorageInfo {
|
|
|
432
481
|
|
|
433
482
|
// Return the maximum overlapping data (in bytes) at next level for any
|
|
434
483
|
// file at a level >= 1.
|
|
435
|
-
|
|
484
|
+
uint64_t MaxNextLevelOverlappingBytes();
|
|
436
485
|
|
|
437
486
|
// Return a human readable string that describes this version's contents.
|
|
438
487
|
std::string DebugString(bool hex = false) const;
|
|
@@ -459,17 +508,13 @@ class VersionStorageInfo {
|
|
|
459
508
|
next_file_to_compact_by_size_[level] = 0;
|
|
460
509
|
}
|
|
461
510
|
|
|
462
|
-
const InternalKeyComparator* InternalComparator() {
|
|
511
|
+
const InternalKeyComparator* InternalComparator() const {
|
|
463
512
|
return internal_comparator_;
|
|
464
513
|
}
|
|
465
514
|
|
|
466
515
|
// Returns maximum total bytes of data on a given level.
|
|
467
516
|
uint64_t MaxBytesForLevel(int level) const;
|
|
468
517
|
|
|
469
|
-
// Must be called after any change to MutableCFOptions.
|
|
470
|
-
void CalculateBaseBytes(const ImmutableCFOptions& ioptions,
|
|
471
|
-
const MutableCFOptions& options);
|
|
472
|
-
|
|
473
518
|
// Returns an estimate of the amount of live data in bytes.
|
|
474
519
|
uint64_t EstimateLiveDataSize() const;
|
|
475
520
|
|
|
@@ -498,6 +543,22 @@ class VersionStorageInfo {
|
|
|
498
543
|
int last_level, int last_l0_idx);
|
|
499
544
|
|
|
500
545
|
private:
|
|
546
|
+
void ComputeCompensatedSizes();
|
|
547
|
+
void UpdateNumNonEmptyLevels();
|
|
548
|
+
void CalculateBaseBytes(const ImmutableOptions& ioptions,
|
|
549
|
+
const MutableCFOptions& options);
|
|
550
|
+
void UpdateFilesByCompactionPri(const ImmutableOptions& immutable_options,
|
|
551
|
+
const MutableCFOptions& mutable_cf_options);
|
|
552
|
+
|
|
553
|
+
void GenerateFileIndexer() {
|
|
554
|
+
file_indexer_.UpdateIndex(&arena_, num_non_empty_levels_, files_);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
void GenerateLevelFilesBrief();
|
|
558
|
+
void GenerateLevel0NonOverlapping();
|
|
559
|
+
void GenerateBottommostFiles();
|
|
560
|
+
void GenerateFileLocationIndex();
|
|
561
|
+
|
|
501
562
|
const InternalKeyComparator* internal_comparator_;
|
|
502
563
|
const Comparator* user_comparator_;
|
|
503
564
|
int num_levels_; // Number of levels
|
|
@@ -519,10 +580,10 @@ class VersionStorageInfo {
|
|
|
519
580
|
|
|
520
581
|
// Map of all table files in version. Maps file number to (level, position on
|
|
521
582
|
// level).
|
|
522
|
-
using FileLocations =
|
|
583
|
+
using FileLocations = UnorderedMap<uint64_t, FileLocation>;
|
|
523
584
|
FileLocations file_locations_;
|
|
524
585
|
|
|
525
|
-
//
|
|
586
|
+
// Vector of blob files in version sorted by blob file number.
|
|
526
587
|
BlobFiles blob_files_;
|
|
527
588
|
|
|
528
589
|
// Level that L0 data should be compacted to. All levels < base_level_ should
|
|
@@ -571,6 +632,8 @@ class VersionStorageInfo {
|
|
|
571
632
|
autovector<std::pair<int, FileMetaData*>>
|
|
572
633
|
bottommost_files_marked_for_compaction_;
|
|
573
634
|
|
|
635
|
+
autovector<std::pair<int, FileMetaData*>> files_marked_for_forced_blob_gc_;
|
|
636
|
+
|
|
574
637
|
// Threshold for needing to mark another bottommost file. Maintain it so we
|
|
575
638
|
// can quickly check when releasing a snapshot whether more bottommost files
|
|
576
639
|
// became eligible for compaction. It's defined as the min of the max nonzero
|
|
@@ -585,7 +648,7 @@ class VersionStorageInfo {
|
|
|
585
648
|
|
|
586
649
|
// Level that should be compacted next and its compaction score.
|
|
587
650
|
// Score < 1 means compaction is not strictly needed. These fields
|
|
588
|
-
// are initialized by
|
|
651
|
+
// are initialized by ComputeCompactionScore.
|
|
589
652
|
// The most critical level to be compacted is listed first
|
|
590
653
|
// These are used to pick the best compaction level
|
|
591
654
|
std::vector<double> compaction_score_;
|
|
@@ -633,7 +696,6 @@ class Version {
|
|
|
633
696
|
// yield the contents of this Version when merged together.
|
|
634
697
|
// @param read_options Must outlive any iterator built by
|
|
635
698
|
// `merger_iter_builder`.
|
|
636
|
-
// REQUIRES: This version has been saved (see VersionSet::SaveTo).
|
|
637
699
|
void AddIterators(const ReadOptions& read_options,
|
|
638
700
|
const FileOptions& soptions,
|
|
639
701
|
MergeIteratorBuilder* merger_iter_builder,
|
|
@@ -674,9 +736,11 @@ class Version {
|
|
|
674
736
|
// If the key has any merge operands then store them in
|
|
675
737
|
// merge_context.operands_list and don't merge the operands
|
|
676
738
|
// REQUIRES: lock is not held
|
|
739
|
+
// REQUIRES: pinned_iters_mgr != nullptr
|
|
677
740
|
void Get(const ReadOptions&, const LookupKey& key, PinnableSlice* value,
|
|
678
741
|
std::string* timestamp, Status* status, MergeContext* merge_context,
|
|
679
742
|
SequenceNumber* max_covering_tombstone_seq,
|
|
743
|
+
PinnedIteratorsManager* pinned_iters_mgr,
|
|
680
744
|
bool* value_found = nullptr, bool* key_exists = nullptr,
|
|
681
745
|
SequenceNumber* seq = nullptr, ReadCallback* callback = nullptr,
|
|
682
746
|
bool* is_blob = nullptr, bool do_merge = true);
|
|
@@ -689,17 +753,28 @@ class Version {
|
|
|
689
753
|
// saves it in *value.
|
|
690
754
|
// REQUIRES: blob_index_slice stores an encoded blob reference
|
|
691
755
|
Status GetBlob(const ReadOptions& read_options, const Slice& user_key,
|
|
692
|
-
const Slice& blob_index_slice,
|
|
756
|
+
const Slice& blob_index_slice,
|
|
757
|
+
FilePrefetchBuffer* prefetch_buffer, PinnableSlice* value,
|
|
758
|
+
uint64_t* bytes_read) const;
|
|
693
759
|
|
|
694
760
|
// Retrieves a blob using a blob reference and saves it in *value,
|
|
695
761
|
// assuming the corresponding blob file is part of this Version.
|
|
696
762
|
Status GetBlob(const ReadOptions& read_options, const Slice& user_key,
|
|
697
|
-
const BlobIndex& blob_index,
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
763
|
+
const BlobIndex& blob_index,
|
|
764
|
+
FilePrefetchBuffer* prefetch_buffer, PinnableSlice* value,
|
|
765
|
+
uint64_t* bytes_read) const;
|
|
766
|
+
|
|
767
|
+
using BlobReadRequest =
|
|
768
|
+
std::pair<BlobIndex, std::reference_wrapper<const KeyContext>>;
|
|
769
|
+
using BlobReadRequests = std::vector<BlobReadRequest>;
|
|
770
|
+
void MultiGetBlob(const ReadOptions& read_options, MultiGetRange& range,
|
|
771
|
+
std::unordered_map<uint64_t, BlobReadRequests>& blob_rqs);
|
|
772
|
+
|
|
773
|
+
// Loads some stats information from files (if update_stats is set) and
|
|
774
|
+
// populates derived data structures. Call without mutex held. It needs to be
|
|
775
|
+
// called before appending the version to the version set.
|
|
776
|
+
void PrepareAppend(const MutableCFOptions& mutable_cf_options,
|
|
777
|
+
bool update_stats);
|
|
703
778
|
|
|
704
779
|
// Reference count management (so Versions do not disappear out from
|
|
705
780
|
// under live iterators)
|
|
@@ -756,14 +831,13 @@ class Version {
|
|
|
756
831
|
|
|
757
832
|
ColumnFamilyData* cfd() const { return cfd_; }
|
|
758
833
|
|
|
759
|
-
// Return the next Version in the linked list.
|
|
760
|
-
Version*
|
|
761
|
-
return next_;
|
|
762
|
-
}
|
|
834
|
+
// Return the next Version in the linked list.
|
|
835
|
+
Version* Next() const { return next_; }
|
|
763
836
|
|
|
764
837
|
int TEST_refs() const { return refs_; }
|
|
765
838
|
|
|
766
839
|
VersionStorageInfo* storage_info() { return &storage_info_; }
|
|
840
|
+
const VersionStorageInfo* storage_info() const { return &storage_info_; }
|
|
767
841
|
|
|
768
842
|
VersionSet* version_set() { return vset_; }
|
|
769
843
|
|
|
@@ -779,6 +853,8 @@ class Version {
|
|
|
779
853
|
|
|
780
854
|
private:
|
|
781
855
|
Env* env_;
|
|
856
|
+
SystemClock* clock_;
|
|
857
|
+
|
|
782
858
|
friend class ReactiveVersionSet;
|
|
783
859
|
friend class VersionSet;
|
|
784
860
|
friend class VersionEditHandler;
|
|
@@ -804,12 +880,7 @@ class Version {
|
|
|
804
880
|
|
|
805
881
|
// Update the accumulated stats associated with the current version.
|
|
806
882
|
// This accumulated stats will be used in compaction.
|
|
807
|
-
void UpdateAccumulatedStats(
|
|
808
|
-
|
|
809
|
-
// Sort all files for this version based on their file size and
|
|
810
|
-
// record results in files_by_compaction_pri_. The largest files are listed
|
|
811
|
-
// first.
|
|
812
|
-
void UpdateFilesByCompactionPri();
|
|
883
|
+
void UpdateAccumulatedStats();
|
|
813
884
|
|
|
814
885
|
ColumnFamilyData* cfd_; // ColumnFamilyData to which this Version belongs
|
|
815
886
|
Logger* info_log_;
|
|
@@ -892,6 +963,7 @@ class BaseReferencedVersionBuilder;
|
|
|
892
963
|
|
|
893
964
|
class AtomicGroupReadBuffer {
|
|
894
965
|
public:
|
|
966
|
+
AtomicGroupReadBuffer() = default;
|
|
895
967
|
Status AddEdit(VersionEdit* edit);
|
|
896
968
|
void Clear();
|
|
897
969
|
bool IsFull() const;
|
|
@@ -917,7 +989,8 @@ class VersionSet {
|
|
|
917
989
|
WriteBufferManager* write_buffer_manager,
|
|
918
990
|
WriteController* write_controller,
|
|
919
991
|
BlockCacheTracer* const block_cache_tracer,
|
|
920
|
-
const std::shared_ptr<IOTracer>& io_tracer
|
|
992
|
+
const std::shared_ptr<IOTracer>& io_tracer,
|
|
993
|
+
const std::string& db_session_id);
|
|
921
994
|
// No copying allowed
|
|
922
995
|
VersionSet(const VersionSet&) = delete;
|
|
923
996
|
void operator=(const VersionSet&) = delete;
|
|
@@ -995,6 +1068,7 @@ class VersionSet {
|
|
|
995
1068
|
FileSystem* fs,
|
|
996
1069
|
std::string* manifest_filename,
|
|
997
1070
|
uint64_t* manifest_file_number);
|
|
1071
|
+
void WakeUpWaitingManifestWriters();
|
|
998
1072
|
|
|
999
1073
|
// Recover the last saved descriptor from persistent storage.
|
|
1000
1074
|
// If read_only == true, Recover() will not complain if some column families
|
|
@@ -1018,6 +1092,9 @@ class VersionSet {
|
|
|
1018
1092
|
// column_families.
|
|
1019
1093
|
static Status ListColumnFamilies(std::vector<std::string>* column_families,
|
|
1020
1094
|
const std::string& dbname, FileSystem* fs);
|
|
1095
|
+
static Status ListColumnFamiliesFromManifest(
|
|
1096
|
+
const std::string& manifest_path, FileSystem* fs,
|
|
1097
|
+
std::vector<std::string>* column_families);
|
|
1021
1098
|
|
|
1022
1099
|
#ifndef ROCKSDB_LITE
|
|
1023
1100
|
// Try to reduce the number of levels. This call is valid when
|
|
@@ -1043,6 +1120,8 @@ class VersionSet {
|
|
|
1043
1120
|
|
|
1044
1121
|
#endif // ROCKSDB_LITE
|
|
1045
1122
|
|
|
1123
|
+
const std::string& DbSessionId() const { return db_session_id_; }
|
|
1124
|
+
|
|
1046
1125
|
// Return the current manifest file number
|
|
1047
1126
|
uint64_t manifest_file_number() const { return manifest_file_number_; }
|
|
1048
1127
|
|
|
@@ -1054,8 +1133,8 @@ class VersionSet {
|
|
|
1054
1133
|
|
|
1055
1134
|
uint64_t current_next_file_number() const { return next_file_number_.load(); }
|
|
1056
1135
|
|
|
1057
|
-
uint64_t
|
|
1058
|
-
return
|
|
1136
|
+
uint64_t min_log_number_to_keep() const {
|
|
1137
|
+
return min_log_number_to_keep_.load();
|
|
1059
1138
|
}
|
|
1060
1139
|
|
|
1061
1140
|
// Allocate and return a new file number
|
|
@@ -1113,7 +1192,7 @@ class VersionSet {
|
|
|
1113
1192
|
// Mark the specified log number as deleted
|
|
1114
1193
|
// REQUIRED: this is only called during single-threaded recovery or repair, or
|
|
1115
1194
|
// from ::LogAndApply where the global mutex is held.
|
|
1116
|
-
void
|
|
1195
|
+
void MarkMinLogNumberToKeep(uint64_t number);
|
|
1117
1196
|
|
|
1118
1197
|
// Return the log file number for the log file that is currently
|
|
1119
1198
|
// being compacted, or zero if there is no such log file.
|
|
@@ -1122,10 +1201,12 @@ class VersionSet {
|
|
|
1122
1201
|
// Returns the minimum log number which still has data not flushed to any SST
|
|
1123
1202
|
// file.
|
|
1124
1203
|
// In non-2PC mode, all the log numbers smaller than this number can be safely
|
|
1125
|
-
// deleted
|
|
1204
|
+
// deleted, although we still use `min_log_number_to_keep_` to determine when
|
|
1205
|
+
// to delete a WAL file.
|
|
1126
1206
|
uint64_t MinLogNumberWithUnflushedData() const {
|
|
1127
1207
|
return PreComputeMinLogNumberWithUnflushedData(nullptr);
|
|
1128
1208
|
}
|
|
1209
|
+
|
|
1129
1210
|
// Returns the minimum log number which still has data not flushed to any SST
|
|
1130
1211
|
// file.
|
|
1131
1212
|
// Empty column families' log number is considered to be
|
|
@@ -1182,10 +1263,13 @@ class VersionSet {
|
|
|
1182
1263
|
// Create an iterator that reads over the compaction inputs for "*c".
|
|
1183
1264
|
// The caller should delete the iterator when no longer needed.
|
|
1184
1265
|
// @param read_options Must outlive the returned iterator.
|
|
1266
|
+
// @param start, end indicates compaction range
|
|
1185
1267
|
InternalIterator* MakeInputIterator(
|
|
1186
1268
|
const ReadOptions& read_options, const Compaction* c,
|
|
1187
1269
|
RangeDelAggregator* range_del_agg,
|
|
1188
|
-
const FileOptions& file_options_compactions
|
|
1270
|
+
const FileOptions& file_options_compactions,
|
|
1271
|
+
const std::optional<const Slice>& start,
|
|
1272
|
+
const std::optional<const Slice>& end);
|
|
1189
1273
|
|
|
1190
1274
|
// Add all files listed in any live version to *live_table_files and
|
|
1191
1275
|
// *live_blob_files. Note that these lists may contain duplicates.
|
|
@@ -1203,12 +1287,6 @@ class VersionSet {
|
|
|
1203
1287
|
// Return the size of the current manifest file
|
|
1204
1288
|
uint64_t manifest_file_size() const { return manifest_file_size_; }
|
|
1205
1289
|
|
|
1206
|
-
// verify that the files that we started with for a compaction
|
|
1207
|
-
// still exist in the current version and in the same original level.
|
|
1208
|
-
// This ensures that a concurrent compaction did not erroneously
|
|
1209
|
-
// pick the same files to compact.
|
|
1210
|
-
bool VerifyCompactionFileConsistency(Compaction* c);
|
|
1211
|
-
|
|
1212
1290
|
Status GetMetadataForFile(uint64_t number, int* filelevel,
|
|
1213
1291
|
FileMetaData** metadata, ColumnFamilyData** cfd);
|
|
1214
1292
|
|
|
@@ -1229,6 +1307,10 @@ class VersionSet {
|
|
|
1229
1307
|
uint64_t min_pending_output);
|
|
1230
1308
|
|
|
1231
1309
|
ColumnFamilySet* GetColumnFamilySet() { return column_family_set_.get(); }
|
|
1310
|
+
RefedColumnFamilySet GetRefedColumnFamilySet() {
|
|
1311
|
+
return RefedColumnFamilySet(GetColumnFamilySet());
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1232
1314
|
const FileOptions& file_options() { return file_options_; }
|
|
1233
1315
|
void ChangeFileOptions(const MutableDBOptions& new_options) {
|
|
1234
1316
|
file_options_.writable_file_max_buffer_size =
|
|
@@ -1241,6 +1323,8 @@ class VersionSet {
|
|
|
1241
1323
|
|
|
1242
1324
|
static uint64_t GetTotalSstFilesSize(Version* dummy_versions);
|
|
1243
1325
|
|
|
1326
|
+
static uint64_t GetTotalBlobFileSize(Version* dummy_versions);
|
|
1327
|
+
|
|
1244
1328
|
// Get the IO Status returned by written Manifest.
|
|
1245
1329
|
const IOStatus& io_status() const { return io_status_; }
|
|
1246
1330
|
|
|
@@ -1255,14 +1339,13 @@ class VersionSet {
|
|
|
1255
1339
|
new Version(cfd, this, file_options_, mutable_cf_options, io_tracer_);
|
|
1256
1340
|
|
|
1257
1341
|
constexpr bool update_stats = false;
|
|
1258
|
-
version->
|
|
1342
|
+
version->PrepareAppend(mutable_cf_options, update_stats);
|
|
1259
1343
|
AppendVersion(cfd, version);
|
|
1260
1344
|
}
|
|
1261
1345
|
|
|
1262
1346
|
protected:
|
|
1263
1347
|
using VersionBuilderMap =
|
|
1264
|
-
std::
|
|
1265
|
-
std::unique_ptr<BaseReferencedVersionBuilder>>;
|
|
1348
|
+
UnorderedMap<uint32_t, std::unique_ptr<BaseReferencedVersionBuilder>>;
|
|
1266
1349
|
|
|
1267
1350
|
struct ManifestWriter;
|
|
1268
1351
|
|
|
@@ -1313,29 +1396,6 @@ class VersionSet {
|
|
|
1313
1396
|
ColumnFamilyData* CreateColumnFamily(const ColumnFamilyOptions& cf_options,
|
|
1314
1397
|
const VersionEdit* edit);
|
|
1315
1398
|
|
|
1316
|
-
Status ReadAndRecover(
|
|
1317
|
-
log::Reader& reader, AtomicGroupReadBuffer* read_buffer,
|
|
1318
|
-
const std::unordered_map<std::string, ColumnFamilyOptions>&
|
|
1319
|
-
name_to_options,
|
|
1320
|
-
std::unordered_map<int, std::string>& column_families_not_found,
|
|
1321
|
-
std::unordered_map<
|
|
1322
|
-
uint32_t, std::unique_ptr<BaseReferencedVersionBuilder>>& builders,
|
|
1323
|
-
Status* log_read_status, VersionEditParams* version_edit,
|
|
1324
|
-
std::string* db_id = nullptr);
|
|
1325
|
-
|
|
1326
|
-
// REQUIRES db mutex
|
|
1327
|
-
Status ApplyOneVersionEditToBuilder(
|
|
1328
|
-
VersionEdit& edit,
|
|
1329
|
-
const std::unordered_map<std::string, ColumnFamilyOptions>& name_to_opts,
|
|
1330
|
-
std::unordered_map<int, std::string>& column_families_not_found,
|
|
1331
|
-
std::unordered_map<
|
|
1332
|
-
uint32_t, std::unique_ptr<BaseReferencedVersionBuilder>>& builders,
|
|
1333
|
-
VersionEditParams* version_edit);
|
|
1334
|
-
|
|
1335
|
-
Status ExtractInfoFromVersionEdit(ColumnFamilyData* cfd,
|
|
1336
|
-
const VersionEdit& from_edit,
|
|
1337
|
-
VersionEditParams* version_edit_params);
|
|
1338
|
-
|
|
1339
1399
|
Status VerifyFileMetadata(const std::string& fpath,
|
|
1340
1400
|
const FileMetaData& meta) const;
|
|
1341
1401
|
|
|
@@ -1346,21 +1406,25 @@ class VersionSet {
|
|
|
1346
1406
|
Cache* table_cache_;
|
|
1347
1407
|
Env* const env_;
|
|
1348
1408
|
FileSystemPtr const fs_;
|
|
1409
|
+
SystemClock* const clock_;
|
|
1349
1410
|
const std::string dbname_;
|
|
1350
1411
|
std::string db_id_;
|
|
1351
1412
|
const ImmutableDBOptions* const db_options_;
|
|
1352
1413
|
std::atomic<uint64_t> next_file_number_;
|
|
1353
1414
|
// Any WAL number smaller than this should be ignored during recovery,
|
|
1354
|
-
// and is qualified for being deleted
|
|
1355
|
-
|
|
1356
|
-
std::atomic<uint64_t> min_log_number_to_keep_2pc_ = {0};
|
|
1415
|
+
// and is qualified for being deleted.
|
|
1416
|
+
std::atomic<uint64_t> min_log_number_to_keep_ = {0};
|
|
1357
1417
|
uint64_t manifest_file_number_;
|
|
1358
1418
|
uint64_t options_file_number_;
|
|
1419
|
+
uint64_t options_file_size_;
|
|
1359
1420
|
uint64_t pending_manifest_file_number_;
|
|
1360
1421
|
// The last seq visible to reads. It normally indicates the last sequence in
|
|
1361
1422
|
// the memtable but when using two write queues it could also indicate the
|
|
1362
1423
|
// last sequence in the WAL visible to reads.
|
|
1363
1424
|
std::atomic<uint64_t> last_sequence_;
|
|
1425
|
+
// The last sequence number of data committed to the descriptor (manifest
|
|
1426
|
+
// file).
|
|
1427
|
+
SequenceNumber descriptor_last_sequence_ = 0;
|
|
1364
1428
|
// The last seq that is already allocated. It is applicable only when we have
|
|
1365
1429
|
// two write queues. In that case seq might or might not have appreated in
|
|
1366
1430
|
// memtable but it is expected to appear in the WAL.
|
|
@@ -1400,6 +1464,8 @@ class VersionSet {
|
|
|
1400
1464
|
|
|
1401
1465
|
std::shared_ptr<IOTracer> io_tracer_;
|
|
1402
1466
|
|
|
1467
|
+
std::string db_session_id_;
|
|
1468
|
+
|
|
1403
1469
|
private:
|
|
1404
1470
|
// REQUIRES db mutex at beginning. may release and re-acquire db mutex
|
|
1405
1471
|
Status ProcessManifestWrites(std::deque<ManifestWriter>& writers,
|
|
@@ -1407,9 +1473,11 @@ class VersionSet {
|
|
|
1407
1473
|
bool new_descriptor_log,
|
|
1408
1474
|
const ColumnFamilyOptions* new_cf_options);
|
|
1409
1475
|
|
|
1410
|
-
void LogAndApplyCFHelper(VersionEdit* edit
|
|
1476
|
+
void LogAndApplyCFHelper(VersionEdit* edit,
|
|
1477
|
+
SequenceNumber* max_last_sequence);
|
|
1411
1478
|
Status LogAndApplyHelper(ColumnFamilyData* cfd, VersionBuilder* b,
|
|
1412
|
-
VersionEdit* edit,
|
|
1479
|
+
VersionEdit* edit, SequenceNumber* max_last_sequence,
|
|
1480
|
+
InstrumentedMutex* mu);
|
|
1413
1481
|
};
|
|
1414
1482
|
|
|
1415
1483
|
// ReactiveVersionSet represents a collection of versions of the column
|
|
@@ -1430,23 +1498,20 @@ class ReactiveVersionSet : public VersionSet {
|
|
|
1430
1498
|
Status ReadAndApply(
|
|
1431
1499
|
InstrumentedMutex* mu,
|
|
1432
1500
|
std::unique_ptr<log::FragmentBufferedReader>* manifest_reader,
|
|
1501
|
+
Status* manifest_read_status,
|
|
1433
1502
|
std::unordered_set<ColumnFamilyData*>* cfds_changed);
|
|
1434
1503
|
|
|
1435
1504
|
Status Recover(const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
1436
1505
|
std::unique_ptr<log::FragmentBufferedReader>* manifest_reader,
|
|
1437
1506
|
std::unique_ptr<log::Reader::Reporter>* manifest_reporter,
|
|
1438
1507
|
std::unique_ptr<Status>* manifest_reader_status);
|
|
1508
|
+
#ifndef NDEBUG
|
|
1509
|
+
uint64_t TEST_read_edits_in_atomic_group() const;
|
|
1510
|
+
#endif //! NDEBUG
|
|
1439
1511
|
|
|
1440
|
-
|
|
1441
|
-
return read_buffer_.TEST_read_edits_in_atomic_group();
|
|
1442
|
-
}
|
|
1443
|
-
std::vector<VersionEdit>& replay_buffer() {
|
|
1444
|
-
return read_buffer_.replay_buffer();
|
|
1445
|
-
}
|
|
1512
|
+
std::vector<VersionEdit>& replay_buffer();
|
|
1446
1513
|
|
|
1447
1514
|
protected:
|
|
1448
|
-
using VersionSet::ApplyOneVersionEditToBuilder;
|
|
1449
|
-
|
|
1450
1515
|
// REQUIRES db mutex
|
|
1451
1516
|
Status ApplyOneVersionEditToBuilder(
|
|
1452
1517
|
VersionEdit& edit, std::unordered_set<ColumnFamilyData*>* cfds_changed,
|
|
@@ -1457,11 +1522,7 @@ class ReactiveVersionSet : public VersionSet {
|
|
|
1457
1522
|
std::unique_ptr<log::FragmentBufferedReader>* manifest_reader);
|
|
1458
1523
|
|
|
1459
1524
|
private:
|
|
1460
|
-
|
|
1461
|
-
AtomicGroupReadBuffer read_buffer_;
|
|
1462
|
-
// Number of version edits to skip by ReadAndApply at the beginning of a new
|
|
1463
|
-
// MANIFEST created by primary.
|
|
1464
|
-
int number_of_edits_to_skip_;
|
|
1525
|
+
std::unique_ptr<ManifestTailer> manifest_tailer_;
|
|
1465
1526
|
|
|
1466
1527
|
using VersionSet::LogAndApply;
|
|
1467
1528
|
using VersionSet::Recover;
|