@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
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
#include <string>
|
|
23
23
|
|
|
24
24
|
#include "file/filename.h"
|
|
25
|
-
#include "
|
|
25
|
+
#include "rocksdb/file_system.h"
|
|
26
26
|
#include "util/mutexlock.h"
|
|
27
27
|
#include "util/random.h"
|
|
28
28
|
#include "util/thread_local.h"
|
|
@@ -59,16 +59,15 @@ struct FSFileState {
|
|
|
59
59
|
class TestFSWritableFile : public FSWritableFile {
|
|
60
60
|
public:
|
|
61
61
|
explicit TestFSWritableFile(const std::string& fname,
|
|
62
|
+
const FileOptions& file_opts,
|
|
62
63
|
std::unique_ptr<FSWritableFile>&& f,
|
|
63
64
|
FaultInjectionTestFS* fs);
|
|
64
65
|
virtual ~TestFSWritableFile();
|
|
65
66
|
virtual IOStatus Append(const Slice& data, const IOOptions&,
|
|
66
67
|
IODebugContext*) override;
|
|
67
68
|
virtual IOStatus Append(const Slice& data, const IOOptions& options,
|
|
68
|
-
const DataVerificationInfo&
|
|
69
|
-
IODebugContext* dbg) override
|
|
70
|
-
return Append(data, options, dbg);
|
|
71
|
-
}
|
|
69
|
+
const DataVerificationInfo& verification_info,
|
|
70
|
+
IODebugContext* dbg) override;
|
|
72
71
|
virtual IOStatus Truncate(uint64_t size, const IOOptions& options,
|
|
73
72
|
IODebugContext* dbg) override {
|
|
74
73
|
return target_->Truncate(size, options, dbg);
|
|
@@ -85,10 +84,8 @@ class TestFSWritableFile : public FSWritableFile {
|
|
|
85
84
|
}
|
|
86
85
|
IOStatus PositionedAppend(const Slice& data, uint64_t offset,
|
|
87
86
|
const IOOptions& options,
|
|
88
|
-
const DataVerificationInfo&
|
|
89
|
-
IODebugContext* dbg) override
|
|
90
|
-
return PositionedAppend(data, offset, options, dbg);
|
|
91
|
-
}
|
|
87
|
+
const DataVerificationInfo& verification_info,
|
|
88
|
+
IODebugContext* dbg) override;
|
|
92
89
|
virtual size_t GetRequiredBufferAlignment() const override {
|
|
93
90
|
return target_->GetRequiredBufferAlignment();
|
|
94
91
|
}
|
|
@@ -98,6 +95,7 @@ class TestFSWritableFile : public FSWritableFile {
|
|
|
98
95
|
|
|
99
96
|
private:
|
|
100
97
|
FSFileState state_;
|
|
98
|
+
FileOptions file_opts_;
|
|
101
99
|
std::unique_ptr<FSWritableFile> target_;
|
|
102
100
|
bool writable_file_opened_;
|
|
103
101
|
FaultInjectionTestFS* fs_;
|
|
@@ -140,16 +138,35 @@ class TestFSRandomAccessFile : public FSRandomAccessFile {
|
|
|
140
138
|
IOStatus Read(uint64_t offset, size_t n, const IOOptions& options,
|
|
141
139
|
Slice* result, char* scratch,
|
|
142
140
|
IODebugContext* dbg) const override;
|
|
141
|
+
IOStatus MultiRead(FSReadRequest* reqs, size_t num_reqs,
|
|
142
|
+
const IOOptions& options, IODebugContext* dbg) override;
|
|
143
143
|
size_t GetRequiredBufferAlignment() const override {
|
|
144
144
|
return target_->GetRequiredBufferAlignment();
|
|
145
145
|
}
|
|
146
146
|
bool use_direct_io() const override { return target_->use_direct_io(); }
|
|
147
147
|
|
|
148
|
+
size_t GetUniqueId(char* id, size_t max_size) const override;
|
|
149
|
+
|
|
148
150
|
private:
|
|
149
151
|
std::unique_ptr<FSRandomAccessFile> target_;
|
|
150
152
|
FaultInjectionTestFS* fs_;
|
|
151
153
|
};
|
|
152
154
|
|
|
155
|
+
class TestFSSequentialFile : public FSSequentialFileOwnerWrapper {
|
|
156
|
+
public:
|
|
157
|
+
explicit TestFSSequentialFile(std::unique_ptr<FSSequentialFile>&& f,
|
|
158
|
+
FaultInjectionTestFS* fs)
|
|
159
|
+
: FSSequentialFileOwnerWrapper(std::move(f)), fs_(fs) {}
|
|
160
|
+
IOStatus Read(size_t n, const IOOptions& options, Slice* result,
|
|
161
|
+
char* scratch, IODebugContext* dbg) override;
|
|
162
|
+
IOStatus PositionedRead(uint64_t offset, size_t n, const IOOptions& options,
|
|
163
|
+
Slice* result, char* scratch,
|
|
164
|
+
IODebugContext* dbg) override;
|
|
165
|
+
|
|
166
|
+
private:
|
|
167
|
+
FaultInjectionTestFS* fs_;
|
|
168
|
+
};
|
|
169
|
+
|
|
153
170
|
class TestFSDirectory : public FSDirectory {
|
|
154
171
|
public:
|
|
155
172
|
explicit TestFSDirectory(FaultInjectionTestFS* fs, std::string dirname,
|
|
@@ -160,6 +177,10 @@ class TestFSDirectory : public FSDirectory {
|
|
|
160
177
|
virtual IOStatus Fsync(const IOOptions& options,
|
|
161
178
|
IODebugContext* dbg) override;
|
|
162
179
|
|
|
180
|
+
virtual IOStatus FsyncWithDirOptions(
|
|
181
|
+
const IOOptions& options, IODebugContext* dbg,
|
|
182
|
+
const DirFsyncOptions& dir_fsync_options) override;
|
|
183
|
+
|
|
163
184
|
private:
|
|
164
185
|
FaultInjectionTestFS* fs_;
|
|
165
186
|
std::string dirname_;
|
|
@@ -174,10 +195,17 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
174
195
|
filesystem_writable_(false),
|
|
175
196
|
thread_local_error_(new ThreadLocalPtr(DeleteThreadLocalErrorContext)),
|
|
176
197
|
enable_write_error_injection_(false),
|
|
177
|
-
|
|
198
|
+
enable_metadata_write_error_injection_(false),
|
|
199
|
+
write_error_rand_(0),
|
|
200
|
+
write_error_one_in_(0),
|
|
201
|
+
metadata_write_error_one_in_(0),
|
|
202
|
+
read_error_one_in_(0),
|
|
203
|
+
ingest_data_corruption_before_write_(false),
|
|
204
|
+
fail_get_file_unique_id_(false) {}
|
|
178
205
|
virtual ~FaultInjectionTestFS() { error_.PermitUncheckedError(); }
|
|
179
206
|
|
|
180
|
-
const char*
|
|
207
|
+
static const char* kClassName() { return "FaultInjectionTestFS"; }
|
|
208
|
+
const char* Name() const override { return kClassName(); }
|
|
181
209
|
|
|
182
210
|
IOStatus NewDirectory(const std::string& name, const IOOptions& options,
|
|
183
211
|
std::unique_ptr<FSDirectory>* result,
|
|
@@ -202,6 +230,9 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
202
230
|
const FileOptions& file_opts,
|
|
203
231
|
std::unique_ptr<FSRandomAccessFile>* result,
|
|
204
232
|
IODebugContext* dbg) override;
|
|
233
|
+
IOStatus NewSequentialFile(const std::string& f, const FileOptions& file_opts,
|
|
234
|
+
std::unique_ptr<FSSequentialFile>* r,
|
|
235
|
+
IODebugContext* dbg) override;
|
|
205
236
|
|
|
206
237
|
virtual IOStatus DeleteFile(const std::string& f, const IOOptions& options,
|
|
207
238
|
IODebugContext* dbg) override;
|
|
@@ -210,13 +241,18 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
210
241
|
const IOOptions& options,
|
|
211
242
|
IODebugContext* dbg) override;
|
|
212
243
|
|
|
244
|
+
virtual IOStatus LinkFile(const std::string& src, const std::string& target,
|
|
245
|
+
const IOOptions& options,
|
|
246
|
+
IODebugContext* dbg) override;
|
|
247
|
+
|
|
213
248
|
// Undef to eliminate clash on Windows
|
|
214
249
|
#undef GetFreeSpace
|
|
215
250
|
virtual IOStatus GetFreeSpace(const std::string& path,
|
|
216
251
|
const IOOptions& options, uint64_t* disk_free,
|
|
217
252
|
IODebugContext* dbg) override {
|
|
218
253
|
IOStatus io_s;
|
|
219
|
-
if (!IsFilesystemActive() &&
|
|
254
|
+
if (!IsFilesystemActive() &&
|
|
255
|
+
error_.subcode() == IOStatus::SubCode::kNoSpace) {
|
|
220
256
|
*disk_free = 0;
|
|
221
257
|
} else {
|
|
222
258
|
io_s = target()->GetFreeSpace(path, options, disk_free, dbg);
|
|
@@ -262,6 +298,19 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
262
298
|
MutexLock l(&mutex_);
|
|
263
299
|
return filesystem_writable_;
|
|
264
300
|
}
|
|
301
|
+
bool ShouldUseDiretWritable(const std::string& file_name) {
|
|
302
|
+
MutexLock l(&mutex_);
|
|
303
|
+
if (filesystem_writable_) {
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
FileType file_type = kTempFile;
|
|
307
|
+
uint64_t file_number = 0;
|
|
308
|
+
if (!TryParseFileName(file_name, &file_number, &file_type)) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
return skip_direct_writable_types_.find(file_type) !=
|
|
312
|
+
skip_direct_writable_types_.end();
|
|
313
|
+
}
|
|
265
314
|
void SetFilesystemActiveNoLock(
|
|
266
315
|
bool active, IOStatus error = IOStatus::Corruption("Not active")) {
|
|
267
316
|
error.PermitUncheckedError();
|
|
@@ -281,7 +330,7 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
281
330
|
MutexLock l(&mutex_);
|
|
282
331
|
filesystem_writable_ = writable;
|
|
283
332
|
}
|
|
284
|
-
void AssertNoOpenFile() { assert(
|
|
333
|
+
void AssertNoOpenFile() { assert(open_managed_files_.empty()); }
|
|
285
334
|
|
|
286
335
|
IOStatus GetError() { return error_; }
|
|
287
336
|
|
|
@@ -291,9 +340,47 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
291
340
|
error_ = io_error;
|
|
292
341
|
}
|
|
293
342
|
|
|
343
|
+
// To simulate the data corruption before data is written in FS
|
|
344
|
+
void IngestDataCorruptionBeforeWrite() {
|
|
345
|
+
MutexLock l(&mutex_);
|
|
346
|
+
ingest_data_corruption_before_write_ = true;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
void NoDataCorruptionBeforeWrite() {
|
|
350
|
+
MutexLock l(&mutex_);
|
|
351
|
+
ingest_data_corruption_before_write_ = false;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
bool ShouldDataCorruptionBeforeWrite() {
|
|
355
|
+
MutexLock l(&mutex_);
|
|
356
|
+
return ingest_data_corruption_before_write_;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
void SetChecksumHandoffFuncType(const ChecksumType& func_type) {
|
|
360
|
+
MutexLock l(&mutex_);
|
|
361
|
+
checksum_handoff_func_tpye_ = func_type;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
const ChecksumType& GetChecksumHandoffFuncType() {
|
|
365
|
+
MutexLock l(&mutex_);
|
|
366
|
+
return checksum_handoff_func_tpye_;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
void SetFailGetUniqueId(bool flag) {
|
|
370
|
+
MutexLock l(&mutex_);
|
|
371
|
+
fail_get_file_unique_id_ = flag;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
bool ShouldFailGetUniqueId() {
|
|
375
|
+
MutexLock l(&mutex_);
|
|
376
|
+
return fail_get_file_unique_id_;
|
|
377
|
+
}
|
|
378
|
+
|
|
294
379
|
// Specify what the operation, so we can inject the right type of error
|
|
295
380
|
enum ErrorOperation : char {
|
|
296
381
|
kRead = 0,
|
|
382
|
+
kMultiReadSingleReq = 1,
|
|
383
|
+
kMultiRead = 2,
|
|
297
384
|
kOpen,
|
|
298
385
|
};
|
|
299
386
|
|
|
@@ -324,6 +411,7 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
324
411
|
// want to inject. Types decides the file types we want to inject the
|
|
325
412
|
// error (e.g., Wal files, SST files), which is empty by default.
|
|
326
413
|
void SetRandomWriteError(uint32_t seed, int one_in, IOStatus error,
|
|
414
|
+
bool inject_for_all_file_types,
|
|
327
415
|
const std::vector<FileType>& types) {
|
|
328
416
|
MutexLock l(&mutex_);
|
|
329
417
|
Random tmp_rand(seed);
|
|
@@ -331,19 +419,44 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
331
419
|
error_ = error;
|
|
332
420
|
write_error_rand_ = tmp_rand;
|
|
333
421
|
write_error_one_in_ = one_in;
|
|
422
|
+
inject_for_all_file_types_ = inject_for_all_file_types;
|
|
334
423
|
write_error_allowed_types_ = types;
|
|
335
424
|
}
|
|
336
425
|
|
|
426
|
+
void SetSkipDirectWritableTypes(const std::set<FileType>& types) {
|
|
427
|
+
MutexLock l(&mutex_);
|
|
428
|
+
skip_direct_writable_types_ = types;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
void SetRandomMetadataWriteError(int one_in) {
|
|
432
|
+
MutexLock l(&mutex_);
|
|
433
|
+
metadata_write_error_one_in_ = one_in;
|
|
434
|
+
}
|
|
435
|
+
// If the value is not 0, it is enabled. Otherwise, it is disabled.
|
|
436
|
+
void SetRandomReadError(int one_in) { read_error_one_in_ = one_in; }
|
|
437
|
+
|
|
438
|
+
bool ShouldInjectRandomReadError() {
|
|
439
|
+
return read_error_one_in() &&
|
|
440
|
+
Random::GetTLSInstance()->OneIn(read_error_one_in());
|
|
441
|
+
}
|
|
442
|
+
|
|
337
443
|
// Inject an write error with randomlized parameter and the predefined
|
|
338
444
|
// error type. Only the allowed file types will inject the write error
|
|
339
445
|
IOStatus InjectWriteError(const std::string& file_name);
|
|
340
446
|
|
|
447
|
+
// Ingest error to metadata operations.
|
|
448
|
+
IOStatus InjectMetadataWriteError();
|
|
449
|
+
|
|
341
450
|
// Inject an error. For a READ operation, a status of IOError(), a
|
|
342
451
|
// corruption in the contents of scratch, or truncation of slice
|
|
343
452
|
// are the types of error with equal probability. For OPEN,
|
|
344
453
|
// its always an IOError.
|
|
345
|
-
|
|
346
|
-
|
|
454
|
+
// fault_injected returns whether a fault is injected. It is needed
|
|
455
|
+
// because some fault is inected with IOStatus to be OK.
|
|
456
|
+
IOStatus InjectThreadSpecificReadError(ErrorOperation op, Slice* slice,
|
|
457
|
+
bool direct_io, char* scratch,
|
|
458
|
+
bool need_count_increase,
|
|
459
|
+
bool* fault_injected);
|
|
347
460
|
|
|
348
461
|
// Get the count of how many times we injected since the previous call
|
|
349
462
|
int GetAndResetErrorCount() {
|
|
@@ -369,6 +482,10 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
369
482
|
MutexLock l(&mutex_);
|
|
370
483
|
enable_write_error_injection_ = true;
|
|
371
484
|
}
|
|
485
|
+
void EnableMetadataWriteErrorInjection() {
|
|
486
|
+
MutexLock l(&mutex_);
|
|
487
|
+
enable_metadata_write_error_injection_ = true;
|
|
488
|
+
}
|
|
372
489
|
|
|
373
490
|
void DisableWriteErrorInjection() {
|
|
374
491
|
MutexLock l(&mutex_);
|
|
@@ -383,6 +500,15 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
383
500
|
}
|
|
384
501
|
}
|
|
385
502
|
|
|
503
|
+
void DisableMetadataWriteErrorInjection() {
|
|
504
|
+
MutexLock l(&mutex_);
|
|
505
|
+
enable_metadata_write_error_injection_ = false;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
int read_error_one_in() const { return read_error_one_in_.load(); }
|
|
509
|
+
|
|
510
|
+
int write_error_one_in() const { return write_error_one_in_; }
|
|
511
|
+
|
|
386
512
|
// We capture a backtrace every time a fault is injected, for debugging
|
|
387
513
|
// purposes. This call prints the backtrace to stderr and frees the
|
|
388
514
|
// saved callstack
|
|
@@ -391,8 +517,12 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
391
517
|
private:
|
|
392
518
|
port::Mutex mutex_;
|
|
393
519
|
std::map<std::string, FSFileState> db_file_state_;
|
|
394
|
-
std::set<std::string>
|
|
395
|
-
|
|
520
|
+
std::set<std::string> open_managed_files_;
|
|
521
|
+
// directory -> (file name -> file contents to recover)
|
|
522
|
+
// When data is recovered from unsyned parent directory, the files with
|
|
523
|
+
// empty file contents to recover is deleted. Those with non-empty ones
|
|
524
|
+
// will be recovered to content accordingly.
|
|
525
|
+
std::unordered_map<std::string, std::map<std::string, std::string>>
|
|
396
526
|
dir_to_new_files_since_last_sync_;
|
|
397
527
|
bool filesystem_active_; // Record flushes, syncs, writes
|
|
398
528
|
bool filesystem_writable_; // Bypass FaultInjectionTestFS and go directly
|
|
@@ -412,6 +542,7 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
412
542
|
int count;
|
|
413
543
|
bool enable_error_injection;
|
|
414
544
|
void* callstack;
|
|
545
|
+
std::string message;
|
|
415
546
|
int frames;
|
|
416
547
|
ErrorType type;
|
|
417
548
|
|
|
@@ -429,9 +560,23 @@ class FaultInjectionTestFS : public FileSystemWrapper {
|
|
|
429
560
|
|
|
430
561
|
std::unique_ptr<ThreadLocalPtr> thread_local_error_;
|
|
431
562
|
bool enable_write_error_injection_;
|
|
563
|
+
bool enable_metadata_write_error_injection_;
|
|
432
564
|
Random write_error_rand_;
|
|
433
565
|
int write_error_one_in_;
|
|
566
|
+
int metadata_write_error_one_in_;
|
|
567
|
+
std::atomic<int> read_error_one_in_;
|
|
568
|
+
bool inject_for_all_file_types_;
|
|
434
569
|
std::vector<FileType> write_error_allowed_types_;
|
|
570
|
+
// File types where direct writable is skipped.
|
|
571
|
+
std::set<FileType> skip_direct_writable_types_;
|
|
572
|
+
bool ingest_data_corruption_before_write_;
|
|
573
|
+
ChecksumType checksum_handoff_func_tpye_;
|
|
574
|
+
bool fail_get_file_unique_id_;
|
|
575
|
+
|
|
576
|
+
// Extract number of type from file name. Return false if failing to fine
|
|
577
|
+
// them.
|
|
578
|
+
bool TryParseFileName(const std::string& file_name, uint64_t* number,
|
|
579
|
+
FileType* type);
|
|
435
580
|
};
|
|
436
581
|
|
|
437
582
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
|
|
6
|
+
// This class implements a custom SecondaryCache that randomly injects an
|
|
7
|
+
// error status into Inserts/Lookups based on a specified probability.
|
|
8
|
+
|
|
9
|
+
#include "utilities/fault_injection_secondary_cache.h"
|
|
10
|
+
|
|
11
|
+
namespace ROCKSDB_NAMESPACE {
|
|
12
|
+
|
|
13
|
+
void FaultInjectionSecondaryCache::ResultHandle::UpdateHandleValue(
|
|
14
|
+
FaultInjectionSecondaryCache::ResultHandle* handle) {
|
|
15
|
+
ErrorContext* ctx = handle->cache_->GetErrorContext();
|
|
16
|
+
if (!ctx->rand.OneIn(handle->cache_->prob_)) {
|
|
17
|
+
handle->value_ = handle->base_->Value();
|
|
18
|
+
handle->size_ = handle->base_->Size();
|
|
19
|
+
}
|
|
20
|
+
handle->base_.reset();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
bool FaultInjectionSecondaryCache::ResultHandle::IsReady() {
|
|
24
|
+
bool ready = true;
|
|
25
|
+
if (base_) {
|
|
26
|
+
ready = base_->IsReady();
|
|
27
|
+
if (ready) {
|
|
28
|
+
UpdateHandleValue(this);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return ready;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void FaultInjectionSecondaryCache::ResultHandle::Wait() {
|
|
35
|
+
base_->Wait();
|
|
36
|
+
UpdateHandleValue(this);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void* FaultInjectionSecondaryCache::ResultHandle::Value() { return value_; }
|
|
40
|
+
|
|
41
|
+
size_t FaultInjectionSecondaryCache::ResultHandle::Size() { return size_; }
|
|
42
|
+
|
|
43
|
+
void FaultInjectionSecondaryCache::ResultHandle::WaitAll(
|
|
44
|
+
FaultInjectionSecondaryCache* cache,
|
|
45
|
+
std::vector<SecondaryCacheResultHandle*> handles) {
|
|
46
|
+
std::vector<SecondaryCacheResultHandle*> base_handles;
|
|
47
|
+
for (SecondaryCacheResultHandle* hdl : handles) {
|
|
48
|
+
FaultInjectionSecondaryCache::ResultHandle* handle =
|
|
49
|
+
static_cast<FaultInjectionSecondaryCache::ResultHandle*>(hdl);
|
|
50
|
+
if (!handle->base_) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
base_handles.emplace_back(handle->base_.get());
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
cache->base_->WaitAll(base_handles);
|
|
57
|
+
for (SecondaryCacheResultHandle* hdl : handles) {
|
|
58
|
+
FaultInjectionSecondaryCache::ResultHandle* handle =
|
|
59
|
+
static_cast<FaultInjectionSecondaryCache::ResultHandle*>(hdl);
|
|
60
|
+
if (handle->base_) {
|
|
61
|
+
UpdateHandleValue(handle);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
FaultInjectionSecondaryCache::ErrorContext*
|
|
67
|
+
FaultInjectionSecondaryCache::GetErrorContext() {
|
|
68
|
+
ErrorContext* ctx = static_cast<ErrorContext*>(thread_local_error_->Get());
|
|
69
|
+
if (!ctx) {
|
|
70
|
+
ctx = new ErrorContext(seed_);
|
|
71
|
+
thread_local_error_->Reset(ctx);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return ctx;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
Status FaultInjectionSecondaryCache::Insert(
|
|
78
|
+
const Slice& key, void* value, const Cache::CacheItemHelper* helper) {
|
|
79
|
+
ErrorContext* ctx = GetErrorContext();
|
|
80
|
+
if (ctx->rand.OneIn(prob_)) {
|
|
81
|
+
return Status::IOError();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return base_->Insert(key, value, helper);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
std::unique_ptr<SecondaryCacheResultHandle>
|
|
88
|
+
FaultInjectionSecondaryCache::Lookup(const Slice& key,
|
|
89
|
+
const Cache::CreateCallback& create_cb,
|
|
90
|
+
bool wait, bool& is_in_sec_cache) {
|
|
91
|
+
std::unique_ptr<SecondaryCacheResultHandle> hdl =
|
|
92
|
+
base_->Lookup(key, create_cb, wait, is_in_sec_cache);
|
|
93
|
+
ErrorContext* ctx = GetErrorContext();
|
|
94
|
+
if (wait && ctx->rand.OneIn(prob_)) {
|
|
95
|
+
hdl.reset();
|
|
96
|
+
}
|
|
97
|
+
return std::unique_ptr<FaultInjectionSecondaryCache::ResultHandle>(
|
|
98
|
+
new FaultInjectionSecondaryCache::ResultHandle(this, std::move(hdl)));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
void FaultInjectionSecondaryCache::Erase(const Slice& key) {
|
|
102
|
+
base_->Erase(key);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
void FaultInjectionSecondaryCache::WaitAll(
|
|
106
|
+
std::vector<SecondaryCacheResultHandle*> handles) {
|
|
107
|
+
FaultInjectionSecondaryCache::ResultHandle::WaitAll(this, handles);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
|
|
6
|
+
#include "rocksdb/secondary_cache.h"
|
|
7
|
+
#include "util/random.h"
|
|
8
|
+
#include "util/thread_local.h"
|
|
9
|
+
|
|
10
|
+
namespace ROCKSDB_NAMESPACE {
|
|
11
|
+
|
|
12
|
+
// This class implements a custom SecondaryCache that randomly injects an
|
|
13
|
+
// error status into Inserts/Lookups based on a specified probability.
|
|
14
|
+
// Its used by db_stress to verify correctness in the presence of
|
|
15
|
+
// secondary cache errors.
|
|
16
|
+
//
|
|
17
|
+
class FaultInjectionSecondaryCache : public SecondaryCache {
|
|
18
|
+
public:
|
|
19
|
+
explicit FaultInjectionSecondaryCache(
|
|
20
|
+
const std::shared_ptr<SecondaryCache>& base, uint32_t seed, int prob)
|
|
21
|
+
: base_(base),
|
|
22
|
+
seed_(seed),
|
|
23
|
+
prob_(prob),
|
|
24
|
+
thread_local_error_(new ThreadLocalPtr(DeleteThreadLocalErrorContext)) {
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
virtual ~FaultInjectionSecondaryCache() override {}
|
|
28
|
+
|
|
29
|
+
const char* Name() const override { return "FaultInjectionSecondaryCache"; }
|
|
30
|
+
|
|
31
|
+
Status Insert(const Slice& key, void* value,
|
|
32
|
+
const Cache::CacheItemHelper* helper) override;
|
|
33
|
+
|
|
34
|
+
std::unique_ptr<SecondaryCacheResultHandle> Lookup(
|
|
35
|
+
const Slice& key, const Cache::CreateCallback& create_cb, bool wait,
|
|
36
|
+
bool& is_in_sec_cache) override;
|
|
37
|
+
|
|
38
|
+
void Erase(const Slice& /*key*/) override;
|
|
39
|
+
|
|
40
|
+
void WaitAll(std::vector<SecondaryCacheResultHandle*> handles) override;
|
|
41
|
+
|
|
42
|
+
std::string GetPrintableOptions() const override { return ""; }
|
|
43
|
+
|
|
44
|
+
void EnableErrorInjection(uint64_t prob);
|
|
45
|
+
|
|
46
|
+
private:
|
|
47
|
+
class ResultHandle : public SecondaryCacheResultHandle {
|
|
48
|
+
public:
|
|
49
|
+
ResultHandle(FaultInjectionSecondaryCache* cache,
|
|
50
|
+
std::unique_ptr<SecondaryCacheResultHandle>&& base)
|
|
51
|
+
: cache_(cache), base_(std::move(base)), value_(nullptr), size_(0) {}
|
|
52
|
+
|
|
53
|
+
~ResultHandle() override {}
|
|
54
|
+
|
|
55
|
+
bool IsReady() override;
|
|
56
|
+
|
|
57
|
+
void Wait() override;
|
|
58
|
+
|
|
59
|
+
void* Value() override;
|
|
60
|
+
|
|
61
|
+
size_t Size() override;
|
|
62
|
+
|
|
63
|
+
static void WaitAll(FaultInjectionSecondaryCache* cache,
|
|
64
|
+
std::vector<SecondaryCacheResultHandle*> handles);
|
|
65
|
+
|
|
66
|
+
private:
|
|
67
|
+
static void UpdateHandleValue(ResultHandle* handle);
|
|
68
|
+
|
|
69
|
+
FaultInjectionSecondaryCache* cache_;
|
|
70
|
+
std::unique_ptr<SecondaryCacheResultHandle> base_;
|
|
71
|
+
void* value_;
|
|
72
|
+
size_t size_;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
static void DeleteThreadLocalErrorContext(void* p) {
|
|
76
|
+
ErrorContext* ctx = static_cast<ErrorContext*>(p);
|
|
77
|
+
delete ctx;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const std::shared_ptr<SecondaryCache> base_;
|
|
81
|
+
uint32_t seed_;
|
|
82
|
+
int prob_;
|
|
83
|
+
|
|
84
|
+
struct ErrorContext {
|
|
85
|
+
Random rand;
|
|
86
|
+
|
|
87
|
+
explicit ErrorContext(uint32_t seed) : rand(seed) {}
|
|
88
|
+
};
|
|
89
|
+
std::unique_ptr<ThreadLocalPtr> thread_local_error_;
|
|
90
|
+
|
|
91
|
+
ErrorContext* GetErrorContext();
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -68,7 +68,8 @@ class MemoryTest : public testing::Test {
|
|
|
68
68
|
ASSERT_OK(db_impl->TEST_GetAllImmutableCFOptions(&iopts_map));
|
|
69
69
|
}
|
|
70
70
|
for (auto pair : iopts_map) {
|
|
71
|
-
GetCachePointersFromTableFactory(pair.second->table_factory,
|
|
71
|
+
GetCachePointersFromTableFactory(pair.second->table_factory.get(),
|
|
72
|
+
cache_set);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
}
|
|
@@ -145,8 +146,10 @@ TEST_F(MemoryTest, MemTableAndTableReadersTotal) {
|
|
|
145
146
|
std::vector<uint64_t> usage_by_type;
|
|
146
147
|
std::vector<std::vector<ColumnFamilyHandle*>> vec_handles;
|
|
147
148
|
const int kNumDBs = 10;
|
|
149
|
+
// These key/value sizes ensure each KV has its own memtable. Note that the
|
|
150
|
+
// minimum write_buffer_size allowed is 64 KB.
|
|
148
151
|
const int kKeySize = 100;
|
|
149
|
-
const int kValueSize =
|
|
152
|
+
const int kValueSize = 1 << 16;
|
|
150
153
|
Options opt;
|
|
151
154
|
opt.create_if_missing = true;
|
|
152
155
|
opt.create_missing_column_families = true;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
|
|
6
|
+
#pragma once
|
|
7
|
+
|
|
8
|
+
#include <atomic>
|
|
9
|
+
|
|
10
|
+
#include "rocksdb/memory_allocator.h"
|
|
11
|
+
|
|
12
|
+
namespace ROCKSDB_NAMESPACE {
|
|
13
|
+
// A memory allocator using new/delete
|
|
14
|
+
class DefaultMemoryAllocator : public MemoryAllocator {
|
|
15
|
+
public:
|
|
16
|
+
static const char* kClassName() { return "DefaultMemoryAllocator"; }
|
|
17
|
+
const char* Name() const override { return kClassName(); }
|
|
18
|
+
void* Allocate(size_t size) override {
|
|
19
|
+
return static_cast<void*>(new char[size]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
void Deallocate(void* p) override { delete[] static_cast<char*>(p); }
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Base class for a MemoryAllocator. This implementation does nothing
|
|
26
|
+
// and implements the methods in failuse mode (assert if the methods are
|
|
27
|
+
// invoked). Implementations can extend this class and override these methods
|
|
28
|
+
// when they are enabled via compiler switches (e.g., the
|
|
29
|
+
// JeMallocMemoryAllocator can define these methods if ROCKSDB_JEMALLOC is
|
|
30
|
+
// defined at compile time. If compiled in "disabled" mode, this class provides
|
|
31
|
+
// default/failure implementations. If compiled in "enabled" mode, the derived
|
|
32
|
+
// class needs to provide the appopriate "enabled" methods for the "real"
|
|
33
|
+
// implementation. Failure of the "real" implementation to implement ovreride
|
|
34
|
+
// any of these methods will result in an assert failure.
|
|
35
|
+
class BaseMemoryAllocator : public MemoryAllocator {
|
|
36
|
+
public:
|
|
37
|
+
void* Allocate(size_t /*size*/) override {
|
|
38
|
+
assert(false);
|
|
39
|
+
return nullptr;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void Deallocate(void* /*p*/) override { assert(false); }
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
// A Wrapped MemoryAllocator. Delegates the memory allcator functions to the
|
|
46
|
+
// wrapped one.
|
|
47
|
+
class MemoryAllocatorWrapper : public MemoryAllocator {
|
|
48
|
+
public:
|
|
49
|
+
// Initialize an MemoryAllocatorWrapper that delegates all calls to *t
|
|
50
|
+
explicit MemoryAllocatorWrapper(const std::shared_ptr<MemoryAllocator>& t);
|
|
51
|
+
~MemoryAllocatorWrapper() override {}
|
|
52
|
+
|
|
53
|
+
// Return the target to which to forward all calls
|
|
54
|
+
MemoryAllocator* target() const { return target_.get(); }
|
|
55
|
+
// Allocate a block of at least size. Has to be thread-safe.
|
|
56
|
+
void* Allocate(size_t size) override { return target_->Allocate(size); }
|
|
57
|
+
|
|
58
|
+
// Deallocate previously allocated block. Has to be thread-safe.
|
|
59
|
+
void Deallocate(void* p) override { return target_->Deallocate(p); }
|
|
60
|
+
|
|
61
|
+
// Returns the memory size of the block allocated at p. The default
|
|
62
|
+
// implementation that just returns the original allocation_size is fine.
|
|
63
|
+
size_t UsableSize(void* p, size_t allocation_size) const override {
|
|
64
|
+
return target_->UsableSize(p, allocation_size);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const Customizable* Inner() const override { return target_.get(); }
|
|
68
|
+
|
|
69
|
+
protected:
|
|
70
|
+
std::shared_ptr<MemoryAllocator> target_;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// A memory allocator that counts the number of allocations and deallocations
|
|
74
|
+
// This class is useful if the number of memory allocations/dellocations is
|
|
75
|
+
// important.
|
|
76
|
+
class CountedMemoryAllocator : public MemoryAllocatorWrapper {
|
|
77
|
+
public:
|
|
78
|
+
CountedMemoryAllocator()
|
|
79
|
+
: MemoryAllocatorWrapper(std::make_shared<DefaultMemoryAllocator>()),
|
|
80
|
+
allocations_(0),
|
|
81
|
+
deallocations_(0) {}
|
|
82
|
+
|
|
83
|
+
explicit CountedMemoryAllocator(const std::shared_ptr<MemoryAllocator>& t)
|
|
84
|
+
: MemoryAllocatorWrapper(t), allocations_(0), deallocations_(0) {}
|
|
85
|
+
static const char* kClassName() { return "CountedMemoryAllocator"; }
|
|
86
|
+
const char* Name() const override { return kClassName(); }
|
|
87
|
+
std::string GetId() const override { return std::string(Name()); }
|
|
88
|
+
void* Allocate(size_t size) override {
|
|
89
|
+
allocations_++;
|
|
90
|
+
return MemoryAllocatorWrapper::Allocate(size);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
void Deallocate(void* p) override {
|
|
94
|
+
deallocations_++;
|
|
95
|
+
MemoryAllocatorWrapper::Deallocate(p);
|
|
96
|
+
}
|
|
97
|
+
uint64_t GetNumAllocations() const { return allocations_; }
|
|
98
|
+
uint64_t GetNumDeallocations() const { return deallocations_; }
|
|
99
|
+
|
|
100
|
+
private:
|
|
101
|
+
std::atomic<uint64_t> allocations_;
|
|
102
|
+
std::atomic<uint64_t> deallocations_;
|
|
103
|
+
};
|
|
104
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -28,9 +28,11 @@ class BytesXOROperator : public AssociativeMergeOperator {
|
|
|
28
28
|
std::string* new_value,
|
|
29
29
|
Logger* logger) const override;
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
static const char* kClassName() { return "BytesXOR"; }
|
|
32
|
+
static const char* kNickName() { return "bytesxor"; }
|
|
33
|
+
|
|
34
|
+
const char* NickName() const override { return kNickName(); }
|
|
35
|
+
const char* Name() const override { return kClassName(); }
|
|
34
36
|
|
|
35
37
|
void XOR(const Slice* existing_value, const Slice& value,
|
|
36
38
|
std::string* new_value) const;
|