@nxtedition/rocksdb 8.2.0 → 8.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +3 -3
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
- package/deps/rocksdb/rocksdb/Makefile +10 -5
- package/deps/rocksdb/rocksdb/TARGETS +8 -345
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
- package/deps/rocksdb/rocksdb/db/builder.h +2 -2
- package/deps/rocksdb/rocksdb/db/c.cc +76 -5
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
- package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
- package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
- package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
- package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
- package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
- package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
- package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
- package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
- package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
- package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
- package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
- package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
- package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
- package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
- package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
- package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/options.cc +12 -53
- package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
- package/deps/rocksdb/rocksdb/port/lang.h +27 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
- package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
- package/deps/rocksdb/rocksdb/table/format.cc +4 -4
- package/deps/rocksdb/rocksdb/table/format.h +1 -1
- package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
- package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
- package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/compression.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
- package/deps/rocksdb/rocksdb/util/math.h +12 -7
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
- package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- /package/deps/rocksdb/rocksdb/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
4
|
// (found in the LICENSE.Apache file in the root directory).
|
|
5
5
|
//
|
|
6
|
-
#include "
|
|
6
|
+
#include "rocksdb/statistics.h"
|
|
7
7
|
|
|
8
8
|
#include <algorithm>
|
|
9
9
|
#include <cinttypes>
|
|
10
10
|
#include <cstdio>
|
|
11
11
|
|
|
12
|
+
#include "monitoring/statistics_impl.h"
|
|
12
13
|
#include "rocksdb/convenience.h"
|
|
13
|
-
#include "rocksdb/statistics.h"
|
|
14
14
|
#include "rocksdb/utilities/customizable_util.h"
|
|
15
15
|
#include "rocksdb/utilities/options_type.h"
|
|
16
16
|
#include "util/string_util.h"
|
|
@@ -83,6 +83,8 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
|
|
|
83
83
|
{NUMBER_MERGE_FAILURES, "rocksdb.number.merge.failures"},
|
|
84
84
|
{BLOOM_FILTER_PREFIX_CHECKED, "rocksdb.bloom.filter.prefix.checked"},
|
|
85
85
|
{BLOOM_FILTER_PREFIX_USEFUL, "rocksdb.bloom.filter.prefix.useful"},
|
|
86
|
+
{BLOOM_FILTER_PREFIX_TRUE_POSITIVE,
|
|
87
|
+
"rocksdb.bloom.filter.prefix.true.positive"},
|
|
86
88
|
{NUMBER_OF_RESEEKS_IN_ITERATION, "rocksdb.number.reseeks.iteration"},
|
|
87
89
|
{GET_UPDATES_SINCE_CALLS, "rocksdb.getupdatessince.calls"},
|
|
88
90
|
{WAL_FILE_SYNCED, "rocksdb.wal.synced"},
|
|
@@ -204,7 +206,23 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
|
|
|
204
206
|
{LAST_LEVEL_READ_COUNT, "rocksdb.last.level.read.count"},
|
|
205
207
|
{NON_LAST_LEVEL_READ_BYTES, "rocksdb.non.last.level.read.bytes"},
|
|
206
208
|
{NON_LAST_LEVEL_READ_COUNT, "rocksdb.non.last.level.read.count"},
|
|
209
|
+
{LAST_LEVEL_SEEK_FILTERED, "rocksdb.last.level.seek.filtered"},
|
|
210
|
+
{LAST_LEVEL_SEEK_FILTER_MATCH, "rocksdb.last.level.seek.filter.match"},
|
|
211
|
+
{LAST_LEVEL_SEEK_DATA, "rocksdb.last.level.seek.data"},
|
|
212
|
+
{LAST_LEVEL_SEEK_DATA_USEFUL_NO_FILTER,
|
|
213
|
+
"rocksdb.last.level.seek.data.useful.no.filter"},
|
|
214
|
+
{LAST_LEVEL_SEEK_DATA_USEFUL_FILTER_MATCH,
|
|
215
|
+
"rocksdb.last.level.seek.data.useful.filter.match"},
|
|
216
|
+
{NON_LAST_LEVEL_SEEK_FILTERED, "rocksdb.non.last.level.seek.filtered"},
|
|
217
|
+
{NON_LAST_LEVEL_SEEK_FILTER_MATCH,
|
|
218
|
+
"rocksdb.non.last.level.seek.filter.match"},
|
|
219
|
+
{NON_LAST_LEVEL_SEEK_DATA, "rocksdb.non.last.level.seek.data"},
|
|
220
|
+
{NON_LAST_LEVEL_SEEK_DATA_USEFUL_NO_FILTER,
|
|
221
|
+
"rocksdb.non.last.level.seek.data.useful.no.filter"},
|
|
222
|
+
{NON_LAST_LEVEL_SEEK_DATA_USEFUL_FILTER_MATCH,
|
|
223
|
+
"rocksdb.non.last.level.seek.data.useful.filter.match"},
|
|
207
224
|
{BLOCK_CHECKSUM_COMPUTE_COUNT, "rocksdb.block.checksum.compute.count"},
|
|
225
|
+
{BLOCK_CHECKSUM_MISMATCH_COUNT, "rocksdb.block.checksum.mismatch.count"},
|
|
208
226
|
{MULTIGET_COROUTINE_COUNT, "rocksdb.multiget.coroutine.count"},
|
|
209
227
|
{BLOB_DB_CACHE_MISS, "rocksdb.blobdb.cache.miss"},
|
|
210
228
|
{BLOB_DB_CACHE_HIT, "rocksdb.blobdb.cache.hit"},
|
|
@@ -219,6 +237,19 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
|
|
|
219
237
|
{SECONDARY_CACHE_DATA_HITS, "rocksdb.secondary.cache.data.hits"},
|
|
220
238
|
{TABLE_OPEN_PREFETCH_TAIL_MISS, "rocksdb.table.open.prefetch.tail.miss"},
|
|
221
239
|
{TABLE_OPEN_PREFETCH_TAIL_HIT, "rocksdb.table.open.prefetch.tail.hit"},
|
|
240
|
+
{TIMESTAMP_FILTER_TABLE_CHECKED, "rocksdb.timestamp.filter.table.checked"},
|
|
241
|
+
{TIMESTAMP_FILTER_TABLE_FILTERED,
|
|
242
|
+
"rocksdb.timestamp.filter.table.filtered"},
|
|
243
|
+
{BYTES_COMPRESSED_FROM, "rocksdb.bytes.compressed.from"},
|
|
244
|
+
{BYTES_COMPRESSED_TO, "rocksdb.bytes.compressed.to"},
|
|
245
|
+
{BYTES_COMPRESSION_BYPASSED, "rocksdb.bytes.compression_bypassed"},
|
|
246
|
+
{BYTES_COMPRESSION_REJECTED, "rocksdb.bytes.compression.rejected"},
|
|
247
|
+
{NUMBER_BLOCK_COMPRESSION_BYPASSED,
|
|
248
|
+
"rocksdb.number.block_compression_bypassed"},
|
|
249
|
+
{NUMBER_BLOCK_COMPRESSION_REJECTED,
|
|
250
|
+
"rocksdb.number.block_compression_rejected"},
|
|
251
|
+
{BYTES_DECOMPRESSED_FROM, "rocksdb.bytes.decompressed.from"},
|
|
252
|
+
{BYTES_DECOMPRESSED_TO, "rocksdb.bytes.decompressed.to"},
|
|
222
253
|
};
|
|
223
254
|
|
|
224
255
|
const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
|
|
@@ -240,6 +271,9 @@ const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
|
|
|
240
271
|
{DB_SEEK, "rocksdb.db.seek.micros"},
|
|
241
272
|
{WRITE_STALL, "rocksdb.db.write.stall"},
|
|
242
273
|
{SST_READ_MICROS, "rocksdb.sst.read.micros"},
|
|
274
|
+
{FILE_READ_FLUSH_MICROS, "rocksdb.file.read.flush.micros"},
|
|
275
|
+
{FILE_READ_COMPACTION_MICROS, "rocksdb.file.read.compaction.micros"},
|
|
276
|
+
{FILE_READ_DB_OPEN_MICROS, "rocksdb.file.read.db.open.micros"},
|
|
243
277
|
{NUM_SUBCOMPACTIONS_SCHEDULED, "rocksdb.num.subcompactions.scheduled"},
|
|
244
278
|
{BYTES_PER_READ, "rocksdb.bytes.per.read"},
|
|
245
279
|
{BYTES_PER_WRITE, "rocksdb.bytes.per.write"},
|
|
@@ -47,15 +47,19 @@ void ThreadStatusUpdater::ResetThreadStatus() {
|
|
|
47
47
|
SetColumnFamilyInfoKey(nullptr);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
void ThreadStatusUpdater::SetEnableTracking(bool enable_tracking) {
|
|
51
|
+
auto* data = Get();
|
|
52
|
+
if (data == nullptr) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
data->enable_tracking.store(enable_tracking, std::memory_order_relaxed);
|
|
56
|
+
}
|
|
57
|
+
|
|
50
58
|
void ThreadStatusUpdater::SetColumnFamilyInfoKey(const void* cf_key) {
|
|
51
59
|
auto* data = Get();
|
|
52
60
|
if (data == nullptr) {
|
|
53
61
|
return;
|
|
54
62
|
}
|
|
55
|
-
// set the tracking flag based on whether cf_key is non-null or not.
|
|
56
|
-
// If enable_thread_tracking is set to false, the input cf_key
|
|
57
|
-
// would be nullptr.
|
|
58
|
-
data->enable_tracking = (cf_key != nullptr);
|
|
59
63
|
data->cf_key.store(const_cast<void*>(cf_key), std::memory_order_relaxed);
|
|
60
64
|
}
|
|
61
65
|
|
|
@@ -86,6 +90,14 @@ void ThreadStatusUpdater::SetThreadOperation(
|
|
|
86
90
|
}
|
|
87
91
|
}
|
|
88
92
|
|
|
93
|
+
ThreadStatus::OperationType ThreadStatusUpdater::GetThreadOperation() {
|
|
94
|
+
ThreadStatusData* data = GetLocalThreadStatus();
|
|
95
|
+
if (data == nullptr) {
|
|
96
|
+
return ThreadStatus::OperationType::OP_UNKNOWN;
|
|
97
|
+
}
|
|
98
|
+
return data->operation_type.load(std::memory_order_relaxed);
|
|
99
|
+
}
|
|
100
|
+
|
|
89
101
|
void ThreadStatusUpdater::SetThreadOperationProperty(int i, uint64_t value) {
|
|
90
102
|
auto* data = GetLocalThreadStatus();
|
|
91
103
|
if (data == nullptr) {
|
|
@@ -211,9 +223,7 @@ ThreadStatusData* ThreadStatusUpdater::GetLocalThreadStatus() {
|
|
|
211
223
|
if (thread_status_data_ == nullptr) {
|
|
212
224
|
return nullptr;
|
|
213
225
|
}
|
|
214
|
-
if (!thread_status_data_->enable_tracking) {
|
|
215
|
-
assert(thread_status_data_->cf_key.load(std::memory_order_relaxed) ==
|
|
216
|
-
nullptr);
|
|
226
|
+
if (!thread_status_data_->enable_tracking.load(std::memory_order_relaxed)) {
|
|
217
227
|
return nullptr;
|
|
218
228
|
}
|
|
219
229
|
return thread_status_data_;
|
|
@@ -62,7 +62,8 @@ struct ConstantColumnFamilyInfo {
|
|
|
62
62
|
// status of a thread using a set of atomic pointers.
|
|
63
63
|
struct ThreadStatusData {
|
|
64
64
|
#ifdef ROCKSDB_USING_THREAD_STATUS
|
|
65
|
-
explicit ThreadStatusData()
|
|
65
|
+
explicit ThreadStatusData() {
|
|
66
|
+
enable_tracking.store(false);
|
|
66
67
|
thread_id.store(0);
|
|
67
68
|
thread_type.store(ThreadStatus::USER);
|
|
68
69
|
cf_key.store(nullptr);
|
|
@@ -72,13 +73,10 @@ struct ThreadStatusData {
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
// A flag to indicate whether the thread tracking is enabled
|
|
75
|
-
// in the current thread.
|
|
76
|
-
// the associated Options::enable_thread_tracking is set to true
|
|
77
|
-
// in ThreadStatusUtil::SetColumnFamily().
|
|
78
|
-
//
|
|
76
|
+
// in the current thread.
|
|
79
77
|
// If set to false, then SetThreadOperation and SetThreadState
|
|
80
78
|
// will be no-op.
|
|
81
|
-
bool enable_tracking;
|
|
79
|
+
std::atomic<bool> enable_tracking;
|
|
82
80
|
|
|
83
81
|
std::atomic<uint64_t> thread_id;
|
|
84
82
|
std::atomic<ThreadStatus::ThreadType> thread_type;
|
|
@@ -119,8 +117,10 @@ class ThreadStatusUpdater {
|
|
|
119
117
|
// Register the current thread for tracking.
|
|
120
118
|
void RegisterThread(ThreadStatus::ThreadType ttype, uint64_t thread_id);
|
|
121
119
|
|
|
120
|
+
void SetEnableTracking(bool enable_tracking);
|
|
121
|
+
|
|
122
122
|
// Update the column-family info of the current thread by setting
|
|
123
|
-
// its thread-local pointer of
|
|
123
|
+
// its thread-local pointer of ThreadStatusData to the correct entry.
|
|
124
124
|
void SetColumnFamilyInfoKey(const void* cf_key);
|
|
125
125
|
|
|
126
126
|
// returns the column family info key.
|
|
@@ -129,6 +129,9 @@ class ThreadStatusUpdater {
|
|
|
129
129
|
// Update the thread operation of the current thread.
|
|
130
130
|
void SetThreadOperation(const ThreadStatus::OperationType type);
|
|
131
131
|
|
|
132
|
+
// Return the thread operation of the current thread.
|
|
133
|
+
ThreadStatus::OperationType GetThreadOperation();
|
|
134
|
+
|
|
132
135
|
// The start time of the current thread operation. It is in the format
|
|
133
136
|
// of micro-seconds since some fixed point in time.
|
|
134
137
|
void SetOperationStartTime(const uint64_t start_time);
|
|
@@ -33,27 +33,23 @@ void ThreadStatusUtil::UnregisterThread() {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
void ThreadStatusUtil::
|
|
37
|
-
|
|
38
|
-
bool enable_thread_tracking) {
|
|
39
|
-
if (!MaybeInitThreadLocalUpdater(env)) {
|
|
36
|
+
void ThreadStatusUtil::SetEnableTracking(bool enable_tracking) {
|
|
37
|
+
if (thread_updater_local_cache_ == nullptr) {
|
|
40
38
|
return;
|
|
41
39
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// and SetThreadState become no-op.
|
|
49
|
-
thread_updater_local_cache_->SetColumnFamilyInfoKey(nullptr);
|
|
40
|
+
thread_updater_local_cache_->SetEnableTracking(enable_tracking);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
void ThreadStatusUtil::SetColumnFamily(const ColumnFamilyData* cfd) {
|
|
44
|
+
if (thread_updater_local_cache_ == nullptr) {
|
|
45
|
+
return;
|
|
50
46
|
}
|
|
47
|
+
assert(cfd);
|
|
48
|
+
thread_updater_local_cache_->SetColumnFamilyInfoKey(cfd);
|
|
51
49
|
}
|
|
52
50
|
|
|
53
51
|
void ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType op) {
|
|
54
52
|
if (thread_updater_local_cache_ == nullptr) {
|
|
55
|
-
// thread_updater_local_cache_ must be set in SetColumnFamily
|
|
56
|
-
// or other ThreadStatusUtil functions.
|
|
57
53
|
return;
|
|
58
54
|
}
|
|
59
55
|
|
|
@@ -68,6 +64,13 @@ void ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType op) {
|
|
|
68
64
|
thread_updater_local_cache_->SetThreadOperation(op);
|
|
69
65
|
}
|
|
70
66
|
|
|
67
|
+
ThreadStatus::OperationType ThreadStatusUtil::GetThreadOperation() {
|
|
68
|
+
if (thread_updater_local_cache_ == nullptr) {
|
|
69
|
+
return ThreadStatus::OperationType::OP_UNKNOWN;
|
|
70
|
+
}
|
|
71
|
+
return thread_updater_local_cache_->GetThreadOperation();
|
|
72
|
+
}
|
|
73
|
+
|
|
71
74
|
ThreadStatus::OperationStage ThreadStatusUtil::SetThreadOperationStage(
|
|
72
75
|
ThreadStatus::OperationStage stage) {
|
|
73
76
|
if (thread_updater_local_cache_ == nullptr) {
|
|
@@ -172,9 +175,7 @@ bool ThreadStatusUtil::MaybeInitThreadLocalUpdater(const Env* /*env*/) {
|
|
|
172
175
|
return false;
|
|
173
176
|
}
|
|
174
177
|
|
|
175
|
-
void ThreadStatusUtil::SetColumnFamily(const ColumnFamilyData* /*cfd
|
|
176
|
-
const Env* /*env*/,
|
|
177
|
-
bool /*enable_thread_tracking*/) {}
|
|
178
|
+
void ThreadStatusUtil::SetColumnFamily(const ColumnFamilyData* /*cfd*/) {}
|
|
178
179
|
|
|
179
180
|
void ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType /*op*/) {}
|
|
180
181
|
|
|
@@ -189,7 +190,7 @@ void ThreadStatusUtil::SetThreadState(ThreadStatus::StateType /*state*/) {}
|
|
|
189
190
|
void ThreadStatusUtil::NewColumnFamilyInfo(const DB* /*db*/,
|
|
190
191
|
const ColumnFamilyData* /*cfd*/,
|
|
191
192
|
const std::string& /*cf_name*/,
|
|
192
|
-
const Env*
|
|
193
|
+
const Env* env) {}
|
|
193
194
|
|
|
194
195
|
void ThreadStatusUtil::EraseColumnFamilyInfo(const ColumnFamilyData* /*cfd*/) {}
|
|
195
196
|
|
|
@@ -52,13 +52,18 @@ class ThreadStatusUtil {
|
|
|
52
52
|
// the current thread does not hold db_mutex.
|
|
53
53
|
static void EraseDatabaseInfo(const DB* db);
|
|
54
54
|
|
|
55
|
+
static void SetEnableTracking(bool enable_tracking);
|
|
56
|
+
|
|
55
57
|
// Update the thread status to indicate the current thread is doing
|
|
56
58
|
// something related to the specified column family.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
//
|
|
60
|
+
// REQUIRES: cfd != nullptr
|
|
61
|
+
static void SetColumnFamily(const ColumnFamilyData* cfd);
|
|
59
62
|
|
|
60
63
|
static void SetThreadOperation(ThreadStatus::OperationType type);
|
|
61
64
|
|
|
65
|
+
static ThreadStatus::OperationType GetThreadOperation();
|
|
66
|
+
|
|
62
67
|
static ThreadStatus::OperationStage SetThreadOperationStage(
|
|
63
68
|
ThreadStatus::OperationStage stage);
|
|
64
69
|
|
|
@@ -74,6 +79,9 @@ class ThreadStatusUtil {
|
|
|
74
79
|
static void TEST_SetStateDelay(const ThreadStatus::StateType state,
|
|
75
80
|
int micro);
|
|
76
81
|
static void TEST_StateDelay(const ThreadStatus::StateType state);
|
|
82
|
+
|
|
83
|
+
static Env::IOActivity TEST_GetExpectedIOActivity(
|
|
84
|
+
ThreadStatus::OperationType thread_op);
|
|
77
85
|
#endif
|
|
78
86
|
|
|
79
87
|
protected:
|
|
@@ -27,6 +27,20 @@ void ThreadStatusUtil::TEST_StateDelay(const ThreadStatus::StateType state) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
Env::IOActivity ThreadStatusUtil::TEST_GetExpectedIOActivity(
|
|
31
|
+
ThreadStatus::OperationType thread_op) {
|
|
32
|
+
switch (thread_op) {
|
|
33
|
+
case ThreadStatus::OperationType::OP_FLUSH:
|
|
34
|
+
return Env::IOActivity::kFlush;
|
|
35
|
+
case ThreadStatus::OperationType::OP_COMPACTION:
|
|
36
|
+
return Env::IOActivity::kCompaction;
|
|
37
|
+
case ThreadStatus::OperationType::OP_DBOPEN:
|
|
38
|
+
return Env::IOActivity::kDBOpen;
|
|
39
|
+
default:
|
|
40
|
+
return Env::IOActivity::kUnknown;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
30
44
|
#endif // !NDEBUG
|
|
31
45
|
|
|
32
46
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -147,6 +147,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
147
147
|
{"strategy",
|
|
148
148
|
{offsetof(struct CompressionOptions, strategy), OptionType::kInt,
|
|
149
149
|
OptionVerificationType::kNormal, OptionTypeFlags::kMutable}},
|
|
150
|
+
{"max_compressed_bytes_per_kb",
|
|
151
|
+
{offsetof(struct CompressionOptions, max_compressed_bytes_per_kb),
|
|
152
|
+
OptionType::kInt, OptionVerificationType::kNormal,
|
|
153
|
+
OptionTypeFlags::kMutable}},
|
|
150
154
|
{"max_dict_bytes",
|
|
151
155
|
{offsetof(struct CompressionOptions, max_dict_bytes), OptionType::kInt,
|
|
152
156
|
OptionVerificationType::kNormal, OptionTypeFlags::kMutable}},
|
|
@@ -171,6 +175,17 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
171
175
|
OptionTypeFlags::kMutable}},
|
|
172
176
|
};
|
|
173
177
|
|
|
178
|
+
static std::unordered_map<std::string, OptionTypeInfo>
|
|
179
|
+
file_temperature_age_type_info = {
|
|
180
|
+
{"temperature",
|
|
181
|
+
{offsetof(struct FileTemperatureAge, temperature),
|
|
182
|
+
OptionType::kTemperature, OptionVerificationType::kNormal,
|
|
183
|
+
OptionTypeFlags::kMutable}},
|
|
184
|
+
{"age",
|
|
185
|
+
{offsetof(struct FileTemperatureAge, age), OptionType::kUInt64T,
|
|
186
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kMutable}},
|
|
187
|
+
};
|
|
188
|
+
|
|
174
189
|
static std::unordered_map<std::string, OptionTypeInfo>
|
|
175
190
|
fifo_compaction_options_type_info = {
|
|
176
191
|
{"max_table_files_size",
|
|
@@ -188,7 +203,15 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
188
203
|
{offsetof(struct CompactionOptionsFIFO, allow_compaction),
|
|
189
204
|
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
190
205
|
OptionTypeFlags::kMutable}},
|
|
191
|
-
|
|
206
|
+
{"file_temperature_age_thresholds",
|
|
207
|
+
OptionTypeInfo::Vector<struct FileTemperatureAge>(
|
|
208
|
+
offsetof(struct CompactionOptionsFIFO,
|
|
209
|
+
file_temperature_age_thresholds),
|
|
210
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kMutable,
|
|
211
|
+
OptionTypeInfo::Struct("file_temperature_age_thresholds",
|
|
212
|
+
&file_temperature_age_type_info, 0,
|
|
213
|
+
OptionVerificationType::kNormal,
|
|
214
|
+
OptionTypeFlags::kMutable))}};
|
|
192
215
|
|
|
193
216
|
static std::unordered_map<std::string, OptionTypeInfo>
|
|
194
217
|
universal_compaction_options_type_info = {
|
|
@@ -484,6 +507,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
484
507
|
{offsetof(struct MutableCFOptions, memtable_protection_bytes_per_key),
|
|
485
508
|
OptionType::kUInt32T, OptionVerificationType::kNormal,
|
|
486
509
|
OptionTypeFlags::kMutable}},
|
|
510
|
+
{"block_protection_bytes_per_key",
|
|
511
|
+
{offsetof(struct MutableCFOptions, block_protection_bytes_per_key),
|
|
512
|
+
OptionType::kUInt8T, OptionVerificationType::kNormal,
|
|
513
|
+
OptionTypeFlags::kMutable}},
|
|
487
514
|
{kOptNameCompOpts,
|
|
488
515
|
OptionTypeInfo::Struct(
|
|
489
516
|
kOptNameCompOpts, &compression_options_type_info,
|
|
@@ -775,6 +802,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
|
|
|
775
802
|
auto* cache = static_cast<std::shared_ptr<Cache>*>(addr);
|
|
776
803
|
return Cache::CreateFromString(opts, value, cache);
|
|
777
804
|
}}},
|
|
805
|
+
{"persist_user_defined_timestamps",
|
|
806
|
+
{offsetof(struct ImmutableCFOptions, persist_user_defined_timestamps),
|
|
807
|
+
OptionType::kBoolean, OptionVerificationType::kNormal,
|
|
808
|
+
OptionTypeFlags::kCompareLoose}},
|
|
778
809
|
};
|
|
779
810
|
|
|
780
811
|
const std::string OptionsHelper::kCFOptionsName = "ColumnFamilyOptions";
|
|
@@ -918,7 +949,9 @@ ImmutableCFOptions::ImmutableCFOptions(const ColumnFamilyOptions& cf_options)
|
|
|
918
949
|
cf_paths(cf_options.cf_paths),
|
|
919
950
|
compaction_thread_limiter(cf_options.compaction_thread_limiter),
|
|
920
951
|
sst_partitioner_factory(cf_options.sst_partitioner_factory),
|
|
921
|
-
blob_cache(cf_options.blob_cache)
|
|
952
|
+
blob_cache(cf_options.blob_cache),
|
|
953
|
+
persist_user_defined_timestamps(
|
|
954
|
+
cf_options.persist_user_defined_timestamps) {}
|
|
922
955
|
|
|
923
956
|
ImmutableOptions::ImmutableOptions() : ImmutableOptions(Options()) {}
|
|
924
957
|
|
|
@@ -86,6 +86,8 @@ struct ImmutableCFOptions {
|
|
|
86
86
|
std::shared_ptr<SstPartitionerFactory> sst_partitioner_factory;
|
|
87
87
|
|
|
88
88
|
std::shared_ptr<Cache> blob_cache;
|
|
89
|
+
|
|
90
|
+
bool persist_user_defined_timestamps;
|
|
89
91
|
};
|
|
90
92
|
|
|
91
93
|
struct ImmutableOptions : public ImmutableDBOptions, public ImmutableCFOptions {
|
|
@@ -170,6 +172,7 @@ struct MutableCFOptions {
|
|
|
170
172
|
: options.last_level_temperature),
|
|
171
173
|
memtable_protection_bytes_per_key(
|
|
172
174
|
options.memtable_protection_bytes_per_key),
|
|
175
|
+
block_protection_bytes_per_key(options.block_protection_bytes_per_key),
|
|
173
176
|
sample_for_compression(
|
|
174
177
|
options.sample_for_compression), // TODO: is 0 fine here?
|
|
175
178
|
compression_per_level(options.compression_per_level) {
|
|
@@ -220,6 +223,7 @@ struct MutableCFOptions {
|
|
|
220
223
|
bottommost_compression(kDisableCompressionOption),
|
|
221
224
|
last_level_temperature(Temperature::kUnknown),
|
|
222
225
|
memtable_protection_bytes_per_key(0),
|
|
226
|
+
block_protection_bytes_per_key(0),
|
|
223
227
|
sample_for_compression(0) {}
|
|
224
228
|
|
|
225
229
|
explicit MutableCFOptions(const Options& options);
|
|
@@ -310,6 +314,7 @@ struct MutableCFOptions {
|
|
|
310
314
|
CompressionOptions bottommost_compression_opts;
|
|
311
315
|
Temperature last_level_temperature;
|
|
312
316
|
uint32_t memtable_protection_bytes_per_key;
|
|
317
|
+
uint8_t block_protection_bytes_per_key;
|
|
313
318
|
|
|
314
319
|
uint64_t sample_for_compression;
|
|
315
320
|
std::vector<CompressionType> compression_per_level;
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
#include "rocksdb/utilities/object_registry.h"
|
|
36
36
|
#include "rocksdb/utilities/options_type.h"
|
|
37
37
|
#include "table/block_based/filter_policy_internal.h"
|
|
38
|
-
#include "table/block_based/
|
|
38
|
+
#include "table/block_based/flush_block_policy_impl.h"
|
|
39
39
|
#include "table/mock_table.h"
|
|
40
40
|
#include "test_util/mock_time_env.h"
|
|
41
41
|
#include "test_util/testharness.h"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#include <limits>
|
|
14
14
|
|
|
15
15
|
#include "logging/logging.h"
|
|
16
|
-
#include "monitoring/
|
|
16
|
+
#include "monitoring/statistics_impl.h"
|
|
17
17
|
#include "options/db_options.h"
|
|
18
18
|
#include "options/options_helper.h"
|
|
19
19
|
#include "rocksdb/cache.h"
|
|
@@ -109,7 +109,8 @@ AdvancedColumnFamilyOptions::AdvancedColumnFamilyOptions(const Options& options)
|
|
|
109
109
|
blob_compaction_readahead_size(options.blob_compaction_readahead_size),
|
|
110
110
|
blob_file_starting_level(options.blob_file_starting_level),
|
|
111
111
|
blob_cache(options.blob_cache),
|
|
112
|
-
prepopulate_blob_cache(options.prepopulate_blob_cache)
|
|
112
|
+
prepopulate_blob_cache(options.prepopulate_blob_cache),
|
|
113
|
+
persist_user_defined_timestamps(options.persist_user_defined_timestamps) {
|
|
113
114
|
assert(memtable_factory.get() != nullptr);
|
|
114
115
|
if (max_bytes_for_level_multiplier_additional.size() <
|
|
115
116
|
static_cast<unsigned int>(num_levels)) {
|
|
@@ -137,6 +138,11 @@ void DBOptions::Dump(Logger* log) const {
|
|
|
137
138
|
void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
138
139
|
ROCKS_LOG_HEADER(log, " Options.comparator: %s",
|
|
139
140
|
comparator->Name());
|
|
141
|
+
if (comparator->timestamp_size() > 0) {
|
|
142
|
+
ROCKS_LOG_HEADER(
|
|
143
|
+
log, " Options.persist_user_defined_timestamps: %s",
|
|
144
|
+
persist_user_defined_timestamps ? "true" : "false");
|
|
145
|
+
}
|
|
140
146
|
ROCKS_LOG_HEADER(log, " Options.merge_operator: %s",
|
|
141
147
|
merge_operator ? merge_operator->Name() : "None");
|
|
142
148
|
ROCKS_LOG_HEADER(log, " Options.compaction_filter: %s",
|
|
@@ -677,57 +683,10 @@ DBOptions* DBOptions::IncreaseParallelism(int total_threads) {
|
|
|
677
683
|
return this;
|
|
678
684
|
}
|
|
679
685
|
|
|
686
|
+
ReadOptions::ReadOptions(bool _verify_checksums, bool _fill_cache)
|
|
687
|
+
: verify_checksums(_verify_checksums), fill_cache(_fill_cache) {}
|
|
680
688
|
|
|
681
|
-
ReadOptions::ReadOptions()
|
|
682
|
-
:
|
|
683
|
-
iterate_lower_bound(nullptr),
|
|
684
|
-
iterate_upper_bound(nullptr),
|
|
685
|
-
readahead_size(0),
|
|
686
|
-
max_skippable_internal_keys(0),
|
|
687
|
-
read_tier(kReadAllTier),
|
|
688
|
-
verify_checksums(true),
|
|
689
|
-
fill_cache(true),
|
|
690
|
-
tailing(false),
|
|
691
|
-
managed(false),
|
|
692
|
-
total_order_seek(false),
|
|
693
|
-
auto_prefix_mode(false),
|
|
694
|
-
prefix_same_as_start(false),
|
|
695
|
-
pin_data(false),
|
|
696
|
-
background_purge_on_iterator_cleanup(false),
|
|
697
|
-
ignore_range_deletions(false),
|
|
698
|
-
timestamp(nullptr),
|
|
699
|
-
iter_start_ts(nullptr),
|
|
700
|
-
deadline(std::chrono::microseconds::zero()),
|
|
701
|
-
io_timeout(std::chrono::microseconds::zero()),
|
|
702
|
-
value_size_soft_limit(std::numeric_limits<uint64_t>::max()),
|
|
703
|
-
adaptive_readahead(false),
|
|
704
|
-
async_io(false),
|
|
705
|
-
optimize_multiget_for_io(true) {}
|
|
706
|
-
|
|
707
|
-
ReadOptions::ReadOptions(bool cksum, bool cache)
|
|
708
|
-
: snapshot(nullptr),
|
|
709
|
-
iterate_lower_bound(nullptr),
|
|
710
|
-
iterate_upper_bound(nullptr),
|
|
711
|
-
readahead_size(0),
|
|
712
|
-
max_skippable_internal_keys(0),
|
|
713
|
-
read_tier(kReadAllTier),
|
|
714
|
-
verify_checksums(cksum),
|
|
715
|
-
fill_cache(cache),
|
|
716
|
-
tailing(false),
|
|
717
|
-
managed(false),
|
|
718
|
-
total_order_seek(false),
|
|
719
|
-
auto_prefix_mode(false),
|
|
720
|
-
prefix_same_as_start(false),
|
|
721
|
-
pin_data(false),
|
|
722
|
-
background_purge_on_iterator_cleanup(false),
|
|
723
|
-
ignore_range_deletions(false),
|
|
724
|
-
timestamp(nullptr),
|
|
725
|
-
iter_start_ts(nullptr),
|
|
726
|
-
deadline(std::chrono::microseconds::zero()),
|
|
727
|
-
io_timeout(std::chrono::microseconds::zero()),
|
|
728
|
-
value_size_soft_limit(std::numeric_limits<uint64_t>::max()),
|
|
729
|
-
adaptive_readahead(false),
|
|
730
|
-
async_io(false),
|
|
731
|
-
optimize_multiget_for_io(true) {}
|
|
689
|
+
ReadOptions::ReadOptions(Env::IOActivity _io_activity)
|
|
690
|
+
: io_activity(_io_activity) {}
|
|
732
691
|
|
|
733
692
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -206,6 +206,8 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
|
|
|
206
206
|
moptions.experimental_mempurge_threshold;
|
|
207
207
|
cf_opts->memtable_protection_bytes_per_key =
|
|
208
208
|
moptions.memtable_protection_bytes_per_key;
|
|
209
|
+
cf_opts->block_protection_bytes_per_key =
|
|
210
|
+
moptions.block_protection_bytes_per_key;
|
|
209
211
|
|
|
210
212
|
// Compaction related options
|
|
211
213
|
cf_opts->disable_auto_compactions = moptions.disable_auto_compactions;
|
|
@@ -308,6 +310,8 @@ void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
|
|
|
308
310
|
ioptions.preclude_last_level_data_seconds;
|
|
309
311
|
cf_opts->preserve_internal_time_seconds =
|
|
310
312
|
ioptions.preserve_internal_time_seconds;
|
|
313
|
+
cf_opts->persist_user_defined_timestamps =
|
|
314
|
+
ioptions.persist_user_defined_timestamps;
|
|
311
315
|
|
|
312
316
|
// TODO(yhchiang): find some way to handle the following derived options
|
|
313
317
|
// * max_file_size
|
|
@@ -75,6 +75,7 @@ Status PersistRocksDBOptions(const ConfigOptions& config_options_in,
|
|
|
75
75
|
std::unique_ptr<WritableFileWriter> writable;
|
|
76
76
|
writable.reset(new WritableFileWriter(std::move(wf), file_name, EnvOptions(),
|
|
77
77
|
nullptr /* statistics */));
|
|
78
|
+
TEST_SYNC_POINT("PersistRocksDBOptions:create");
|
|
78
79
|
|
|
79
80
|
std::string options_file_content;
|
|
80
81
|
|
|
@@ -135,6 +136,7 @@ Status PersistRocksDBOptions(const ConfigOptions& config_options_in,
|
|
|
135
136
|
if (s.ok()) {
|
|
136
137
|
s = writable->Close();
|
|
137
138
|
}
|
|
139
|
+
TEST_SYNC_POINT("PersistRocksDBOptions:written");
|
|
138
140
|
if (s.ok()) {
|
|
139
141
|
return RocksDBOptionsParser::VerifyRocksDBOptionsFromFile(
|
|
140
142
|
config_options, db_opt, cf_names, cf_opts, file_name, fs);
|
|
@@ -679,6 +681,15 @@ Status RocksDBOptionsParser::VerifyCFOptions(
|
|
|
679
681
|
Status s = base_config->GetOption(config_options, mismatch, &base_value);
|
|
680
682
|
if (s.ok()) {
|
|
681
683
|
s = file_config->GetOption(config_options, mismatch, &file_value);
|
|
684
|
+
// In file_opt, certain options like MergeOperator may be nullptr due to
|
|
685
|
+
// factor methods not available. So we use opt_map to get
|
|
686
|
+
// option value to use in the error message below.
|
|
687
|
+
if (s.ok() && file_value == kNullptrString && opt_map) {
|
|
688
|
+
auto const& opt_val_str = (opt_map->find(mismatch));
|
|
689
|
+
if (opt_val_str != opt_map->end()) {
|
|
690
|
+
file_value = opt_val_str->second;
|
|
691
|
+
}
|
|
692
|
+
}
|
|
682
693
|
}
|
|
683
694
|
int offset = snprintf(buffer, sizeof(buffer),
|
|
684
695
|
"[RocksDBOptionsParser]: "
|
|
@@ -400,6 +400,8 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
400
400
|
{offsetof(struct ColumnFamilyOptions,
|
|
401
401
|
max_bytes_for_level_multiplier_additional),
|
|
402
402
|
sizeof(std::vector<int>)},
|
|
403
|
+
{offsetof(struct ColumnFamilyOptions, compaction_options_fifo),
|
|
404
|
+
sizeof(struct CompactionOptionsFIFO)},
|
|
403
405
|
{offsetof(struct ColumnFamilyOptions, memtable_factory),
|
|
404
406
|
sizeof(std::shared_ptr<MemTableRepFactory>)},
|
|
405
407
|
{offsetof(struct ColumnFamilyOptions,
|
|
@@ -497,8 +499,13 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
497
499
|
"max_bytes_for_level_multiplier=60;"
|
|
498
500
|
"memtable_factory=SkipListFactory;"
|
|
499
501
|
"compression=kNoCompression;"
|
|
500
|
-
"compression_opts=5
|
|
501
|
-
"
|
|
502
|
+
"compression_opts={max_dict_buffer_bytes=5;use_zstd_dict_trainer=true;"
|
|
503
|
+
"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;};"
|
|
505
|
+
"bottommost_compression_opts={max_dict_buffer_bytes=4;use_zstd_dict_"
|
|
506
|
+
"trainer=true;enabled=true;parallel_threads=5;zstd_max_train_bytes=6;"
|
|
507
|
+
"strategy=7;max_dict_bytes=8;level=9;window_bits=10;max_compressed_bytes_"
|
|
508
|
+
"per_kb=876;};"
|
|
502
509
|
"bottommost_compression=kDisableCompressionOption;"
|
|
503
510
|
"level0_stop_writes_trigger=33;"
|
|
504
511
|
"num_levels=99;"
|
|
@@ -544,9 +551,12 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
544
551
|
"preclude_last_level_data_seconds=86400;"
|
|
545
552
|
"preserve_internal_time_seconds=86400;"
|
|
546
553
|
"compaction_options_fifo={max_table_files_size=3;allow_"
|
|
547
|
-
"compaction=
|
|
554
|
+
"compaction=true;age_for_warm=0;file_temperature_age_thresholds={{"
|
|
555
|
+
"temperature=kCold;age=12345}};};"
|
|
548
556
|
"blob_cache=1M;"
|
|
549
|
-
"memtable_protection_bytes_per_key=2;"
|
|
557
|
+
"memtable_protection_bytes_per_key=2;"
|
|
558
|
+
"persist_user_defined_timestamps=true;"
|
|
559
|
+
"block_protection_bytes_per_key=1;",
|
|
550
560
|
new_options));
|
|
551
561
|
|
|
552
562
|
ASSERT_NE(new_options->blob_cache.get(), nullptr);
|
|
@@ -555,6 +565,22 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
555
565
|
NumUnsetBytes(new_options_ptr, sizeof(ColumnFamilyOptions),
|
|
556
566
|
kColumnFamilyOptionsExcluded));
|
|
557
567
|
|
|
568
|
+
// Custom verification since compaction_options_fifo was in
|
|
569
|
+
// kColumnFamilyOptionsExcluded
|
|
570
|
+
ASSERT_EQ(new_options->compaction_options_fifo.max_table_files_size, 3);
|
|
571
|
+
ASSERT_EQ(new_options->compaction_options_fifo.allow_compaction, true);
|
|
572
|
+
ASSERT_EQ(new_options->compaction_options_fifo.file_temperature_age_thresholds
|
|
573
|
+
.size(),
|
|
574
|
+
1);
|
|
575
|
+
ASSERT_EQ(
|
|
576
|
+
new_options->compaction_options_fifo.file_temperature_age_thresholds[0]
|
|
577
|
+
.temperature,
|
|
578
|
+
Temperature::kCold);
|
|
579
|
+
ASSERT_EQ(
|
|
580
|
+
new_options->compaction_options_fifo.file_temperature_age_thresholds[0]
|
|
581
|
+
.age,
|
|
582
|
+
12345);
|
|
583
|
+
|
|
558
584
|
ColumnFamilyOptions rnd_filled_options = *new_options;
|
|
559
585
|
|
|
560
586
|
options->~ColumnFamilyOptions();
|
|
@@ -571,6 +597,8 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
571
597
|
{offsetof(struct MutableCFOptions,
|
|
572
598
|
max_bytes_for_level_multiplier_additional),
|
|
573
599
|
sizeof(std::vector<int>)},
|
|
600
|
+
{offsetof(struct MutableCFOptions, compaction_options_fifo),
|
|
601
|
+
sizeof(struct CompactionOptionsFIFO)},
|
|
574
602
|
{offsetof(struct MutableCFOptions, compression_per_level),
|
|
575
603
|
sizeof(std::vector<CompressionType>)},
|
|
576
604
|
{offsetof(struct MutableCFOptions, max_file_size),
|