@nxtedition/rocksdb 8.2.7 → 9.0.0
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/deps/rocksdb/rocksdb/CMakeLists.txt +7 -1
- package/deps/rocksdb/rocksdb/Makefile +22 -19
- package/deps/rocksdb/rocksdb/TARGETS +8 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +157 -61
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +43 -92
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +632 -455
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +244 -149
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +41 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +11 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +216 -17
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +279 -199
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +159 -8
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +28 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +3 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +18 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/builder.cc +32 -7
- package/deps/rocksdb/rocksdb/db/c.cc +169 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +104 -6
- package/deps/rocksdb/rocksdb/db/column_family.cc +98 -47
- package/deps/rocksdb/rocksdb/db/column_family.h +25 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +213 -2
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +93 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +33 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +107 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +25 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +13 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +29 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +24 -31
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +19 -19
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +17 -3
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +15 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +666 -44
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +274 -1
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -19
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +250 -116
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +51 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +354 -96
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +26 -13
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +61 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +8 -87
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +7 -1
- package/deps/rocksdb/rocksdb/db/db_iter.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +39 -29
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +106 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +12 -3
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +279 -166
- package/deps/rocksdb/rocksdb/db/db_test.cc +48 -21
- package/deps/rocksdb/rocksdb/db/db_test2.cc +81 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +40 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +13 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +233 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +16 -0
- package/deps/rocksdb/rocksdb/db/error_handler.h +6 -3
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +101 -11
- package/deps/rocksdb/rocksdb/db/flush_job.h +24 -1
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +88 -11
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
- package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
- package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +52 -13
- package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +44 -10
- package/deps/rocksdb/rocksdb/db/memtable_list.h +32 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +90 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +21 -4
- package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/table_cache.cc +44 -35
- package/deps/rocksdb/rocksdb/db/table_cache.h +6 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
- package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
- package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
- package/deps/rocksdb/rocksdb/db/version_edit.h +48 -6
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
- package/deps/rocksdb/rocksdb/db/version_set.cc +136 -41
- package/deps/rocksdb/rocksdb/db/version_set.h +28 -7
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +25 -15
- package/deps/rocksdb/rocksdb/db/write_batch.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +22 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +32 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +7 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +247 -120
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +13 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +15 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +264 -69
- package/deps/rocksdb/rocksdb/env/env.cc +1 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +78 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +52 -43
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +34 -18
- package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
- package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +724 -79
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +64 -33
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +153 -88
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +70 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +50 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +16 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +55 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +32 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +90 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +85 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +13 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +21 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -1
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +16 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +10 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
- package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +2 -1
- package/deps/rocksdb/rocksdb/options/db_options.cc +7 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
- package/deps/rocksdb/rocksdb/options/options.cc +15 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +6 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +11 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +8 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +27 -12
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
- package/deps/rocksdb/rocksdb/src.mk +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
- package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +115 -42
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +6 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +60 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +62 -44
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +36 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -21
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +195 -55
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +27 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +9 -6
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +11 -11
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -0
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/format.cc +175 -33
- package/deps/rocksdb/rocksdb/table/format.h +63 -10
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +10 -2
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +12 -3
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +26 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
- package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +65 -26
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +8 -5
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
- package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
- package/deps/rocksdb/rocksdb/util/cast_util.h +14 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +29 -7
- package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +110 -32
- package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
- package/deps/rocksdb/rocksdb/util/hash.h +7 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
- package/deps/rocksdb/rocksdb/util/math.h +58 -6
- package/deps/rocksdb/rocksdb/util/math128.h +29 -7
- package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
- package/deps/rocksdb/rocksdb/util/thread_operation.h +8 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +343 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +173 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +447 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +69 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +231 -33
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +40 -23
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +13 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +7 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +41 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +71 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +39 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +14 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +2 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -303,7 +303,7 @@ static void DBPut(benchmark::State& state) {
|
|
|
303
303
|
|
|
304
304
|
if (state.thread_index() == 0) {
|
|
305
305
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
306
|
-
Status s = db_full->WaitForCompact();
|
|
306
|
+
Status s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
307
307
|
if (!s.ok()) {
|
|
308
308
|
state.SkipWithError(s.ToString().c_str());
|
|
309
309
|
return;
|
|
@@ -410,7 +410,7 @@ static void ManualCompaction(benchmark::State& state) {
|
|
|
410
410
|
|
|
411
411
|
if (state.thread_index() == 0) {
|
|
412
412
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
413
|
-
s = db_full->WaitForCompact();
|
|
413
|
+
s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
414
414
|
if (!s.ok()) {
|
|
415
415
|
state.SkipWithError(s.ToString().c_str());
|
|
416
416
|
return;
|
|
@@ -510,7 +510,7 @@ static void ManualFlush(benchmark::State& state) {
|
|
|
510
510
|
|
|
511
511
|
if (state.thread_index() == 0) {
|
|
512
512
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
513
|
-
Status s = db_full->WaitForCompact();
|
|
513
|
+
Status s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
514
514
|
if (!s.ok()) {
|
|
515
515
|
state.SkipWithError(s.ToString().c_str());
|
|
516
516
|
return;
|
|
@@ -538,6 +538,23 @@ static void ManualFlushArguments(benchmark::internal::Benchmark* b) {
|
|
|
538
538
|
|
|
539
539
|
BENCHMARK(ManualFlush)->Iterations(1)->Apply(ManualFlushArguments);
|
|
540
540
|
|
|
541
|
+
// Copied from test_util.cc to not depend on rocksdb_test_lib
|
|
542
|
+
// when building microbench binaries.
|
|
543
|
+
static Slice CompressibleString(Random* rnd, double compressed_fraction,
|
|
544
|
+
int len, std::string* dst) {
|
|
545
|
+
int raw = static_cast<int>(len * compressed_fraction);
|
|
546
|
+
if (raw < 1) raw = 1;
|
|
547
|
+
std::string raw_data = rnd->RandomBinaryString(raw);
|
|
548
|
+
|
|
549
|
+
// Duplicate the random data until we have filled "len" bytes
|
|
550
|
+
dst->clear();
|
|
551
|
+
while (dst->size() < (unsigned int)len) {
|
|
552
|
+
dst->append(raw_data);
|
|
553
|
+
}
|
|
554
|
+
dst->resize(len);
|
|
555
|
+
return Slice(*dst);
|
|
556
|
+
}
|
|
557
|
+
|
|
541
558
|
static void DBGet(benchmark::State& state) {
|
|
542
559
|
auto compaction_style = static_cast<CompactionStyle>(state.range(0));
|
|
543
560
|
uint64_t max_data = state.range(1);
|
|
@@ -546,6 +563,9 @@ static void DBGet(benchmark::State& state) {
|
|
|
546
563
|
bool negative_query = state.range(4);
|
|
547
564
|
bool enable_filter = state.range(5);
|
|
548
565
|
bool mmap = state.range(6);
|
|
566
|
+
auto compression_type = static_cast<CompressionType>(state.range(7));
|
|
567
|
+
bool compression_checksum = static_cast<bool>(state.range(8));
|
|
568
|
+
bool no_blockcache = state.range(9);
|
|
549
569
|
uint64_t key_num = max_data / per_key_size;
|
|
550
570
|
|
|
551
571
|
// setup DB
|
|
@@ -568,39 +588,45 @@ static void DBGet(benchmark::State& state) {
|
|
|
568
588
|
table_options.no_block_cache = true;
|
|
569
589
|
table_options.block_restart_interval = 1;
|
|
570
590
|
}
|
|
591
|
+
options.compression = compression_type;
|
|
592
|
+
options.compression_opts.checksum = compression_checksum;
|
|
593
|
+
if (no_blockcache) {
|
|
594
|
+
table_options.no_block_cache = true;
|
|
595
|
+
} else {
|
|
596
|
+
table_options.block_cache = NewLRUCache(100 << 20);
|
|
597
|
+
}
|
|
571
598
|
options.table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
572
599
|
|
|
573
600
|
auto rnd = Random(301 + state.thread_index());
|
|
574
|
-
KeyGenerator kg(&rnd, key_num);
|
|
575
601
|
|
|
576
602
|
if (state.thread_index() == 0) {
|
|
603
|
+
KeyGenerator kg_seq(key_num /* max_key */);
|
|
577
604
|
SetupDB(state, options, &db, "DBGet");
|
|
578
605
|
|
|
579
|
-
//
|
|
606
|
+
// Load all valid keys into DB. That way, iterations in `!negative_query`
|
|
607
|
+
// runs can always find the key even though it is generated from a random
|
|
608
|
+
// number.
|
|
580
609
|
auto wo = WriteOptions();
|
|
581
610
|
wo.disableWAL = true;
|
|
611
|
+
std::string val;
|
|
582
612
|
for (uint64_t i = 0; i < key_num; i++) {
|
|
583
|
-
|
|
584
|
-
|
|
613
|
+
CompressibleString(&rnd, 0.5, static_cast<int>(per_key_size), &val);
|
|
614
|
+
Status s = db->Put(wo, kg_seq.Next(), val);
|
|
585
615
|
if (!s.ok()) {
|
|
586
616
|
state.SkipWithError(s.ToString().c_str());
|
|
587
617
|
}
|
|
588
618
|
}
|
|
589
619
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
597
|
-
s = db_full->WaitForCompact();
|
|
620
|
+
// Compact whole DB into one level, so each iteration will consider the same
|
|
621
|
+
// number of files (one).
|
|
622
|
+
Status s = db->CompactRange(CompactRangeOptions(), nullptr /* begin */,
|
|
623
|
+
nullptr /* end */);
|
|
598
624
|
if (!s.ok()) {
|
|
599
625
|
state.SkipWithError(s.ToString().c_str());
|
|
600
|
-
return;
|
|
601
626
|
}
|
|
602
627
|
}
|
|
603
628
|
|
|
629
|
+
KeyGenerator kg_rnd(&rnd, key_num /* max_key */);
|
|
604
630
|
auto ro = ReadOptions();
|
|
605
631
|
if (mmap) {
|
|
606
632
|
ro.verify_checksums = false;
|
|
@@ -609,7 +635,7 @@ static void DBGet(benchmark::State& state) {
|
|
|
609
635
|
if (negative_query) {
|
|
610
636
|
for (auto _ : state) {
|
|
611
637
|
std::string val;
|
|
612
|
-
Status s = db->Get(ro,
|
|
638
|
+
Status s = db->Get(ro, kg_rnd.NextNonExist(), &val);
|
|
613
639
|
if (s.IsNotFound()) {
|
|
614
640
|
not_found++;
|
|
615
641
|
}
|
|
@@ -617,7 +643,7 @@ static void DBGet(benchmark::State& state) {
|
|
|
617
643
|
} else {
|
|
618
644
|
for (auto _ : state) {
|
|
619
645
|
std::string val;
|
|
620
|
-
Status s = db->Get(ro,
|
|
646
|
+
Status s = db->Get(ro, kg_rnd.Next(), &val);
|
|
621
647
|
if (s.IsNotFound()) {
|
|
622
648
|
not_found++;
|
|
623
649
|
}
|
|
@@ -636,21 +662,30 @@ static void DBGet(benchmark::State& state) {
|
|
|
636
662
|
state.counters["get_p99"] = histogram_data.percentile99 * std::milli::den;
|
|
637
663
|
}
|
|
638
664
|
|
|
639
|
-
TeardownDB(state, db, options,
|
|
665
|
+
TeardownDB(state, db, options, kg_rnd);
|
|
640
666
|
}
|
|
641
667
|
}
|
|
642
668
|
|
|
643
669
|
static void DBGetArguments(benchmark::internal::Benchmark* b) {
|
|
644
670
|
for (int comp_style : {kCompactionStyleLevel, kCompactionStyleUniversal,
|
|
645
671
|
kCompactionStyleFIFO}) {
|
|
646
|
-
for (int64_t max_data : {128l << 20, 512l << 20}) {
|
|
672
|
+
for (int64_t max_data : {1l << 20, 128l << 20, 512l << 20}) {
|
|
647
673
|
for (int64_t per_key_size : {256, 1024}) {
|
|
648
674
|
for (bool enable_statistics : {false, true}) {
|
|
649
675
|
for (bool negative_query : {false, true}) {
|
|
650
676
|
for (bool enable_filter : {false, true}) {
|
|
651
677
|
for (bool mmap : {false, true}) {
|
|
652
|
-
|
|
653
|
-
|
|
678
|
+
for (int compression_type :
|
|
679
|
+
{kNoCompression /* 0x0 */, kZSTD /* 0x7 */}) {
|
|
680
|
+
for (bool compression_checksum : {false, true}) {
|
|
681
|
+
for (bool no_blockcache : {false, true}) {
|
|
682
|
+
b->Args({comp_style, max_data, per_key_size,
|
|
683
|
+
enable_statistics, negative_query, enable_filter,
|
|
684
|
+
mmap, compression_type, compression_checksum,
|
|
685
|
+
no_blockcache});
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|
|
654
689
|
}
|
|
655
690
|
}
|
|
656
691
|
}
|
|
@@ -659,12 +694,13 @@ static void DBGetArguments(benchmark::internal::Benchmark* b) {
|
|
|
659
694
|
}
|
|
660
695
|
}
|
|
661
696
|
b->ArgNames({"comp_style", "max_data", "per_key_size", "enable_statistics",
|
|
662
|
-
"negative_query", "enable_filter", "mmap"
|
|
697
|
+
"negative_query", "enable_filter", "mmap", "compression_type",
|
|
698
|
+
"compression_checksum", "no_blockcache"});
|
|
663
699
|
}
|
|
664
700
|
|
|
665
|
-
static
|
|
666
|
-
BENCHMARK(DBGet)->Threads(1)->Iterations(
|
|
667
|
-
BENCHMARK(DBGet)->Threads(8)->Iterations(
|
|
701
|
+
static const uint64_t DBGetNum = 10000l;
|
|
702
|
+
BENCHMARK(DBGet)->Threads(1)->Iterations(DBGetNum)->Apply(DBGetArguments);
|
|
703
|
+
BENCHMARK(DBGet)->Threads(8)->Iterations(DBGetNum / 8)->Apply(DBGetArguments);
|
|
668
704
|
|
|
669
705
|
static void SimpleGetWithPerfContext(benchmark::State& state) {
|
|
670
706
|
// setup DB
|
|
@@ -707,7 +743,7 @@ static void SimpleGetWithPerfContext(benchmark::State& state) {
|
|
|
707
743
|
}
|
|
708
744
|
}
|
|
709
745
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
710
|
-
s = db_full->WaitForCompact();
|
|
746
|
+
s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
711
747
|
if (!s.ok()) {
|
|
712
748
|
state.SkipWithError(s.ToString().c_str());
|
|
713
749
|
return;
|
|
@@ -1115,7 +1151,7 @@ static void IteratorSeek(benchmark::State& state) {
|
|
|
1115
1151
|
}
|
|
1116
1152
|
|
|
1117
1153
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
1118
|
-
s = db_full->WaitForCompact();
|
|
1154
|
+
s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
1119
1155
|
if (!s.ok()) {
|
|
1120
1156
|
state.SkipWithError(s.ToString().c_str());
|
|
1121
1157
|
return;
|
|
@@ -1206,7 +1242,7 @@ static void IteratorNext(benchmark::State& state) {
|
|
|
1206
1242
|
}
|
|
1207
1243
|
|
|
1208
1244
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
1209
|
-
s = db_full->WaitForCompact();
|
|
1245
|
+
s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
1210
1246
|
if (!s.ok()) {
|
|
1211
1247
|
state.SkipWithError(s.ToString().c_str());
|
|
1212
1248
|
return;
|
|
@@ -1270,7 +1306,7 @@ static void IteratorNextWithPerfContext(benchmark::State& state) {
|
|
|
1270
1306
|
}
|
|
1271
1307
|
}
|
|
1272
1308
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
1273
|
-
Status s = db_full->WaitForCompact();
|
|
1309
|
+
Status s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
1274
1310
|
if (!s.ok()) {
|
|
1275
1311
|
state.SkipWithError(s.ToString().c_str());
|
|
1276
1312
|
return;
|
|
@@ -1368,7 +1404,7 @@ static void IteratorPrev(benchmark::State& state) {
|
|
|
1368
1404
|
}
|
|
1369
1405
|
|
|
1370
1406
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
1371
|
-
s = db_full->WaitForCompact();
|
|
1407
|
+
s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
1372
1408
|
if (!s.ok()) {
|
|
1373
1409
|
state.SkipWithError(s.ToString().c_str());
|
|
1374
1410
|
return;
|
|
@@ -1460,7 +1496,7 @@ static void PrefixSeek(benchmark::State& state) {
|
|
|
1460
1496
|
}
|
|
1461
1497
|
|
|
1462
1498
|
auto db_full = static_cast_with_check<DBImpl>(db.get());
|
|
1463
|
-
s = db_full->WaitForCompact();
|
|
1499
|
+
s = db_full->WaitForCompact(WaitForCompactOptions());
|
|
1464
1500
|
if (!s.ok()) {
|
|
1465
1501
|
state.SkipWithError(s.ToString().c_str());
|
|
1466
1502
|
return;
|
|
@@ -1558,8 +1594,7 @@ static void RandomAccessFileReaderRead(benchmark::State& state) {
|
|
|
1558
1594
|
uint64_t idx = 0;
|
|
1559
1595
|
for (auto _ : state) {
|
|
1560
1596
|
s = readers[idx++ % kFileNum]->Read(io_options, 0, kDefaultPageSize / 3,
|
|
1561
|
-
&result, scratch.get(), nullptr
|
|
1562
|
-
Env::IO_TOTAL);
|
|
1597
|
+
&result, scratch.get(), nullptr);
|
|
1563
1598
|
if (!s.ok()) {
|
|
1564
1599
|
state.SkipWithError(s.ToString().c_str());
|
|
1565
1600
|
}
|
|
@@ -175,11 +175,18 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
|
|
|
175
175
|
{BLOCK_CACHE_COMPRESSION_DICT_ADD_REDUNDANT,
|
|
176
176
|
"rocksdb.block.cache.compression.dict.add.redundant"},
|
|
177
177
|
{FILES_MARKED_TRASH, "rocksdb.files.marked.trash"},
|
|
178
|
+
{FILES_DELETED_FROM_TRASH_QUEUE, "rocksdb.files.marked.trash.deleted"},
|
|
178
179
|
{FILES_DELETED_IMMEDIATELY, "rocksdb.files.deleted.immediately"},
|
|
179
|
-
{ERROR_HANDLER_BG_ERROR_COUNT, "rocksdb.error.handler.bg.
|
|
180
|
+
{ERROR_HANDLER_BG_ERROR_COUNT, "rocksdb.error.handler.bg.error.count"},
|
|
181
|
+
{ERROR_HANDLER_BG_ERROR_COUNT_MISSPELLED,
|
|
182
|
+
"rocksdb.error.handler.bg.errro.count"},
|
|
180
183
|
{ERROR_HANDLER_BG_IO_ERROR_COUNT,
|
|
184
|
+
"rocksdb.error.handler.bg.io.error.count"},
|
|
185
|
+
{ERROR_HANDLER_BG_IO_ERROR_COUNT_MISSPELLED,
|
|
181
186
|
"rocksdb.error.handler.bg.io.errro.count"},
|
|
182
187
|
{ERROR_HANDLER_BG_RETRYABLE_IO_ERROR_COUNT,
|
|
188
|
+
"rocksdb.error.handler.bg.retryable.io.error.count"},
|
|
189
|
+
{ERROR_HANDLER_BG_RETRYABLE_IO_ERROR_COUNT_MISSPELLED,
|
|
183
190
|
"rocksdb.error.handler.bg.retryable.io.errro.count"},
|
|
184
191
|
{ERROR_HANDLER_AUTORESUME_COUNT, "rocksdb.error.handler.autoresume.count"},
|
|
185
192
|
{ERROR_HANDLER_AUTORESUME_RETRY_TOTAL_COUNT,
|
|
@@ -250,6 +257,7 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
|
|
|
250
257
|
"rocksdb.number.block_compression_rejected"},
|
|
251
258
|
{BYTES_DECOMPRESSED_FROM, "rocksdb.bytes.decompressed.from"},
|
|
252
259
|
{BYTES_DECOMPRESSED_TO, "rocksdb.bytes.decompressed.to"},
|
|
260
|
+
{READAHEAD_TRIMMED, "rocksdb.readahead.trimmed"},
|
|
253
261
|
};
|
|
254
262
|
|
|
255
263
|
const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
|
|
@@ -274,6 +282,13 @@ const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
|
|
|
274
282
|
{FILE_READ_FLUSH_MICROS, "rocksdb.file.read.flush.micros"},
|
|
275
283
|
{FILE_READ_COMPACTION_MICROS, "rocksdb.file.read.compaction.micros"},
|
|
276
284
|
{FILE_READ_DB_OPEN_MICROS, "rocksdb.file.read.db.open.micros"},
|
|
285
|
+
{FILE_READ_GET_MICROS, "rocksdb.file.read.get.micros"},
|
|
286
|
+
{FILE_READ_MULTIGET_MICROS, "rocksdb.file.read.multiget.micros"},
|
|
287
|
+
{FILE_READ_DB_ITERATOR_MICROS, "rocksdb.file.read.db.iterator.micros"},
|
|
288
|
+
{FILE_READ_VERIFY_DB_CHECKSUM_MICROS,
|
|
289
|
+
"rocksdb.file.read.verify.db.checksum.micros"},
|
|
290
|
+
{FILE_READ_VERIFY_FILE_CHECKSUMS_MICROS,
|
|
291
|
+
"rocksdb.file.read.verify.file.checksums.micros"},
|
|
277
292
|
{NUM_SUBCOMPACTIONS_SCHEDULED, "rocksdb.num.subcompactions.scheduled"},
|
|
278
293
|
{BYTES_PER_READ, "rocksdb.bytes.per.read"},
|
|
279
294
|
{BYTES_PER_WRITE, "rocksdb.bytes.per.write"},
|
|
@@ -36,6 +36,16 @@ Env::IOActivity ThreadStatusUtil::TEST_GetExpectedIOActivity(
|
|
|
36
36
|
return Env::IOActivity::kCompaction;
|
|
37
37
|
case ThreadStatus::OperationType::OP_DBOPEN:
|
|
38
38
|
return Env::IOActivity::kDBOpen;
|
|
39
|
+
case ThreadStatus::OperationType::OP_GET:
|
|
40
|
+
return Env::IOActivity::kGet;
|
|
41
|
+
case ThreadStatus::OperationType::OP_MULTIGET:
|
|
42
|
+
return Env::IOActivity::kMultiGet;
|
|
43
|
+
case ThreadStatus::OperationType::OP_DBITERATOR:
|
|
44
|
+
return Env::IOActivity::kDBIterator;
|
|
45
|
+
case ThreadStatus::OperationType::OP_VERIFY_DB_CHECKSUM:
|
|
46
|
+
return Env::IOActivity::kVerifyDBChecksum;
|
|
47
|
+
case ThreadStatus::OperationType::OP_VERIFY_FILE_CHECKSUMS:
|
|
48
|
+
return Env::IOActivity::kVerifyFileChecksums;
|
|
39
49
|
default:
|
|
40
50
|
return Env::IOActivity::kUnknown;
|
|
41
51
|
}
|
|
@@ -173,6 +173,9 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
173
173
|
{offsetof(struct CompressionOptions, use_zstd_dict_trainer),
|
|
174
174
|
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
175
175
|
OptionTypeFlags::kMutable}},
|
|
176
|
+
{"checksum",
|
|
177
|
+
{offsetof(struct CompressionOptions, checksum), OptionType::kBoolean,
|
|
178
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kMutable}},
|
|
176
179
|
};
|
|
177
180
|
|
|
178
181
|
static std::unordered_map<std::string, OptionTypeInfo>
|
|
@@ -507,6 +510,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
507
510
|
{offsetof(struct MutableCFOptions, memtable_protection_bytes_per_key),
|
|
508
511
|
OptionType::kUInt32T, OptionVerificationType::kNormal,
|
|
509
512
|
OptionTypeFlags::kMutable}},
|
|
513
|
+
{"bottommost_file_compaction_delay",
|
|
514
|
+
{offsetof(struct MutableCFOptions, bottommost_file_compaction_delay),
|
|
515
|
+
OptionType::kUInt32T, OptionVerificationType::kNormal,
|
|
516
|
+
OptionTypeFlags::kMutable}},
|
|
510
517
|
{"block_protection_bytes_per_key",
|
|
511
518
|
{offsetof(struct MutableCFOptions, block_protection_bytes_per_key),
|
|
512
519
|
OptionType::kUInt8T, OptionVerificationType::kNormal,
|
|
@@ -552,6 +559,11 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
552
559
|
}
|
|
553
560
|
})},
|
|
554
561
|
// End special case properties
|
|
562
|
+
{"memtable_max_range_deletions",
|
|
563
|
+
{offsetof(struct MutableCFOptions, memtable_max_range_deletions),
|
|
564
|
+
OptionType::kUInt32T, OptionVerificationType::kNormal,
|
|
565
|
+
OptionTypeFlags::kMutable}},
|
|
566
|
+
|
|
555
567
|
};
|
|
556
568
|
|
|
557
569
|
static std::unordered_map<std::string, OptionTypeInfo>
|
|
@@ -595,6 +607,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
595
607
|
{offsetof(struct ImmutableCFOptions, force_consistency_checks),
|
|
596
608
|
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
597
609
|
OptionTypeFlags::kNone}},
|
|
610
|
+
{"default_temperature",
|
|
611
|
+
{offsetof(struct ImmutableCFOptions, default_temperature),
|
|
612
|
+
OptionType::kTemperature, OptionVerificationType::kNormal,
|
|
613
|
+
OptionTypeFlags::kCompareNever}},
|
|
598
614
|
{"preclude_last_level_data_seconds",
|
|
599
615
|
{offsetof(struct ImmutableCFOptions, preclude_last_level_data_seconds),
|
|
600
616
|
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
@@ -941,6 +957,7 @@ ImmutableCFOptions::ImmutableCFOptions(const ColumnFamilyOptions& cf_options)
|
|
|
941
957
|
num_levels(cf_options.num_levels),
|
|
942
958
|
optimize_filters_for_hits(cf_options.optimize_filters_for_hits),
|
|
943
959
|
force_consistency_checks(cf_options.force_consistency_checks),
|
|
960
|
+
default_temperature(cf_options.default_temperature),
|
|
944
961
|
preclude_last_level_data_seconds(
|
|
945
962
|
cf_options.preclude_last_level_data_seconds),
|
|
946
963
|
preserve_internal_time_seconds(cf_options.preserve_internal_time_seconds),
|
|
@@ -1112,6 +1129,8 @@ void MutableCFOptions::Dump(Logger* log) const {
|
|
|
1112
1129
|
ROCKS_LOG_INFO(log,
|
|
1113
1130
|
" experimental_mempurge_threshold: %f",
|
|
1114
1131
|
experimental_mempurge_threshold);
|
|
1132
|
+
ROCKS_LOG_INFO(log, " bottommost_file_compaction_delay: %" PRIu32,
|
|
1133
|
+
bottommost_file_compaction_delay);
|
|
1115
1134
|
|
|
1116
1135
|
// Universal Compaction Options
|
|
1117
1136
|
ROCKS_LOG_INFO(log, "compaction_options_universal.size_ratio : %d",
|
|
@@ -72,6 +72,8 @@ struct ImmutableCFOptions {
|
|
|
72
72
|
|
|
73
73
|
bool force_consistency_checks;
|
|
74
74
|
|
|
75
|
+
Temperature default_temperature;
|
|
76
|
+
|
|
75
77
|
uint64_t preclude_last_level_data_seconds;
|
|
76
78
|
|
|
77
79
|
uint64_t preserve_internal_time_seconds;
|
|
@@ -175,7 +177,10 @@ struct MutableCFOptions {
|
|
|
175
177
|
block_protection_bytes_per_key(options.block_protection_bytes_per_key),
|
|
176
178
|
sample_for_compression(
|
|
177
179
|
options.sample_for_compression), // TODO: is 0 fine here?
|
|
178
|
-
compression_per_level(options.compression_per_level)
|
|
180
|
+
compression_per_level(options.compression_per_level),
|
|
181
|
+
memtable_max_range_deletions(options.memtable_max_range_deletions),
|
|
182
|
+
bottommost_file_compaction_delay(
|
|
183
|
+
options.bottommost_file_compaction_delay) {
|
|
179
184
|
RefreshDerivedOptions(options.num_levels, options.compaction_style);
|
|
180
185
|
}
|
|
181
186
|
|
|
@@ -224,7 +229,8 @@ struct MutableCFOptions {
|
|
|
224
229
|
last_level_temperature(Temperature::kUnknown),
|
|
225
230
|
memtable_protection_bytes_per_key(0),
|
|
226
231
|
block_protection_bytes_per_key(0),
|
|
227
|
-
sample_for_compression(0)
|
|
232
|
+
sample_for_compression(0),
|
|
233
|
+
memtable_max_range_deletions(0) {}
|
|
228
234
|
|
|
229
235
|
explicit MutableCFOptions(const Options& options);
|
|
230
236
|
|
|
@@ -318,6 +324,8 @@ struct MutableCFOptions {
|
|
|
318
324
|
|
|
319
325
|
uint64_t sample_for_compression;
|
|
320
326
|
std::vector<CompressionType> compression_per_level;
|
|
327
|
+
uint32_t memtable_max_range_deletions;
|
|
328
|
+
uint32_t bottommost_file_compaction_delay;
|
|
321
329
|
|
|
322
330
|
// Derived options
|
|
323
331
|
// Per-level target file size.
|
|
@@ -1230,7 +1230,8 @@ class TestSecondaryCache : public SecondaryCache {
|
|
|
1230
1230
|
static const char* kClassName() { return "Test"; }
|
|
1231
1231
|
const char* Name() const override { return kClassName(); }
|
|
1232
1232
|
Status Insert(const Slice& /*key*/, Cache::ObjectPtr /*value*/,
|
|
1233
|
-
const Cache::CacheItemHelper* /*helper
|
|
1233
|
+
const Cache::CacheItemHelper* /*helper*/,
|
|
1234
|
+
bool /*force_insert*/) override {
|
|
1234
1235
|
return Status::NotSupported();
|
|
1235
1236
|
}
|
|
1236
1237
|
std::unique_ptr<SecondaryCacheResultHandle> Lookup(
|
|
@@ -222,6 +222,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
222
222
|
{offsetof(struct ImmutableDBOptions, flush_verify_memtable_count),
|
|
223
223
|
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
224
224
|
OptionTypeFlags::kNone}},
|
|
225
|
+
{"compaction_verify_record_count",
|
|
226
|
+
{offsetof(struct ImmutableDBOptions, compaction_verify_record_count),
|
|
227
|
+
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
228
|
+
OptionTypeFlags::kNone}},
|
|
225
229
|
{"track_and_verify_wals_in_manifest",
|
|
226
230
|
{offsetof(struct ImmutableDBOptions,
|
|
227
231
|
track_and_verify_wals_in_manifest),
|
|
@@ -679,6 +683,7 @@ ImmutableDBOptions::ImmutableDBOptions(const DBOptions& options)
|
|
|
679
683
|
error_if_exists(options.error_if_exists),
|
|
680
684
|
paranoid_checks(options.paranoid_checks),
|
|
681
685
|
flush_verify_memtable_count(options.flush_verify_memtable_count),
|
|
686
|
+
compaction_verify_record_count(options.compaction_verify_record_count),
|
|
682
687
|
track_and_verify_wals_in_manifest(
|
|
683
688
|
options.track_and_verify_wals_in_manifest),
|
|
684
689
|
verify_sst_unique_id_in_manifest(
|
|
@@ -771,6 +776,8 @@ void ImmutableDBOptions::Dump(Logger* log) const {
|
|
|
771
776
|
paranoid_checks);
|
|
772
777
|
ROCKS_LOG_HEADER(log, " Options.flush_verify_memtable_count: %d",
|
|
773
778
|
flush_verify_memtable_count);
|
|
779
|
+
ROCKS_LOG_HEADER(log, " Options.compaction_verify_record_count: %d",
|
|
780
|
+
compaction_verify_record_count);
|
|
774
781
|
ROCKS_LOG_HEADER(log,
|
|
775
782
|
" "
|
|
776
783
|
"Options.track_and_verify_wals_in_manifest: %d",
|
|
@@ -94,6 +94,7 @@ AdvancedColumnFamilyOptions::AdvancedColumnFamilyOptions(const Options& options)
|
|
|
94
94
|
ttl(options.ttl),
|
|
95
95
|
periodic_compaction_seconds(options.periodic_compaction_seconds),
|
|
96
96
|
sample_for_compression(options.sample_for_compression),
|
|
97
|
+
default_temperature(options.default_temperature),
|
|
97
98
|
preclude_last_level_data_seconds(
|
|
98
99
|
options.preclude_last_level_data_seconds),
|
|
99
100
|
preserve_internal_time_seconds(options.preserve_internal_time_seconds),
|
|
@@ -412,6 +413,17 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
|
412
413
|
ROCKS_LOG_HEADER(log,
|
|
413
414
|
" Options.periodic_compaction_seconds: %" PRIu64,
|
|
414
415
|
periodic_compaction_seconds);
|
|
416
|
+
const auto& it_temp = temperature_to_string.find(default_temperature);
|
|
417
|
+
std::string str_default_temperature;
|
|
418
|
+
if (it_temp == temperature_to_string.end()) {
|
|
419
|
+
assert(false);
|
|
420
|
+
str_default_temperature = "unknown_temperature";
|
|
421
|
+
} else {
|
|
422
|
+
str_default_temperature = it_temp->second;
|
|
423
|
+
}
|
|
424
|
+
ROCKS_LOG_HEADER(log,
|
|
425
|
+
" Options.default_temperature: %s",
|
|
426
|
+
str_default_temperature.c_str());
|
|
415
427
|
ROCKS_LOG_HEADER(log, " Options.preclude_last_level_data_seconds: %" PRIu64,
|
|
416
428
|
preclude_last_level_data_seconds);
|
|
417
429
|
ROCKS_LOG_HEADER(log, " Options.preserve_internal_time_seconds: %" PRIu64,
|
|
@@ -448,8 +460,10 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
|
448
460
|
? "flush only"
|
|
449
461
|
: "disabled");
|
|
450
462
|
}
|
|
451
|
-
ROCKS_LOG_HEADER(log, "Options.experimental_mempurge_threshold: %f",
|
|
463
|
+
ROCKS_LOG_HEADER(log, " Options.experimental_mempurge_threshold: %f",
|
|
452
464
|
experimental_mempurge_threshold);
|
|
465
|
+
ROCKS_LOG_HEADER(log, " Options.memtable_max_range_deletions: %d",
|
|
466
|
+
memtable_max_range_deletions);
|
|
453
467
|
} // ColumnFamilyOptions::Dump
|
|
454
468
|
|
|
455
469
|
void Options::Dump(Logger* log) const {
|
|
@@ -60,6 +60,8 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
|
|
|
60
60
|
options.paranoid_checks = immutable_db_options.paranoid_checks;
|
|
61
61
|
options.flush_verify_memtable_count =
|
|
62
62
|
immutable_db_options.flush_verify_memtable_count;
|
|
63
|
+
options.compaction_verify_record_count =
|
|
64
|
+
immutable_db_options.compaction_verify_record_count;
|
|
63
65
|
options.track_and_verify_wals_in_manifest =
|
|
64
66
|
immutable_db_options.track_and_verify_wals_in_manifest;
|
|
65
67
|
options.verify_sst_unique_id_in_manifest =
|
|
@@ -208,6 +210,8 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
|
|
|
208
210
|
moptions.memtable_protection_bytes_per_key;
|
|
209
211
|
cf_opts->block_protection_bytes_per_key =
|
|
210
212
|
moptions.block_protection_bytes_per_key;
|
|
213
|
+
cf_opts->bottommost_file_compaction_delay =
|
|
214
|
+
moptions.bottommost_file_compaction_delay;
|
|
211
215
|
|
|
212
216
|
// Compaction related options
|
|
213
217
|
cf_opts->disable_auto_compactions = moptions.disable_auto_compactions;
|
|
@@ -270,6 +274,7 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
|
|
|
270
274
|
cf_opts->compression_per_level = moptions.compression_per_level;
|
|
271
275
|
cf_opts->last_level_temperature = moptions.last_level_temperature;
|
|
272
276
|
cf_opts->bottommost_temperature = moptions.last_level_temperature;
|
|
277
|
+
cf_opts->memtable_max_range_deletions = moptions.memtable_max_range_deletions;
|
|
273
278
|
}
|
|
274
279
|
|
|
275
280
|
void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
|
|
@@ -312,6 +317,7 @@ void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
|
|
|
312
317
|
ioptions.preserve_internal_time_seconds;
|
|
313
318
|
cf_opts->persist_user_defined_timestamps =
|
|
314
319
|
ioptions.persist_user_defined_timestamps;
|
|
320
|
+
cf_opts->default_temperature = ioptions.default_temperature;
|
|
315
321
|
|
|
316
322
|
// TODO(yhchiang): find some way to handle the following derived options
|
|
317
323
|
// * max_file_size
|
|
@@ -308,6 +308,7 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
308
308
|
"writable_file_max_buffer_size=1048576;"
|
|
309
309
|
"paranoid_checks=true;"
|
|
310
310
|
"flush_verify_memtable_count=true;"
|
|
311
|
+
"compaction_verify_record_count=true;"
|
|
311
312
|
"track_and_verify_wals_in_manifest=true;"
|
|
312
313
|
"verify_sst_unique_id_in_manifest=true;"
|
|
313
314
|
"is_fd_close_on_exec=false;"
|
|
@@ -377,6 +378,8 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
377
378
|
delete[] new_options_ptr;
|
|
378
379
|
}
|
|
379
380
|
|
|
381
|
+
// status check adds CXX flag -fno-elide-constructors which fails this test.
|
|
382
|
+
#ifndef ROCKSDB_ASSERT_STATUS_CHECKED
|
|
380
383
|
// If the test fails, likely a new option is added to ColumnFamilyOptions
|
|
381
384
|
// but it cannot be set through GetColumnFamilyOptionsFromString(), or the
|
|
382
385
|
// test is not updated accordingly.
|
|
@@ -501,11 +504,12 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
501
504
|
"compression=kNoCompression;"
|
|
502
505
|
"compression_opts={max_dict_buffer_bytes=5;use_zstd_dict_trainer=true;"
|
|
503
506
|
"enabled=false;parallel_threads=6;zstd_max_train_bytes=7;strategy=8;max_"
|
|
504
|
-
"dict_bytes=9;level=10;window_bits=11;max_compressed_bytes_per_kb=987;
|
|
507
|
+
"dict_bytes=9;level=10;window_bits=11;max_compressed_bytes_per_kb=987;"
|
|
508
|
+
"checksum=true};"
|
|
505
509
|
"bottommost_compression_opts={max_dict_buffer_bytes=4;use_zstd_dict_"
|
|
506
510
|
"trainer=true;enabled=true;parallel_threads=5;zstd_max_train_bytes=6;"
|
|
507
511
|
"strategy=7;max_dict_bytes=8;level=9;window_bits=10;max_compressed_bytes_"
|
|
508
|
-
"per_kb=876;};"
|
|
512
|
+
"per_kb=876;checksum=true};"
|
|
509
513
|
"bottommost_compression=kDisableCompressionOption;"
|
|
510
514
|
"level0_stop_writes_trigger=33;"
|
|
511
515
|
"num_levels=99;"
|
|
@@ -548,6 +552,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
548
552
|
"prepopulate_blob_cache=kDisable;"
|
|
549
553
|
"bottommost_temperature=kWarm;"
|
|
550
554
|
"last_level_temperature=kWarm;"
|
|
555
|
+
"default_temperature=kHot;"
|
|
551
556
|
"preclude_last_level_data_seconds=86400;"
|
|
552
557
|
"preserve_internal_time_seconds=86400;"
|
|
553
558
|
"compaction_options_fifo={max_table_files_size=3;allow_"
|
|
@@ -556,7 +561,9 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
556
561
|
"blob_cache=1M;"
|
|
557
562
|
"memtable_protection_bytes_per_key=2;"
|
|
558
563
|
"persist_user_defined_timestamps=true;"
|
|
559
|
-
"block_protection_bytes_per_key=1;"
|
|
564
|
+
"block_protection_bytes_per_key=1;"
|
|
565
|
+
"memtable_max_range_deletions=999999;"
|
|
566
|
+
"bottommost_file_compaction_delay=7200;",
|
|
560
567
|
new_options));
|
|
561
568
|
|
|
562
569
|
ASSERT_NE(new_options->blob_cache.get(), nullptr);
|
|
@@ -639,6 +646,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
639
646
|
delete[] mcfo2_ptr;
|
|
640
647
|
delete[] cfo_clean_ptr;
|
|
641
648
|
}
|
|
649
|
+
#endif // !ROCKSDB_ASSERT_STATUS_CHECKED
|
|
642
650
|
#endif // !ROCKSDB_UBSAN_RUN
|
|
643
651
|
#endif // !__clang__
|
|
644
652
|
#endif // OS_LINUX || OS_WIN
|
|
@@ -130,7 +130,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
130
130
|
{"blob_file_starting_level", "1"},
|
|
131
131
|
{"prepopulate_blob_cache", "kDisable"},
|
|
132
132
|
{"last_level_temperature", "kWarm"},
|
|
133
|
+
{"default_temperature", "kHot"},
|
|
133
134
|
{"persist_user_defined_timestamps", "true"},
|
|
135
|
+
{"memtable_max_range_deletions", "0"},
|
|
134
136
|
};
|
|
135
137
|
|
|
136
138
|
std::unordered_map<std::string, std::string> db_options_map = {
|
|
@@ -283,7 +285,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
283
285
|
ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
|
|
284
286
|
ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
|
|
285
287
|
ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
|
|
288
|
+
ASSERT_EQ(new_cf_opt.default_temperature, Temperature::kHot);
|
|
286
289
|
ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
|
|
290
|
+
ASSERT_EQ(new_cf_opt.memtable_max_range_deletions, 0);
|
|
287
291
|
|
|
288
292
|
cf_options_map["write_buffer_size"] = "hello";
|
|
289
293
|
ASSERT_NOK(GetColumnFamilyOptionsFromMap(exact, base_cf_opt, cf_options_map,
|
|
@@ -2337,7 +2341,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2337
2341
|
{"blob_file_starting_level", "1"},
|
|
2338
2342
|
{"prepopulate_blob_cache", "kDisable"},
|
|
2339
2343
|
{"last_level_temperature", "kWarm"},
|
|
2344
|
+
{"default_temperature", "kHot"},
|
|
2340
2345
|
{"persist_user_defined_timestamps", "true"},
|
|
2346
|
+
{"memtable_max_range_deletions", "0"},
|
|
2341
2347
|
};
|
|
2342
2348
|
|
|
2343
2349
|
std::unordered_map<std::string, std::string> db_options_map = {
|
|
@@ -2488,7 +2494,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2488
2494
|
ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
|
|
2489
2495
|
ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
|
|
2490
2496
|
ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
|
|
2497
|
+
ASSERT_EQ(new_cf_opt.default_temperature, Temperature::kHot);
|
|
2491
2498
|
ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
|
|
2499
|
+
ASSERT_EQ(new_cf_opt.memtable_max_range_deletions, 0);
|
|
2492
2500
|
|
|
2493
2501
|
cf_options_map["write_buffer_size"] = "hello";
|
|
2494
2502
|
ASSERT_NOK(GetColumnFamilyOptionsFromMap(cf_config_options, base_cf_opt,
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#endif // OS_WIN
|
|
15
15
|
|
|
16
16
|
#include <cstdint>
|
|
17
|
+
#include <utility>
|
|
17
18
|
|
|
18
19
|
#include "rocksdb/rocksdb_namespace.h"
|
|
19
20
|
|
|
@@ -67,4 +68,23 @@ class MemMapping {
|
|
|
67
68
|
static MemMapping AllocateAnonymous(size_t length, bool huge);
|
|
68
69
|
};
|
|
69
70
|
|
|
71
|
+
// Simple MemMapping wrapper that presents the memory as an array of T.
|
|
72
|
+
// For example,
|
|
73
|
+
// TypedMemMapping<uint64_t> arr = MemMapping::AllocateLazyZeroed(num_bytes);
|
|
74
|
+
template <typename T>
|
|
75
|
+
class TypedMemMapping : public MemMapping {
|
|
76
|
+
public:
|
|
77
|
+
/*implicit*/ TypedMemMapping(MemMapping&& v) noexcept
|
|
78
|
+
: MemMapping(std::move(v)) {}
|
|
79
|
+
TypedMemMapping& operator=(MemMapping&& v) noexcept {
|
|
80
|
+
MemMapping& base = *this;
|
|
81
|
+
base = std::move(v);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
inline T* Get() const { return static_cast<T*>(MemMapping::Get()); }
|
|
85
|
+
inline size_t Count() const { return MemMapping::Length() / sizeof(T); }
|
|
86
|
+
|
|
87
|
+
inline T& operator[](size_t index) const { return Get()[index]; }
|
|
88
|
+
};
|
|
89
|
+
|
|
70
90
|
} // namespace ROCKSDB_NAMESPACE
|