@nxtedition/rocksdb 5.2.21 → 5.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +510 -967
- package/binding.gyp +78 -72
- package/chained-batch.js +1 -2
- package/deps/rocksdb/build_version.cc +70 -4
- package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
- package/deps/rocksdb/rocksdb/Makefile +459 -469
- package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
- package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
- package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +93 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
- package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
- package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
- package/deps/rocksdb/rocksdb/db/builder.h +16 -37
- package/deps/rocksdb/rocksdb/db/c.cc +413 -208
- package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
- package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
- package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
- package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
- package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
- package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
- package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
- package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
- package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
- package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
- package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
- package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
- package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
- package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
- package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
- package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
- package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
- package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
- package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
- package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
- package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
- package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
- package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
- package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
- package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
- package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
- package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
- package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
- package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
- package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
- package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
- package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
- package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
- package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
- package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
- package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
- package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
- package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
- package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
- package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
- package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
- package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
- package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
- package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
- package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
- package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
- package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
- package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
- package/deps/rocksdb/rocksdb/env/env.cc +632 -42
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
- package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
- package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
- package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
- package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
- package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
- package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
- package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
- package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
- package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
- package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
- package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
- package/deps/rocksdb/rocksdb/file/filename.h +13 -8
- package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
- package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
- package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
- package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
- package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
- package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
- package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
- package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
- package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
- package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
- package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
- package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
- package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
- package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
- package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
- package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
- package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
- package/deps/rocksdb/rocksdb/options/options.cc +49 -17
- package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
- package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
- package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
- package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
- package/deps/rocksdb/rocksdb/port/lang.h +52 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
- package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
- package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
- package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
- package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
- package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
- package/deps/rocksdb/rocksdb/python.mk +9 -0
- package/deps/rocksdb/rocksdb/src.mk +82 -34
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
- package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
- package/deps/rocksdb/rocksdb/table/format.cc +258 -104
- package/deps/rocksdb/rocksdb/table/format.h +120 -109
- package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
- package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
- package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
- package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
- package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
- package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
- package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
- package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
- package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
- package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
- package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
- package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
- package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
- package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
- package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
- package/deps/rocksdb/rocksdb/util/channel.h +2 -0
- package/deps/rocksdb/rocksdb/util/coding.h +1 -33
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
- package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
- package/deps/rocksdb/rocksdb/util/compression.h +212 -7
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
- package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
- package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
- package/deps/rocksdb/rocksdb/util/defer.h +30 -1
- package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
- package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
- package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
- package/deps/rocksdb/rocksdb/util/hash.h +31 -1
- package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
- package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
- package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
- package/deps/rocksdb/rocksdb/util/heap.h +6 -1
- package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
- package/deps/rocksdb/rocksdb/util/math.h +74 -7
- package/deps/rocksdb/rocksdb/util/math128.h +13 -1
- package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
- package/deps/rocksdb/rocksdb/util/random.cc +9 -0
- package/deps/rocksdb/rocksdb/util/random.h +6 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
- package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
- package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
- package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
- package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
- package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
- package/deps/rocksdb/rocksdb/util/status.cc +32 -29
- package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
- package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
- package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
- package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
- package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
- package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
- package/deps/rocksdb/rocksdb/util/timer.h +55 -46
- package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
- package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
- package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
- package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
- package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
- package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
- package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
- package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
- package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
- package/deps/rocksdb/rocksdb.gyp +425 -446
- package/index.js +5 -87
- package/package-lock.json +23687 -0
- package/package.json +8 -9
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/README.md +0 -32
- package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
- package/deps/rocksdb/rocksdb/hdfs/README +0 -23
- package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
- package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
- package/deps/rocksdb/rocksdb/port/README +0 -10
- package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
- package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
- package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
- package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
- package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
- package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
- package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
- package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
- package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
- package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
- package/deps/snappy/snappy-1.1.7/README.md +0 -149
- package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
#include <functional>
|
|
14
14
|
#include <memory>
|
|
15
15
|
#include <string>
|
|
16
|
-
#include <
|
|
16
|
+
#include <unordered_set>
|
|
17
17
|
#include <vector>
|
|
18
|
+
|
|
18
19
|
#include "db/dbformat.h"
|
|
20
|
+
#include "db/kv_checksum.h"
|
|
19
21
|
#include "db/range_tombstone_fragmenter.h"
|
|
20
22
|
#include "db/read_callback.h"
|
|
21
23
|
#include "db/version_edit.h"
|
|
@@ -24,11 +26,11 @@
|
|
|
24
26
|
#include "monitoring/instrumented_mutex.h"
|
|
25
27
|
#include "options/cf_options.h"
|
|
26
28
|
#include "rocksdb/db.h"
|
|
27
|
-
#include "rocksdb/env.h"
|
|
28
29
|
#include "rocksdb/memtablerep.h"
|
|
29
30
|
#include "table/multiget_context.h"
|
|
30
31
|
#include "util/dynamic_bloom.h"
|
|
31
32
|
#include "util/hash.h"
|
|
33
|
+
#include "util/hash_containers.h"
|
|
32
34
|
|
|
33
35
|
namespace ROCKSDB_NAMESPACE {
|
|
34
36
|
|
|
@@ -36,9 +38,10 @@ struct FlushJobInfo;
|
|
|
36
38
|
class Mutex;
|
|
37
39
|
class MemTableIterator;
|
|
38
40
|
class MergeContext;
|
|
41
|
+
class SystemClock;
|
|
39
42
|
|
|
40
43
|
struct ImmutableMemTableOptions {
|
|
41
|
-
explicit ImmutableMemTableOptions(const
|
|
44
|
+
explicit ImmutableMemTableOptions(const ImmutableOptions& ioptions,
|
|
42
45
|
const MutableCFOptions& mutable_cf_options);
|
|
43
46
|
size_t arena_block_size;
|
|
44
47
|
uint32_t memtable_prefix_bloom_bits;
|
|
@@ -70,7 +73,7 @@ using MultiGetRange = MultiGetContext::Range;
|
|
|
70
73
|
// Note: Many of the methods in this class have comments indicating that
|
|
71
74
|
// external synchronization is required as these methods are not thread-safe.
|
|
72
75
|
// It is up to higher layers of code to decide how to prevent concurrent
|
|
73
|
-
//
|
|
76
|
+
// invocation of these methods. This is usually done by acquiring either
|
|
74
77
|
// the db mutex or the single writer thread.
|
|
75
78
|
//
|
|
76
79
|
// Some of these methods are documented to only require external
|
|
@@ -101,7 +104,7 @@ class MemTable {
|
|
|
101
104
|
// used, but this may prevent some transactions from succeeding until the
|
|
102
105
|
// first key is inserted into the memtable.
|
|
103
106
|
explicit MemTable(const InternalKeyComparator& comparator,
|
|
104
|
-
const
|
|
107
|
+
const ImmutableOptions& ioptions,
|
|
105
108
|
const MutableCFOptions& mutable_cf_options,
|
|
106
109
|
WriteBufferManager* write_buffer_manager,
|
|
107
110
|
SequenceNumber earliest_seq, uint32_t column_family_id);
|
|
@@ -137,12 +140,39 @@ class MemTable {
|
|
|
137
140
|
// operations on the same MemTable (unless this Memtable is immutable).
|
|
138
141
|
size_t ApproximateMemoryUsage();
|
|
139
142
|
|
|
140
|
-
// As a cheap version of `ApproximateMemoryUsage()`, this function
|
|
143
|
+
// As a cheap version of `ApproximateMemoryUsage()`, this function doesn't
|
|
141
144
|
// require external synchronization. The value may be less accurate though
|
|
142
145
|
size_t ApproximateMemoryUsageFast() const {
|
|
143
146
|
return approximate_memory_usage_.load(std::memory_order_relaxed);
|
|
144
147
|
}
|
|
145
148
|
|
|
149
|
+
// used by MemTableListVersion::MemoryAllocatedBytesExcludingLast
|
|
150
|
+
size_t MemoryAllocatedBytes() const {
|
|
151
|
+
return table_->ApproximateMemoryUsage() +
|
|
152
|
+
range_del_table_->ApproximateMemoryUsage() +
|
|
153
|
+
arena_.MemoryAllocatedBytes();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Returns a vector of unique random memtable entries of size 'sample_size'.
|
|
157
|
+
//
|
|
158
|
+
// Note: the entries are stored in the unordered_set as length-prefixed keys,
|
|
159
|
+
// hence their representation in the set as "const char*".
|
|
160
|
+
// Note2: the size of the output set 'entries' is not enforced to be strictly
|
|
161
|
+
// equal to 'target_sample_size'. Its final size might be slightly
|
|
162
|
+
// greater or slightly less than 'target_sample_size'
|
|
163
|
+
//
|
|
164
|
+
// REQUIRES: external synchronization to prevent simultaneous
|
|
165
|
+
// operations on the same MemTable (unless this Memtable is immutable).
|
|
166
|
+
// REQUIRES: SkipList memtable representation. This function is not
|
|
167
|
+
// implemented for any other type of memtable representation (vectorrep,
|
|
168
|
+
// hashskiplist,...).
|
|
169
|
+
void UniqueRandomSample(const uint64_t& target_sample_size,
|
|
170
|
+
std::unordered_set<const char*>* entries) {
|
|
171
|
+
// TODO(bjlemaire): at the moment, only supported by skiplistrep.
|
|
172
|
+
// Extend it to all other memtable representations.
|
|
173
|
+
table_->UniqueRandomSample(num_entries(), target_sample_size, entries);
|
|
174
|
+
}
|
|
175
|
+
|
|
146
176
|
// This method heuristically determines if the memtable should continue to
|
|
147
177
|
// host more data.
|
|
148
178
|
bool ShouldScheduleFlush() const {
|
|
@@ -175,6 +205,9 @@ class MemTable {
|
|
|
175
205
|
FragmentedRangeTombstoneIterator* NewRangeTombstoneIterator(
|
|
176
206
|
const ReadOptions& read_options, SequenceNumber read_seq);
|
|
177
207
|
|
|
208
|
+
Status VerifyEncodedEntry(Slice encoded,
|
|
209
|
+
const ProtectionInfoKVOS64& kv_prot_info);
|
|
210
|
+
|
|
178
211
|
// Add an entry into memtable that maps key to value at the
|
|
179
212
|
// specified sequence number and with the specified type.
|
|
180
213
|
// Typically value will be empty if type==kTypeDeletion.
|
|
@@ -186,7 +219,8 @@ class MemTable {
|
|
|
186
219
|
// in the memtable and `MemTableRepFactory::CanHandleDuplicatedKey()` is true.
|
|
187
220
|
// The next attempt should try a larger value for `seq`.
|
|
188
221
|
Status Add(SequenceNumber seq, ValueType type, const Slice& key,
|
|
189
|
-
const Slice& value,
|
|
222
|
+
const Slice& value, const ProtectionInfoKVOS64* kv_prot_info,
|
|
223
|
+
bool allow_concurrent = false,
|
|
190
224
|
MemTablePostProcessInfo* post_process_info = nullptr,
|
|
191
225
|
void** hint = nullptr);
|
|
192
226
|
|
|
@@ -250,7 +284,8 @@ class MemTable {
|
|
|
250
284
|
//
|
|
251
285
|
// REQUIRES: external synchronization to prevent simultaneous
|
|
252
286
|
// operations on the same MemTable.
|
|
253
|
-
Status Update(SequenceNumber seq, const Slice& key, const Slice& value
|
|
287
|
+
Status Update(SequenceNumber seq, const Slice& key, const Slice& value,
|
|
288
|
+
const ProtectionInfoKVOS64* kv_prot_info);
|
|
254
289
|
|
|
255
290
|
// If `key` exists in current memtable with type `kTypeValue` and the existing
|
|
256
291
|
// value is at least as large as the new value, updates it in-place. Otherwise
|
|
@@ -267,7 +302,8 @@ class MemTable {
|
|
|
267
302
|
// REQUIRES: external synchronization to prevent simultaneous
|
|
268
303
|
// operations on the same MemTable.
|
|
269
304
|
Status UpdateCallback(SequenceNumber seq, const Slice& key,
|
|
270
|
-
const Slice& delta
|
|
305
|
+
const Slice& delta,
|
|
306
|
+
const ProtectionInfoKVOS64* kv_prot_info);
|
|
271
307
|
|
|
272
308
|
// Returns the number of successive merge entries starting from the newest
|
|
273
309
|
// entry for the key up to the last non-merge entry or last entry for the
|
|
@@ -333,6 +369,14 @@ class MemTable {
|
|
|
333
369
|
return first_seqno_.load(std::memory_order_relaxed);
|
|
334
370
|
}
|
|
335
371
|
|
|
372
|
+
// Returns the sequence number of the first element that was inserted
|
|
373
|
+
// into the memtable.
|
|
374
|
+
// REQUIRES: external synchronization to prevent simultaneous
|
|
375
|
+
// operations on the same MemTable (unless this Memtable is immutable).
|
|
376
|
+
void SetFirstSequenceNumber(SequenceNumber first_seqno) {
|
|
377
|
+
return first_seqno_.store(first_seqno, std::memory_order_relaxed);
|
|
378
|
+
}
|
|
379
|
+
|
|
336
380
|
// Returns the sequence number that is guaranteed to be smaller than or equal
|
|
337
381
|
// to the sequence number of any key that could be inserted into this
|
|
338
382
|
// memtable. It can then be assumed that any write with a larger(or equal)
|
|
@@ -344,6 +388,15 @@ class MemTable {
|
|
|
344
388
|
return earliest_seqno_.load(std::memory_order_relaxed);
|
|
345
389
|
}
|
|
346
390
|
|
|
391
|
+
// Sets the sequence number that is guaranteed to be smaller than or equal
|
|
392
|
+
// to the sequence number of any key that could be inserted into this
|
|
393
|
+
// memtable. It can then be assumed that any write with a larger(or equal)
|
|
394
|
+
// sequence number will be present in this memtable or a later memtable.
|
|
395
|
+
// Used only for MemPurge operation
|
|
396
|
+
void SetEarliestSequenceNumber(SequenceNumber earliest_seqno) {
|
|
397
|
+
return earliest_seqno_.store(earliest_seqno, std::memory_order_relaxed);
|
|
398
|
+
}
|
|
399
|
+
|
|
347
400
|
// DB's latest sequence ID when the memtable is created. This number
|
|
348
401
|
// may be updated to a more recent one before any key is inserted.
|
|
349
402
|
SequenceNumber GetCreationSeq() const { return creation_seq_; }
|
|
@@ -446,6 +499,9 @@ class MemTable {
|
|
|
446
499
|
}
|
|
447
500
|
#endif // !ROCKSDB_LITE
|
|
448
501
|
|
|
502
|
+
// Returns a heuristic flush decision
|
|
503
|
+
bool ShouldFlushNow();
|
|
504
|
+
|
|
449
505
|
private:
|
|
450
506
|
enum FlushStateEnum { FLUSH_NOT_REQUESTED, FLUSH_REQUESTED, FLUSH_SCHEDULED };
|
|
451
507
|
|
|
@@ -504,13 +560,13 @@ class MemTable {
|
|
|
504
560
|
|
|
505
561
|
std::atomic<FlushStateEnum> flush_state_;
|
|
506
562
|
|
|
507
|
-
|
|
563
|
+
SystemClock* clock_;
|
|
508
564
|
|
|
509
565
|
// Extract sequential insert prefixes.
|
|
510
566
|
const SliceTransform* insert_with_hint_prefix_extractor_;
|
|
511
567
|
|
|
512
568
|
// Insert hints for each prefix.
|
|
513
|
-
|
|
569
|
+
UnorderedMapH<Slice, void*, SliceHasher> insert_hints_;
|
|
514
570
|
|
|
515
571
|
// Timestamp of oldest key
|
|
516
572
|
std::atomic<uint64_t> oldest_key_time_;
|
|
@@ -525,7 +581,7 @@ class MemTable {
|
|
|
525
581
|
SequenceNumber atomic_flush_seqno_;
|
|
526
582
|
|
|
527
583
|
// keep track of memory usage in table_, arena_, and range_del_table_.
|
|
528
|
-
// Gets
|
|
584
|
+
// Gets refreshed inside `ApproximateMemoryUsage()` or `ShouldFlushNow`
|
|
529
585
|
std::atomic<uint64_t> approximate_memory_usage_;
|
|
530
586
|
|
|
531
587
|
#ifndef ROCKSDB_LITE
|
|
@@ -533,9 +589,6 @@ class MemTable {
|
|
|
533
589
|
std::unique_ptr<FlushJobInfo> flush_job_info_;
|
|
534
590
|
#endif // !ROCKSDB_LITE
|
|
535
591
|
|
|
536
|
-
// Returns a heuristic flush decision
|
|
537
|
-
bool ShouldFlushNow();
|
|
538
|
-
|
|
539
592
|
// Updates flush_state_ using ShouldFlushNow()
|
|
540
593
|
void UpdateFlushState();
|
|
541
594
|
|
|
@@ -547,6 +600,10 @@ class MemTable {
|
|
|
547
600
|
std::string* value, std::string* timestamp, Status* s,
|
|
548
601
|
MergeContext* merge_context, SequenceNumber* seq,
|
|
549
602
|
bool* found_final_value, bool* merge_in_progress);
|
|
603
|
+
|
|
604
|
+
// Always returns non-null and assumes certain pre-checks are done
|
|
605
|
+
FragmentedRangeTombstoneIterator* NewRangeTombstoneIteratorInternal(
|
|
606
|
+
const ReadOptions& read_options, SequenceNumber read_seq);
|
|
550
607
|
};
|
|
551
608
|
|
|
552
609
|
extern const char* EncodeKey(std::string* scratch, const Slice& target);
|
|
@@ -5,15 +5,18 @@
|
|
|
5
5
|
//
|
|
6
6
|
#include "db/memtable_list.h"
|
|
7
7
|
|
|
8
|
+
#include <algorithm>
|
|
8
9
|
#include <cinttypes>
|
|
9
10
|
#include <limits>
|
|
10
11
|
#include <queue>
|
|
11
12
|
#include <string>
|
|
13
|
+
|
|
12
14
|
#include "db/db_impl/db_impl.h"
|
|
13
15
|
#include "db/memtable.h"
|
|
14
16
|
#include "db/range_tombstone_fragmenter.h"
|
|
15
17
|
#include "db/version_set.h"
|
|
16
18
|
#include "logging/log_buffer.h"
|
|
19
|
+
#include "logging/logging.h"
|
|
17
20
|
#include "monitoring/thread_status_util.h"
|
|
18
21
|
#include "rocksdb/db.h"
|
|
19
22
|
#include "rocksdb/env.h"
|
|
@@ -256,8 +259,8 @@ SequenceNumber MemTableListVersion::GetEarliestSequenceNumber(
|
|
|
256
259
|
void MemTableListVersion::Add(MemTable* m, autovector<MemTable*>* to_delete) {
|
|
257
260
|
assert(refs_ == 1); // only when refs_ == 1 is MemTableListVersion mutable
|
|
258
261
|
AddMemTable(m);
|
|
259
|
-
|
|
260
|
-
TrimHistory(to_delete,
|
|
262
|
+
// m->MemoryAllocatedBytes() is added in MemoryAllocatedBytesExcludingLast
|
|
263
|
+
TrimHistory(to_delete, 0);
|
|
261
264
|
}
|
|
262
265
|
|
|
263
266
|
// Removes m from list of memtables not flushed. Caller should NOT Unref m.
|
|
@@ -279,16 +282,16 @@ void MemTableListVersion::Remove(MemTable* m,
|
|
|
279
282
|
}
|
|
280
283
|
|
|
281
284
|
// return the total memory usage assuming the oldest flushed memtable is dropped
|
|
282
|
-
size_t MemTableListVersion::
|
|
285
|
+
size_t MemTableListVersion::MemoryAllocatedBytesExcludingLast() const {
|
|
283
286
|
size_t total_memtable_size = 0;
|
|
284
287
|
for (auto& memtable : memlist_) {
|
|
285
|
-
total_memtable_size += memtable->
|
|
288
|
+
total_memtable_size += memtable->MemoryAllocatedBytes();
|
|
286
289
|
}
|
|
287
290
|
for (auto& memtable : memlist_history_) {
|
|
288
|
-
total_memtable_size += memtable->
|
|
291
|
+
total_memtable_size += memtable->MemoryAllocatedBytes();
|
|
289
292
|
}
|
|
290
293
|
if (!memlist_history_.empty()) {
|
|
291
|
-
total_memtable_size -= memlist_history_.back()->
|
|
294
|
+
total_memtable_size -= memlist_history_.back()->MemoryAllocatedBytes();
|
|
292
295
|
}
|
|
293
296
|
return total_memtable_size;
|
|
294
297
|
}
|
|
@@ -298,7 +301,7 @@ bool MemTableListVersion::MemtableLimitExceeded(size_t usage) {
|
|
|
298
301
|
// calculate the total memory usage after dropping the oldest flushed
|
|
299
302
|
// memtable, compare with max_write_buffer_size_to_maintain_ to decide
|
|
300
303
|
// whether to trim history
|
|
301
|
-
return
|
|
304
|
+
return MemoryAllocatedBytesExcludingLast() + usage >=
|
|
302
305
|
static_cast<size_t>(max_write_buffer_size_to_maintain_);
|
|
303
306
|
} else if (max_write_buffer_number_to_maintain_ > 0) {
|
|
304
307
|
return memlist_.size() + memlist_history_.size() >
|
|
@@ -335,11 +338,19 @@ bool MemTableList::IsFlushPending() const {
|
|
|
335
338
|
|
|
336
339
|
// Returns the memtables that need to be flushed.
|
|
337
340
|
void MemTableList::PickMemtablesToFlush(uint64_t max_memtable_id,
|
|
338
|
-
autovector<MemTable*>* ret
|
|
341
|
+
autovector<MemTable*>* ret,
|
|
342
|
+
uint64_t* max_next_log_number) {
|
|
339
343
|
AutoThreadOperationStageUpdater stage_updater(
|
|
340
344
|
ThreadStatus::STAGE_PICK_MEMTABLES_TO_FLUSH);
|
|
341
345
|
const auto& memlist = current_->memlist_;
|
|
342
346
|
bool atomic_flush = false;
|
|
347
|
+
|
|
348
|
+
// Note: every time MemTableList::Add(mem) is called, it adds the new mem
|
|
349
|
+
// at the FRONT of the memlist (memlist.push_front(mem)). Therefore, by
|
|
350
|
+
// iterating through the memlist starting at the end, the vector<MemTable*>
|
|
351
|
+
// ret is filled with memtables already sorted in increasing MemTable ID.
|
|
352
|
+
// However, when the mempurge feature is activated, new memtables with older
|
|
353
|
+
// IDs will be added to the memlist.
|
|
343
354
|
for (auto it = memlist.rbegin(); it != memlist.rend(); ++it) {
|
|
344
355
|
MemTable* m = *it;
|
|
345
356
|
if (!atomic_flush && m->atomic_flush_seqno_ != kMaxSequenceNumber) {
|
|
@@ -355,6 +366,10 @@ void MemTableList::PickMemtablesToFlush(uint64_t max_memtable_id,
|
|
|
355
366
|
imm_flush_needed.store(false, std::memory_order_release);
|
|
356
367
|
}
|
|
357
368
|
m->flush_in_progress_ = true; // flushing will start very soon
|
|
369
|
+
if (max_next_log_number) {
|
|
370
|
+
*max_next_log_number =
|
|
371
|
+
std::max(m->GetNextLogNumber(), *max_next_log_number);
|
|
372
|
+
}
|
|
358
373
|
ret->push_back(m);
|
|
359
374
|
}
|
|
360
375
|
}
|
|
@@ -392,7 +407,7 @@ Status MemTableList::TryInstallMemtableFlushResults(
|
|
|
392
407
|
autovector<MemTable*>* to_delete, FSDirectory* db_directory,
|
|
393
408
|
LogBuffer* log_buffer,
|
|
394
409
|
std::list<std::unique_ptr<FlushJobInfo>>* committed_flush_jobs_info,
|
|
395
|
-
|
|
410
|
+
bool write_edits) {
|
|
396
411
|
AutoThreadOperationStageUpdater stage_updater(
|
|
397
412
|
ThreadStatus::STAGE_MEMTABLE_INSTALL_FLUSH_RESULTS);
|
|
398
413
|
mu->AssertHeld();
|
|
@@ -474,41 +489,64 @@ Status MemTableList::TryInstallMemtableFlushResults(
|
|
|
474
489
|
// TODO(myabandeh): Not sure how batch_count could be 0 here.
|
|
475
490
|
if (batch_count > 0) {
|
|
476
491
|
uint64_t min_wal_number_to_keep = 0;
|
|
492
|
+
assert(edit_list.size() > 0);
|
|
477
493
|
if (vset->db_options()->allow_2pc) {
|
|
478
|
-
|
|
494
|
+
// Note that if mempurge is successful, the edit_list will
|
|
495
|
+
// not be applicable (contains info of new min_log number to keep,
|
|
496
|
+
// and level 0 file path of SST file created during normal flush,
|
|
497
|
+
// so both pieces of information are irrelevant after a successful
|
|
498
|
+
// mempurge operation).
|
|
479
499
|
min_wal_number_to_keep = PrecomputeMinLogNumberToKeep2PC(
|
|
480
500
|
vset, *cfd, edit_list, memtables_to_flush, prep_tracker);
|
|
481
|
-
|
|
501
|
+
|
|
502
|
+
// We piggyback the information of earliest log file to keep in the
|
|
482
503
|
// manifest entry for the last file flushed.
|
|
483
|
-
|
|
504
|
+
} else {
|
|
505
|
+
min_wal_number_to_keep =
|
|
506
|
+
PrecomputeMinLogNumberToKeepNon2PC(vset, *cfd, edit_list);
|
|
484
507
|
}
|
|
485
508
|
|
|
486
|
-
|
|
509
|
+
VersionEdit wal_deletion;
|
|
510
|
+
wal_deletion.SetMinLogNumberToKeep(min_wal_number_to_keep);
|
|
487
511
|
if (vset->db_options()->track_and_verify_wals_in_manifest) {
|
|
488
|
-
if (!vset->db_options()->allow_2pc) {
|
|
489
|
-
min_wal_number_to_keep =
|
|
490
|
-
PrecomputeMinLogNumberToKeepNon2PC(vset, *cfd, edit_list);
|
|
491
|
-
}
|
|
492
512
|
if (min_wal_number_to_keep >
|
|
493
513
|
vset->GetWalSet().GetMinWalNumberToKeep()) {
|
|
494
|
-
wal_deletion.
|
|
495
|
-
wal_deletion->DeleteWalsBefore(min_wal_number_to_keep);
|
|
496
|
-
edit_list.push_back(wal_deletion.get());
|
|
514
|
+
wal_deletion.DeleteWalsBefore(min_wal_number_to_keep);
|
|
497
515
|
}
|
|
516
|
+
TEST_SYNC_POINT_CALLBACK(
|
|
517
|
+
"MemTableList::TryInstallMemtableFlushResults:"
|
|
518
|
+
"AfterComputeMinWalToKeep",
|
|
519
|
+
nullptr);
|
|
498
520
|
}
|
|
521
|
+
edit_list.push_back(&wal_deletion);
|
|
499
522
|
|
|
500
523
|
const auto manifest_write_cb = [this, cfd, batch_count, log_buffer,
|
|
501
524
|
to_delete, mu](const Status& status) {
|
|
502
525
|
RemoveMemTablesOrRestoreFlags(status, cfd, batch_count, log_buffer,
|
|
503
526
|
to_delete, mu);
|
|
504
527
|
};
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
528
|
+
if (write_edits) {
|
|
529
|
+
// this can release and reacquire the mutex.
|
|
530
|
+
s = vset->LogAndApply(cfd, mutable_cf_options, edit_list, mu,
|
|
531
|
+
db_directory, /*new_descriptor_log=*/false,
|
|
532
|
+
/*column_family_options=*/nullptr,
|
|
533
|
+
manifest_write_cb);
|
|
534
|
+
} else {
|
|
535
|
+
// If write_edit is false (e.g: successful mempurge),
|
|
536
|
+
// then remove old memtables, wake up manifest write queue threads,
|
|
537
|
+
// and don't commit anything to the manifest file.
|
|
538
|
+
RemoveMemTablesOrRestoreFlags(s, cfd, batch_count, log_buffer,
|
|
539
|
+
to_delete, mu);
|
|
540
|
+
// Note: cfd->SetLogNumber is only called when a VersionEdit
|
|
541
|
+
// is written to MANIFEST. When mempurge is succesful, we skip
|
|
542
|
+
// this step, therefore cfd->GetLogNumber is always is
|
|
543
|
+
// earliest log with data unflushed.
|
|
544
|
+
// Notify new head of manifest write queue.
|
|
545
|
+
// wake up all the waiting writers
|
|
546
|
+
// TODO(bjlemaire): explain full reason WakeUpWaitingManifestWriters
|
|
547
|
+
// needed or investigate more.
|
|
548
|
+
vset->WakeUpWaitingManifestWriters();
|
|
549
|
+
}
|
|
512
550
|
}
|
|
513
551
|
}
|
|
514
552
|
commit_in_progress_ = false;
|
|
@@ -521,7 +559,7 @@ void MemTableList::Add(MemTable* m, autovector<MemTable*>* to_delete) {
|
|
|
521
559
|
InstallNewVersion();
|
|
522
560
|
// this method is used to move mutable memtable into an immutable list.
|
|
523
561
|
// since mutable memtable is already refcounted by the DBImpl,
|
|
524
|
-
// and when moving to the
|
|
562
|
+
// and when moving to the immutable list we don't unref it,
|
|
525
563
|
// we don't have to ref the memtable here. we just take over the
|
|
526
564
|
// reference from the DBImpl.
|
|
527
565
|
current_->Add(m, to_delete);
|
|
@@ -553,9 +591,9 @@ size_t MemTableList::ApproximateUnflushedMemTablesMemoryUsage() {
|
|
|
553
591
|
|
|
554
592
|
size_t MemTableList::ApproximateMemoryUsage() { return current_memory_usage_; }
|
|
555
593
|
|
|
556
|
-
size_t MemTableList::
|
|
557
|
-
const size_t usage =
|
|
558
|
-
|
|
594
|
+
size_t MemTableList::MemoryAllocatedBytesExcludingLast() const {
|
|
595
|
+
const size_t usage = current_memory_allocted_bytes_excluding_last_.load(
|
|
596
|
+
std::memory_order_relaxed);
|
|
559
597
|
return usage;
|
|
560
598
|
}
|
|
561
599
|
|
|
@@ -566,9 +604,9 @@ bool MemTableList::HasHistory() const {
|
|
|
566
604
|
|
|
567
605
|
void MemTableList::UpdateCachedValuesFromMemTableListVersion() {
|
|
568
606
|
const size_t total_memtable_size =
|
|
569
|
-
current_->
|
|
570
|
-
|
|
571
|
-
|
|
607
|
+
current_->MemoryAllocatedBytesExcludingLast();
|
|
608
|
+
current_memory_allocted_bytes_excluding_last_.store(
|
|
609
|
+
total_memtable_size, std::memory_order_relaxed);
|
|
572
610
|
|
|
573
611
|
const bool has_history = current_->HasHistory();
|
|
574
612
|
current_has_history_.store(has_history, std::memory_order_relaxed);
|
|
@@ -701,6 +739,8 @@ Status InstallMemtableAtomicFlushResults(
|
|
|
701
739
|
const autovector<const autovector<MemTable*>*>& mems_list, VersionSet* vset,
|
|
702
740
|
LogsWithPrepTracker* prep_tracker, InstrumentedMutex* mu,
|
|
703
741
|
const autovector<FileMetaData*>& file_metas,
|
|
742
|
+
const autovector<std::list<std::unique_ptr<FlushJobInfo>>*>&
|
|
743
|
+
committed_flush_jobs_info,
|
|
704
744
|
autovector<MemTable*>* to_delete, FSDirectory* db_directory,
|
|
705
745
|
LogBuffer* log_buffer) {
|
|
706
746
|
AutoThreadOperationStageUpdater stage_updater(
|
|
@@ -730,6 +770,17 @@ Status InstallMemtableAtomicFlushResults(
|
|
|
730
770
|
(*mems_list[k])[i]->SetFlushCompleted(true);
|
|
731
771
|
(*mems_list[k])[i]->SetFileNumber(file_metas[k]->fd.GetNumber());
|
|
732
772
|
}
|
|
773
|
+
#ifndef ROCKSDB_LITE
|
|
774
|
+
if (committed_flush_jobs_info[k]) {
|
|
775
|
+
assert(!mems_list[k]->empty());
|
|
776
|
+
assert((*mems_list[k])[0]);
|
|
777
|
+
std::unique_ptr<FlushJobInfo> flush_job_info =
|
|
778
|
+
(*mems_list[k])[0]->ReleaseFlushJobInfo();
|
|
779
|
+
committed_flush_jobs_info[k]->push_back(std::move(flush_job_info));
|
|
780
|
+
}
|
|
781
|
+
#else //! ROCKSDB_LITE
|
|
782
|
+
(void)committed_flush_jobs_info;
|
|
783
|
+
#endif // ROCKSDB_LITE
|
|
733
784
|
}
|
|
734
785
|
|
|
735
786
|
Status s;
|
|
@@ -749,22 +800,19 @@ Status InstallMemtableAtomicFlushResults(
|
|
|
749
800
|
if (vset->db_options()->allow_2pc) {
|
|
750
801
|
min_wal_number_to_keep = PrecomputeMinLogNumberToKeep2PC(
|
|
751
802
|
vset, cfds, edit_lists, mems_list, prep_tracker);
|
|
752
|
-
|
|
803
|
+
} else {
|
|
804
|
+
min_wal_number_to_keep =
|
|
805
|
+
PrecomputeMinLogNumberToKeepNon2PC(vset, cfds, edit_lists);
|
|
753
806
|
}
|
|
754
807
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
min_wal_number_to_keep
|
|
759
|
-
|
|
760
|
-
}
|
|
761
|
-
if (min_wal_number_to_keep > vset->GetWalSet().GetMinWalNumberToKeep()) {
|
|
762
|
-
wal_deletion.reset(new VersionEdit);
|
|
763
|
-
wal_deletion->DeleteWalsBefore(min_wal_number_to_keep);
|
|
764
|
-
edit_lists.back().push_back(wal_deletion.get());
|
|
765
|
-
++num_entries;
|
|
766
|
-
}
|
|
808
|
+
VersionEdit wal_deletion;
|
|
809
|
+
wal_deletion.SetMinLogNumberToKeep(min_wal_number_to_keep);
|
|
810
|
+
if (vset->db_options()->track_and_verify_wals_in_manifest &&
|
|
811
|
+
min_wal_number_to_keep > vset->GetWalSet().GetMinWalNumberToKeep()) {
|
|
812
|
+
wal_deletion.DeleteWalsBefore(min_wal_number_to_keep);
|
|
767
813
|
}
|
|
814
|
+
edit_lists.back().push_back(&wal_deletion);
|
|
815
|
+
++num_entries;
|
|
768
816
|
|
|
769
817
|
// Mark the version edits as an atomic group if the number of version edits
|
|
770
818
|
// exceeds 1.
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
#include <string>
|
|
13
13
|
#include <vector>
|
|
14
14
|
|
|
15
|
-
#include "db/dbformat.h"
|
|
16
15
|
#include "db/logs_with_prep_tracker.h"
|
|
17
16
|
#include "db/memtable.h"
|
|
18
17
|
#include "db/range_del_aggregator.h"
|
|
@@ -140,6 +139,8 @@ class MemTableListVersion {
|
|
|
140
139
|
const autovector<const autovector<MemTable*>*>& mems_list,
|
|
141
140
|
VersionSet* vset, LogsWithPrepTracker* prep_tracker,
|
|
142
141
|
InstrumentedMutex* mu, const autovector<FileMetaData*>& file_meta,
|
|
142
|
+
const autovector<std::list<std::unique_ptr<FlushJobInfo>>*>&
|
|
143
|
+
committed_flush_jobs_info,
|
|
143
144
|
autovector<MemTable*>* to_delete, FSDirectory* db_directory,
|
|
144
145
|
LogBuffer* log_buffer);
|
|
145
146
|
|
|
@@ -167,7 +168,7 @@ class MemTableListVersion {
|
|
|
167
168
|
// excluding the last MemTable in memlist_history_. The reason for excluding
|
|
168
169
|
// the last MemTable is to see if dropping the last MemTable will keep total
|
|
169
170
|
// memory usage above or equal to max_write_buffer_size_to_maintain_
|
|
170
|
-
size_t
|
|
171
|
+
size_t MemoryAllocatedBytesExcludingLast() const;
|
|
171
172
|
|
|
172
173
|
// Whether this version contains flushed memtables that are only kept around
|
|
173
174
|
// for transaction conflict checking.
|
|
@@ -220,7 +221,7 @@ class MemTableList {
|
|
|
220
221
|
commit_in_progress_(false),
|
|
221
222
|
flush_requested_(false),
|
|
222
223
|
current_memory_usage_(0),
|
|
223
|
-
|
|
224
|
+
current_memory_allocted_bytes_excluding_last_(0),
|
|
224
225
|
current_has_history_(false) {
|
|
225
226
|
current_->Ref();
|
|
226
227
|
}
|
|
@@ -252,7 +253,8 @@ class MemTableList {
|
|
|
252
253
|
// Returns the earliest memtables that needs to be flushed. The returned
|
|
253
254
|
// memtables are guaranteed to be in the ascending order of created time.
|
|
254
255
|
void PickMemtablesToFlush(uint64_t max_memtable_id,
|
|
255
|
-
autovector<MemTable*>* mems
|
|
256
|
+
autovector<MemTable*>* mems,
|
|
257
|
+
uint64_t* max_next_log_number = nullptr);
|
|
256
258
|
|
|
257
259
|
// Reset status of the given memtable list back to pending state so that
|
|
258
260
|
// they can get picked up again on the next round of flush.
|
|
@@ -268,24 +270,27 @@ class MemTableList {
|
|
|
268
270
|
autovector<MemTable*>* to_delete, FSDirectory* db_directory,
|
|
269
271
|
LogBuffer* log_buffer,
|
|
270
272
|
std::list<std::unique_ptr<FlushJobInfo>>* committed_flush_jobs_info,
|
|
271
|
-
|
|
273
|
+
bool write_edits = true);
|
|
272
274
|
|
|
273
275
|
// New memtables are inserted at the front of the list.
|
|
274
276
|
// Takes ownership of the referenced held on *m by the caller of Add().
|
|
277
|
+
// By default, adding memtables will flag that the memtable list needs to be
|
|
278
|
+
// flushed, but in certain situations, like after a mempurge, we may want to
|
|
279
|
+
// avoid flushing the memtable list upon addition of a memtable.
|
|
275
280
|
void Add(MemTable* m, autovector<MemTable*>* to_delete);
|
|
276
281
|
|
|
277
282
|
// Returns an estimate of the number of bytes of data in use.
|
|
278
283
|
size_t ApproximateMemoryUsage();
|
|
279
284
|
|
|
280
|
-
// Returns the cached
|
|
281
|
-
size_t
|
|
285
|
+
// Returns the cached current_memory_allocted_bytes_excluding_last_ value.
|
|
286
|
+
size_t MemoryAllocatedBytesExcludingLast() const;
|
|
282
287
|
|
|
283
288
|
// Returns the cached current_has_history_ value.
|
|
284
289
|
bool HasHistory() const;
|
|
285
290
|
|
|
286
|
-
// Updates
|
|
287
|
-
// from MemTableListVersion. Must be called whenever
|
|
288
|
-
// called.
|
|
291
|
+
// Updates current_memory_allocted_bytes_excluding_last_ and
|
|
292
|
+
// current_has_history_ from MemTableListVersion. Must be called whenever
|
|
293
|
+
// InstallNewVersion is called.
|
|
289
294
|
void UpdateCachedValuesFromMemTableListVersion();
|
|
290
295
|
|
|
291
296
|
// `usage` is the current size of the mutable Memtable. When
|
|
@@ -308,7 +313,18 @@ class MemTableList {
|
|
|
308
313
|
// non-empty (regardless of the min_write_buffer_number_to_merge
|
|
309
314
|
// parameter). This flush request will persist until the next time
|
|
310
315
|
// PickMemtablesToFlush() is called.
|
|
311
|
-
void FlushRequested() {
|
|
316
|
+
void FlushRequested() {
|
|
317
|
+
flush_requested_ = true;
|
|
318
|
+
// If there are some memtables stored in imm() that dont trigger
|
|
319
|
+
// flush (eg: mempurge output memtable), then update imm_flush_needed.
|
|
320
|
+
// Note: if race condition and imm_flush_needed is set to true
|
|
321
|
+
// when there is num_flush_not_started_==0, then there is no
|
|
322
|
+
// impact whatsoever. Imm_flush_needed is only used in an assert
|
|
323
|
+
// in IsFlushPending().
|
|
324
|
+
if (num_flush_not_started_ > 0) {
|
|
325
|
+
imm_flush_needed.store(true, std::memory_order_release);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
312
328
|
|
|
313
329
|
bool HasFlushRequested() { return flush_requested_; }
|
|
314
330
|
|
|
@@ -383,6 +399,8 @@ class MemTableList {
|
|
|
383
399
|
const autovector<const autovector<MemTable*>*>& mems_list,
|
|
384
400
|
VersionSet* vset, LogsWithPrepTracker* prep_tracker,
|
|
385
401
|
InstrumentedMutex* mu, const autovector<FileMetaData*>& file_meta,
|
|
402
|
+
const autovector<std::list<std::unique_ptr<FlushJobInfo>>*>&
|
|
403
|
+
committed_flush_jobs_info,
|
|
386
404
|
autovector<MemTable*>* to_delete, FSDirectory* db_directory,
|
|
387
405
|
LogBuffer* log_buffer);
|
|
388
406
|
|
|
@@ -413,8 +431,8 @@ class MemTableList {
|
|
|
413
431
|
// The current memory usage.
|
|
414
432
|
size_t current_memory_usage_;
|
|
415
433
|
|
|
416
|
-
// Cached value of current_->
|
|
417
|
-
std::atomic<size_t>
|
|
434
|
+
// Cached value of current_->MemoryAllocatedBytesExcludingLast().
|
|
435
|
+
std::atomic<size_t> current_memory_allocted_bytes_excluding_last_;
|
|
418
436
|
|
|
419
437
|
// Cached value of current_->HasHistory().
|
|
420
438
|
std::atomic<bool> current_has_history_;
|
|
@@ -433,6 +451,8 @@ extern Status InstallMemtableAtomicFlushResults(
|
|
|
433
451
|
const autovector<const autovector<MemTable*>*>& mems_list, VersionSet* vset,
|
|
434
452
|
LogsWithPrepTracker* prep_tracker, InstrumentedMutex* mu,
|
|
435
453
|
const autovector<FileMetaData*>& file_meta,
|
|
454
|
+
const autovector<std::list<std::unique_ptr<FlushJobInfo>>*>&
|
|
455
|
+
committed_flush_jobs_info,
|
|
436
456
|
autovector<MemTable*>* to_delete, FSDirectory* db_directory,
|
|
437
457
|
LogBuffer* log_buffer);
|
|
438
458
|
} // namespace ROCKSDB_NAMESPACE
|