@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
|
@@ -18,7 +18,84 @@
|
|
|
18
18
|
|
|
19
19
|
namespace ROCKSDB_NAMESPACE {
|
|
20
20
|
|
|
21
|
-
class
|
|
21
|
+
// A class that takes a bunch of keys, then generates filter
|
|
22
|
+
class FilterBitsBuilder {
|
|
23
|
+
public:
|
|
24
|
+
virtual ~FilterBitsBuilder() {}
|
|
25
|
+
|
|
26
|
+
// Add a key (or prefix) to the filter. Typically, a builder will keep
|
|
27
|
+
// a set of 64-bit key hashes and only build the filter in Finish
|
|
28
|
+
// when the final number of keys is known. Keys are added in sorted order
|
|
29
|
+
// and duplicated keys are possible, so typically, the builder will
|
|
30
|
+
// only add this key if its hash is different from the most recently
|
|
31
|
+
// added.
|
|
32
|
+
virtual void AddKey(const Slice& key) = 0;
|
|
33
|
+
|
|
34
|
+
// Called by RocksDB before Finish to populate
|
|
35
|
+
// TableProperties::num_filter_entries, so should represent the
|
|
36
|
+
// number of unique keys (and/or prefixes) added, but does not have
|
|
37
|
+
// to be exact. `return 0;` may be used to conspicuously indicate "unknown".
|
|
38
|
+
virtual size_t EstimateEntriesAdded() = 0;
|
|
39
|
+
|
|
40
|
+
// Generate the filter using the keys that are added
|
|
41
|
+
// The return value of this function would be the filter bits,
|
|
42
|
+
// The ownership of actual data is set to buf
|
|
43
|
+
virtual Slice Finish(std::unique_ptr<const char[]>* buf) = 0;
|
|
44
|
+
|
|
45
|
+
// Similar to Finish(std::unique_ptr<const char[]>* buf), except that
|
|
46
|
+
// for a non-null status pointer argument, it will point to
|
|
47
|
+
// Status::Corruption() when there is any corruption during filter
|
|
48
|
+
// construction or Status::OK() otherwise.
|
|
49
|
+
//
|
|
50
|
+
// WARNING: do not use a filter resulted from a corrupted construction
|
|
51
|
+
// TODO: refactor this to have a better signature, consolidate
|
|
52
|
+
virtual Slice Finish(std::unique_ptr<const char[]>* buf,
|
|
53
|
+
Status* /* status */) {
|
|
54
|
+
return Finish(buf);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Verify the filter returned from calling FilterBitsBuilder::Finish.
|
|
58
|
+
// The function returns Status::Corruption() if there is any corruption in the
|
|
59
|
+
// constructed filter or Status::OK() otherwise.
|
|
60
|
+
//
|
|
61
|
+
// Implementations should normally consult
|
|
62
|
+
// FilterBuildingContext::table_options.detect_filter_construct_corruption
|
|
63
|
+
// to determine whether to perform verification or to skip by returning
|
|
64
|
+
// Status::OK(). The decision is left to the FilterBitsBuilder so that
|
|
65
|
+
// verification prerequisites before PostVerify can be skipped when not
|
|
66
|
+
// configured.
|
|
67
|
+
//
|
|
68
|
+
// RocksDB internal will always call MaybePostVerify() on the filter after
|
|
69
|
+
// it is returned from calling FilterBitsBuilder::Finish
|
|
70
|
+
// except for FilterBitsBuilder::Finish resulting a corruption
|
|
71
|
+
// status, which indicates the filter is already in a corrupted state and
|
|
72
|
+
// there is no need to post-verify
|
|
73
|
+
virtual Status MaybePostVerify(const Slice& /* filter_content */) {
|
|
74
|
+
return Status::OK();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Approximate the number of keys that can be added and generate a filter
|
|
78
|
+
// <= the specified number of bytes. Callers (including RocksDB) should
|
|
79
|
+
// only use this result for optimizing performance and not as a guarantee.
|
|
80
|
+
virtual size_t ApproximateNumEntries(size_t bytes) = 0;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
// A class that checks if a key can be in filter
|
|
84
|
+
// It should be initialized by Slice generated by BitsBuilder
|
|
85
|
+
class FilterBitsReader {
|
|
86
|
+
public:
|
|
87
|
+
virtual ~FilterBitsReader() {}
|
|
88
|
+
|
|
89
|
+
// Check if the entry match the bits in filter
|
|
90
|
+
virtual bool MayMatch(const Slice& entry) = 0;
|
|
91
|
+
|
|
92
|
+
// Check if an array of entries match the bits in filter
|
|
93
|
+
virtual void MayMatch(int num_keys, Slice** keys, bool* may_match) {
|
|
94
|
+
for (int i = 0; i < num_keys; ++i) {
|
|
95
|
+
may_match[i] = MayMatch(*keys[i]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
22
99
|
|
|
23
100
|
// Exposes any extra information needed for testing built-in
|
|
24
101
|
// FilterBitsBuilders
|
|
@@ -38,90 +115,110 @@ class BuiltinFilterBitsBuilder : public FilterBitsBuilder {
|
|
|
38
115
|
virtual double EstimatedFpRate(size_t num_entries, size_t bytes) = 0;
|
|
39
116
|
};
|
|
40
117
|
|
|
41
|
-
// RocksDB built-in filter
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
class BloomFilterPolicy : public FilterPolicy {
|
|
118
|
+
// Base class for RocksDB built-in filter reader with
|
|
119
|
+
// extra useful functionalities for inernal.
|
|
120
|
+
class BuiltinFilterBitsReader : public FilterBitsReader {
|
|
45
121
|
public:
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// only variance in BloomFilterPolicy by mode/implementation is in
|
|
50
|
-
// GetFilterBitsBuilder(), so an enum is practical here vs. subclasses.
|
|
51
|
-
//
|
|
52
|
-
// This enum is essentially the union of all the different kinds of return
|
|
53
|
-
// value from GetFilterBitsBuilder, or "underlying implementation", and
|
|
54
|
-
// higher-level modes that choose an underlying implementation based on
|
|
55
|
-
// context information.
|
|
56
|
-
enum Mode {
|
|
57
|
-
// Legacy implementation of Bloom filter for full and partitioned filters.
|
|
58
|
-
// Set to 0 in case of value confusion with bool use_block_based_builder
|
|
59
|
-
// NOTE: TESTING ONLY as this mode does not use best compatible
|
|
60
|
-
// implementation
|
|
61
|
-
kLegacyBloom = 0,
|
|
62
|
-
// Deprecated block-based Bloom filter implementation.
|
|
63
|
-
// Set to 1 in case of value confusion with bool use_block_based_builder
|
|
64
|
-
// NOTE: DEPRECATED but user exposed
|
|
65
|
-
kDeprecatedBlock = 1,
|
|
66
|
-
// A fast, cache-local Bloom filter implementation. See description in
|
|
67
|
-
// FastLocalBloomImpl.
|
|
68
|
-
// NOTE: TESTING ONLY as this mode does not check format_version
|
|
69
|
-
kFastLocalBloom = 2,
|
|
70
|
-
// A Bloom alternative saving about 30% space for ~3-4x construction
|
|
71
|
-
// CPU time. See ribbon_alg.h and ribbon_impl.h.
|
|
72
|
-
kStandard128Ribbon = 3,
|
|
73
|
-
// Automatically choose between kLegacyBloom and kFastLocalBloom based on
|
|
74
|
-
// context at build time, including compatibility with format_version.
|
|
75
|
-
kAutoBloom = 100,
|
|
76
|
-
};
|
|
77
|
-
// All the different underlying implementations that a BloomFilterPolicy
|
|
78
|
-
// might use, as a mode that says "always use this implementation."
|
|
79
|
-
// Only appropriate for unit tests.
|
|
80
|
-
static const std::vector<Mode> kAllFixedImpls;
|
|
81
|
-
|
|
82
|
-
// All the different modes of BloomFilterPolicy that are exposed from
|
|
83
|
-
// user APIs. Only appropriate for higher-level unit tests. Integration
|
|
84
|
-
// tests should prefer using NewBloomFilterPolicy (user-exposed).
|
|
85
|
-
static const std::vector<Mode> kAllUserModes;
|
|
86
|
-
|
|
87
|
-
explicit BloomFilterPolicy(double bits_per_key, Mode mode);
|
|
88
|
-
|
|
89
|
-
~BloomFilterPolicy() override;
|
|
90
|
-
|
|
91
|
-
const char* Name() const override;
|
|
92
|
-
|
|
93
|
-
// Deprecated block-based filter only
|
|
94
|
-
void CreateFilter(const Slice* keys, int n, std::string* dst) const override;
|
|
95
|
-
|
|
96
|
-
// Deprecated block-based filter only
|
|
97
|
-
bool KeyMayMatch(const Slice& key, const Slice& bloom_filter) const override;
|
|
98
|
-
|
|
99
|
-
FilterBitsBuilder* GetFilterBitsBuilder() const override;
|
|
100
|
-
|
|
101
|
-
// To use this function, call GetBuilderFromContext().
|
|
102
|
-
//
|
|
103
|
-
// Neither the context nor any objects therein should be saved beyond
|
|
104
|
-
// the call to this function, unless it's shared_ptr.
|
|
105
|
-
FilterBitsBuilder* GetBuilderWithContext(
|
|
106
|
-
const FilterBuildingContext&) const override;
|
|
107
|
-
|
|
108
|
-
// Returns a new FilterBitsBuilder from the filter_policy in
|
|
109
|
-
// table_options of a context, or nullptr if not applicable.
|
|
110
|
-
// (An internal convenience function to save boilerplate.)
|
|
111
|
-
static FilterBitsBuilder* GetBuilderFromContext(const FilterBuildingContext&);
|
|
122
|
+
// Check if the hash of the entry match the bits in filter
|
|
123
|
+
virtual bool HashMayMatch(const uint64_t /* h */) { return true; }
|
|
124
|
+
};
|
|
112
125
|
|
|
126
|
+
// Base class for RocksDB built-in filter policies. This provides the
|
|
127
|
+
// ability to read all kinds of built-in filters (so that old filters can
|
|
128
|
+
// be used even when you change between built-in policies).
|
|
129
|
+
class BuiltinFilterPolicy : public FilterPolicy {
|
|
130
|
+
public: // overrides
|
|
113
131
|
// Read metadata to determine what kind of FilterBitsReader is needed
|
|
114
132
|
// and return a new one. This must successfully process any filter data
|
|
115
133
|
// generated by a built-in FilterBitsBuilder, regardless of the impl
|
|
116
134
|
// chosen for this BloomFilterPolicy. Not compatible with CreateFilter.
|
|
117
135
|
FilterBitsReader* GetFilterBitsReader(const Slice& contents) const override;
|
|
136
|
+
static const char* kClassName();
|
|
137
|
+
bool IsInstanceOf(const std::string& id) const override;
|
|
138
|
+
// All variants of BuiltinFilterPolicy can read each others filters.
|
|
139
|
+
const char* CompatibilityName() const override;
|
|
140
|
+
static const char* kCompatibilityName();
|
|
141
|
+
|
|
142
|
+
public: // new
|
|
143
|
+
// An internal function for the implementation of
|
|
144
|
+
// BuiltinFilterBitsReader::GetFilterBitsReader without requiring an instance
|
|
145
|
+
// or working around potential virtual overrides.
|
|
146
|
+
static BuiltinFilterBitsReader* GetBuiltinFilterBitsReader(
|
|
147
|
+
const Slice& contents);
|
|
148
|
+
|
|
149
|
+
// Returns a new FilterBitsBuilder from the filter_policy in
|
|
150
|
+
// table_options of a context, or nullptr if not applicable.
|
|
151
|
+
// (An internal convenience function to save boilerplate.)
|
|
152
|
+
static FilterBitsBuilder* GetBuilderFromContext(const FilterBuildingContext&);
|
|
153
|
+
|
|
154
|
+
protected:
|
|
155
|
+
// Deprecated block-based filter only (no longer in public API)
|
|
156
|
+
bool KeyMayMatch(const Slice& key, const Slice& bloom_filter) const;
|
|
157
|
+
|
|
158
|
+
private:
|
|
159
|
+
// For Bloom filter implementation(s) (except deprecated block-based filter)
|
|
160
|
+
static BuiltinFilterBitsReader* GetBloomBitsReader(const Slice& contents);
|
|
161
|
+
|
|
162
|
+
// For Ribbon filter implementation(s)
|
|
163
|
+
static BuiltinFilterBitsReader* GetRibbonBitsReader(const Slice& contents);
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// A "read only" filter policy used for backward compatibility with old
|
|
167
|
+
// OPTIONS files, which did not specifying a Bloom configuration, just
|
|
168
|
+
// "rocksdb.BuiltinBloomFilter". Although this can read existing filters,
|
|
169
|
+
// this policy does not build new filters, so new SST files generated
|
|
170
|
+
// under the policy will get no filters (like nullptr FilterPolicy).
|
|
171
|
+
// This class is considered internal API and subject to change.
|
|
172
|
+
class ReadOnlyBuiltinFilterPolicy : public BuiltinFilterPolicy {
|
|
173
|
+
public:
|
|
174
|
+
const char* Name() const override { return kClassName(); }
|
|
175
|
+
static const char* kClassName();
|
|
176
|
+
|
|
177
|
+
// Does not write filters.
|
|
178
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
179
|
+
const FilterBuildingContext&) const override {
|
|
180
|
+
return nullptr;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
// RocksDB built-in filter policy for Bloom or Bloom-like filters including
|
|
185
|
+
// Ribbon filters.
|
|
186
|
+
// This class is considered internal API and subject to change.
|
|
187
|
+
// See NewBloomFilterPolicy and NewRibbonFilterPolicy.
|
|
188
|
+
class BloomLikeFilterPolicy : public BuiltinFilterPolicy {
|
|
189
|
+
public:
|
|
190
|
+
explicit BloomLikeFilterPolicy(double bits_per_key);
|
|
191
|
+
|
|
192
|
+
~BloomLikeFilterPolicy() override;
|
|
193
|
+
static const char* kClassName();
|
|
194
|
+
bool IsInstanceOf(const std::string& id) const override;
|
|
195
|
+
|
|
196
|
+
std::string GetId() const override;
|
|
118
197
|
|
|
119
198
|
// Essentially for testing only: configured millibits/key
|
|
120
199
|
int GetMillibitsPerKey() const { return millibits_per_key_; }
|
|
121
200
|
// Essentially for testing only: legacy whole bits/key
|
|
122
201
|
int GetWholeBitsPerKey() const { return whole_bits_per_key_; }
|
|
123
|
-
|
|
124
|
-
|
|
202
|
+
|
|
203
|
+
// All the different underlying implementations that a BloomLikeFilterPolicy
|
|
204
|
+
// might use, as a configuration string name for a testing mode for
|
|
205
|
+
// "always use this implementation." Only appropriate for unit tests.
|
|
206
|
+
static const std::vector<std::string>& GetAllFixedImpls();
|
|
207
|
+
|
|
208
|
+
// Convenience function for creating by name for fixed impls
|
|
209
|
+
static std::shared_ptr<const FilterPolicy> Create(const std::string& name,
|
|
210
|
+
double bits_per_key);
|
|
211
|
+
|
|
212
|
+
protected:
|
|
213
|
+
// Some implementations used by aggregating policies
|
|
214
|
+
FilterBitsBuilder* GetLegacyBloomBuilderWithContext(
|
|
215
|
+
const FilterBuildingContext& context) const;
|
|
216
|
+
FilterBitsBuilder* GetFastLocalBloomBuilderWithContext(
|
|
217
|
+
const FilterBuildingContext& context) const;
|
|
218
|
+
FilterBitsBuilder* GetStandard128RibbonBuilderWithContext(
|
|
219
|
+
const FilterBuildingContext& context) const;
|
|
220
|
+
|
|
221
|
+
std::string GetBitsPerKeySuffix() const;
|
|
125
222
|
|
|
126
223
|
private:
|
|
127
224
|
// Bits per key settings are for configuring Bloom filters.
|
|
@@ -140,10 +237,6 @@ class BloomFilterPolicy : public FilterPolicy {
|
|
|
140
237
|
// example, 100 -> 1% fp rate.
|
|
141
238
|
double desired_one_in_fp_rate_;
|
|
142
239
|
|
|
143
|
-
// Selected mode (a specific implementation or way of selecting an
|
|
144
|
-
// implementation) for building new SST filters.
|
|
145
|
-
Mode mode_;
|
|
146
|
-
|
|
147
240
|
// Whether relevant warnings have been logged already. (Remember so we
|
|
148
241
|
// only report once per BloomFilterPolicy instance, to keep the noise down.)
|
|
149
242
|
mutable std::atomic<bool> warned_;
|
|
@@ -157,12 +250,119 @@ class BloomFilterPolicy : public FilterPolicy {
|
|
|
157
250
|
// Sum over all generated filters f:
|
|
158
251
|
// (predicted_fp_rate(f) - predicted_fp_rate(f|o_f_f_m=false)) * 2^32
|
|
159
252
|
mutable std::atomic<int64_t> aggregate_rounding_balance_;
|
|
253
|
+
};
|
|
160
254
|
|
|
161
|
-
|
|
162
|
-
|
|
255
|
+
// For NewBloomFilterPolicy
|
|
256
|
+
//
|
|
257
|
+
// This is a user-facing policy that automatically choose between
|
|
258
|
+
// LegacyBloom and FastLocalBloom based on context at build time,
|
|
259
|
+
// including compatibility with format_version.
|
|
260
|
+
class BloomFilterPolicy : public BloomLikeFilterPolicy {
|
|
261
|
+
public:
|
|
262
|
+
explicit BloomFilterPolicy(double bits_per_key);
|
|
163
263
|
|
|
164
|
-
//
|
|
165
|
-
|
|
264
|
+
// To use this function, call BuiltinFilterPolicy::GetBuilderFromContext().
|
|
265
|
+
//
|
|
266
|
+
// Neither the context nor any objects therein should be saved beyond
|
|
267
|
+
// the call to this function, unless it's shared_ptr.
|
|
268
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
269
|
+
const FilterBuildingContext&) const override;
|
|
270
|
+
|
|
271
|
+
static const char* kClassName();
|
|
272
|
+
const char* Name() const override { return kClassName(); }
|
|
273
|
+
static const char* kNickName();
|
|
274
|
+
const char* NickName() const override { return kNickName(); }
|
|
275
|
+
std::string GetId() const override;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
// For NewRibbonFilterPolicy
|
|
279
|
+
//
|
|
280
|
+
// This is a user-facing policy that chooses between Standard128Ribbon
|
|
281
|
+
// and FastLocalBloom based on context at build time (LSM level and other
|
|
282
|
+
// factors in extreme cases).
|
|
283
|
+
class RibbonFilterPolicy : public BloomLikeFilterPolicy {
|
|
284
|
+
public:
|
|
285
|
+
explicit RibbonFilterPolicy(double bloom_equivalent_bits_per_key,
|
|
286
|
+
int bloom_before_level);
|
|
287
|
+
|
|
288
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
289
|
+
const FilterBuildingContext&) const override;
|
|
290
|
+
|
|
291
|
+
int GetBloomBeforeLevel() const { return bloom_before_level_; }
|
|
292
|
+
|
|
293
|
+
static const char* kClassName();
|
|
294
|
+
const char* Name() const override { return kClassName(); }
|
|
295
|
+
static const char* kNickName();
|
|
296
|
+
const char* NickName() const override { return kNickName(); }
|
|
297
|
+
std::string GetId() const override;
|
|
298
|
+
|
|
299
|
+
private:
|
|
300
|
+
const int bloom_before_level_;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
// Deprecated block-based filter only. We still support reading old
|
|
304
|
+
// block-based filters from any BuiltinFilterPolicy, but there is no public
|
|
305
|
+
// option to build them. However, this class is used to build them for testing
|
|
306
|
+
// and for a public backdoor to building them by constructing this policy from
|
|
307
|
+
// a string.
|
|
308
|
+
class DeprecatedBlockBasedBloomFilterPolicy : public BloomLikeFilterPolicy {
|
|
309
|
+
public:
|
|
310
|
+
explicit DeprecatedBlockBasedBloomFilterPolicy(double bits_per_key);
|
|
311
|
+
|
|
312
|
+
// Internal contract: returns a new fake builder that encodes bits per key
|
|
313
|
+
// into a special value from EstimateEntriesAdded(), using
|
|
314
|
+
// kSecretBitsPerKeyStart
|
|
315
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
316
|
+
const FilterBuildingContext&) const override;
|
|
317
|
+
static constexpr size_t kSecretBitsPerKeyStart = 1234567890U;
|
|
318
|
+
|
|
319
|
+
static const char* kClassName();
|
|
320
|
+
const char* Name() const override { return kClassName(); }
|
|
321
|
+
|
|
322
|
+
static void CreateFilter(const Slice* keys, int n, int bits_per_key,
|
|
323
|
+
std::string* dst);
|
|
324
|
+
static bool KeyMayMatch(const Slice& key, const Slice& bloom_filter);
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
// For testing only, but always constructable with internal names
|
|
328
|
+
namespace test {
|
|
329
|
+
|
|
330
|
+
class LegacyBloomFilterPolicy : public BloomLikeFilterPolicy {
|
|
331
|
+
public:
|
|
332
|
+
explicit LegacyBloomFilterPolicy(double bits_per_key)
|
|
333
|
+
: BloomLikeFilterPolicy(bits_per_key) {}
|
|
334
|
+
|
|
335
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
336
|
+
const FilterBuildingContext& context) const override;
|
|
337
|
+
|
|
338
|
+
static const char* kClassName();
|
|
339
|
+
const char* Name() const override { return kClassName(); }
|
|
166
340
|
};
|
|
167
341
|
|
|
342
|
+
class FastLocalBloomFilterPolicy : public BloomLikeFilterPolicy {
|
|
343
|
+
public:
|
|
344
|
+
explicit FastLocalBloomFilterPolicy(double bits_per_key)
|
|
345
|
+
: BloomLikeFilterPolicy(bits_per_key) {}
|
|
346
|
+
|
|
347
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
348
|
+
const FilterBuildingContext& context) const override;
|
|
349
|
+
|
|
350
|
+
static const char* kClassName();
|
|
351
|
+
const char* Name() const override { return kClassName(); }
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
class Standard128RibbonFilterPolicy : public BloomLikeFilterPolicy {
|
|
355
|
+
public:
|
|
356
|
+
explicit Standard128RibbonFilterPolicy(double bloom_equiv_bits_per_key)
|
|
357
|
+
: BloomLikeFilterPolicy(bloom_equiv_bits_per_key) {}
|
|
358
|
+
|
|
359
|
+
FilterBitsBuilder* GetBuilderWithContext(
|
|
360
|
+
const FilterBuildingContext& context) const override;
|
|
361
|
+
|
|
362
|
+
static const char* kClassName();
|
|
363
|
+
const char* Name() const override { return kClassName(); }
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
} // namespace test
|
|
367
|
+
|
|
168
368
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -4,12 +4,18 @@
|
|
|
4
4
|
// (found in the LICENSE.Apache file in the root directory).
|
|
5
5
|
|
|
6
6
|
#include "rocksdb/flush_block_policy.h"
|
|
7
|
+
|
|
8
|
+
#include <cassert>
|
|
9
|
+
#include <mutex>
|
|
10
|
+
|
|
7
11
|
#include "rocksdb/options.h"
|
|
8
12
|
#include "rocksdb/slice.h"
|
|
13
|
+
#include "rocksdb/utilities/customizable_util.h"
|
|
14
|
+
#include "table/block_based/block_based_table_reader.h"
|
|
9
15
|
#include "table/block_based/block_builder.h"
|
|
16
|
+
#include "table/block_based/flush_block_policy.h"
|
|
10
17
|
#include "table/format.h"
|
|
11
18
|
|
|
12
|
-
#include <cassert>
|
|
13
19
|
|
|
14
20
|
namespace ROCKSDB_NAMESPACE {
|
|
15
21
|
|
|
@@ -57,7 +63,7 @@ class FlushBlockBySizePolicy : public FlushBlockPolicy {
|
|
|
57
63
|
data_block_builder_.EstimateSizeAfterKV(key, value);
|
|
58
64
|
|
|
59
65
|
if (align_) {
|
|
60
|
-
estimated_size_after += kBlockTrailerSize;
|
|
66
|
+
estimated_size_after += BlockBasedTable::kBlockTrailerSize;
|
|
61
67
|
return estimated_size_after > block_size_;
|
|
62
68
|
}
|
|
63
69
|
|
|
@@ -85,4 +91,58 @@ FlushBlockPolicy* FlushBlockBySizePolicyFactory::NewFlushBlockPolicy(
|
|
|
85
91
|
return new FlushBlockBySizePolicy(size, deviation, false, data_block_builder);
|
|
86
92
|
}
|
|
87
93
|
|
|
94
|
+
#ifndef ROCKSDB_LITE
|
|
95
|
+
static int RegisterFlushBlockPolicyFactories(ObjectLibrary& library,
|
|
96
|
+
const std::string& /*arg*/) {
|
|
97
|
+
library.AddFactory<FlushBlockPolicyFactory>(
|
|
98
|
+
FlushBlockBySizePolicyFactory::kClassName(),
|
|
99
|
+
[](const std::string& /*uri*/,
|
|
100
|
+
std::unique_ptr<FlushBlockPolicyFactory>* guard,
|
|
101
|
+
std::string* /* errmsg */) {
|
|
102
|
+
guard->reset(new FlushBlockBySizePolicyFactory());
|
|
103
|
+
return guard->get();
|
|
104
|
+
});
|
|
105
|
+
library.AddFactory<FlushBlockPolicyFactory>(
|
|
106
|
+
FlushBlockEveryKeyPolicyFactory::kClassName(),
|
|
107
|
+
[](const std::string& /*uri*/,
|
|
108
|
+
std::unique_ptr<FlushBlockPolicyFactory>* guard,
|
|
109
|
+
std::string* /* errmsg */) {
|
|
110
|
+
guard->reset(new FlushBlockEveryKeyPolicyFactory());
|
|
111
|
+
return guard->get();
|
|
112
|
+
});
|
|
113
|
+
return 2;
|
|
114
|
+
}
|
|
115
|
+
#endif // ROCKSDB_LITE
|
|
116
|
+
|
|
117
|
+
static bool LoadFlushPolicyFactory(
|
|
118
|
+
const std::string& id, std::shared_ptr<FlushBlockPolicyFactory>* result) {
|
|
119
|
+
if (id.empty()) {
|
|
120
|
+
result->reset(new FlushBlockBySizePolicyFactory());
|
|
121
|
+
#ifdef ROCKSDB_LITE
|
|
122
|
+
} else if (id == FlushBlockBySizePolicyFactory::kClassName()) {
|
|
123
|
+
result->reset(new FlushBlockBySizePolicyFactory());
|
|
124
|
+
} else if (id == FlushBlockEveryKeyPolicyFactory::kClassName()) {
|
|
125
|
+
result->reset(new FlushBlockEveryKeyPolicyFactory());
|
|
126
|
+
#endif // ROCKSDB_LITE
|
|
127
|
+
} else {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
FlushBlockBySizePolicyFactory::FlushBlockBySizePolicyFactory()
|
|
134
|
+
: FlushBlockPolicyFactory() {}
|
|
135
|
+
|
|
136
|
+
Status FlushBlockPolicyFactory::CreateFromString(
|
|
137
|
+
const ConfigOptions& config_options, const std::string& value,
|
|
138
|
+
std::shared_ptr<FlushBlockPolicyFactory>* factory) {
|
|
139
|
+
#ifndef ROCKSDB_LITE
|
|
140
|
+
static std::once_flag once;
|
|
141
|
+
std::call_once(once, [&]() {
|
|
142
|
+
RegisterFlushBlockPolicyFactories(*(ObjectLibrary::Default().get()), "");
|
|
143
|
+
});
|
|
144
|
+
#endif // ROCKSDB_LITE
|
|
145
|
+
return LoadSharedObject<FlushBlockPolicyFactory>(
|
|
146
|
+
config_options, value, LoadFlushPolicyFactory, factory);
|
|
147
|
+
}
|
|
88
148
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -27,9 +27,8 @@ class FlushBlockEveryKeyPolicyFactory : public FlushBlockPolicyFactory {
|
|
|
27
27
|
public:
|
|
28
28
|
explicit FlushBlockEveryKeyPolicyFactory() {}
|
|
29
29
|
|
|
30
|
-
const char*
|
|
31
|
-
|
|
32
|
-
}
|
|
30
|
+
static const char* kClassName() { return "FlushBlockEveryKeyPolicyFactory"; }
|
|
31
|
+
const char* Name() const override { return kClassName(); }
|
|
33
32
|
|
|
34
33
|
FlushBlockPolicy* NewFlushBlockPolicy(
|
|
35
34
|
const BlockBasedTableOptions& /*table_options*/,
|
|
@@ -22,14 +22,28 @@ FullFilterBlockBuilder::FullFilterBlockBuilder(
|
|
|
22
22
|
whole_key_filtering_(whole_key_filtering),
|
|
23
23
|
last_whole_key_recorded_(false),
|
|
24
24
|
last_prefix_recorded_(false),
|
|
25
|
-
|
|
25
|
+
last_key_in_domain_(false),
|
|
26
|
+
any_added_(false) {
|
|
26
27
|
assert(filter_bits_builder != nullptr);
|
|
27
28
|
filter_bits_builder_.reset(filter_bits_builder);
|
|
28
29
|
}
|
|
29
30
|
|
|
31
|
+
size_t FullFilterBlockBuilder::EstimateEntriesAdded() {
|
|
32
|
+
return filter_bits_builder_->EstimateEntriesAdded();
|
|
33
|
+
}
|
|
34
|
+
|
|
30
35
|
void FullFilterBlockBuilder::Add(const Slice& key_without_ts) {
|
|
31
36
|
const bool add_prefix =
|
|
32
37
|
prefix_extractor_ && prefix_extractor_->InDomain(key_without_ts);
|
|
38
|
+
|
|
39
|
+
if (!last_prefix_recorded_ && last_key_in_domain_) {
|
|
40
|
+
// We can reach here when a new filter partition starts in partitioned
|
|
41
|
+
// filter. The last prefix in the previous partition should be added if
|
|
42
|
+
// necessary regardless of key_without_ts, to support prefix SeekForPrev.
|
|
43
|
+
AddKey(last_prefix_str_);
|
|
44
|
+
last_prefix_recorded_ = true;
|
|
45
|
+
}
|
|
46
|
+
|
|
33
47
|
if (whole_key_filtering_) {
|
|
34
48
|
if (!add_prefix) {
|
|
35
49
|
AddKey(key_without_ts);
|
|
@@ -49,18 +63,22 @@ void FullFilterBlockBuilder::Add(const Slice& key_without_ts) {
|
|
|
49
63
|
}
|
|
50
64
|
}
|
|
51
65
|
if (add_prefix) {
|
|
66
|
+
last_key_in_domain_ = true;
|
|
52
67
|
AddPrefix(key_without_ts);
|
|
68
|
+
} else {
|
|
69
|
+
last_key_in_domain_ = false;
|
|
53
70
|
}
|
|
54
71
|
}
|
|
55
72
|
|
|
56
73
|
// Add key to filter if needed
|
|
57
74
|
inline void FullFilterBlockBuilder::AddKey(const Slice& key) {
|
|
58
75
|
filter_bits_builder_->AddKey(key);
|
|
59
|
-
|
|
76
|
+
any_added_ = true;
|
|
60
77
|
}
|
|
61
78
|
|
|
62
79
|
// Add prefix to filter if needed
|
|
63
80
|
void FullFilterBlockBuilder::AddPrefix(const Slice& key) {
|
|
81
|
+
assert(prefix_extractor_ && prefix_extractor_->InDomain(key));
|
|
64
82
|
Slice prefix = prefix_extractor_->Transform(key);
|
|
65
83
|
if (whole_key_filtering_) {
|
|
66
84
|
// if both whole_key and prefix are added to bloom then we will have whole
|
|
@@ -83,14 +101,17 @@ void FullFilterBlockBuilder::Reset() {
|
|
|
83
101
|
last_prefix_recorded_ = false;
|
|
84
102
|
}
|
|
85
103
|
|
|
86
|
-
Slice FullFilterBlockBuilder::Finish(
|
|
87
|
-
|
|
104
|
+
Slice FullFilterBlockBuilder::Finish(
|
|
105
|
+
const BlockHandle& /*tmp*/, Status* status,
|
|
106
|
+
std::unique_ptr<const char[]>* filter_data) {
|
|
88
107
|
Reset();
|
|
89
108
|
// In this impl we ignore BlockHandle
|
|
90
109
|
*status = Status::OK();
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
110
|
+
if (any_added_) {
|
|
111
|
+
any_added_ = false;
|
|
112
|
+
Slice filter_content = filter_bits_builder_->Finish(
|
|
113
|
+
filter_data ? filter_data : &filter_data_, status);
|
|
114
|
+
return filter_content;
|
|
94
115
|
}
|
|
95
116
|
return Slice();
|
|
96
117
|
}
|
|
@@ -7,15 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
#include <stddef.h>
|
|
9
9
|
#include <stdint.h>
|
|
10
|
+
|
|
10
11
|
#include <memory>
|
|
11
12
|
#include <string>
|
|
12
13
|
#include <vector>
|
|
13
14
|
|
|
14
|
-
#include "db/dbformat.h"
|
|
15
15
|
#include "rocksdb/options.h"
|
|
16
16
|
#include "rocksdb/slice.h"
|
|
17
17
|
#include "rocksdb/slice_transform.h"
|
|
18
18
|
#include "table/block_based/filter_block_reader_common.h"
|
|
19
|
+
#include "table/block_based/filter_policy_internal.h"
|
|
19
20
|
#include "table/block_based/parsed_full_filter_block.h"
|
|
20
21
|
#include "util/hash.h"
|
|
21
22
|
|
|
@@ -51,16 +52,28 @@ class FullFilterBlockBuilder : public FilterBlockBuilder {
|
|
|
51
52
|
virtual bool IsBlockBased() override { return false; }
|
|
52
53
|
virtual void StartBlock(uint64_t /*block_offset*/) override {}
|
|
53
54
|
virtual void Add(const Slice& key_without_ts) override;
|
|
54
|
-
virtual
|
|
55
|
-
virtual
|
|
55
|
+
virtual bool IsEmpty() const override { return !any_added_; }
|
|
56
|
+
virtual size_t EstimateEntriesAdded() override;
|
|
57
|
+
virtual Slice Finish(
|
|
58
|
+
const BlockHandle& tmp, Status* status,
|
|
59
|
+
std::unique_ptr<const char[]>* filter_data = nullptr) override;
|
|
56
60
|
using FilterBlockBuilder::Finish;
|
|
57
61
|
|
|
62
|
+
virtual void ResetFilterBitsBuilder() override {
|
|
63
|
+
filter_bits_builder_.reset();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
virtual Status MaybePostVerifyFilter(const Slice& filter_content) override {
|
|
67
|
+
return filter_bits_builder_->MaybePostVerify(filter_content);
|
|
68
|
+
}
|
|
69
|
+
|
|
58
70
|
protected:
|
|
59
71
|
virtual void AddKey(const Slice& key);
|
|
60
72
|
std::unique_ptr<FilterBitsBuilder> filter_bits_builder_;
|
|
61
73
|
virtual void Reset();
|
|
62
74
|
void AddPrefix(const Slice& key);
|
|
63
75
|
const SliceTransform* prefix_extractor() { return prefix_extractor_; }
|
|
76
|
+
const std::string& last_prefix_str() const { return last_prefix_str_; }
|
|
64
77
|
|
|
65
78
|
private:
|
|
66
79
|
// important: all of these might point to invalid addresses
|
|
@@ -72,10 +85,13 @@ class FullFilterBlockBuilder : public FilterBlockBuilder {
|
|
|
72
85
|
std::string last_whole_key_str_;
|
|
73
86
|
bool last_prefix_recorded_;
|
|
74
87
|
std::string last_prefix_str_;
|
|
75
|
-
|
|
76
|
-
|
|
88
|
+
// Whether prefix_extractor_->InDomain(last_whole_key_) is true.
|
|
89
|
+
// Used in partitioned filters so that the last prefix from the previous
|
|
90
|
+
// filter partition will be added to the current partition if
|
|
91
|
+
// last_key_in_domain_ is true, regardless of the current key.
|
|
92
|
+
bool last_key_in_domain_;
|
|
93
|
+
bool any_added_;
|
|
77
94
|
std::unique_ptr<const char[]> filter_data_;
|
|
78
|
-
|
|
79
95
|
};
|
|
80
96
|
|
|
81
97
|
// A FilterBlockReader is used to parse filter from SST table.
|