@nxtedition/rocksdb 8.2.0 → 8.2.2
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 +3 -3
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
- package/deps/rocksdb/rocksdb/Makefile +10 -5
- package/deps/rocksdb/rocksdb/TARGETS +8 -345
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
- package/deps/rocksdb/rocksdb/db/builder.h +2 -2
- package/deps/rocksdb/rocksdb/db/c.cc +76 -5
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
- package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
- package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
- package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
- package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
- package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
- package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
- package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
- package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
- package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
- package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
- package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
- package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
- package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
- package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
- package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
- package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/options.cc +12 -53
- package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
- package/deps/rocksdb/rocksdb/port/lang.h +27 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
- package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
- package/deps/rocksdb/rocksdb/table/format.cc +4 -4
- package/deps/rocksdb/rocksdb/table/format.h +1 -1
- package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
- package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
- package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/compression.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
- package/deps/rocksdb/rocksdb/util/math.h +12 -7
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
- package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- /package/deps/rocksdb/rocksdb/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
// Copyright (c) 2021-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
|
+
#ifdef GFLAGS
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <stdint.h>
|
|
11
|
+
|
|
12
|
+
#include <atomic>
|
|
13
|
+
#include <cassert>
|
|
14
|
+
#include <memory>
|
|
15
|
+
|
|
16
|
+
#include "rocksdb/rocksdb_namespace.h"
|
|
17
|
+
|
|
18
|
+
namespace ROCKSDB_NAMESPACE {
|
|
19
|
+
// `ExpectedValue` represents the expected value of a key used in db stress,
|
|
20
|
+
// which provides APIs to obtain various information e.g, value base, existence,
|
|
21
|
+
// pending operation status and APIs to edit expected value.
|
|
22
|
+
//
|
|
23
|
+
// This class is not thread-safe.
|
|
24
|
+
class ExpectedValue {
|
|
25
|
+
public:
|
|
26
|
+
static uint32_t GetValueBaseMask() { return VALUE_BASE_MASK; }
|
|
27
|
+
static uint32_t GetValueBaseDelta() { return VALUE_BASE_DELTA; }
|
|
28
|
+
static uint32_t GetDelCounterDelta() { return DEL_COUNTER_DELTA; }
|
|
29
|
+
static uint32_t GetDelMask() { return DEL_MASK; }
|
|
30
|
+
static bool IsValueBaseValid(uint32_t value_base) {
|
|
31
|
+
return IsValuePartValid(value_base, VALUE_BASE_MASK);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
explicit ExpectedValue(uint32_t expected_value)
|
|
35
|
+
: expected_value_(expected_value) {}
|
|
36
|
+
|
|
37
|
+
bool Exists() const { return PendingWrite() || !IsDeleted(); }
|
|
38
|
+
|
|
39
|
+
uint32_t Read() const { return expected_value_; }
|
|
40
|
+
|
|
41
|
+
void Put(bool pending);
|
|
42
|
+
|
|
43
|
+
bool Delete(bool pending);
|
|
44
|
+
|
|
45
|
+
void SyncPut(uint32_t value_base);
|
|
46
|
+
|
|
47
|
+
void SyncPendingPut();
|
|
48
|
+
|
|
49
|
+
void SyncDelete();
|
|
50
|
+
|
|
51
|
+
uint32_t GetValueBase() const { return GetValuePart(VALUE_BASE_MASK); }
|
|
52
|
+
|
|
53
|
+
uint32_t NextValueBase() const {
|
|
54
|
+
return GetIncrementedValuePart(VALUE_BASE_MASK, VALUE_BASE_DELTA);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
void SetValueBase(uint32_t new_value_base) {
|
|
58
|
+
SetValuePart(VALUE_BASE_MASK, new_value_base);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
bool PendingWrite() const {
|
|
62
|
+
const uint32_t pending_write = GetValuePart(PENDING_WRITE_MASK);
|
|
63
|
+
return pending_write != 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void SetPendingWrite() {
|
|
67
|
+
SetValuePart(PENDING_WRITE_MASK, PENDING_WRITE_MASK);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
void ClearPendingWrite() { ClearValuePart(PENDING_WRITE_MASK); }
|
|
71
|
+
|
|
72
|
+
uint32_t GetDelCounter() const { return GetValuePart(DEL_COUNTER_MASK); }
|
|
73
|
+
|
|
74
|
+
uint32_t NextDelCounter() const {
|
|
75
|
+
return GetIncrementedValuePart(DEL_COUNTER_MASK, DEL_COUNTER_DELTA);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
void SetDelCounter(uint32_t new_del_counter) {
|
|
79
|
+
SetValuePart(DEL_COUNTER_MASK, new_del_counter);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
bool PendingDelete() const {
|
|
83
|
+
const uint32_t pending_del = GetValuePart(PENDING_DEL_MASK);
|
|
84
|
+
return pending_del != 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
void SetPendingDel() { SetValuePart(PENDING_DEL_MASK, PENDING_DEL_MASK); }
|
|
88
|
+
|
|
89
|
+
void ClearPendingDel() { ClearValuePart(PENDING_DEL_MASK); }
|
|
90
|
+
|
|
91
|
+
bool IsDeleted() const {
|
|
92
|
+
const uint32_t deleted = GetValuePart(DEL_MASK);
|
|
93
|
+
return deleted != 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void SetDeleted() { SetValuePart(DEL_MASK, DEL_MASK); }
|
|
97
|
+
|
|
98
|
+
void ClearDeleted() { ClearValuePart(DEL_MASK); }
|
|
99
|
+
|
|
100
|
+
uint32_t GetFinalValueBase() const;
|
|
101
|
+
|
|
102
|
+
uint32_t GetFinalDelCounter() const;
|
|
103
|
+
|
|
104
|
+
private:
|
|
105
|
+
static bool IsValuePartValid(uint32_t value_part, uint32_t value_part_mask) {
|
|
106
|
+
return (value_part & (~value_part_mask)) == 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// The 32-bit expected_value_ is divided into following parts:
|
|
110
|
+
// Bit 0 - 14: value base
|
|
111
|
+
static constexpr uint32_t VALUE_BASE_MASK = 0x7fff;
|
|
112
|
+
static constexpr uint32_t VALUE_BASE_DELTA = 1;
|
|
113
|
+
// Bit 15: whether write to this value base is pending (0 equals `false`)
|
|
114
|
+
static constexpr uint32_t PENDING_WRITE_MASK = (uint32_t)1 << 15;
|
|
115
|
+
// Bit 16 - 29: deletion counter (i.e, number of times this value base has
|
|
116
|
+
// been deleted)
|
|
117
|
+
static constexpr uint32_t DEL_COUNTER_MASK = 0x3fff0000;
|
|
118
|
+
static constexpr uint32_t DEL_COUNTER_DELTA = (uint32_t)1 << 16;
|
|
119
|
+
// Bit 30: whether deletion of this value base is pending (0 equals `false`)
|
|
120
|
+
static constexpr uint32_t PENDING_DEL_MASK = (uint32_t)1 << 30;
|
|
121
|
+
// Bit 31: whether this value base is deleted (0 equals `false`)
|
|
122
|
+
static constexpr uint32_t DEL_MASK = (uint32_t)1 << 31;
|
|
123
|
+
|
|
124
|
+
uint32_t GetValuePart(uint32_t value_part_mask) const {
|
|
125
|
+
return expected_value_ & value_part_mask;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
uint32_t GetIncrementedValuePart(uint32_t value_part_mask,
|
|
129
|
+
uint32_t value_part_delta) const {
|
|
130
|
+
uint32_t current_value_part = GetValuePart(value_part_mask);
|
|
131
|
+
ExpectedValue temp_expected_value(current_value_part + value_part_delta);
|
|
132
|
+
return temp_expected_value.GetValuePart(value_part_mask);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
void SetValuePart(uint32_t value_part_mask, uint32_t new_value_part) {
|
|
136
|
+
assert(IsValuePartValid(new_value_part, value_part_mask));
|
|
137
|
+
ClearValuePart(value_part_mask);
|
|
138
|
+
expected_value_ |= new_value_part;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
void ClearValuePart(uint32_t value_part_mask) {
|
|
142
|
+
expected_value_ &= (~value_part_mask);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
uint32_t expected_value_;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// `PendingExpectedValue` represents the expected value of a key undergoing a
|
|
149
|
+
// pending operation in db stress.
|
|
150
|
+
//
|
|
151
|
+
// This class is not thread-safe.
|
|
152
|
+
class PendingExpectedValue {
|
|
153
|
+
public:
|
|
154
|
+
explicit PendingExpectedValue(std::atomic<uint32_t>* value_ptr,
|
|
155
|
+
ExpectedValue orig_value,
|
|
156
|
+
ExpectedValue final_value)
|
|
157
|
+
: value_ptr_(value_ptr),
|
|
158
|
+
orig_value_(orig_value),
|
|
159
|
+
final_value_(final_value) {}
|
|
160
|
+
|
|
161
|
+
void Commit() {
|
|
162
|
+
// To prevent low-level instruction reordering that results
|
|
163
|
+
// in setting expected value happens before db write
|
|
164
|
+
std::atomic_thread_fence(std::memory_order_release);
|
|
165
|
+
value_ptr_->store(final_value_.Read());
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
uint32_t GetFinalValueBase() { return final_value_.GetValueBase(); }
|
|
169
|
+
|
|
170
|
+
private:
|
|
171
|
+
std::atomic<uint32_t>* const value_ptr_;
|
|
172
|
+
const ExpectedValue orig_value_;
|
|
173
|
+
const ExpectedValue final_value_;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
// `ExpectedValueHelper` provides utils to parse `ExpectedValue` to obtain
|
|
177
|
+
// useful info about it in db stress
|
|
178
|
+
class ExpectedValueHelper {
|
|
179
|
+
public:
|
|
180
|
+
// Return whether the key associated with `pre_read_expected_value` and
|
|
181
|
+
// `post_read_expected_value` is expected not to exist from begining till the
|
|
182
|
+
// end of the read
|
|
183
|
+
//
|
|
184
|
+
// The negation of `MustHaveNotExisted()` is "may have not existed".
|
|
185
|
+
// To assert some key must have existsed, please use `MustHaveExisted()`
|
|
186
|
+
static bool MustHaveNotExisted(ExpectedValue pre_read_expected_value,
|
|
187
|
+
ExpectedValue post_read_expected_value);
|
|
188
|
+
|
|
189
|
+
// Return whether the key associated with `pre_read_expected_value` and
|
|
190
|
+
// `post_read_expected_value` is expected to exist from begining till the end
|
|
191
|
+
// of the read.
|
|
192
|
+
//
|
|
193
|
+
// The negation of `MustHaveExisted()` is "may have existed".
|
|
194
|
+
// To assert some key must have not existsed, please use
|
|
195
|
+
// `MustHaveNotExisted()`
|
|
196
|
+
static bool MustHaveExisted(ExpectedValue pre_read_expected_value,
|
|
197
|
+
ExpectedValue post_read_expected_value);
|
|
198
|
+
|
|
199
|
+
// Return whether the `value_base` falls within the expected value base
|
|
200
|
+
static bool InExpectedValueBaseRange(uint32_t value_base,
|
|
201
|
+
ExpectedValue pre_read_expected_value,
|
|
202
|
+
ExpectedValue post_read_expected_value);
|
|
203
|
+
};
|
|
204
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
205
|
+
|
|
206
|
+
#endif // GFLAGS
|
|
@@ -393,6 +393,12 @@ void MultiOpsTxnsStressTest::TestGetEntity(
|
|
|
393
393
|
const std::vector<int>& /* rand_column_families */,
|
|
394
394
|
const std::vector<int64_t>& /* rand_keys */) {}
|
|
395
395
|
|
|
396
|
+
// Wide columns are currently not supported by transactions.
|
|
397
|
+
void MultiOpsTxnsStressTest::TestMultiGetEntity(
|
|
398
|
+
ThreadState* /* thread */, const ReadOptions& /* read_opts */,
|
|
399
|
+
const std::vector<int>& /* rand_column_families */,
|
|
400
|
+
const std::vector<int64_t>& /* rand_keys */) {}
|
|
401
|
+
|
|
396
402
|
Status MultiOpsTxnsStressTest::TestPrefixScan(
|
|
397
403
|
ThreadState* thread, const ReadOptions& read_opts,
|
|
398
404
|
const std::vector<int>& rand_column_families,
|
|
@@ -1214,7 +1220,8 @@ void MultiOpsTxnsStressTest::VerifyDb(ThreadState* thread) const {
|
|
|
1214
1220
|
// which can be called before TransactionDB::Open() returns to caller.
|
|
1215
1221
|
// Therefore, at that time, db_ and txn_db_ may still be nullptr.
|
|
1216
1222
|
// Caller has to make sure that the race condition does not happen.
|
|
1217
|
-
void MultiOpsTxnsStressTest::VerifyPkSkFast(
|
|
1223
|
+
void MultiOpsTxnsStressTest::VerifyPkSkFast(const ReadOptions& read_options,
|
|
1224
|
+
int job_id) {
|
|
1218
1225
|
DB* const db = db_aptr_.load(std::memory_order_acquire);
|
|
1219
1226
|
if (db == nullptr) {
|
|
1220
1227
|
return;
|
|
@@ -1243,6 +1250,7 @@ void MultiOpsTxnsStressTest::VerifyPkSkFast(int job_id) {
|
|
|
1243
1250
|
ReadOptions ropts;
|
|
1244
1251
|
ropts.snapshot = snapshot;
|
|
1245
1252
|
ropts.total_order_seek = true;
|
|
1253
|
+
ropts.io_activity = read_options.io_activity;
|
|
1246
1254
|
|
|
1247
1255
|
std::unique_ptr<Iterator> it(db_->NewIterator(ropts));
|
|
1248
1256
|
for (it->Seek(start_key); it->Valid(); it->Next()) {
|
|
@@ -214,6 +214,10 @@ class MultiOpsTxnsStressTest : public StressTest {
|
|
|
214
214
|
const std::vector<int>& rand_column_families,
|
|
215
215
|
const std::vector<int64_t>& rand_keys) override;
|
|
216
216
|
|
|
217
|
+
void TestMultiGetEntity(ThreadState* thread, const ReadOptions& read_opts,
|
|
218
|
+
const std::vector<int>& rand_column_families,
|
|
219
|
+
const std::vector<int64_t>& rand_keys) override;
|
|
220
|
+
|
|
217
221
|
Status TestPrefixScan(ThreadState* thread, const ReadOptions& read_opts,
|
|
218
222
|
const std::vector<int>& rand_column_families,
|
|
219
223
|
const std::vector<int64_t>& rand_keys) override;
|
|
@@ -284,7 +288,7 @@ class MultiOpsTxnsStressTest : public StressTest {
|
|
|
284
288
|
VerifyDb(thread);
|
|
285
289
|
}
|
|
286
290
|
|
|
287
|
-
void VerifyPkSkFast(int job_id);
|
|
291
|
+
void VerifyPkSkFast(const ReadOptions& read_options, int job_id);
|
|
288
292
|
|
|
289
293
|
protected:
|
|
290
294
|
class Counter {
|
|
@@ -420,7 +424,8 @@ class MultiOpsTxnsStressListener : public EventListener {
|
|
|
420
424
|
(void)db;
|
|
421
425
|
#endif
|
|
422
426
|
assert(info.cf_id == 0);
|
|
423
|
-
|
|
427
|
+
const ReadOptions read_options(Env::IOActivity::kFlush);
|
|
428
|
+
stress_test_->VerifyPkSkFast(read_options, info.job_id);
|
|
424
429
|
}
|
|
425
430
|
|
|
426
431
|
void OnCompactionCompleted(DB* db, const CompactionJobInfo& info) override {
|
|
@@ -429,7 +434,8 @@ class MultiOpsTxnsStressListener : public EventListener {
|
|
|
429
434
|
(void)db;
|
|
430
435
|
#endif
|
|
431
436
|
assert(info.cf_id == 0);
|
|
432
|
-
|
|
437
|
+
const ReadOptions read_options(Env::IOActivity::kCompaction);
|
|
438
|
+
stress_test_->VerifyPkSkFast(read_options, info.job_id);
|
|
433
439
|
}
|
|
434
440
|
|
|
435
441
|
private:
|