@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
|
@@ -25,10 +25,13 @@
|
|
|
25
25
|
#pragma once
|
|
26
26
|
|
|
27
27
|
#include <stdint.h>
|
|
28
|
+
|
|
28
29
|
#include <atomic>
|
|
30
|
+
#include <functional>
|
|
29
31
|
#include <memory>
|
|
30
32
|
#include <string>
|
|
31
33
|
#include <vector>
|
|
34
|
+
|
|
32
35
|
#include "rocksdb/status.h"
|
|
33
36
|
#include "rocksdb/write_batch_base.h"
|
|
34
37
|
|
|
@@ -61,20 +64,34 @@ struct SavePoint {
|
|
|
61
64
|
class WriteBatch : public WriteBatchBase {
|
|
62
65
|
public:
|
|
63
66
|
explicit WriteBatch(size_t reserved_bytes = 0, size_t max_bytes = 0);
|
|
64
|
-
|
|
67
|
+
// `protection_bytes_per_key` is the number of bytes used to store
|
|
68
|
+
// protection information for each key entry. Currently supported values are
|
|
69
|
+
// zero (disabled) and eight.
|
|
70
|
+
explicit WriteBatch(size_t reserved_bytes, size_t max_bytes,
|
|
71
|
+
size_t protection_bytes_per_key, size_t default_cf_ts_sz);
|
|
65
72
|
~WriteBatch() override;
|
|
66
73
|
|
|
67
74
|
using WriteBatchBase::Put;
|
|
68
75
|
// Store the mapping "key->value" in the database.
|
|
76
|
+
// The following Put(..., const Slice& key, ...) API can also be used when
|
|
77
|
+
// user-defined timestamp is enabled as long as `key` points to a contiguous
|
|
78
|
+
// buffer with timestamp appended after user key. The caller is responsible
|
|
79
|
+
// for setting up the memory buffer pointed to by `key`.
|
|
69
80
|
Status Put(ColumnFamilyHandle* column_family, const Slice& key,
|
|
70
81
|
const Slice& value) override;
|
|
71
82
|
Status Put(const Slice& key, const Slice& value) override {
|
|
72
83
|
return Put(nullptr, key, value);
|
|
73
84
|
}
|
|
85
|
+
Status Put(ColumnFamilyHandle* column_family, const Slice& key,
|
|
86
|
+
const Slice& ts, const Slice& value) override;
|
|
74
87
|
|
|
75
88
|
// Variant of Put() that gathers output like writev(2). The key and value
|
|
76
89
|
// that will be written to the database are concatenations of arrays of
|
|
77
90
|
// slices.
|
|
91
|
+
// The following Put(..., const SliceParts& key, ...) API can be used when
|
|
92
|
+
// user-defined timestamp is enabled as long as the timestamp is the last
|
|
93
|
+
// Slice in `key`, a SliceParts (array of Slices). The caller is responsible
|
|
94
|
+
// for setting up the `key` SliceParts object.
|
|
78
95
|
Status Put(ColumnFamilyHandle* column_family, const SliceParts& key,
|
|
79
96
|
const SliceParts& value) override;
|
|
80
97
|
Status Put(const SliceParts& key, const SliceParts& value) override {
|
|
@@ -83,10 +100,20 @@ class WriteBatch : public WriteBatchBase {
|
|
|
83
100
|
|
|
84
101
|
using WriteBatchBase::Delete;
|
|
85
102
|
// If the database contains a mapping for "key", erase it. Else do nothing.
|
|
103
|
+
// The following Delete(..., const Slice& key) can be used when user-defined
|
|
104
|
+
// timestamp is enabled as long as `key` points to a contiguous buffer with
|
|
105
|
+
// timestamp appended after user key. The caller is responsible for setting
|
|
106
|
+
// up the memory buffer pointed to by `key`.
|
|
86
107
|
Status Delete(ColumnFamilyHandle* column_family, const Slice& key) override;
|
|
87
108
|
Status Delete(const Slice& key) override { return Delete(nullptr, key); }
|
|
109
|
+
Status Delete(ColumnFamilyHandle* column_family, const Slice& key,
|
|
110
|
+
const Slice& ts) override;
|
|
88
111
|
|
|
89
112
|
// variant that takes SliceParts
|
|
113
|
+
// These two variants of Delete(..., const SliceParts& key) can be used when
|
|
114
|
+
// user-defined timestamp is enabled as long as the timestamp is the last
|
|
115
|
+
// Slice in `key`, a SliceParts (array of Slices). The caller is responsible
|
|
116
|
+
// for setting up the `key` SliceParts object.
|
|
90
117
|
Status Delete(ColumnFamilyHandle* column_family,
|
|
91
118
|
const SliceParts& key) override;
|
|
92
119
|
Status Delete(const SliceParts& key) override { return Delete(nullptr, key); }
|
|
@@ -98,6 +125,8 @@ class WriteBatch : public WriteBatchBase {
|
|
|
98
125
|
Status SingleDelete(const Slice& key) override {
|
|
99
126
|
return SingleDelete(nullptr, key);
|
|
100
127
|
}
|
|
128
|
+
Status SingleDelete(ColumnFamilyHandle* column_family, const Slice& key,
|
|
129
|
+
const Slice& ts) override;
|
|
101
130
|
|
|
102
131
|
// variant that takes SliceParts
|
|
103
132
|
Status SingleDelete(ColumnFamilyHandle* column_family,
|
|
@@ -113,6 +142,12 @@ class WriteBatch : public WriteBatchBase {
|
|
|
113
142
|
Status DeleteRange(const Slice& begin_key, const Slice& end_key) override {
|
|
114
143
|
return DeleteRange(nullptr, begin_key, end_key);
|
|
115
144
|
}
|
|
145
|
+
Status DeleteRange(ColumnFamilyHandle* /*column_family*/,
|
|
146
|
+
const Slice& /*begin_key*/, const Slice& /*end_key*/,
|
|
147
|
+
const Slice& /*ts*/) override {
|
|
148
|
+
return Status::NotSupported(
|
|
149
|
+
"DeleteRange does not support user-defined timestamp");
|
|
150
|
+
}
|
|
116
151
|
|
|
117
152
|
// variant that takes SliceParts
|
|
118
153
|
Status DeleteRange(ColumnFamilyHandle* column_family,
|
|
@@ -131,6 +166,11 @@ class WriteBatch : public WriteBatchBase {
|
|
|
131
166
|
Status Merge(const Slice& key, const Slice& value) override {
|
|
132
167
|
return Merge(nullptr, key, value);
|
|
133
168
|
}
|
|
169
|
+
Status Merge(ColumnFamilyHandle* /*column_family*/, const Slice& /*key*/,
|
|
170
|
+
const Slice& /*ts*/, const Slice& /*value*/) override {
|
|
171
|
+
return Status::NotSupported(
|
|
172
|
+
"Merge does not support user-defined timestamp");
|
|
173
|
+
}
|
|
134
174
|
|
|
135
175
|
// variant that takes SliceParts
|
|
136
176
|
Status Merge(ColumnFamilyHandle* column_family, const SliceParts& key,
|
|
@@ -265,6 +305,12 @@ class WriteBatch : public WriteBatchBase {
|
|
|
265
305
|
return Status::InvalidArgument("MarkCommit() handler not defined.");
|
|
266
306
|
}
|
|
267
307
|
|
|
308
|
+
virtual Status MarkCommitWithTimestamp(const Slice& /*xid*/,
|
|
309
|
+
const Slice& /*commit_ts*/) {
|
|
310
|
+
return Status::InvalidArgument(
|
|
311
|
+
"MarkCommitWithTimestamp() handler not defined.");
|
|
312
|
+
}
|
|
313
|
+
|
|
268
314
|
// Continue is called by WriteBatch::Iterate. If it returns false,
|
|
269
315
|
// iteration is halted. Otherwise, it continues iterating. The default
|
|
270
316
|
// implementation always returns true.
|
|
@@ -307,17 +353,32 @@ class WriteBatch : public WriteBatchBase {
|
|
|
307
353
|
// Returns true if MarkEndPrepare will be called during Iterate
|
|
308
354
|
bool HasEndPrepare() const;
|
|
309
355
|
|
|
310
|
-
// Returns
|
|
356
|
+
// Returns true if MarkCommit will be called during Iterate
|
|
311
357
|
bool HasCommit() const;
|
|
312
358
|
|
|
313
|
-
// Returns
|
|
359
|
+
// Returns true if MarkRollback will be called during Iterate
|
|
314
360
|
bool HasRollback() const;
|
|
315
361
|
|
|
316
|
-
//
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
//
|
|
320
|
-
|
|
362
|
+
// Experimental.
|
|
363
|
+
//
|
|
364
|
+
// Update timestamps of existing entries in the write batch if
|
|
365
|
+
// applicable. If a key is intended for a column family that disables
|
|
366
|
+
// timestamp, then this API won't set the timestamp for this key.
|
|
367
|
+
// This requires that all keys, if enable timestamp, (possibly from multiple
|
|
368
|
+
// column families) in the write batch have timestamps of the same format.
|
|
369
|
+
//
|
|
370
|
+
// ts_sz_func: callable object to obtain the timestamp sizes of column
|
|
371
|
+
// families. If ts_sz_func() accesses data structures, then the caller of this
|
|
372
|
+
// API must guarantee thread-safety. Like other parts of RocksDB, this API is
|
|
373
|
+
// not exception-safe. Therefore, ts_sz_func() must not throw.
|
|
374
|
+
//
|
|
375
|
+
// in: cf, the column family id.
|
|
376
|
+
// ret: timestamp size of the given column family. Return
|
|
377
|
+
// std::numeric_limits<size_t>::max() indicating "dont know or column
|
|
378
|
+
// family info not found", this will cause UpdateTimestamps() to fail.
|
|
379
|
+
// size_t ts_sz_func(uint32_t cf);
|
|
380
|
+
Status UpdateTimestamps(const Slice& ts,
|
|
381
|
+
std::function<size_t(uint32_t /*cf*/)> ts_sz_func);
|
|
321
382
|
|
|
322
383
|
using WriteBatchBase::GetWriteBatch;
|
|
323
384
|
WriteBatch* GetWriteBatch() override { return this; }
|
|
@@ -338,6 +399,9 @@ class WriteBatch : public WriteBatchBase {
|
|
|
338
399
|
|
|
339
400
|
void SetMaxBytes(size_t max_bytes) override { max_bytes_ = max_bytes; }
|
|
340
401
|
|
|
402
|
+
struct ProtectionInfo;
|
|
403
|
+
size_t GetProtectionBytesPerKey() const;
|
|
404
|
+
|
|
341
405
|
private:
|
|
342
406
|
friend class WriteBatchInternal;
|
|
343
407
|
friend class LocalSavePoint;
|
|
@@ -367,11 +431,25 @@ class WriteBatch : public WriteBatchBase {
|
|
|
367
431
|
// more details.
|
|
368
432
|
bool is_latest_persistent_state_ = false;
|
|
369
433
|
|
|
434
|
+
std::unique_ptr<ProtectionInfo> prot_info_;
|
|
435
|
+
|
|
436
|
+
size_t default_cf_ts_sz_ = 0;
|
|
437
|
+
|
|
438
|
+
// False if all keys are from column families that disable user-defined
|
|
439
|
+
// timestamp OR UpdateTimestamps() has been called at least once.
|
|
440
|
+
// This flag will be set to true if any of the above Put(), Delete(),
|
|
441
|
+
// SingleDelete(), etc. APIs are called at least once.
|
|
442
|
+
// Calling Put(ts), Delete(ts), SingleDelete(ts), etc. will not set this flag
|
|
443
|
+
// to true because the assumption is that these APIs have already set the
|
|
444
|
+
// timestamps to desired values.
|
|
445
|
+
bool needs_in_place_update_ts_ = false;
|
|
446
|
+
|
|
447
|
+
// True if the write batch contains at least one key from a column family
|
|
448
|
+
// that enables user-defined timestamp.
|
|
449
|
+
bool has_key_with_ts_ = false;
|
|
450
|
+
|
|
370
451
|
protected:
|
|
371
452
|
std::string rep_; // See comment in write_batch.cc for the format of rep_
|
|
372
|
-
const size_t timestamp_size_;
|
|
373
|
-
|
|
374
|
-
// Intentionally copyable
|
|
375
453
|
};
|
|
376
454
|
|
|
377
455
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -31,6 +31,8 @@ class WriteBatchBase {
|
|
|
31
31
|
virtual Status Put(ColumnFamilyHandle* column_family, const Slice& key,
|
|
32
32
|
const Slice& value) = 0;
|
|
33
33
|
virtual Status Put(const Slice& key, const Slice& value) = 0;
|
|
34
|
+
virtual Status Put(ColumnFamilyHandle* column_family, const Slice& key,
|
|
35
|
+
const Slice& ts, const Slice& value) = 0;
|
|
34
36
|
|
|
35
37
|
// Variant of Put() that gathers output like writev(2). The key and value
|
|
36
38
|
// that will be written to the database are concatenations of arrays of
|
|
@@ -44,6 +46,8 @@ class WriteBatchBase {
|
|
|
44
46
|
virtual Status Merge(ColumnFamilyHandle* column_family, const Slice& key,
|
|
45
47
|
const Slice& value) = 0;
|
|
46
48
|
virtual Status Merge(const Slice& key, const Slice& value) = 0;
|
|
49
|
+
virtual Status Merge(ColumnFamilyHandle* column_family, const Slice& key,
|
|
50
|
+
const Slice& ts, const Slice& value) = 0;
|
|
47
51
|
|
|
48
52
|
// variant that takes SliceParts
|
|
49
53
|
virtual Status Merge(ColumnFamilyHandle* column_family, const SliceParts& key,
|
|
@@ -54,6 +58,8 @@ class WriteBatchBase {
|
|
|
54
58
|
virtual Status Delete(ColumnFamilyHandle* column_family,
|
|
55
59
|
const Slice& key) = 0;
|
|
56
60
|
virtual Status Delete(const Slice& key) = 0;
|
|
61
|
+
virtual Status Delete(ColumnFamilyHandle* column_family, const Slice& key,
|
|
62
|
+
const Slice& ts) = 0;
|
|
57
63
|
|
|
58
64
|
// variant that takes SliceParts
|
|
59
65
|
virtual Status Delete(ColumnFamilyHandle* column_family,
|
|
@@ -65,6 +71,8 @@ class WriteBatchBase {
|
|
|
65
71
|
virtual Status SingleDelete(ColumnFamilyHandle* column_family,
|
|
66
72
|
const Slice& key) = 0;
|
|
67
73
|
virtual Status SingleDelete(const Slice& key) = 0;
|
|
74
|
+
virtual Status SingleDelete(ColumnFamilyHandle* column_family,
|
|
75
|
+
const Slice& key, const Slice& ts) = 0;
|
|
68
76
|
|
|
69
77
|
// variant that takes SliceParts
|
|
70
78
|
virtual Status SingleDelete(ColumnFamilyHandle* column_family,
|
|
@@ -76,6 +84,9 @@ class WriteBatchBase {
|
|
|
76
84
|
virtual Status DeleteRange(ColumnFamilyHandle* column_family,
|
|
77
85
|
const Slice& begin_key, const Slice& end_key) = 0;
|
|
78
86
|
virtual Status DeleteRange(const Slice& begin_key, const Slice& end_key) = 0;
|
|
87
|
+
virtual Status DeleteRange(ColumnFamilyHandle* column_family,
|
|
88
|
+
const Slice& begin_key, const Slice& end_key,
|
|
89
|
+
const Slice& ts) = 0;
|
|
79
90
|
|
|
80
91
|
// variant that takes SliceParts
|
|
81
92
|
virtual Status DeleteRange(ColumnFamilyHandle* column_family,
|
|
@@ -13,49 +13,93 @@
|
|
|
13
13
|
#pragma once
|
|
14
14
|
|
|
15
15
|
#include <atomic>
|
|
16
|
+
#include <condition_variable>
|
|
16
17
|
#include <cstddef>
|
|
18
|
+
#include <list>
|
|
19
|
+
#include <mutex>
|
|
20
|
+
|
|
17
21
|
#include "rocksdb/cache.h"
|
|
18
22
|
|
|
19
23
|
namespace ROCKSDB_NAMESPACE {
|
|
24
|
+
class CacheReservationManager;
|
|
25
|
+
|
|
26
|
+
// Interface to block and signal DB instances, intended for RocksDB
|
|
27
|
+
// internal use only. Each DB instance contains ptr to StallInterface.
|
|
28
|
+
class StallInterface {
|
|
29
|
+
public:
|
|
30
|
+
virtual ~StallInterface() {}
|
|
31
|
+
|
|
32
|
+
virtual void Block() = 0;
|
|
20
33
|
|
|
21
|
-
|
|
34
|
+
virtual void Signal() = 0;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
class WriteBufferManager final {
|
|
22
38
|
public:
|
|
23
|
-
//
|
|
39
|
+
// Parameters:
|
|
40
|
+
// _buffer_size: _buffer_size = 0 indicates no limit. Memory won't be capped.
|
|
24
41
|
// memory_usage() won't be valid and ShouldFlush() will always return true.
|
|
25
|
-
//
|
|
26
|
-
//
|
|
42
|
+
//
|
|
43
|
+
// cache_: if `cache` is provided, we'll put dummy entries in the cache and
|
|
44
|
+
// cost the memory allocated to the cache. It can be used even if _buffer_size
|
|
45
|
+
// = 0.
|
|
46
|
+
//
|
|
47
|
+
// allow_stall: if set true, it will enable stalling of writes when
|
|
48
|
+
// memory_usage() exceeds buffer_size. It will wait for flush to complete and
|
|
49
|
+
// memory usage to drop down.
|
|
27
50
|
explicit WriteBufferManager(size_t _buffer_size,
|
|
28
|
-
std::shared_ptr<Cache> cache = {}
|
|
51
|
+
std::shared_ptr<Cache> cache = {},
|
|
52
|
+
bool allow_stall = false);
|
|
29
53
|
// No copying allowed
|
|
30
54
|
WriteBufferManager(const WriteBufferManager&) = delete;
|
|
31
55
|
WriteBufferManager& operator=(const WriteBufferManager&) = delete;
|
|
32
56
|
|
|
33
57
|
~WriteBufferManager();
|
|
34
58
|
|
|
35
|
-
|
|
59
|
+
// Returns true if buffer_limit is passed to limit the total memory usage and
|
|
60
|
+
// is greater than 0.
|
|
61
|
+
bool enabled() const { return buffer_size() > 0; }
|
|
36
62
|
|
|
37
|
-
|
|
63
|
+
// Returns true if pointer to cache is passed.
|
|
64
|
+
bool cost_to_cache() const { return cache_res_mgr_ != nullptr; }
|
|
38
65
|
|
|
66
|
+
// Returns the total memory used by memtables.
|
|
39
67
|
// Only valid if enabled()
|
|
40
68
|
size_t memory_usage() const {
|
|
41
69
|
return memory_used_.load(std::memory_order_relaxed);
|
|
42
70
|
}
|
|
71
|
+
|
|
72
|
+
// Returns the total memory used by active memtables.
|
|
43
73
|
size_t mutable_memtable_memory_usage() const {
|
|
44
74
|
return memory_active_.load(std::memory_order_relaxed);
|
|
45
75
|
}
|
|
46
|
-
|
|
47
|
-
|
|
76
|
+
|
|
77
|
+
size_t dummy_entries_in_cache_usage() const;
|
|
78
|
+
|
|
79
|
+
// Returns the buffer_size.
|
|
80
|
+
size_t buffer_size() const {
|
|
81
|
+
return buffer_size_.load(std::memory_order_relaxed);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
void SetBufferSize(size_t new_size) {
|
|
85
|
+
buffer_size_.store(new_size, std::memory_order_relaxed);
|
|
86
|
+
mutable_limit_.store(new_size * 7 / 8, std::memory_order_relaxed);
|
|
87
|
+
// Check if stall is active and can be ended.
|
|
88
|
+
MaybeEndWriteStall();
|
|
48
89
|
}
|
|
49
|
-
|
|
90
|
+
|
|
91
|
+
// Below functions should be called by RocksDB internally.
|
|
50
92
|
|
|
51
93
|
// Should only be called from write thread
|
|
52
94
|
bool ShouldFlush() const {
|
|
53
95
|
if (enabled()) {
|
|
54
|
-
if (mutable_memtable_memory_usage() >
|
|
96
|
+
if (mutable_memtable_memory_usage() >
|
|
97
|
+
mutable_limit_.load(std::memory_order_relaxed)) {
|
|
55
98
|
return true;
|
|
56
99
|
}
|
|
57
|
-
|
|
58
|
-
|
|
100
|
+
size_t local_size = buffer_size();
|
|
101
|
+
if (memory_usage() >= local_size &&
|
|
102
|
+
mutable_memtable_memory_usage() >= local_size / 2) {
|
|
59
103
|
// If the memory exceeds the buffer size, we trigger more aggressive
|
|
60
104
|
// flush. But if already more than half memory is being flushed,
|
|
61
105
|
// triggering more flush may not help. We will hold it instead.
|
|
@@ -65,40 +109,66 @@ class WriteBufferManager {
|
|
|
65
109
|
return false;
|
|
66
110
|
}
|
|
67
111
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
112
|
+
// Returns true if total memory usage exceeded buffer_size.
|
|
113
|
+
// We stall the writes untill memory_usage drops below buffer_size. When the
|
|
114
|
+
// function returns true, all writer threads (including one checking this
|
|
115
|
+
// condition) across all DBs will be stalled. Stall is allowed only if user
|
|
116
|
+
// pass allow_stall = true during WriteBufferManager instance creation.
|
|
117
|
+
//
|
|
118
|
+
// Should only be called by RocksDB internally .
|
|
119
|
+
bool ShouldStall() const {
|
|
120
|
+
if (!allow_stall_ || !enabled()) {
|
|
121
|
+
return false;
|
|
76
122
|
}
|
|
123
|
+
|
|
124
|
+
return IsStallActive() || IsStallThresholdExceeded();
|
|
77
125
|
}
|
|
78
|
-
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
memory_active_.fetch_sub(mem, std::memory_order_relaxed);
|
|
83
|
-
}
|
|
126
|
+
|
|
127
|
+
// Returns true if stall is active.
|
|
128
|
+
bool IsStallActive() const {
|
|
129
|
+
return stall_active_.load(std::memory_order_relaxed);
|
|
84
130
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
memory_used_.fetch_sub(mem, std::memory_order_relaxed);
|
|
90
|
-
}
|
|
131
|
+
|
|
132
|
+
// Returns true if stalling condition is met.
|
|
133
|
+
bool IsStallThresholdExceeded() const {
|
|
134
|
+
return memory_usage() >= buffer_size_;
|
|
91
135
|
}
|
|
92
136
|
|
|
137
|
+
void ReserveMem(size_t mem);
|
|
138
|
+
|
|
139
|
+
// We are in the process of freeing `mem` bytes, so it is not considered
|
|
140
|
+
// when checking the soft limit.
|
|
141
|
+
void ScheduleFreeMem(size_t mem);
|
|
142
|
+
|
|
143
|
+
void FreeMem(size_t mem);
|
|
144
|
+
|
|
145
|
+
// Add the DB instance to the queue and block the DB.
|
|
146
|
+
// Should only be called by RocksDB internally.
|
|
147
|
+
void BeginWriteStall(StallInterface* wbm_stall);
|
|
148
|
+
|
|
149
|
+
// If stall conditions have resolved, remove DB instances from queue and
|
|
150
|
+
// signal them to continue.
|
|
151
|
+
void MaybeEndWriteStall();
|
|
152
|
+
|
|
153
|
+
void RemoveDBFromQueue(StallInterface* wbm_stall);
|
|
154
|
+
|
|
93
155
|
private:
|
|
94
|
-
|
|
95
|
-
|
|
156
|
+
std::atomic<size_t> buffer_size_;
|
|
157
|
+
std::atomic<size_t> mutable_limit_;
|
|
96
158
|
std::atomic<size_t> memory_used_;
|
|
97
159
|
// Memory that hasn't been scheduled to free.
|
|
98
160
|
std::atomic<size_t> memory_active_;
|
|
99
|
-
std::
|
|
100
|
-
|
|
101
|
-
std::
|
|
161
|
+
std::shared_ptr<CacheReservationManager> cache_res_mgr_;
|
|
162
|
+
// Protects cache_res_mgr_
|
|
163
|
+
std::mutex cache_res_mgr_mu_;
|
|
164
|
+
|
|
165
|
+
std::list<StallInterface*> queue_;
|
|
166
|
+
// Protects the queue_ and stall_active_.
|
|
167
|
+
std::mutex mu_;
|
|
168
|
+
bool allow_stall_;
|
|
169
|
+
// Value should only be changed by BeginWriteStall() and MaybeEndWriteStall()
|
|
170
|
+
// while holding mu_, but it can be read without a lock.
|
|
171
|
+
std::atomic<bool> stall_active_;
|
|
102
172
|
|
|
103
173
|
void ReserveMemWithCache(size_t mem);
|
|
104
174
|
void FreeMemWithCache(size_t mem);
|
|
@@ -6,8 +6,12 @@
|
|
|
6
6
|
#include "logging/auto_roll_logger.h"
|
|
7
7
|
|
|
8
8
|
#include <algorithm>
|
|
9
|
+
|
|
9
10
|
#include "file/filename.h"
|
|
10
11
|
#include "logging/logging.h"
|
|
12
|
+
#include "rocksdb/env.h"
|
|
13
|
+
#include "rocksdb/file_system.h"
|
|
14
|
+
#include "rocksdb/system_clock.h"
|
|
11
15
|
#include "util/mutexlock.h"
|
|
12
16
|
|
|
13
17
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -15,7 +19,9 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
15
19
|
#ifndef ROCKSDB_LITE
|
|
16
20
|
// -- AutoRollLogger
|
|
17
21
|
|
|
18
|
-
AutoRollLogger::AutoRollLogger(
|
|
22
|
+
AutoRollLogger::AutoRollLogger(const std::shared_ptr<FileSystem>& fs,
|
|
23
|
+
const std::shared_ptr<SystemClock>& clock,
|
|
24
|
+
const std::string& dbname,
|
|
19
25
|
const std::string& db_log_dir,
|
|
20
26
|
size_t log_max_size,
|
|
21
27
|
size_t log_file_time_to_roll,
|
|
@@ -24,24 +30,26 @@ AutoRollLogger::AutoRollLogger(Env* env, const std::string& dbname,
|
|
|
24
30
|
: Logger(log_level),
|
|
25
31
|
dbname_(dbname),
|
|
26
32
|
db_log_dir_(db_log_dir),
|
|
27
|
-
|
|
33
|
+
fs_(fs),
|
|
34
|
+
clock_(clock),
|
|
28
35
|
status_(Status::OK()),
|
|
29
36
|
kMaxLogFileSize(log_max_size),
|
|
30
37
|
kLogFileTimeToRoll(log_file_time_to_roll),
|
|
31
38
|
kKeepLogFileNum(keep_log_file_num),
|
|
32
|
-
cached_now(static_cast<uint64_t>(
|
|
39
|
+
cached_now(static_cast<uint64_t>(clock_->NowMicros() * 1e-6)),
|
|
33
40
|
ctime_(cached_now),
|
|
34
41
|
cached_now_access_count(0),
|
|
35
42
|
call_NowMicros_every_N_records_(100),
|
|
36
43
|
mutex_() {
|
|
37
|
-
Status s =
|
|
44
|
+
Status s = fs->GetAbsolutePath(dbname, io_options_, &db_absolute_path_,
|
|
45
|
+
&io_context_);
|
|
38
46
|
if (s.IsNotSupported()) {
|
|
39
47
|
db_absolute_path_ = dbname;
|
|
40
48
|
} else {
|
|
41
49
|
status_ = s;
|
|
42
50
|
}
|
|
43
51
|
log_fname_ = InfoLogFileName(dbname_, db_absolute_path_, db_log_dir_);
|
|
44
|
-
if (
|
|
52
|
+
if (fs_->FileExists(log_fname_, io_options_, &io_context_).ok()) {
|
|
45
53
|
RollLogFile();
|
|
46
54
|
}
|
|
47
55
|
GetExistingFiles();
|
|
@@ -53,7 +61,7 @@ AutoRollLogger::AutoRollLogger(Env* env, const std::string& dbname,
|
|
|
53
61
|
|
|
54
62
|
Status AutoRollLogger::ResetLogger() {
|
|
55
63
|
TEST_SYNC_POINT("AutoRollLogger::ResetLogger:BeforeNewLogger");
|
|
56
|
-
status_ =
|
|
64
|
+
status_ = fs_->NewLogger(log_fname_, io_options_, &logger_, &io_context_);
|
|
57
65
|
TEST_SYNC_POINT("AutoRollLogger::ResetLogger:AfterNewLogger");
|
|
58
66
|
|
|
59
67
|
if (!status_.ok()) {
|
|
@@ -67,7 +75,7 @@ Status AutoRollLogger::ResetLogger() {
|
|
|
67
75
|
"The underlying logger doesn't support GetLogFileSize()");
|
|
68
76
|
}
|
|
69
77
|
if (status_.ok()) {
|
|
70
|
-
cached_now = static_cast<uint64_t>(
|
|
78
|
+
cached_now = static_cast<uint64_t>(clock_->NowMicros() * 1e-6);
|
|
71
79
|
ctime_ = cached_now;
|
|
72
80
|
cached_now_access_count = 0;
|
|
73
81
|
}
|
|
@@ -79,14 +87,14 @@ void AutoRollLogger::RollLogFile() {
|
|
|
79
87
|
// This function is called when log is rotating. Two rotations
|
|
80
88
|
// can happen quickly (NowMicro returns same value). To not overwrite
|
|
81
89
|
// previous log file we increment by one micro second and try again.
|
|
82
|
-
uint64_t now =
|
|
90
|
+
uint64_t now = clock_->NowMicros();
|
|
83
91
|
std::string old_fname;
|
|
84
92
|
do {
|
|
85
93
|
old_fname = OldInfoLogFileName(
|
|
86
94
|
dbname_, now, db_absolute_path_, db_log_dir_);
|
|
87
95
|
now++;
|
|
88
|
-
} while (
|
|
89
|
-
Status s =
|
|
96
|
+
} while (fs_->FileExists(old_fname, io_options_, &io_context_).ok());
|
|
97
|
+
Status s = fs_->RenameFile(log_fname_, old_fname, io_options_, &io_context_);
|
|
90
98
|
if (!s.ok()) {
|
|
91
99
|
// What should we do on error?
|
|
92
100
|
}
|
|
@@ -103,7 +111,7 @@ void AutoRollLogger::GetExistingFiles() {
|
|
|
103
111
|
std::string parent_dir;
|
|
104
112
|
std::vector<std::string> info_log_files;
|
|
105
113
|
Status s =
|
|
106
|
-
GetInfoLogFiles(
|
|
114
|
+
GetInfoLogFiles(fs_, db_log_dir_, dbname_, &parent_dir, &info_log_files);
|
|
107
115
|
if (status_.ok()) {
|
|
108
116
|
status_ = s;
|
|
109
117
|
}
|
|
@@ -117,7 +125,7 @@ void AutoRollLogger::GetExistingFiles() {
|
|
|
117
125
|
}
|
|
118
126
|
|
|
119
127
|
Status AutoRollLogger::TrimOldLogFiles() {
|
|
120
|
-
// Here we directly list info files and delete them through
|
|
128
|
+
// Here we directly list info files and delete them through FileSystem.
|
|
121
129
|
// The deletion isn't going through DB, so there are shortcomes:
|
|
122
130
|
// 1. the deletion is not rate limited by SstFileManager
|
|
123
131
|
// 2. there is a chance that an I/O will be issued here
|
|
@@ -130,7 +138,8 @@ Status AutoRollLogger::TrimOldLogFiles() {
|
|
|
130
138
|
// it's essentially the same thing, and checking empty before accessing
|
|
131
139
|
// the queue feels safer.
|
|
132
140
|
while (!old_log_files_.empty() && old_log_files_.size() >= kKeepLogFileNum) {
|
|
133
|
-
Status s =
|
|
141
|
+
Status s =
|
|
142
|
+
fs_->DeleteFile(old_log_files_.front(), io_options_, &io_context_);
|
|
134
143
|
// Remove the file from the tracking anyway. It's possible that
|
|
135
144
|
// DB cleaned up the old log file, or people cleaned it up manually.
|
|
136
145
|
old_log_files_.pop();
|
|
@@ -241,7 +250,7 @@ void AutoRollLogger::LogHeader(const char* format, va_list args) {
|
|
|
241
250
|
|
|
242
251
|
bool AutoRollLogger::LogExpired() {
|
|
243
252
|
if (cached_now_access_count >= call_NowMicros_every_N_records_) {
|
|
244
|
-
cached_now = static_cast<uint64_t>(
|
|
253
|
+
cached_now = static_cast<uint64_t>(clock_->NowMicros() * 1e-6);
|
|
245
254
|
cached_now_access_count = 0;
|
|
246
255
|
}
|
|
247
256
|
|
|
@@ -267,15 +276,16 @@ Status CreateLoggerFromOptions(const std::string& dbname,
|
|
|
267
276
|
std::string fname =
|
|
268
277
|
InfoLogFileName(dbname, db_absolute_path, options.db_log_dir);
|
|
269
278
|
|
|
279
|
+
const auto& clock = env->GetSystemClock();
|
|
270
280
|
env->CreateDirIfMissing(dbname)
|
|
271
281
|
.PermitUncheckedError(); // In case it does not exist
|
|
272
282
|
// Currently we only support roll by time-to-roll and log size
|
|
273
283
|
#ifndef ROCKSDB_LITE
|
|
274
284
|
if (options.log_file_time_to_roll > 0 || options.max_log_file_size > 0) {
|
|
275
285
|
AutoRollLogger* result = new AutoRollLogger(
|
|
276
|
-
env, dbname, options.db_log_dir,
|
|
277
|
-
options.
|
|
278
|
-
options.info_log_level);
|
|
286
|
+
env->GetFileSystem(), clock, dbname, options.db_log_dir,
|
|
287
|
+
options.max_log_file_size, options.log_file_time_to_roll,
|
|
288
|
+
options.keep_log_file_num, options.info_log_level);
|
|
279
289
|
s = result->GetStatus();
|
|
280
290
|
if (!s.ok()) {
|
|
281
291
|
delete result;
|
|
@@ -286,12 +296,19 @@ Status CreateLoggerFromOptions(const std::string& dbname,
|
|
|
286
296
|
}
|
|
287
297
|
#endif // !ROCKSDB_LITE
|
|
288
298
|
// Open a log file in the same directory as the db
|
|
289
|
-
env->
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
if (
|
|
299
|
+
s = env->FileExists(fname);
|
|
300
|
+
if (s.ok()) {
|
|
301
|
+
s = env->RenameFile(
|
|
302
|
+
fname, OldInfoLogFileName(dbname, clock->NowMicros(), db_absolute_path,
|
|
303
|
+
options.db_log_dir));
|
|
304
|
+
} else if (s.IsNotFound()) {
|
|
305
|
+
// "LOG" is not required to exist since this could be a new DB.
|
|
306
|
+
s = Status::OK();
|
|
307
|
+
}
|
|
308
|
+
if (s.ok()) {
|
|
309
|
+
s = env->NewLogger(fname, logger);
|
|
310
|
+
}
|
|
311
|
+
if (s.ok() && logger->get() != nullptr) {
|
|
295
312
|
(*logger)->SetInfoLogLevel(options.info_log_level);
|
|
296
313
|
}
|
|
297
314
|
return s;
|
|
@@ -18,14 +18,18 @@
|
|
|
18
18
|
#include "util/mutexlock.h"
|
|
19
19
|
|
|
20
20
|
namespace ROCKSDB_NAMESPACE {
|
|
21
|
+
class FileSystem;
|
|
22
|
+
class SystemClock;
|
|
21
23
|
|
|
22
24
|
#ifndef ROCKSDB_LITE
|
|
23
25
|
// Rolls the log file by size and/or time
|
|
24
26
|
class AutoRollLogger : public Logger {
|
|
25
27
|
public:
|
|
26
|
-
AutoRollLogger(
|
|
27
|
-
const std::
|
|
28
|
-
|
|
28
|
+
AutoRollLogger(const std::shared_ptr<FileSystem>& fs,
|
|
29
|
+
const std::shared_ptr<SystemClock>& clock,
|
|
30
|
+
const std::string& dbname, const std::string& db_log_dir,
|
|
31
|
+
size_t log_max_size, size_t log_file_time_to_roll,
|
|
32
|
+
size_t keep_log_file_num,
|
|
29
33
|
const InfoLogLevel log_level = InfoLogLevel::INFO_LEVEL);
|
|
30
34
|
|
|
31
35
|
using Logger::Logv;
|
|
@@ -134,7 +138,8 @@ class AutoRollLogger : public Logger {
|
|
|
134
138
|
std::string dbname_;
|
|
135
139
|
std::string db_log_dir_;
|
|
136
140
|
std::string db_absolute_path_;
|
|
137
|
-
|
|
141
|
+
std::shared_ptr<FileSystem> fs_;
|
|
142
|
+
std::shared_ptr<SystemClock> clock_;
|
|
138
143
|
std::shared_ptr<Logger> logger_;
|
|
139
144
|
// current status of the logger
|
|
140
145
|
Status status_;
|
|
@@ -148,11 +153,13 @@ class AutoRollLogger : public Logger {
|
|
|
148
153
|
// Full path is stored here. It consumes signifianctly more memory
|
|
149
154
|
// than only storing file name. Can optimize if it causes a problem.
|
|
150
155
|
std::queue<std::string> old_log_files_;
|
|
151
|
-
// to avoid frequent
|
|
156
|
+
// to avoid frequent clock->NowMicros() calls, we cached the current time
|
|
152
157
|
uint64_t cached_now;
|
|
153
158
|
uint64_t ctime_;
|
|
154
159
|
uint64_t cached_now_access_count;
|
|
155
160
|
uint64_t call_NowMicros_every_N_records_;
|
|
161
|
+
IOOptions io_options_;
|
|
162
|
+
IODebugContext io_context_;
|
|
156
163
|
mutable port::Mutex mutex_;
|
|
157
164
|
};
|
|
158
165
|
#endif // !ROCKSDB_LITE
|