@nxtedition/rocksdb 9.0.0 → 9.0.1
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 +0 -21
- package/deps/rocksdb/rocksdb/CMakeLists.txt +13 -9
- package/deps/rocksdb/rocksdb/Makefile +15 -6
- package/deps/rocksdb/rocksdb/README.md +29 -0
- package/deps/rocksdb/rocksdb/TARGETS +17 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +74 -15
- package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +16 -4
- package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
- package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2024 -14
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +349 -23
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +126 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +9 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +182 -7
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +31 -14
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -33
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +293 -17
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +21 -5
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -3
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +25 -11
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +8 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +3 -3
- package/deps/rocksdb/rocksdb/db/c.cc +64 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +36 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +23 -15
- package/deps/rocksdb/rocksdb/db/column_family.h +9 -0
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +101 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +36 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +24 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +3 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +42 -18
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +7 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +8 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +61 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +146 -64
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +13 -39
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +29 -7
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +8 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +59 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +186 -2
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +17 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +519 -240
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +104 -43
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +169 -66
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +12 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +85 -53
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -7
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +99 -82
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +4 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +24 -21
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +83 -55
- package/deps/rocksdb/rocksdb/db/db_iter.h +10 -2
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +187 -1
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +134 -30
- package/deps/rocksdb/rocksdb/db/db_test2.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +11 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +5 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +12 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +337 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +51 -34
- package/deps/rocksdb/rocksdb/db/error_handler.h +7 -6
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +58 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +17 -19
- package/deps/rocksdb/rocksdb/db/flush_job.h +3 -3
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +18 -70
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.h +11 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
- package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
- package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +4 -3
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +454 -70
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
- package/deps/rocksdb/rocksdb/db/table_cache.cc +32 -19
- package/deps/rocksdb/rocksdb/db/table_cache.h +12 -6
- package/deps/rocksdb/rocksdb/db/version_edit.h +10 -4
- package/deps/rocksdb/rocksdb/db/version_set.cc +75 -73
- package/deps/rocksdb/rocksdb/db/version_set.h +8 -8
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +22 -11
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +44 -20
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +15 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +108 -58
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +36 -14
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +195 -130
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +12 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +14 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +44 -38
- package/deps/rocksdb/rocksdb/env/env.cc +5 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +1 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +50 -29
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +32 -2
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +513 -30
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +38 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +14 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +42 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +65 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +26 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +37 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +79 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +14 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +53 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +0 -2
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -2
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +6 -0
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +4 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -0
- package/deps/rocksdb/rocksdb/options/db_options.cc +47 -2
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +12 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/options/options_test.cc +6 -1
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/README +10 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -0
- package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
- package/deps/rocksdb/rocksdb/src.mk +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +275 -61
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +96 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +179 -62
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +35 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +14 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +10 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +39 -18
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +10 -8
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +6 -2
- package/deps/rocksdb/rocksdb/table/get_context.cc +52 -89
- package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +12 -0
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +33 -6
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +2 -4
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +26 -43
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +213 -28
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -10
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
- package/deps/rocksdb/rocksdb/util/cast_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +26 -1
- package/deps/rocksdb/rocksdb/util/compression.h +9 -3
- package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
- package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/util/overload.h +23 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
- package/deps/rocksdb/rocksdb/util/status.cc +1 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
- package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -0
- package/deps/rocksdb/rocksdb/util/udt_util.cc +42 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +19 -0
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +14 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
- package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +19 -15
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +9 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +41 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +155 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +81 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +2 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +7 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +57 -27
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +105 -8
- package/deps/rocksdb/rocksdb.gyp +4 -2
- package/index.js +0 -8
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
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 "db/wide/wide_columns_helper.h"
|
|
7
|
+
|
|
8
|
+
#include <algorithm>
|
|
9
|
+
|
|
10
|
+
#include "db/wide/wide_column_serialization.h"
|
|
11
|
+
|
|
12
|
+
namespace ROCKSDB_NAMESPACE {
|
|
13
|
+
void WideColumnsHelper::DumpWideColumns(const WideColumns& columns,
|
|
14
|
+
std::ostream& os, bool hex) {
|
|
15
|
+
if (columns.empty()) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (hex) {
|
|
19
|
+
os << std::hex;
|
|
20
|
+
}
|
|
21
|
+
auto it = columns.begin();
|
|
22
|
+
os << *it;
|
|
23
|
+
for (++it; it != columns.end(); ++it) {
|
|
24
|
+
os << ' ' << *it;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
Status WideColumnsHelper::DumpSliceAsWideColumns(const Slice& value,
|
|
29
|
+
std::ostream& os, bool hex) {
|
|
30
|
+
WideColumns columns;
|
|
31
|
+
Slice value_copy = value;
|
|
32
|
+
const Status s = WideColumnSerialization::Deserialize(value_copy, columns);
|
|
33
|
+
if (s.ok()) {
|
|
34
|
+
DumpWideColumns(columns, os, hex);
|
|
35
|
+
}
|
|
36
|
+
return s;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void WideColumnsHelper::SortColumns(WideColumns& columns) {
|
|
40
|
+
std::sort(columns.begin(), columns.end(),
|
|
41
|
+
[](const WideColumn& lhs, const WideColumn& rhs) {
|
|
42
|
+
return lhs.name().compare(rhs.name()) < 0;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
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
|
+
#include <ostream>
|
|
8
|
+
#include <string>
|
|
9
|
+
|
|
10
|
+
#include "rocksdb/rocksdb_namespace.h"
|
|
11
|
+
#include "rocksdb/wide_columns.h"
|
|
12
|
+
|
|
13
|
+
namespace ROCKSDB_NAMESPACE {
|
|
14
|
+
|
|
15
|
+
class WideColumnsHelper {
|
|
16
|
+
public:
|
|
17
|
+
static void DumpWideColumns(const WideColumns& columns, std::ostream& os,
|
|
18
|
+
bool hex);
|
|
19
|
+
|
|
20
|
+
static Status DumpSliceAsWideColumns(const Slice& value, std::ostream& os,
|
|
21
|
+
bool hex);
|
|
22
|
+
|
|
23
|
+
static bool HasDefaultColumn(const WideColumns& columns) {
|
|
24
|
+
return !columns.empty() && columns.front().name() == kDefaultWideColumnName;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static bool HasDefaultColumnOnly(const WideColumns& columns) {
|
|
28
|
+
return columns.size() == 1 &&
|
|
29
|
+
columns.front().name() == kDefaultWideColumnName;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static const Slice& GetDefaultColumn(const WideColumns& columns) {
|
|
33
|
+
assert(HasDefaultColumn(columns));
|
|
34
|
+
return columns.front().value();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static void SortColumns(WideColumns& columns);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
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 "db/wide/wide_columns_helper.h"
|
|
7
|
+
|
|
8
|
+
#include "db/wide/wide_column_serialization.h"
|
|
9
|
+
#include "test_util/testharness.h"
|
|
10
|
+
#include "util/coding.h"
|
|
11
|
+
|
|
12
|
+
namespace ROCKSDB_NAMESPACE {
|
|
13
|
+
|
|
14
|
+
TEST(WideColumnsHelperTest, DumpWideColumns) {
|
|
15
|
+
WideColumns columns{{"foo", "bar"}, {"hello", "world"}};
|
|
16
|
+
std::ostringstream oss;
|
|
17
|
+
WideColumnsHelper::DumpWideColumns(columns, oss, false /* hex */);
|
|
18
|
+
EXPECT_EQ("foo:bar hello:world", oss.str());
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
TEST(WideColumnsHelperTest, DumpSliceAsWideColumns) {
|
|
22
|
+
WideColumns columns{{"foo", "bar"}, {"hello", "world"}};
|
|
23
|
+
std::string output;
|
|
24
|
+
ASSERT_OK(WideColumnSerialization::Serialize(columns, output));
|
|
25
|
+
Slice input(output);
|
|
26
|
+
|
|
27
|
+
std::ostringstream oss;
|
|
28
|
+
ASSERT_OK(
|
|
29
|
+
WideColumnsHelper::DumpSliceAsWideColumns(input, oss, false /* hex */));
|
|
30
|
+
|
|
31
|
+
EXPECT_EQ("foo:bar hello:world", oss.str());
|
|
32
|
+
}
|
|
33
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
34
|
+
|
|
35
|
+
int main(int argc, char** argv) {
|
|
36
|
+
ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
|
|
37
|
+
::testing::InitGoogleTest(&argc, argv);
|
|
38
|
+
return RUN_ALL_TESTS();
|
|
39
|
+
}
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
#include "db/snapshot_impl.h"
|
|
58
58
|
#include "db/trim_history_scheduler.h"
|
|
59
59
|
#include "db/wide/wide_column_serialization.h"
|
|
60
|
+
#include "db/wide/wide_columns_helper.h"
|
|
60
61
|
#include "db/write_batch_internal.h"
|
|
61
62
|
#include "monitoring/perf_context_imp.h"
|
|
62
63
|
#include "monitoring/statistics_impl.h"
|
|
@@ -948,10 +949,7 @@ Status WriteBatchInternal::PutEntity(WriteBatch* b, uint32_t column_family_id,
|
|
|
948
949
|
}
|
|
949
950
|
|
|
950
951
|
WideColumns sorted_columns(columns);
|
|
951
|
-
|
|
952
|
-
[](const WideColumn& lhs, const WideColumn& rhs) {
|
|
953
|
-
return lhs.name().compare(rhs.name()) < 0;
|
|
954
|
-
});
|
|
952
|
+
WideColumnsHelper::SortColumns(sorted_columns);
|
|
955
953
|
|
|
956
954
|
std::string entity;
|
|
957
955
|
const Status s = WideColumnSerialization::Serialize(sorted_columns, entity);
|
|
@@ -2485,13 +2483,15 @@ class MemTableInserter : public WriteBatch::Handler {
|
|
|
2485
2483
|
}
|
|
2486
2484
|
|
|
2487
2485
|
if (perform_merge) {
|
|
2488
|
-
// 1) Get the existing value
|
|
2489
|
-
|
|
2486
|
+
// 1) Get the existing value. Use the wide column APIs to make sure we
|
|
2487
|
+
// don't lose any columns in the process.
|
|
2488
|
+
PinnableWideColumns existing;
|
|
2490
2489
|
|
|
2491
2490
|
// Pass in the sequence number so that we also include previous merge
|
|
2492
2491
|
// operations in the same batch.
|
|
2493
2492
|
SnapshotImpl read_from_snapshot;
|
|
2494
2493
|
read_from_snapshot.number_ = sequence_;
|
|
2494
|
+
|
|
2495
2495
|
// TODO: plumb Env::IOActivity
|
|
2496
2496
|
ReadOptions read_options;
|
|
2497
2497
|
read_options.snapshot = &read_from_snapshot;
|
|
@@ -2500,26 +2500,47 @@ class MemTableInserter : public WriteBatch::Handler {
|
|
|
2500
2500
|
if (cf_handle == nullptr) {
|
|
2501
2501
|
cf_handle = db_->DefaultColumnFamily();
|
|
2502
2502
|
}
|
|
2503
|
-
|
|
2503
|
+
|
|
2504
|
+
Status get_status =
|
|
2505
|
+
db_->GetEntity(read_options, cf_handle, key, &existing);
|
|
2504
2506
|
if (!get_status.ok()) {
|
|
2505
2507
|
// Failed to read a key we know exists. Store the delta in memtable.
|
|
2506
2508
|
perform_merge = false;
|
|
2507
2509
|
} else {
|
|
2508
|
-
Slice get_value_slice = Slice(get_value);
|
|
2509
|
-
|
|
2510
2510
|
// 2) Apply this merge
|
|
2511
2511
|
auto merge_operator = moptions->merge_operator;
|
|
2512
2512
|
assert(merge_operator);
|
|
2513
2513
|
|
|
2514
|
+
const auto& columns = existing.columns();
|
|
2515
|
+
|
|
2516
|
+
Status merge_status;
|
|
2514
2517
|
std::string new_value;
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2518
|
+
ValueType new_value_type;
|
|
2519
|
+
|
|
2520
|
+
if (WideColumnsHelper::HasDefaultColumnOnly(columns)) {
|
|
2521
|
+
// `op_failure_scope` (an output parameter) is not provided (set to
|
|
2522
|
+
// nullptr) since a failure must be propagated regardless of its
|
|
2523
|
+
// value.
|
|
2524
|
+
merge_status = MergeHelper::TimedFullMerge(
|
|
2525
|
+
merge_operator, key, MergeHelper::kPlainBaseValue,
|
|
2526
|
+
WideColumnsHelper::GetDefaultColumn(columns), {value},
|
|
2527
|
+
moptions->info_log, moptions->statistics,
|
|
2528
|
+
SystemClock::Default().get(),
|
|
2529
|
+
/* update_num_ops_stats */ false, &new_value,
|
|
2530
|
+
/* result_operand */ nullptr, &new_value_type,
|
|
2531
|
+
/* op_failure_scope */ nullptr);
|
|
2532
|
+
} else {
|
|
2533
|
+
// `op_failure_scope` (an output parameter) is not provided (set to
|
|
2534
|
+
// nullptr) since a failure must be propagated regardless of its
|
|
2535
|
+
// value.
|
|
2536
|
+
merge_status = MergeHelper::TimedFullMerge(
|
|
2537
|
+
merge_operator, key, MergeHelper::kWideBaseValue, columns,
|
|
2538
|
+
{value}, moptions->info_log, moptions->statistics,
|
|
2539
|
+
SystemClock::Default().get(),
|
|
2540
|
+
/* update_num_ops_stats */ false, &new_value,
|
|
2541
|
+
/* result_operand */ nullptr, &new_value_type,
|
|
2542
|
+
/* op_failure_scope */ nullptr);
|
|
2543
|
+
}
|
|
2523
2544
|
|
|
2524
2545
|
if (!merge_status.ok()) {
|
|
2525
2546
|
// Failed to merge!
|
|
@@ -2528,15 +2549,18 @@ class MemTableInserter : public WriteBatch::Handler {
|
|
|
2528
2549
|
} else {
|
|
2529
2550
|
// 3) Add value to memtable
|
|
2530
2551
|
assert(!concurrent_memtable_writes_);
|
|
2552
|
+
assert(new_value_type == kTypeValue ||
|
|
2553
|
+
new_value_type == kTypeWideColumnEntity);
|
|
2554
|
+
|
|
2531
2555
|
if (kv_prot_info != nullptr) {
|
|
2532
2556
|
auto merged_kv_prot_info =
|
|
2533
2557
|
kv_prot_info->StripC(column_family_id).ProtectS(sequence_);
|
|
2534
2558
|
merged_kv_prot_info.UpdateV(value, new_value);
|
|
2535
|
-
merged_kv_prot_info.UpdateO(kTypeMerge,
|
|
2536
|
-
ret_status = mem->Add(sequence_,
|
|
2559
|
+
merged_kv_prot_info.UpdateO(kTypeMerge, new_value_type);
|
|
2560
|
+
ret_status = mem->Add(sequence_, new_value_type, key, new_value,
|
|
2537
2561
|
&merged_kv_prot_info);
|
|
2538
2562
|
} else {
|
|
2539
|
-
ret_status = mem->Add(sequence_,
|
|
2563
|
+
ret_status = mem->Add(sequence_, new_value_type, key, new_value,
|
|
2540
2564
|
nullptr /* kv_prot_info */);
|
|
2541
2565
|
}
|
|
2542
2566
|
}
|
|
@@ -52,11 +52,11 @@ class BatchedOpsStressTest : public StressTest {
|
|
|
52
52
|
const std::string k = num + key_body;
|
|
53
53
|
const std::string v = value_body + num;
|
|
54
54
|
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
} else if (FLAGS_use_put_entity_one_in > 0 &&
|
|
58
|
-
(value_base % FLAGS_use_put_entity_one_in) == 0) {
|
|
55
|
+
if (FLAGS_use_put_entity_one_in > 0 &&
|
|
56
|
+
(value_base % FLAGS_use_put_entity_one_in) == 0) {
|
|
59
57
|
batch.PutEntity(cfh, k, GenerateWideColumns(value_base, v));
|
|
58
|
+
} else if (FLAGS_use_merge) {
|
|
59
|
+
batch.Merge(cfh, k, v);
|
|
60
60
|
} else {
|
|
61
61
|
batch.Put(cfh, k, v);
|
|
62
62
|
}
|
|
@@ -36,18 +36,15 @@ class CfConsistencyStressTest : public StressTest {
|
|
|
36
36
|
|
|
37
37
|
WriteBatch batch;
|
|
38
38
|
|
|
39
|
-
const bool use_put_entity = !FLAGS_use_merge &&
|
|
40
|
-
FLAGS_use_put_entity_one_in > 0 &&
|
|
41
|
-
(value_base % FLAGS_use_put_entity_one_in) == 0;
|
|
42
|
-
|
|
43
39
|
for (auto cf : rand_column_families) {
|
|
44
40
|
ColumnFamilyHandle* const cfh = column_families_[cf];
|
|
45
41
|
assert(cfh);
|
|
46
42
|
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
} else if (use_put_entity) {
|
|
43
|
+
if (FLAGS_use_put_entity_one_in > 0 &&
|
|
44
|
+
(value_base % FLAGS_use_put_entity_one_in) == 0) {
|
|
50
45
|
batch.PutEntity(cfh, k, GenerateWideColumns(value_base, v));
|
|
46
|
+
} else if (FLAGS_use_merge) {
|
|
47
|
+
batch.Merge(cfh, k, v);
|
|
51
48
|
} else {
|
|
52
49
|
batch.Put(cfh, k, v);
|
|
53
50
|
}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
#include <cmath>
|
|
15
15
|
|
|
16
|
+
#include "rocksdb/secondary_cache.h"
|
|
16
17
|
#include "util/file_checksum_helper.h"
|
|
17
18
|
#include "util/xxhash.h"
|
|
18
19
|
|
|
@@ -21,6 +22,8 @@ ROCKSDB_NAMESPACE::Env* db_stress_env = nullptr;
|
|
|
21
22
|
// If non-null, injects read error at a rate specified by the
|
|
22
23
|
// read_fault_one_in or write_fault_one_in flag
|
|
23
24
|
std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
|
|
25
|
+
std::shared_ptr<ROCKSDB_NAMESPACE::SecondaryCache> compressed_secondary_cache;
|
|
26
|
+
std::shared_ptr<ROCKSDB_NAMESPACE::Cache> block_cache;
|
|
24
27
|
enum ROCKSDB_NAMESPACE::CompressionType compression_type_e =
|
|
25
28
|
ROCKSDB_NAMESPACE::kSnappyCompression;
|
|
26
29
|
enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e =
|
|
@@ -148,6 +151,88 @@ void DbVerificationThread(void* v) {
|
|
|
148
151
|
}
|
|
149
152
|
}
|
|
150
153
|
|
|
154
|
+
void CompressedCacheSetCapacityThread(void* v) {
|
|
155
|
+
assert(FLAGS_compressed_secondary_cache_size > 0 ||
|
|
156
|
+
FLAGS_compressed_secondary_cache_ratio > 0.0);
|
|
157
|
+
auto* thread = reinterpret_cast<ThreadState*>(v);
|
|
158
|
+
SharedState* shared = thread->shared;
|
|
159
|
+
while (true) {
|
|
160
|
+
{
|
|
161
|
+
MutexLock l(shared->GetMutex());
|
|
162
|
+
if (shared->ShouldStopBgThread()) {
|
|
163
|
+
shared->IncBgThreadsFinished();
|
|
164
|
+
if (shared->BgThreadsFinished()) {
|
|
165
|
+
shared->GetCondVar()->SignalAll();
|
|
166
|
+
}
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
db_stress_env->SleepForMicroseconds(FLAGS_secondary_cache_update_interval);
|
|
171
|
+
if (FLAGS_compressed_secondary_cache_size > 0) {
|
|
172
|
+
Status s = compressed_secondary_cache->SetCapacity(0);
|
|
173
|
+
size_t capacity;
|
|
174
|
+
if (s.ok()) {
|
|
175
|
+
s = compressed_secondary_cache->GetCapacity(capacity);
|
|
176
|
+
assert(capacity == 0);
|
|
177
|
+
}
|
|
178
|
+
db_stress_env->SleepForMicroseconds(10 * 1000 * 1000);
|
|
179
|
+
if (s.ok()) {
|
|
180
|
+
s = compressed_secondary_cache->SetCapacity(
|
|
181
|
+
FLAGS_compressed_secondary_cache_size);
|
|
182
|
+
}
|
|
183
|
+
if (s.ok()) {
|
|
184
|
+
s = compressed_secondary_cache->GetCapacity(capacity);
|
|
185
|
+
assert(capacity == FLAGS_compressed_secondary_cache_size);
|
|
186
|
+
}
|
|
187
|
+
if (!s.ok()) {
|
|
188
|
+
fprintf(stderr, "Compressed cache Set/GetCapacity returned error: %s\n",
|
|
189
|
+
s.ToString().c_str());
|
|
190
|
+
}
|
|
191
|
+
} else if (FLAGS_compressed_secondary_cache_ratio > 0.0) {
|
|
192
|
+
if (thread->rand.OneIn(2)) {
|
|
193
|
+
size_t capacity = block_cache->GetCapacity();
|
|
194
|
+
size_t adjustment;
|
|
195
|
+
if (FLAGS_use_write_buffer_manager && FLAGS_db_write_buffer_size > 0) {
|
|
196
|
+
adjustment = (capacity - FLAGS_db_write_buffer_size);
|
|
197
|
+
} else {
|
|
198
|
+
adjustment = capacity;
|
|
199
|
+
}
|
|
200
|
+
// Lower by upto 50% of usable block cache capacity
|
|
201
|
+
adjustment = (adjustment * thread->rand.Uniform(50)) / 100;
|
|
202
|
+
block_cache->SetCapacity(capacity - adjustment);
|
|
203
|
+
fprintf(stderr, "New cache capacity = %lu\n",
|
|
204
|
+
block_cache->GetCapacity());
|
|
205
|
+
db_stress_env->SleepForMicroseconds(10 * 1000 * 1000);
|
|
206
|
+
block_cache->SetCapacity(capacity);
|
|
207
|
+
} else {
|
|
208
|
+
Status s;
|
|
209
|
+
double new_comp_cache_ratio =
|
|
210
|
+
(double)thread->rand.Uniform(
|
|
211
|
+
FLAGS_compressed_secondary_cache_ratio * 100) /
|
|
212
|
+
100;
|
|
213
|
+
if (new_comp_cache_ratio == 0.0) {
|
|
214
|
+
new_comp_cache_ratio = 0.05;
|
|
215
|
+
}
|
|
216
|
+
fprintf(stderr, "New comp cache ratio = %f\n", new_comp_cache_ratio);
|
|
217
|
+
|
|
218
|
+
s = UpdateTieredCache(block_cache, /*capacity*/ -1,
|
|
219
|
+
new_comp_cache_ratio);
|
|
220
|
+
if (s.ok()) {
|
|
221
|
+
db_stress_env->SleepForMicroseconds(10 * 1000 * 1000);
|
|
222
|
+
}
|
|
223
|
+
if (s.ok()) {
|
|
224
|
+
s = UpdateTieredCache(block_cache, /*capacity*/ -1,
|
|
225
|
+
FLAGS_compressed_secondary_cache_ratio);
|
|
226
|
+
}
|
|
227
|
+
if (!s.ok()) {
|
|
228
|
+
fprintf(stderr, "UpdateTieredCache returned error: %s\n",
|
|
229
|
+
s.ToString().c_str());
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
151
236
|
void PrintKeyValue(int cf, uint64_t key, const char* value, size_t sz) {
|
|
152
237
|
if (!FLAGS_verbose) {
|
|
153
238
|
return;
|
|
@@ -270,10 +355,7 @@ WideColumns GenerateExpectedWideColumns(uint32_t value_base,
|
|
|
270
355
|
|
|
271
356
|
WideColumns columns = GenerateWideColumns(value_base, slice);
|
|
272
357
|
|
|
273
|
-
|
|
274
|
-
[](const WideColumn& lhs, const WideColumn& rhs) {
|
|
275
|
-
return lhs.name().compare(rhs.name()) < 0;
|
|
276
|
-
});
|
|
358
|
+
WideColumnsHelper::SortColumns(columns);
|
|
277
359
|
|
|
278
360
|
return columns;
|
|
279
361
|
}
|
|
@@ -296,15 +378,11 @@ bool VerifyWideColumns(const Slice& value, const WideColumns& columns) {
|
|
|
296
378
|
}
|
|
297
379
|
|
|
298
380
|
bool VerifyWideColumns(const WideColumns& columns) {
|
|
299
|
-
if (columns
|
|
300
|
-
return false;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
if (columns.front().name() != kDefaultWideColumnName) {
|
|
381
|
+
if (!WideColumnsHelper::HasDefaultColumn(columns)) {
|
|
304
382
|
return false;
|
|
305
383
|
}
|
|
306
384
|
|
|
307
|
-
const Slice& value_of_default = columns
|
|
385
|
+
const Slice& value_of_default = WideColumnsHelper::GetDefaultColumn(columns);
|
|
308
386
|
|
|
309
387
|
return VerifyWideColumns(value_of_default, columns);
|
|
310
388
|
}
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
#include "db/db_impl/db_impl.h"
|
|
39
39
|
#include "db/version_set.h"
|
|
40
|
+
#include "db/wide/wide_columns_helper.h"
|
|
40
41
|
#include "db_stress_tool/db_stress_env_wrapper.h"
|
|
41
42
|
#include "db_stress_tool/db_stress_listener.h"
|
|
42
43
|
#include "db_stress_tool/db_stress_shared_state.h"
|
|
@@ -107,11 +108,14 @@ DECLARE_int32(max_write_buffer_number);
|
|
|
107
108
|
DECLARE_int32(min_write_buffer_number_to_merge);
|
|
108
109
|
DECLARE_int32(max_write_buffer_number_to_maintain);
|
|
109
110
|
DECLARE_int64(max_write_buffer_size_to_maintain);
|
|
111
|
+
DECLARE_bool(use_write_buffer_manager);
|
|
110
112
|
DECLARE_double(memtable_prefix_bloom_size_ratio);
|
|
111
113
|
DECLARE_bool(memtable_whole_key_filtering);
|
|
112
114
|
DECLARE_int32(open_files);
|
|
113
|
-
|
|
114
|
-
DECLARE_int32(
|
|
115
|
+
DECLARE_uint64(compressed_secondary_cache_size);
|
|
116
|
+
DECLARE_int32(compressed_secondary_cache_numshardbits);
|
|
117
|
+
DECLARE_int32(secondary_cache_update_interval);
|
|
118
|
+
DECLARE_double(compressed_secondary_cache_ratio);
|
|
115
119
|
DECLARE_int32(compaction_style);
|
|
116
120
|
DECLARE_int32(compaction_pri);
|
|
117
121
|
DECLARE_int32(num_levels);
|
|
@@ -158,7 +162,7 @@ DECLARE_double(experimental_mempurge_threshold);
|
|
|
158
162
|
DECLARE_bool(enable_write_thread_adaptive_yield);
|
|
159
163
|
DECLARE_int32(reopen);
|
|
160
164
|
DECLARE_double(bloom_bits);
|
|
161
|
-
DECLARE_int32(
|
|
165
|
+
DECLARE_int32(bloom_before_level);
|
|
162
166
|
DECLARE_bool(partition_filters);
|
|
163
167
|
DECLARE_bool(optimize_filters_for_memory);
|
|
164
168
|
DECLARE_bool(detect_filter_construct_corruption);
|
|
@@ -254,6 +258,7 @@ DECLARE_int32(verify_db_one_in);
|
|
|
254
258
|
DECLARE_int32(continuous_verification_interval);
|
|
255
259
|
DECLARE_int32(get_property_one_in);
|
|
256
260
|
DECLARE_string(file_checksum_impl);
|
|
261
|
+
DECLARE_bool(verification_only);
|
|
257
262
|
|
|
258
263
|
// Options for transaction dbs.
|
|
259
264
|
// Use TransactionDB (a.k.a. Pessimistic Transaction DB)
|
|
@@ -346,6 +351,7 @@ DECLARE_uint64(initial_auto_readahead_size);
|
|
|
346
351
|
DECLARE_uint64(max_auto_readahead_size);
|
|
347
352
|
DECLARE_uint64(num_file_reads_for_auto_readahead);
|
|
348
353
|
DECLARE_bool(use_io_uring);
|
|
354
|
+
DECLARE_bool(auto_readahead_size);
|
|
349
355
|
|
|
350
356
|
constexpr long KB = 1024;
|
|
351
357
|
constexpr int kRandomValueMaxFactor = 3;
|
|
@@ -355,6 +361,9 @@ constexpr int kValueMaxLen = 100;
|
|
|
355
361
|
extern ROCKSDB_NAMESPACE::Env* db_stress_env;
|
|
356
362
|
extern ROCKSDB_NAMESPACE::Env* db_stress_listener_env;
|
|
357
363
|
extern std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
|
|
364
|
+
extern std::shared_ptr<ROCKSDB_NAMESPACE::SecondaryCache>
|
|
365
|
+
compressed_secondary_cache;
|
|
366
|
+
extern std::shared_ptr<ROCKSDB_NAMESPACE::Cache> block_cache;
|
|
358
367
|
|
|
359
368
|
extern enum ROCKSDB_NAMESPACE::CompressionType compression_type_e;
|
|
360
369
|
extern enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e;
|
|
@@ -627,13 +636,7 @@ inline std::string WideColumnsToHex(const WideColumns& columns) {
|
|
|
627
636
|
|
|
628
637
|
std::ostringstream oss;
|
|
629
638
|
|
|
630
|
-
oss
|
|
631
|
-
|
|
632
|
-
auto it = columns.begin();
|
|
633
|
-
oss << *it;
|
|
634
|
-
for (++it; it != columns.end(); ++it) {
|
|
635
|
-
oss << ' ' << *it;
|
|
636
|
-
}
|
|
639
|
+
WideColumnsHelper::DumpWideColumns(columns, oss, true);
|
|
637
640
|
|
|
638
641
|
return oss.str();
|
|
639
642
|
}
|
|
@@ -653,6 +656,8 @@ extern void PoolSizeChangeThread(void* v);
|
|
|
653
656
|
|
|
654
657
|
extern void DbVerificationThread(void* v);
|
|
655
658
|
|
|
659
|
+
extern void CompressedCacheSetCapacityThread(void* v);
|
|
660
|
+
|
|
656
661
|
extern void TimestampedSnapshotsThread(void* v);
|
|
657
662
|
|
|
658
663
|
extern void PrintKeyValue(int cf, uint64_t key, const char* value, size_t sz);
|