@nxtedition/rocksdb 5.2.21 → 5.2.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +216 -252
- package/binding.gyp +78 -72
- package/deps/rocksdb/build_version.cc +70 -4
- package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
- package/deps/rocksdb/rocksdb/Makefile +459 -469
- package/deps/rocksdb/rocksdb/README.md +4 -4
- package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
- package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
- package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
- package/deps/rocksdb/rocksdb/crash_test.mk +93 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
- package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
- package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
- package/deps/rocksdb/rocksdb/db/builder.h +16 -37
- package/deps/rocksdb/rocksdb/db/c.cc +413 -208
- package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
- package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
- package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
- package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
- package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
- package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
- package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
- package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
- package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
- package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
- package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
- package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
- package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
- package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
- package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
- package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
- package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
- package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
- package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
- package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
- package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
- package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
- package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
- package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
- package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
- package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
- package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
- package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
- package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
- package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
- package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
- package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
- package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
- package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
- package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
- package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
- package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
- package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
- package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
- package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
- package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
- package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
- package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
- package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
- package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
- package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
- package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
- package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
- package/deps/rocksdb/rocksdb/env/env.cc +632 -42
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
- package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
- package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
- package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
- package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
- package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
- package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
- package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
- package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
- package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
- package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
- package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
- package/deps/rocksdb/rocksdb/file/filename.h +13 -8
- package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
- package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
- package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
- package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
- package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
- package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
- package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
- package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
- package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
- package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
- package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
- package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
- package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
- package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
- package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
- package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
- package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
- package/deps/rocksdb/rocksdb/options/options.cc +49 -17
- package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
- package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
- package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
- package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
- package/deps/rocksdb/rocksdb/port/lang.h +52 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
- package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
- package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
- package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
- package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
- package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
- package/deps/rocksdb/rocksdb/python.mk +9 -0
- package/deps/rocksdb/rocksdb/src.mk +82 -34
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
- package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
- package/deps/rocksdb/rocksdb/table/format.cc +258 -104
- package/deps/rocksdb/rocksdb/table/format.h +120 -109
- package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
- package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
- package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
- package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
- package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
- package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
- package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
- package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
- package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
- package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
- package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
- package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
- package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
- package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
- package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
- package/deps/rocksdb/rocksdb/util/channel.h +2 -0
- package/deps/rocksdb/rocksdb/util/coding.h +1 -33
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
- package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
- package/deps/rocksdb/rocksdb/util/compression.h +212 -7
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
- package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
- package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
- package/deps/rocksdb/rocksdb/util/defer.h +30 -1
- package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
- package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
- package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
- package/deps/rocksdb/rocksdb/util/hash.h +31 -1
- package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
- package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
- package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
- package/deps/rocksdb/rocksdb/util/heap.h +6 -1
- package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
- package/deps/rocksdb/rocksdb/util/math.h +74 -7
- package/deps/rocksdb/rocksdb/util/math128.h +13 -1
- package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
- package/deps/rocksdb/rocksdb/util/random.cc +9 -0
- package/deps/rocksdb/rocksdb/util/random.h +6 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
- package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
- package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
- package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
- package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
- package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
- package/deps/rocksdb/rocksdb/util/status.cc +32 -29
- package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
- package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
- package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
- package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
- package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
- package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
- package/deps/rocksdb/rocksdb/util/timer.h +55 -46
- package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
- package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
- package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
- package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
- package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
- package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
- package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
- package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
- package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
- package/deps/rocksdb/rocksdb.gyp +425 -446
- package/package.json +8 -8
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x86/node.napi.node +0 -0
- package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
- package/deps/rocksdb/rocksdb/hdfs/README +0 -23
- package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
- package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
- package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
- package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
- package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
- package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
- package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
- package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
- package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
- package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
- package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
- package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
- package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
|
@@ -10,11 +10,13 @@
|
|
|
10
10
|
|
|
11
11
|
#include <stdint.h>
|
|
12
12
|
#include <stdio.h>
|
|
13
|
+
|
|
13
14
|
#include <map>
|
|
14
15
|
#include <memory>
|
|
15
16
|
#include <string>
|
|
16
17
|
#include <unordered_map>
|
|
17
18
|
#include <vector>
|
|
19
|
+
|
|
18
20
|
#include "rocksdb/iterator.h"
|
|
19
21
|
#include "rocksdb/listener.h"
|
|
20
22
|
#include "rocksdb/metadata.h"
|
|
@@ -39,25 +41,31 @@
|
|
|
39
41
|
|
|
40
42
|
namespace ROCKSDB_NAMESPACE {
|
|
41
43
|
|
|
42
|
-
struct Options;
|
|
43
|
-
struct DBOptions;
|
|
44
44
|
struct ColumnFamilyOptions;
|
|
45
|
-
struct ReadOptions;
|
|
46
|
-
struct WriteOptions;
|
|
47
|
-
struct FlushOptions;
|
|
48
45
|
struct CompactionOptions;
|
|
49
46
|
struct CompactRangeOptions;
|
|
50
|
-
struct
|
|
47
|
+
struct DBOptions;
|
|
51
48
|
struct ExternalSstFileInfo;
|
|
52
|
-
|
|
49
|
+
struct FlushOptions;
|
|
50
|
+
struct Options;
|
|
51
|
+
struct ReadOptions;
|
|
52
|
+
struct TableProperties;
|
|
53
|
+
struct WriteOptions;
|
|
54
|
+
#ifdef ROCKSDB_LITE
|
|
55
|
+
class CompactionJobInfo;
|
|
56
|
+
#endif
|
|
53
57
|
class Env;
|
|
54
58
|
class EventListener;
|
|
59
|
+
class FileSystem;
|
|
60
|
+
#ifndef ROCKSDB_LITE
|
|
61
|
+
class Replayer;
|
|
62
|
+
#endif
|
|
55
63
|
class StatsHistoryIterator;
|
|
64
|
+
#ifndef ROCKSDB_LITE
|
|
65
|
+
class TraceReader;
|
|
56
66
|
class TraceWriter;
|
|
57
|
-
#ifdef ROCKSDB_LITE
|
|
58
|
-
class CompactionJobInfo;
|
|
59
67
|
#endif
|
|
60
|
-
class
|
|
68
|
+
class WriteBatch;
|
|
61
69
|
|
|
62
70
|
extern const std::string kDefaultColumnFamilyName;
|
|
63
71
|
extern const std::string kPersistentStatsColumnFamilyName;
|
|
@@ -112,15 +120,18 @@ struct RangePtr {
|
|
|
112
120
|
};
|
|
113
121
|
|
|
114
122
|
// It is valid that files_checksums and files_checksum_func_names are both
|
|
115
|
-
// empty (no checksum
|
|
123
|
+
// empty (no checksum information is provided for ingestion). Otherwise,
|
|
116
124
|
// their sizes should be the same as external_files. The file order should
|
|
117
125
|
// be the same in three vectors and guaranteed by the caller.
|
|
126
|
+
// Note that, we assume the temperatures of this batch of files to be
|
|
127
|
+
// ingested are the same.
|
|
118
128
|
struct IngestExternalFileArg {
|
|
119
129
|
ColumnFamilyHandle* column_family = nullptr;
|
|
120
130
|
std::vector<std::string> external_files;
|
|
121
131
|
IngestExternalFileOptions options;
|
|
122
132
|
std::vector<std::string> files_checksums;
|
|
123
133
|
std::vector<std::string> files_checksum_func_names;
|
|
134
|
+
Temperature file_temperature = Temperature::kUnknown;
|
|
124
135
|
};
|
|
125
136
|
|
|
126
137
|
struct GetMergeOperandsOptions {
|
|
@@ -130,8 +141,8 @@ struct GetMergeOperandsOptions {
|
|
|
130
141
|
// A collections of table properties objects, where
|
|
131
142
|
// key: is the table's file name.
|
|
132
143
|
// value: the table properties object of the given table.
|
|
133
|
-
|
|
134
|
-
|
|
144
|
+
using TablePropertiesCollection =
|
|
145
|
+
std::unordered_map<std::string, std::shared_ptr<const TableProperties>>;
|
|
135
146
|
|
|
136
147
|
// A DB is a persistent, versioned ordered map from keys to values.
|
|
137
148
|
// A DB is safe for concurrent access from multiple threads without
|
|
@@ -140,18 +151,49 @@ typedef std::unordered_map<std::string, std::shared_ptr<const TableProperties>>
|
|
|
140
151
|
// and a number of wrapper implementations.
|
|
141
152
|
class DB {
|
|
142
153
|
public:
|
|
143
|
-
// Open the database with the specified "name".
|
|
154
|
+
// Open the database with the specified "name" for reads and writes.
|
|
144
155
|
// Stores a pointer to a heap-allocated database in *dbptr and returns
|
|
145
156
|
// OK on success.
|
|
146
|
-
// Stores nullptr in *dbptr and returns a non-OK status on error
|
|
147
|
-
//
|
|
157
|
+
// Stores nullptr in *dbptr and returns a non-OK status on error, including
|
|
158
|
+
// if the DB is already open (read-write) by another DB object. (This
|
|
159
|
+
// guarantee depends on options.env->LockFile(), which might not provide
|
|
160
|
+
// this guarantee in a custom Env implementation.)
|
|
161
|
+
//
|
|
162
|
+
// Caller must delete *dbptr when it is no longer needed.
|
|
148
163
|
static Status Open(const Options& options, const std::string& name,
|
|
149
164
|
DB** dbptr);
|
|
150
165
|
|
|
151
|
-
// Open
|
|
152
|
-
//
|
|
153
|
-
//
|
|
154
|
-
//
|
|
166
|
+
// Open DB with column families.
|
|
167
|
+
// db_options specify database specific options
|
|
168
|
+
// column_families is the vector of all column families in the database,
|
|
169
|
+
// containing column family name and options. You need to open ALL column
|
|
170
|
+
// families in the database. To get the list of column families, you can use
|
|
171
|
+
// ListColumnFamilies().
|
|
172
|
+
//
|
|
173
|
+
// The default column family name is 'default' and it's stored
|
|
174
|
+
// in ROCKSDB_NAMESPACE::kDefaultColumnFamilyName.
|
|
175
|
+
// If everything is OK, handles will on return be the same size
|
|
176
|
+
// as column_families --- handles[i] will be a handle that you
|
|
177
|
+
// will use to operate on column family column_family[i].
|
|
178
|
+
// Before delete DB, you have to close All column families by calling
|
|
179
|
+
// DestroyColumnFamilyHandle() with all the handles.
|
|
180
|
+
static Status Open(const DBOptions& db_options, const std::string& name,
|
|
181
|
+
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
182
|
+
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr);
|
|
183
|
+
|
|
184
|
+
// OpenForReadOnly() creates a Read-only instance that supports reads alone.
|
|
185
|
+
//
|
|
186
|
+
// All DB interfaces that modify data, like put/delete, will return error.
|
|
187
|
+
// Automatic Flush and Compactions are disabled and any manual calls
|
|
188
|
+
// to Flush/Compaction will return error.
|
|
189
|
+
//
|
|
190
|
+
// While a given DB can be simultaneously opened via OpenForReadOnly
|
|
191
|
+
// by any number of readers, if a DB is simultaneously opened by Open
|
|
192
|
+
// and OpenForReadOnly, the read-only instance has undefined behavior
|
|
193
|
+
// (though can often succeed if quickly closed) and the read-write
|
|
194
|
+
// instance is unaffected. See also OpenAsSecondary.
|
|
195
|
+
|
|
196
|
+
// Open the database for read only.
|
|
155
197
|
//
|
|
156
198
|
// Not supported in ROCKSDB_LITE, in which case the function will
|
|
157
199
|
// return Status::NotSupported.
|
|
@@ -159,11 +201,12 @@ class DB {
|
|
|
159
201
|
DB** dbptr,
|
|
160
202
|
bool error_if_wal_file_exists = false);
|
|
161
203
|
|
|
162
|
-
// Open the database for read only with column families.
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
204
|
+
// Open the database for read only with column families.
|
|
205
|
+
//
|
|
206
|
+
// When opening DB with read only, you can specify only a subset of column
|
|
207
|
+
// families in the database that should be opened. However, you always need
|
|
208
|
+
// to specify default column family. The default column family name is
|
|
209
|
+
// 'default' and it's stored in ROCKSDB_NAMESPACE::kDefaultColumnFamilyName
|
|
167
210
|
//
|
|
168
211
|
// Not supported in ROCKSDB_LITE, in which case the function will
|
|
169
212
|
// return Status::NotSupported.
|
|
@@ -173,71 +216,100 @@ class DB {
|
|
|
173
216
|
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr,
|
|
174
217
|
bool error_if_wal_file_exists = false);
|
|
175
218
|
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
//
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
|
|
219
|
+
// OpenAsSecondary() creates a secondary instance that supports read-only
|
|
220
|
+
// operations and supports dynamic catch up with the primary (through a
|
|
221
|
+
// call to TryCatchUpWithPrimary()).
|
|
222
|
+
//
|
|
223
|
+
// All DB interfaces that modify data, like put/delete, will return error.
|
|
224
|
+
// Automatic Flush and Compactions are disabled and any manual calls
|
|
225
|
+
// to Flush/Compaction will return error.
|
|
226
|
+
//
|
|
227
|
+
// Multiple secondary instances can co-exist at the same time.
|
|
228
|
+
//
|
|
229
|
+
|
|
230
|
+
// Open DB as secondary instance
|
|
187
231
|
//
|
|
188
232
|
// The options argument specifies the options to open the secondary instance.
|
|
233
|
+
// Options.max_open_files should be set to -1.
|
|
189
234
|
// The name argument specifies the name of the primary db that you have used
|
|
190
235
|
// to open the primary instance.
|
|
191
236
|
// The secondary_path argument points to a directory where the secondary
|
|
192
237
|
// instance stores its info log.
|
|
193
238
|
// The dbptr is an out-arg corresponding to the opened secondary instance.
|
|
194
|
-
// The pointer points to a heap-allocated database, and the
|
|
239
|
+
// The pointer points to a heap-allocated database, and the caller should
|
|
195
240
|
// delete it after use.
|
|
196
|
-
//
|
|
241
|
+
//
|
|
197
242
|
// Return OK on success, non-OK on failures.
|
|
198
243
|
static Status OpenAsSecondary(const Options& options, const std::string& name,
|
|
199
244
|
const std::string& secondary_path, DB** dbptr);
|
|
200
245
|
|
|
201
|
-
// Open DB as secondary instance with column families
|
|
202
|
-
//
|
|
203
|
-
//
|
|
246
|
+
// Open DB as secondary instance with specified column families
|
|
247
|
+
//
|
|
248
|
+
// When opening DB in secondary mode, you can specify only a subset of column
|
|
249
|
+
// families in the database that should be opened. However, you always need
|
|
250
|
+
// to specify default column family. The default column family name is
|
|
251
|
+
// 'default' and it's stored in ROCKSDB_NAMESPACE::kDefaultColumnFamilyName
|
|
252
|
+
//
|
|
253
|
+
// Column families created by the primary after the secondary instance starts
|
|
254
|
+
// are currently ignored by the secondary instance. Column families opened
|
|
255
|
+
// by secondary and dropped by the primary will be dropped by secondary as
|
|
256
|
+
// well (on next invocation of TryCatchUpWithPrimary()). However the user
|
|
257
|
+
// of the secondary instance can still access the data of such dropped column
|
|
258
|
+
// family as long as they do not destroy the corresponding column family
|
|
259
|
+
// handle.
|
|
260
|
+
//
|
|
261
|
+
// The options argument specifies the options to open the secondary instance.
|
|
262
|
+
// Options.max_open_files should be set to -1.
|
|
204
263
|
// The name argument specifies the name of the primary db that you have used
|
|
205
264
|
// to open the primary instance.
|
|
206
265
|
// The secondary_path argument points to a directory where the secondary
|
|
207
266
|
// instance stores its info log.
|
|
208
|
-
// The column_families argument
|
|
209
|
-
// If
|
|
210
|
-
// status.
|
|
267
|
+
// The column_families argument specifies a list of column families to open.
|
|
268
|
+
// If default column family is not specified or if any specified column
|
|
269
|
+
// families does not exist, the function returns non-OK status.
|
|
211
270
|
// The handles is an out-arg corresponding to the opened database column
|
|
212
|
-
//
|
|
271
|
+
// family handles.
|
|
213
272
|
// The dbptr is an out-arg corresponding to the opened secondary instance.
|
|
214
273
|
// The pointer points to a heap-allocated database, and the caller should
|
|
215
274
|
// delete it after use. Before deleting the dbptr, the user should also
|
|
216
275
|
// delete the pointers stored in handles vector.
|
|
217
|
-
//
|
|
276
|
+
//
|
|
277
|
+
// Return OK on success, non-OK on failures.
|
|
218
278
|
static Status OpenAsSecondary(
|
|
219
279
|
const DBOptions& db_options, const std::string& name,
|
|
220
280
|
const std::string& secondary_path,
|
|
221
281
|
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
222
282
|
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr);
|
|
223
283
|
|
|
224
|
-
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
//
|
|
229
|
-
//
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
284
|
+
|
|
285
|
+
// Open DB and run the compaction.
|
|
286
|
+
// It's a read-only operation, the result won't be installed to the DB, it
|
|
287
|
+
// will be output to the `output_directory`. The API should only be used with
|
|
288
|
+
// `options.CompactionService` to run compaction triggered by
|
|
289
|
+
// `CompactionService`.
|
|
290
|
+
static Status OpenAndCompact(
|
|
291
|
+
const std::string& name, const std::string& output_directory,
|
|
292
|
+
const std::string& input, std::string* output,
|
|
293
|
+
const CompactionServiceOptionsOverride& override_options);
|
|
294
|
+
|
|
295
|
+
static Status OpenAndCompact(
|
|
296
|
+
const OpenAndCompactOptions& options, const std::string& name,
|
|
297
|
+
const std::string& output_directory, const std::string& input,
|
|
298
|
+
std::string* output,
|
|
299
|
+
const CompactionServiceOptionsOverride& override_options);
|
|
300
|
+
|
|
301
|
+
// Experimental and subject to change
|
|
302
|
+
// Open DB and trim data newer than specified timestamp.
|
|
303
|
+
// The trim_ts specified the user-defined timestamp trim bound.
|
|
304
|
+
// This API should only be used at timestamp enabled column families recovery.
|
|
305
|
+
// If some input column families do not support timestamp, nothing will
|
|
306
|
+
// be happened to them. The data with timestamp > trim_ts
|
|
307
|
+
// will be removed after this API returns successfully.
|
|
308
|
+
static Status OpenAndTrimHistory(
|
|
309
|
+
const DBOptions& db_options, const std::string& dbname,
|
|
310
|
+
const std::vector<ColumnFamilyDescriptor>& column_families,
|
|
311
|
+
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr,
|
|
312
|
+
std::string trim_ts);
|
|
241
313
|
|
|
242
314
|
virtual Status Resume() { return Status::NotSupported(); }
|
|
243
315
|
|
|
@@ -250,9 +322,9 @@ class DB {
|
|
|
250
322
|
// If the return status is Aborted(), closing fails because there is
|
|
251
323
|
// unreleased snapshot in the system. In this case, users can release
|
|
252
324
|
// the unreleased snapshots and try again and expect it to succeed. For
|
|
253
|
-
// other status,
|
|
254
|
-
// If the return status is NotSupported(), then the DB
|
|
255
|
-
// cleanup in the destructor
|
|
325
|
+
// other status, re-calling Close() will be no-op and return the original
|
|
326
|
+
// close status. If the return status is NotSupported(), then the DB
|
|
327
|
+
// implementation does cleanup in the destructor
|
|
256
328
|
virtual Status Close() { return Status::NotSupported(); }
|
|
257
329
|
|
|
258
330
|
// ListColumnFamilies will open the DB specified by argument name
|
|
@@ -308,10 +380,11 @@ class DB {
|
|
|
308
380
|
virtual Status DropColumnFamilies(
|
|
309
381
|
const std::vector<ColumnFamilyHandle*>& column_families);
|
|
310
382
|
|
|
311
|
-
//
|
|
312
|
-
//
|
|
313
|
-
//
|
|
314
|
-
//
|
|
383
|
+
// Release and deallocate a column family handle. A column family is only
|
|
384
|
+
// removed once it is dropped (DropColumnFamily) and all handles have been
|
|
385
|
+
// destroyed (DestroyColumnFamilyHandle). Use this method to destroy
|
|
386
|
+
// column family handles (except for DefaultColumnFamily()!) before closing
|
|
387
|
+
// a DB.
|
|
315
388
|
virtual Status DestroyColumnFamilyHandle(ColumnFamilyHandle* column_family);
|
|
316
389
|
|
|
317
390
|
// Set the database entry for "key" to "value".
|
|
@@ -321,10 +394,17 @@ class DB {
|
|
|
321
394
|
virtual Status Put(const WriteOptions& options,
|
|
322
395
|
ColumnFamilyHandle* column_family, const Slice& key,
|
|
323
396
|
const Slice& value) = 0;
|
|
397
|
+
virtual Status Put(const WriteOptions& options,
|
|
398
|
+
ColumnFamilyHandle* column_family, const Slice& key,
|
|
399
|
+
const Slice& ts, const Slice& value) = 0;
|
|
324
400
|
virtual Status Put(const WriteOptions& options, const Slice& key,
|
|
325
401
|
const Slice& value) {
|
|
326
402
|
return Put(options, DefaultColumnFamily(), key, value);
|
|
327
403
|
}
|
|
404
|
+
virtual Status Put(const WriteOptions& options, const Slice& key,
|
|
405
|
+
const Slice& ts, const Slice& value) {
|
|
406
|
+
return Put(options, DefaultColumnFamily(), key, ts, value);
|
|
407
|
+
}
|
|
328
408
|
|
|
329
409
|
// Remove the database entry (if any) for "key". Returns OK on
|
|
330
410
|
// success, and a non-OK status on error. It is not an error if "key"
|
|
@@ -333,9 +413,16 @@ class DB {
|
|
|
333
413
|
virtual Status Delete(const WriteOptions& options,
|
|
334
414
|
ColumnFamilyHandle* column_family,
|
|
335
415
|
const Slice& key) = 0;
|
|
416
|
+
virtual Status Delete(const WriteOptions& options,
|
|
417
|
+
ColumnFamilyHandle* column_family, const Slice& key,
|
|
418
|
+
const Slice& ts) = 0;
|
|
336
419
|
virtual Status Delete(const WriteOptions& options, const Slice& key) {
|
|
337
420
|
return Delete(options, DefaultColumnFamily(), key);
|
|
338
421
|
}
|
|
422
|
+
virtual Status Delete(const WriteOptions& options, const Slice& key,
|
|
423
|
+
const Slice& ts) {
|
|
424
|
+
return Delete(options, DefaultColumnFamily(), key, ts);
|
|
425
|
+
}
|
|
339
426
|
|
|
340
427
|
// Remove the database entry for "key". Requires that the key exists
|
|
341
428
|
// and was not overwritten. Returns OK on success, and a non-OK status
|
|
@@ -356,9 +443,16 @@ class DB {
|
|
|
356
443
|
virtual Status SingleDelete(const WriteOptions& options,
|
|
357
444
|
ColumnFamilyHandle* column_family,
|
|
358
445
|
const Slice& key) = 0;
|
|
446
|
+
virtual Status SingleDelete(const WriteOptions& options,
|
|
447
|
+
ColumnFamilyHandle* column_family,
|
|
448
|
+
const Slice& key, const Slice& ts) = 0;
|
|
359
449
|
virtual Status SingleDelete(const WriteOptions& options, const Slice& key) {
|
|
360
450
|
return SingleDelete(options, DefaultColumnFamily(), key);
|
|
361
451
|
}
|
|
452
|
+
virtual Status SingleDelete(const WriteOptions& options, const Slice& key,
|
|
453
|
+
const Slice& ts) {
|
|
454
|
+
return SingleDelete(options, DefaultColumnFamily(), key, ts);
|
|
455
|
+
}
|
|
362
456
|
|
|
363
457
|
// Removes the database entries in the range ["begin_key", "end_key"), i.e.,
|
|
364
458
|
// including "begin_key" and excluding "end_key". Returns OK on success, and
|
|
@@ -377,6 +471,13 @@ class DB {
|
|
|
377
471
|
virtual Status DeleteRange(const WriteOptions& options,
|
|
378
472
|
ColumnFamilyHandle* column_family,
|
|
379
473
|
const Slice& begin_key, const Slice& end_key);
|
|
474
|
+
virtual Status DeleteRange(const WriteOptions& /*options*/,
|
|
475
|
+
ColumnFamilyHandle* /*column_family*/,
|
|
476
|
+
const Slice& /*begin_key*/,
|
|
477
|
+
const Slice& /*end_key*/, const Slice& /*ts*/) {
|
|
478
|
+
return Status::NotSupported(
|
|
479
|
+
"DeleteRange does not support user-defined timestamp yet");
|
|
480
|
+
}
|
|
380
481
|
|
|
381
482
|
// Merge the database entry for "key" with "value". Returns OK on success,
|
|
382
483
|
// and a non-OK status on error. The semantics of this operation is
|
|
@@ -389,6 +490,13 @@ class DB {
|
|
|
389
490
|
const Slice& value) {
|
|
390
491
|
return Merge(options, DefaultColumnFamily(), key, value);
|
|
391
492
|
}
|
|
493
|
+
virtual Status Merge(const WriteOptions& /*options*/,
|
|
494
|
+
ColumnFamilyHandle* /*column_family*/,
|
|
495
|
+
const Slice& /*key*/, const Slice& /*ts*/,
|
|
496
|
+
const Slice& /*value*/) {
|
|
497
|
+
return Status::NotSupported(
|
|
498
|
+
"Merge does not support user-defined timestamp yet");
|
|
499
|
+
}
|
|
392
500
|
|
|
393
501
|
// Apply the specified updates to the database.
|
|
394
502
|
// If `updates` contains no update, WAL will still be synced if
|
|
@@ -453,16 +561,20 @@ class DB {
|
|
|
453
561
|
return Get(options, DefaultColumnFamily(), key, value, timestamp);
|
|
454
562
|
}
|
|
455
563
|
|
|
456
|
-
//
|
|
457
|
-
//
|
|
458
|
-
//
|
|
459
|
-
//
|
|
460
|
-
//
|
|
461
|
-
//
|
|
564
|
+
// Populates the `merge_operands` array with all the merge operands in the DB
|
|
565
|
+
// for `key`. The `merge_operands` array will be populated in the order of
|
|
566
|
+
// insertion. The number of entries populated in `merge_operands` will be
|
|
567
|
+
// assigned to `*number_of_operands`.
|
|
568
|
+
//
|
|
569
|
+
// If the number of merge operands in DB for `key` is greater than
|
|
570
|
+
// `merge_operands_options.expected_max_number_of_operands`,
|
|
571
|
+
// `merge_operands` is not populated and the return value is
|
|
572
|
+
// `Status::Incomplete`. In that case, `*number_of_operands` will be assigned
|
|
573
|
+
// the number of merge operands found in the DB for `key`.
|
|
574
|
+
//
|
|
575
|
+
// `merge_operands`- Points to an array of at-least
|
|
462
576
|
// merge_operands_options.expected_max_number_of_operands and the
|
|
463
|
-
// caller is responsible for allocating it.
|
|
464
|
-
// returned is Incomplete then number_of_operands will contain
|
|
465
|
-
// the total number of merge operands found in DB for key.
|
|
577
|
+
// caller is responsible for allocating it.
|
|
466
578
|
virtual Status GetMergeOperands(
|
|
467
579
|
const ReadOptions& options, ColumnFamilyHandle* column_family,
|
|
468
580
|
const Slice& key, PinnableSlice* merge_operands,
|
|
@@ -705,7 +817,7 @@ class DB {
|
|
|
705
817
|
// snapshot is no longer needed.
|
|
706
818
|
//
|
|
707
819
|
// nullptr will be returned if the DB fails to take a snapshot or does
|
|
708
|
-
// not support snapshot.
|
|
820
|
+
// not support snapshot (eg: inplace_update_support enabled).
|
|
709
821
|
virtual const Snapshot* GetSnapshot() = 0;
|
|
710
822
|
|
|
711
823
|
// Release a previously acquired snapshot. The caller must not
|
|
@@ -745,7 +857,7 @@ class DB {
|
|
|
745
857
|
static const std::string kCFStats;
|
|
746
858
|
|
|
747
859
|
// "rocksdb.cfstats-no-file-histogram" - returns a multi-line string with
|
|
748
|
-
// general
|
|
860
|
+
// general column family stats per-level over db's lifetime ("L<n>"),
|
|
749
861
|
// aggregated over db's lifetime ("Sum"), and aggregated over the
|
|
750
862
|
// interval since the last retrieval ("Int").
|
|
751
863
|
static const std::string kCFStatsNoFileHistogram;
|
|
@@ -754,15 +866,23 @@ class DB {
|
|
|
754
866
|
// level, as well as the histogram of latency of single requests.
|
|
755
867
|
static const std::string kCFFileHistogram;
|
|
756
868
|
|
|
757
|
-
// "rocksdb.dbstats" - returns a multi-line string
|
|
758
|
-
// stats, both cumulative (over the db's
|
|
759
|
-
// the last retrieval of kDBStats).
|
|
869
|
+
// "rocksdb.dbstats" - As a string property, returns a multi-line string
|
|
870
|
+
// with general database stats, both cumulative (over the db's
|
|
871
|
+
// lifetime) and interval (since the last retrieval of kDBStats).
|
|
872
|
+
// As a map property, returns cumulative stats only and does not
|
|
873
|
+
// update the baseline for the interval stats.
|
|
760
874
|
static const std::string kDBStats;
|
|
761
875
|
|
|
762
876
|
// "rocksdb.levelstats" - returns multi-line string containing the number
|
|
763
877
|
// of files per level and total size of each level (MB).
|
|
764
878
|
static const std::string kLevelStats;
|
|
765
879
|
|
|
880
|
+
// "rocksdb.block-cache-entry-stats" - returns a multi-line string or
|
|
881
|
+
// map with statistics on block cache usage. See
|
|
882
|
+
// `BlockCacheEntryStatsMapKeys` for structured representation of keys
|
|
883
|
+
// available in the map form.
|
|
884
|
+
static const std::string kBlockCacheEntryStats;
|
|
885
|
+
|
|
766
886
|
// "rocksdb.num-immutable-mem-table" - returns number of immutable
|
|
767
887
|
// memtables that have not yet been flushed.
|
|
768
888
|
static const std::string kNumImmutableMemTable;
|
|
@@ -830,6 +950,8 @@ class DB {
|
|
|
830
950
|
|
|
831
951
|
// "rocksdb.is-file-deletions-enabled" - returns 0 if deletion of obsolete
|
|
832
952
|
// files is enabled; otherwise, returns a non-zero number.
|
|
953
|
+
// This name may be misleading because true(non-zero) means disable,
|
|
954
|
+
// but we keep the name for backward compatibility.
|
|
833
955
|
static const std::string kIsFileDeletionsEnabled;
|
|
834
956
|
|
|
835
957
|
// "rocksdb.num-snapshots" - returns number of unreleased snapshots of the
|
|
@@ -857,7 +979,8 @@ class DB {
|
|
|
857
979
|
static const std::string kCurrentSuperVersionNumber;
|
|
858
980
|
|
|
859
981
|
// "rocksdb.estimate-live-data-size" - returns an estimate of the amount of
|
|
860
|
-
// live data in bytes.
|
|
982
|
+
// live data in bytes. For BlobDB, it also includes the exact value of
|
|
983
|
+
// live bytes in the blob files of the version.
|
|
861
984
|
static const std::string kEstimateLiveDataSize;
|
|
862
985
|
|
|
863
986
|
// "rocksdb.min-log-number-to-keep" - return the minimum log number of the
|
|
@@ -878,6 +1001,10 @@ class DB {
|
|
|
878
1001
|
// files belong to the latest LSM tree.
|
|
879
1002
|
static const std::string kLiveSstFilesSize;
|
|
880
1003
|
|
|
1004
|
+
// "rocksdb.live_sst_files_size_at_temperature" - returns total size (bytes)
|
|
1005
|
+
// of SST files at all certain file temperature
|
|
1006
|
+
static const std::string kLiveSstFilesSizeAtTemperature;
|
|
1007
|
+
|
|
881
1008
|
// "rocksdb.base-level" - returns number of level to which L0 data will be
|
|
882
1009
|
// compacted.
|
|
883
1010
|
static const std::string kBaseLevel;
|
|
@@ -926,6 +1053,27 @@ class DB {
|
|
|
926
1053
|
// "rocksdb.options-statistics" - returns multi-line string
|
|
927
1054
|
// of options.statistics
|
|
928
1055
|
static const std::string kOptionsStatistics;
|
|
1056
|
+
|
|
1057
|
+
// "rocksdb.num-blob-files" - returns number of blob files in the current
|
|
1058
|
+
// version.
|
|
1059
|
+
static const std::string kNumBlobFiles;
|
|
1060
|
+
|
|
1061
|
+
// "rocksdb.blob-stats" - return the total number and size of all blob
|
|
1062
|
+
// files, and total amount of garbage (bytes) in the blob files in
|
|
1063
|
+
// the current version.
|
|
1064
|
+
static const std::string kBlobStats;
|
|
1065
|
+
|
|
1066
|
+
// "rocksdb.total-blob-file-size" - returns the total size of all blob
|
|
1067
|
+
// files over all versions.
|
|
1068
|
+
static const std::string kTotalBlobFileSize;
|
|
1069
|
+
|
|
1070
|
+
// "rocksdb.live-blob-file-size" - returns the total size of all blob
|
|
1071
|
+
// files in the current version.
|
|
1072
|
+
static const std::string kLiveBlobFileSize;
|
|
1073
|
+
|
|
1074
|
+
// "rocksdb.live-blob-file-garbage-size" - returns the total amount of
|
|
1075
|
+
// garbage in the blob files in the current version.
|
|
1076
|
+
static const std::string kLiveBlobFileGarbageSize;
|
|
929
1077
|
};
|
|
930
1078
|
#endif /* ROCKSDB_LITE */
|
|
931
1079
|
|
|
@@ -986,6 +1134,11 @@ class DB {
|
|
|
986
1134
|
// "rocksdb.block-cache-capacity"
|
|
987
1135
|
// "rocksdb.block-cache-usage"
|
|
988
1136
|
// "rocksdb.block-cache-pinned-usage"
|
|
1137
|
+
//
|
|
1138
|
+
// Properties dedicated for BlobDB:
|
|
1139
|
+
// "rocksdb.num-blob-files"
|
|
1140
|
+
// "rocksdb.total-blob-file-size"
|
|
1141
|
+
// "rocksdb.live-blob-file-size"
|
|
989
1142
|
virtual bool GetIntProperty(ColumnFamilyHandle* column_family,
|
|
990
1143
|
const Slice& property, uint64_t* value) = 0;
|
|
991
1144
|
virtual bool GetIntProperty(const Slice& property, uint64_t* value) {
|
|
@@ -1006,7 +1159,7 @@ class DB {
|
|
|
1006
1159
|
|
|
1007
1160
|
// Flags for DB::GetSizeApproximation that specify whether memtable
|
|
1008
1161
|
// stats should be included, or file stats approximation or both
|
|
1009
|
-
enum SizeApproximationFlags : uint8_t {
|
|
1162
|
+
enum class SizeApproximationFlags : uint8_t {
|
|
1010
1163
|
NONE = 0,
|
|
1011
1164
|
INCLUDE_MEMTABLES = 1 << 0,
|
|
1012
1165
|
INCLUDE_FILES = 1 << 1
|
|
@@ -1025,22 +1178,18 @@ class DB {
|
|
|
1025
1178
|
uint64_t* sizes) = 0;
|
|
1026
1179
|
|
|
1027
1180
|
// Simpler versions of the GetApproximateSizes() method above.
|
|
1028
|
-
// The include_flags
|
|
1181
|
+
// The include_flags argument must of type DB::SizeApproximationFlags
|
|
1029
1182
|
// and can not be NONE.
|
|
1030
1183
|
virtual Status GetApproximateSizes(ColumnFamilyHandle* column_family,
|
|
1031
1184
|
const Range* ranges, int n,
|
|
1032
1185
|
uint64_t* sizes,
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
}
|
|
1041
|
-
virtual Status GetApproximateSizes(const Range* ranges, int n,
|
|
1042
|
-
uint64_t* sizes,
|
|
1043
|
-
uint8_t include_flags = INCLUDE_FILES) {
|
|
1186
|
+
SizeApproximationFlags include_flags =
|
|
1187
|
+
SizeApproximationFlags::INCLUDE_FILES);
|
|
1188
|
+
|
|
1189
|
+
virtual Status GetApproximateSizes(
|
|
1190
|
+
const Range* ranges, int n, uint64_t* sizes,
|
|
1191
|
+
SizeApproximationFlags include_flags =
|
|
1192
|
+
SizeApproximationFlags::INCLUDE_FILES) {
|
|
1044
1193
|
return GetApproximateSizes(DefaultColumnFamily(), ranges, n, sizes,
|
|
1045
1194
|
include_flags);
|
|
1046
1195
|
}
|
|
@@ -1057,31 +1206,14 @@ class DB {
|
|
|
1057
1206
|
GetApproximateMemTableStats(DefaultColumnFamily(), range, count, size);
|
|
1058
1207
|
}
|
|
1059
1208
|
|
|
1060
|
-
// Deprecated versions of GetApproximateSizes
|
|
1061
|
-
ROCKSDB_DEPRECATED_FUNC virtual void GetApproximateSizes(
|
|
1062
|
-
const Range* range, int n, uint64_t* sizes, bool include_memtable) {
|
|
1063
|
-
uint8_t include_flags = SizeApproximationFlags::INCLUDE_FILES;
|
|
1064
|
-
if (include_memtable) {
|
|
1065
|
-
include_flags |= SizeApproximationFlags::INCLUDE_MEMTABLES;
|
|
1066
|
-
}
|
|
1067
|
-
GetApproximateSizes(DefaultColumnFamily(), range, n, sizes, include_flags);
|
|
1068
|
-
}
|
|
1069
|
-
ROCKSDB_DEPRECATED_FUNC virtual void GetApproximateSizes(
|
|
1070
|
-
ColumnFamilyHandle* column_family, const Range* range, int n,
|
|
1071
|
-
uint64_t* sizes, bool include_memtable) {
|
|
1072
|
-
uint8_t include_flags = SizeApproximationFlags::INCLUDE_FILES;
|
|
1073
|
-
if (include_memtable) {
|
|
1074
|
-
include_flags |= SizeApproximationFlags::INCLUDE_MEMTABLES;
|
|
1075
|
-
}
|
|
1076
|
-
GetApproximateSizes(column_family, range, n, sizes, include_flags);
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1209
|
// Compact the underlying storage for the key range [*begin,*end].
|
|
1080
1210
|
// The actual compaction interval might be superset of [*begin, *end].
|
|
1081
1211
|
// In particular, deleted and overwritten versions are discarded,
|
|
1082
1212
|
// and the data is rearranged to reduce the cost of operations
|
|
1083
1213
|
// needed to access the data. This operation should typically only
|
|
1084
1214
|
// be invoked by users who understand the underlying implementation.
|
|
1215
|
+
// This call blocks until the operation completes successfully, fails,
|
|
1216
|
+
// or is aborted (Status::Incomplete). See DisableManualCompaction.
|
|
1085
1217
|
//
|
|
1086
1218
|
// begin==nullptr is treated as a key before all keys in the database.
|
|
1087
1219
|
// end==nullptr is treated as a key after all keys in the database.
|
|
@@ -1101,44 +1233,51 @@ class DB {
|
|
|
1101
1233
|
return CompactRange(options, DefaultColumnFamily(), begin, end);
|
|
1102
1234
|
}
|
|
1103
1235
|
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
return CompactRange(options, DefaultColumnFamily(), begin, end);
|
|
1123
|
-
}
|
|
1124
|
-
|
|
1236
|
+
// Dynamically change column family options or table factory options in a
|
|
1237
|
+
// running DB, for the specified column family. Only options internally
|
|
1238
|
+
// marked as "mutable" can be changed. Options not listed in `opts_map` will
|
|
1239
|
+
// keep their current values. See GetColumnFamilyOptionsFromMap() in
|
|
1240
|
+
// convenience.h for the details of `opts_map`. Not supported in LITE mode.
|
|
1241
|
+
//
|
|
1242
|
+
// USABILITY NOTE: SetOptions is intended only for expert users, and does
|
|
1243
|
+
// not apply the same sanitization to options as the standard DB::Open code
|
|
1244
|
+
// path does. Use with caution.
|
|
1245
|
+
//
|
|
1246
|
+
// RELIABILITY & PERFORMANCE NOTE: SetOptions is not fully stress-tested for
|
|
1247
|
+
// reliability, and this is a slow call because a new OPTIONS file is
|
|
1248
|
+
// serialized and persisted for each call. Use only infrequently.
|
|
1249
|
+
//
|
|
1250
|
+
// EXAMPLES:
|
|
1251
|
+
// s = db->SetOptions(cfh, {{"ttl", "36000"}});
|
|
1252
|
+
// s = db->SetOptions(cfh, {{"block_based_table_factory",
|
|
1253
|
+
// "{prepopulate_block_cache=kDisable;}"}});
|
|
1125
1254
|
virtual Status SetOptions(
|
|
1126
1255
|
ColumnFamilyHandle* /*column_family*/,
|
|
1127
|
-
const std::unordered_map<std::string, std::string>& /*
|
|
1256
|
+
const std::unordered_map<std::string, std::string>& /*opts_map*/) {
|
|
1128
1257
|
return Status::NotSupported("Not implemented");
|
|
1129
1258
|
}
|
|
1259
|
+
// Shortcut for SetOptions on the default column family handle.
|
|
1130
1260
|
virtual Status SetOptions(
|
|
1131
1261
|
const std::unordered_map<std::string, std::string>& new_options) {
|
|
1132
1262
|
return SetOptions(DefaultColumnFamily(), new_options);
|
|
1133
1263
|
}
|
|
1134
1264
|
|
|
1265
|
+
// Like SetOptions but for DBOptions, including the same caveats for
|
|
1266
|
+
// usability, reliability, and performance. See GetDBOptionsFromMap() (and
|
|
1267
|
+
// GetColumnFamilyOptionsFromMap()) in convenience.h for details on
|
|
1268
|
+
// `opts_map`. Note supported in LITE mode.
|
|
1269
|
+
//
|
|
1270
|
+
// EXAMPLES:
|
|
1271
|
+
// s = db->SetDBOptions({{"max_subcompactions", "2"}});
|
|
1272
|
+
// s = db->SetDBOptions({{"stats_dump_period_sec", "0"},
|
|
1273
|
+
// {"stats_persist_period_sec", "0"}});
|
|
1135
1274
|
virtual Status SetDBOptions(
|
|
1136
1275
|
const std::unordered_map<std::string, std::string>& new_options) = 0;
|
|
1137
1276
|
|
|
1138
1277
|
// CompactFiles() inputs a list of files specified by file numbers and
|
|
1139
|
-
// compacts them to the specified level.
|
|
1140
|
-
//
|
|
1141
|
-
// using the CURRENT thread.
|
|
1278
|
+
// compacts them to the specified level. A small difference compared to
|
|
1279
|
+
// CompactRange() is that CompactFiles() performs the compaction job
|
|
1280
|
+
// using the CURRENT thread, so is not considered a "background" job.
|
|
1142
1281
|
//
|
|
1143
1282
|
// @see GetDataBaseMetaData
|
|
1144
1283
|
// @see GetColumnFamilyMetaData
|
|
@@ -1180,7 +1319,16 @@ class DB {
|
|
|
1180
1319
|
virtual Status EnableAutoCompaction(
|
|
1181
1320
|
const std::vector<ColumnFamilyHandle*>& column_family_handles) = 0;
|
|
1182
1321
|
|
|
1322
|
+
// After this function call, CompactRange() or CompactFiles() will not
|
|
1323
|
+
// run compactions and fail. Calling this function will tell outstanding
|
|
1324
|
+
// manual compactions to abort and will wait for them to finish or abort
|
|
1325
|
+
// before returning.
|
|
1183
1326
|
virtual void DisableManualCompaction() = 0;
|
|
1327
|
+
// Re-enable CompactRange() and ComapctFiles() that are disabled by
|
|
1328
|
+
// DisableManualCompaction(). This function must be called as many times
|
|
1329
|
+
// as DisableManualCompaction() has been called in order to re-enable
|
|
1330
|
+
// manual compactions, and must not be called more times than
|
|
1331
|
+
// DisableManualCompaction() has been called.
|
|
1184
1332
|
virtual void EnableManualCompaction() = 0;
|
|
1185
1333
|
|
|
1186
1334
|
// Number of levels used for this DB.
|
|
@@ -1207,6 +1355,8 @@ class DB {
|
|
|
1207
1355
|
// Get Env object from the DB
|
|
1208
1356
|
virtual Env* GetEnv() const = 0;
|
|
1209
1357
|
|
|
1358
|
+
// A shortcut for GetEnv()->->GetFileSystem().get(), possibly cached for
|
|
1359
|
+
// efficiency.
|
|
1210
1360
|
virtual FileSystem* GetFileSystem() const;
|
|
1211
1361
|
|
|
1212
1362
|
// Get DB Options that we use. During the process of opening the
|
|
@@ -1264,19 +1414,20 @@ class DB {
|
|
|
1264
1414
|
// The sequence number of the most recent transaction.
|
|
1265
1415
|
virtual SequenceNumber GetLatestSequenceNumber() const = 0;
|
|
1266
1416
|
|
|
1267
|
-
// Instructs DB to preserve deletes with sequence numbers >= passed seqnum.
|
|
1268
|
-
// Has no effect if DBOptions.preserve_deletes is set to false.
|
|
1269
|
-
// This function assumes that user calls this function with monotonically
|
|
1270
|
-
// increasing seqnums (otherwise we can't guarantee that a particular delete
|
|
1271
|
-
// hasn't been already processed); returns true if the value was successfully
|
|
1272
|
-
// updated, false if user attempted to call if with seqnum <= current value.
|
|
1273
|
-
virtual bool SetPreserveDeletesSequenceNumber(SequenceNumber seqnum) = 0;
|
|
1274
|
-
|
|
1275
1417
|
// Prevent file deletions. Compactions will continue to occur,
|
|
1276
1418
|
// but no obsolete files will be deleted. Calling this multiple
|
|
1277
1419
|
// times have the same effect as calling it once.
|
|
1278
1420
|
virtual Status DisableFileDeletions() = 0;
|
|
1279
1421
|
|
|
1422
|
+
// Increase the full_history_ts of column family. The new ts_low value should
|
|
1423
|
+
// be newer than current full_history_ts value.
|
|
1424
|
+
virtual Status IncreaseFullHistoryTsLow(ColumnFamilyHandle* column_family,
|
|
1425
|
+
std::string ts_low) = 0;
|
|
1426
|
+
|
|
1427
|
+
// Get current full_history_ts value.
|
|
1428
|
+
virtual Status GetFullHistoryTsLow(ColumnFamilyHandle* column_family,
|
|
1429
|
+
std::string* ts_low) = 0;
|
|
1430
|
+
|
|
1280
1431
|
// Allow compactions to delete obsolete files.
|
|
1281
1432
|
// If force == true, the call to EnableFileDeletions() will guarantee that
|
|
1282
1433
|
// file deletions are enabled after the call, even if DisableFileDeletions()
|
|
@@ -1335,9 +1486,12 @@ class DB {
|
|
|
1335
1486
|
virtual Status GetCreationTimeOfOldestFile(uint64_t* creation_time) = 0;
|
|
1336
1487
|
|
|
1337
1488
|
// Note: this API is not yet consistent with WritePrepared transactions.
|
|
1338
|
-
//
|
|
1339
|
-
//
|
|
1340
|
-
//
|
|
1489
|
+
//
|
|
1490
|
+
// Sets iter to an iterator that is positioned at a write-batch whose
|
|
1491
|
+
// sequence number range [start_seq, end_seq] covers seq_number. If no such
|
|
1492
|
+
// write-batch exists, then iter is positioned at the next write-batch whose
|
|
1493
|
+
// start_seq > seq_number.
|
|
1494
|
+
//
|
|
1341
1495
|
// Returns Status::OK if iterator is valid
|
|
1342
1496
|
// Must set WAL_ttl_seconds or WAL_size_limit_MB to large values to
|
|
1343
1497
|
// use this api, else the WAL files will get
|
|
@@ -1368,11 +1522,20 @@ class DB {
|
|
|
1368
1522
|
virtual void GetLiveFilesMetaData(
|
|
1369
1523
|
std::vector<LiveFileMetaData>* /*metadata*/) {}
|
|
1370
1524
|
|
|
1371
|
-
// Return a list of all table
|
|
1525
|
+
// Return a list of all table and blob files checksum info.
|
|
1372
1526
|
// Note: This function might be of limited use because it cannot be
|
|
1373
1527
|
// synchronized with GetLiveFiles.
|
|
1374
1528
|
virtual Status GetLiveFilesChecksumInfo(FileChecksumList* checksum_list) = 0;
|
|
1375
1529
|
|
|
1530
|
+
// EXPERIMENTAL: This function is not yet feature-complete.
|
|
1531
|
+
// Get information about all live files that make up a DB, for making
|
|
1532
|
+
// live copies (Checkpoint, backups, etc.) or other storage-related purposes.
|
|
1533
|
+
// Use DisableFileDeletions() before and EnableFileDeletions() after to
|
|
1534
|
+
// preserve the files for live copy.
|
|
1535
|
+
virtual Status GetLiveFilesStorageInfo(
|
|
1536
|
+
const LiveFilesStorageInfoOptions& opts,
|
|
1537
|
+
std::vector<LiveFileStorageInfo>* files) = 0;
|
|
1538
|
+
|
|
1376
1539
|
// Obtains the meta data of the specified column family of the DB.
|
|
1377
1540
|
virtual void GetColumnFamilyMetaData(ColumnFamilyHandle* /*column_family*/,
|
|
1378
1541
|
ColumnFamilyMetaData* /*metadata*/) {}
|
|
@@ -1382,6 +1545,12 @@ class DB {
|
|
|
1382
1545
|
GetColumnFamilyMetaData(DefaultColumnFamily(), metadata);
|
|
1383
1546
|
}
|
|
1384
1547
|
|
|
1548
|
+
// Obtains the meta data of all column families for the DB.
|
|
1549
|
+
// The returned map contains one entry for each column family indexed by the
|
|
1550
|
+
// name of the column family.
|
|
1551
|
+
virtual void GetAllColumnFamilyMetaData(
|
|
1552
|
+
std::vector<ColumnFamilyMetaData>* /*metadata*/) {}
|
|
1553
|
+
|
|
1385
1554
|
// IngestExternalFile() will load a list of external SST files (1) into the DB
|
|
1386
1555
|
// Two primary modes are supported:
|
|
1387
1556
|
// - Duplicate keys in the new files will overwrite exiting keys (default)
|
|
@@ -1399,6 +1568,11 @@ class DB {
|
|
|
1399
1568
|
// (3) If IngestExternalFileOptions->ingest_behind is set to true,
|
|
1400
1569
|
// we always ingest at the bottommost level, which should be reserved
|
|
1401
1570
|
// for this purpose (see DBOPtions::allow_ingest_behind flag).
|
|
1571
|
+
// (4) If IngestExternalFileOptions->fail_if_not_bottommost_level is set to
|
|
1572
|
+
// true, then this method can return Status:TryAgain() indicating that
|
|
1573
|
+
// the files cannot be ingested to the bottommost level, and it is the
|
|
1574
|
+
// user's responsibility to clear the bottommost level in the overlapping
|
|
1575
|
+
// range before re-attempting the ingestion.
|
|
1402
1576
|
virtual Status IngestExternalFile(
|
|
1403
1577
|
ColumnFamilyHandle* column_family,
|
|
1404
1578
|
const std::vector<std::string>& external_files,
|
|
@@ -1433,13 +1607,14 @@ class DB {
|
|
|
1433
1607
|
// this column family.
|
|
1434
1608
|
// (1) External SST files can be created using SstFileWriter.
|
|
1435
1609
|
// (2) External SST files can be exported from a particular column family in
|
|
1436
|
-
// an existing DB.
|
|
1610
|
+
// an existing DB using Checkpoint::ExportColumnFamily.
|
|
1437
1611
|
// Option in import_options specifies whether the external files are copied or
|
|
1438
1612
|
// moved (default is copy). When option specifies copy, managing files at
|
|
1439
1613
|
// external_file_path is caller's responsibility. When option specifies a
|
|
1440
|
-
// move, the call
|
|
1441
|
-
//
|
|
1442
|
-
//
|
|
1614
|
+
// move, the call makes a best effort to delete the specified files at
|
|
1615
|
+
// external_file_path on successful return, logging any failure to delete
|
|
1616
|
+
// rather than returning in Status. Files are not modified on any error
|
|
1617
|
+
// return, and a best effort is made to remove any newly-created files.
|
|
1443
1618
|
// On error return, column family handle returned will be nullptr.
|
|
1444
1619
|
// ColumnFamily will be present on successful return and will not be present
|
|
1445
1620
|
// on error return. ColumnFamily may be present on any crash during this call.
|
|
@@ -1461,108 +1636,6 @@ class DB {
|
|
|
1461
1636
|
|
|
1462
1637
|
virtual Status VerifyChecksum() { return VerifyChecksum(ReadOptions()); }
|
|
1463
1638
|
|
|
1464
|
-
// AddFile() is deprecated, please use IngestExternalFile()
|
|
1465
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1466
|
-
ColumnFamilyHandle* column_family,
|
|
1467
|
-
const std::vector<std::string>& file_path_list, bool move_file = false,
|
|
1468
|
-
bool skip_snapshot_check = false) {
|
|
1469
|
-
IngestExternalFileOptions ifo;
|
|
1470
|
-
ifo.move_files = move_file;
|
|
1471
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1472
|
-
ifo.allow_global_seqno = false;
|
|
1473
|
-
ifo.allow_blocking_flush = false;
|
|
1474
|
-
return IngestExternalFile(column_family, file_path_list, ifo);
|
|
1475
|
-
}
|
|
1476
|
-
|
|
1477
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1478
|
-
const std::vector<std::string>& file_path_list, bool move_file = false,
|
|
1479
|
-
bool skip_snapshot_check = false) {
|
|
1480
|
-
IngestExternalFileOptions ifo;
|
|
1481
|
-
ifo.move_files = move_file;
|
|
1482
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1483
|
-
ifo.allow_global_seqno = false;
|
|
1484
|
-
ifo.allow_blocking_flush = false;
|
|
1485
|
-
return IngestExternalFile(DefaultColumnFamily(), file_path_list, ifo);
|
|
1486
|
-
}
|
|
1487
|
-
|
|
1488
|
-
// AddFile() is deprecated, please use IngestExternalFile()
|
|
1489
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1490
|
-
ColumnFamilyHandle* column_family, const std::string& file_path,
|
|
1491
|
-
bool move_file = false, bool skip_snapshot_check = false) {
|
|
1492
|
-
IngestExternalFileOptions ifo;
|
|
1493
|
-
ifo.move_files = move_file;
|
|
1494
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1495
|
-
ifo.allow_global_seqno = false;
|
|
1496
|
-
ifo.allow_blocking_flush = false;
|
|
1497
|
-
return IngestExternalFile(column_family, {file_path}, ifo);
|
|
1498
|
-
}
|
|
1499
|
-
|
|
1500
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1501
|
-
const std::string& file_path, bool move_file = false,
|
|
1502
|
-
bool skip_snapshot_check = false) {
|
|
1503
|
-
IngestExternalFileOptions ifo;
|
|
1504
|
-
ifo.move_files = move_file;
|
|
1505
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1506
|
-
ifo.allow_global_seqno = false;
|
|
1507
|
-
ifo.allow_blocking_flush = false;
|
|
1508
|
-
return IngestExternalFile(DefaultColumnFamily(), {file_path}, ifo);
|
|
1509
|
-
}
|
|
1510
|
-
|
|
1511
|
-
// Load table file with information "file_info" into "column_family"
|
|
1512
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1513
|
-
ColumnFamilyHandle* column_family,
|
|
1514
|
-
const std::vector<ExternalSstFileInfo>& file_info_list,
|
|
1515
|
-
bool move_file = false, bool skip_snapshot_check = false) {
|
|
1516
|
-
std::vector<std::string> external_files;
|
|
1517
|
-
for (const ExternalSstFileInfo& file_info : file_info_list) {
|
|
1518
|
-
external_files.push_back(file_info.file_path);
|
|
1519
|
-
}
|
|
1520
|
-
IngestExternalFileOptions ifo;
|
|
1521
|
-
ifo.move_files = move_file;
|
|
1522
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1523
|
-
ifo.allow_global_seqno = false;
|
|
1524
|
-
ifo.allow_blocking_flush = false;
|
|
1525
|
-
return IngestExternalFile(column_family, external_files, ifo);
|
|
1526
|
-
}
|
|
1527
|
-
|
|
1528
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1529
|
-
const std::vector<ExternalSstFileInfo>& file_info_list,
|
|
1530
|
-
bool move_file = false, bool skip_snapshot_check = false) {
|
|
1531
|
-
std::vector<std::string> external_files;
|
|
1532
|
-
for (const ExternalSstFileInfo& file_info : file_info_list) {
|
|
1533
|
-
external_files.push_back(file_info.file_path);
|
|
1534
|
-
}
|
|
1535
|
-
IngestExternalFileOptions ifo;
|
|
1536
|
-
ifo.move_files = move_file;
|
|
1537
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1538
|
-
ifo.allow_global_seqno = false;
|
|
1539
|
-
ifo.allow_blocking_flush = false;
|
|
1540
|
-
return IngestExternalFile(DefaultColumnFamily(), external_files, ifo);
|
|
1541
|
-
}
|
|
1542
|
-
|
|
1543
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1544
|
-
ColumnFamilyHandle* column_family, const ExternalSstFileInfo* file_info,
|
|
1545
|
-
bool move_file = false, bool skip_snapshot_check = false) {
|
|
1546
|
-
IngestExternalFileOptions ifo;
|
|
1547
|
-
ifo.move_files = move_file;
|
|
1548
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1549
|
-
ifo.allow_global_seqno = false;
|
|
1550
|
-
ifo.allow_blocking_flush = false;
|
|
1551
|
-
return IngestExternalFile(column_family, {file_info->file_path}, ifo);
|
|
1552
|
-
}
|
|
1553
|
-
|
|
1554
|
-
ROCKSDB_DEPRECATED_FUNC virtual Status AddFile(
|
|
1555
|
-
const ExternalSstFileInfo* file_info, bool move_file = false,
|
|
1556
|
-
bool skip_snapshot_check = false) {
|
|
1557
|
-
IngestExternalFileOptions ifo;
|
|
1558
|
-
ifo.move_files = move_file;
|
|
1559
|
-
ifo.snapshot_consistency = !skip_snapshot_check;
|
|
1560
|
-
ifo.allow_global_seqno = false;
|
|
1561
|
-
ifo.allow_blocking_flush = false;
|
|
1562
|
-
return IngestExternalFile(DefaultColumnFamily(), {file_info->file_path},
|
|
1563
|
-
ifo);
|
|
1564
|
-
}
|
|
1565
|
-
|
|
1566
1639
|
#endif // ROCKSDB_LITE
|
|
1567
1640
|
|
|
1568
1641
|
// Returns the unique ID which is read from IDENTITY file during the opening
|
|
@@ -1581,6 +1654,7 @@ class DB {
|
|
|
1581
1654
|
virtual ColumnFamilyHandle* DefaultColumnFamily() const = 0;
|
|
1582
1655
|
|
|
1583
1656
|
#ifndef ROCKSDB_LITE
|
|
1657
|
+
|
|
1584
1658
|
virtual Status GetPropertiesOfAllTables(ColumnFamilyHandle* column_family,
|
|
1585
1659
|
TablePropertiesCollection* props) = 0;
|
|
1586
1660
|
virtual Status GetPropertiesOfAllTables(TablePropertiesCollection* props) {
|
|
@@ -1612,7 +1686,7 @@ class DB {
|
|
|
1612
1686
|
}
|
|
1613
1687
|
|
|
1614
1688
|
// IO Tracing operations. Use EndIOTrace() to stop tracing.
|
|
1615
|
-
virtual Status StartIOTrace(
|
|
1689
|
+
virtual Status StartIOTrace(const TraceOptions& /*options*/,
|
|
1616
1690
|
std::unique_ptr<TraceWriter>&& /*trace_writer*/) {
|
|
1617
1691
|
return Status::NotSupported("StartIOTrace() is not implemented.");
|
|
1618
1692
|
}
|
|
@@ -1631,6 +1705,15 @@ class DB {
|
|
|
1631
1705
|
virtual Status EndBlockCacheTrace() {
|
|
1632
1706
|
return Status::NotSupported("EndBlockCacheTrace() is not implemented.");
|
|
1633
1707
|
}
|
|
1708
|
+
|
|
1709
|
+
// Create a default trace replayer.
|
|
1710
|
+
virtual Status NewDefaultReplayer(
|
|
1711
|
+
const std::vector<ColumnFamilyHandle*>& /*handles*/,
|
|
1712
|
+
std::unique_ptr<TraceReader>&& /*reader*/,
|
|
1713
|
+
std::unique_ptr<Replayer>* /*replayer*/) {
|
|
1714
|
+
return Status::NotSupported("NewDefaultReplayer() is not implemented.");
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1634
1717
|
#endif // ROCKSDB_LITE
|
|
1635
1718
|
|
|
1636
1719
|
// Needed for StackableDB
|
|
@@ -1656,13 +1739,38 @@ class DB {
|
|
|
1656
1739
|
// secondary instance does not delete the corresponding column family
|
|
1657
1740
|
// handles, the data of the column family is still accessible to the
|
|
1658
1741
|
// secondary.
|
|
1659
|
-
// TODO: we will support WAL tailing soon.
|
|
1660
1742
|
virtual Status TryCatchUpWithPrimary() {
|
|
1661
1743
|
return Status::NotSupported("Supported only by secondary instance");
|
|
1662
1744
|
}
|
|
1663
1745
|
#endif // !ROCKSDB_LITE
|
|
1664
1746
|
};
|
|
1665
1747
|
|
|
1748
|
+
// Overloaded operators for enum class SizeApproximationFlags.
|
|
1749
|
+
inline DB::SizeApproximationFlags operator&(DB::SizeApproximationFlags lhs,
|
|
1750
|
+
DB::SizeApproximationFlags rhs) {
|
|
1751
|
+
return static_cast<DB::SizeApproximationFlags>(static_cast<uint8_t>(lhs) &
|
|
1752
|
+
static_cast<uint8_t>(rhs));
|
|
1753
|
+
}
|
|
1754
|
+
inline DB::SizeApproximationFlags operator|(DB::SizeApproximationFlags lhs,
|
|
1755
|
+
DB::SizeApproximationFlags rhs) {
|
|
1756
|
+
return static_cast<DB::SizeApproximationFlags>(static_cast<uint8_t>(lhs) |
|
|
1757
|
+
static_cast<uint8_t>(rhs));
|
|
1758
|
+
}
|
|
1759
|
+
|
|
1760
|
+
inline Status DB::GetApproximateSizes(ColumnFamilyHandle* column_family,
|
|
1761
|
+
const Range* ranges, int n,
|
|
1762
|
+
uint64_t* sizes,
|
|
1763
|
+
SizeApproximationFlags include_flags) {
|
|
1764
|
+
SizeApproximationOptions options;
|
|
1765
|
+
options.include_memtables =
|
|
1766
|
+
((include_flags & SizeApproximationFlags::INCLUDE_MEMTABLES) !=
|
|
1767
|
+
SizeApproximationFlags::NONE);
|
|
1768
|
+
options.include_files =
|
|
1769
|
+
((include_flags & SizeApproximationFlags::INCLUDE_FILES) !=
|
|
1770
|
+
SizeApproximationFlags::NONE);
|
|
1771
|
+
return GetApproximateSizes(options, column_family, ranges, n, sizes);
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1666
1774
|
// Destroy the contents of the specified database.
|
|
1667
1775
|
// Be very careful using this method.
|
|
1668
1776
|
Status DestroyDB(const std::string& name, const Options& options,
|