@nxtedition/rocksdb 7.1.30 → 7.1.32
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 +2 -2
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +15 -23
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +0 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +4 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -1
- package/deps/rocksdb/rocksdb/crash_test.mk +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +15 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +78 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +32 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +8 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +47 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +105 -166
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +46 -15
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +47 -26
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +17 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +11 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +12 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +337 -103
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +43 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +524 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +164 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +5 -7
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +11 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_test2.cc +1 -1
- package/deps/rocksdb/rocksdb/db/memtable.cc +16 -23
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +30 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.h +9 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +29 -9
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +10 -7
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +12 -8
- package/deps/rocksdb/rocksdb/db/version_set.cc +11 -6
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +59 -53
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +3 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +1 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +0 -2
- package/deps/rocksdb/rocksdb/env/env.cc +16 -19
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +20 -20
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +62 -60
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_test.cc +179 -176
- package/deps/rocksdb/rocksdb/env/file_system.cc +3 -4
- package/deps/rocksdb/rocksdb/env/io_posix.cc +3 -2
- package/deps/rocksdb/rocksdb/env/io_posix.h +1 -2
- package/deps/rocksdb/rocksdb/env/mock_env.h +1 -0
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +4 -4
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +6 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +2 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +6 -7
- package/deps/rocksdb/rocksdb/file/file_util.cc +1 -1
- package/deps/rocksdb/rocksdb/file/filename.cc +16 -17
- package/deps/rocksdb/rocksdb/file/filename.h +4 -5
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +492 -496
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +1 -3
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +1 -0
- package/deps/rocksdb/rocksdb/file/read_write_util.h +1 -0
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +6 -8
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/block_cache_trace_writer.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +166 -167
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +12 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +0 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +1 -1
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +3 -3
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +3 -7
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +20 -23
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -0
- package/deps/rocksdb/rocksdb/logging/event_logger.cc +1 -3
- package/deps/rocksdb/rocksdb/logging/event_logger.h +4 -5
- package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +2 -1
- package/deps/rocksdb/rocksdb/logging/log_buffer.cc +2 -3
- package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -2
- package/deps/rocksdb/rocksdb/logging/logging.h +3 -3
- package/deps/rocksdb/rocksdb/memory/allocator.h +1 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +2 -0
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -0
- package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +17 -20
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +13 -15
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +11 -10
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +3 -3
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +30 -28
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +4 -6
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +73 -70
- package/deps/rocksdb/rocksdb/memtable/stl_wrappers.h +1 -1
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +21 -23
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +24 -38
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +10 -17
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +19 -19
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +22 -30
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +4 -6
- package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +4 -12
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +2 -3
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_test.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +12 -14
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +2 -3
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -3
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +7 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +12 -22
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +7 -10
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/port/lang.h +3 -1
- package/deps/rocksdb/rocksdb/port/likely.h +2 -2
- package/deps/rocksdb/rocksdb/port/mmap.h +2 -2
- package/deps/rocksdb/rocksdb/port/port_dirent.h +2 -2
- package/deps/rocksdb/rocksdb/port/port_posix.cc +32 -27
- package/deps/rocksdb/rocksdb/port/port_posix.h +31 -30
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +1 -1
- package/deps/rocksdb/rocksdb/port/sys_time.h +1 -1
- package/deps/rocksdb/rocksdb/port/win/io_win.h +6 -7
- package/deps/rocksdb/rocksdb/port/win/port_win.h +12 -20
- package/deps/rocksdb/rocksdb/port/win/win_jemalloc.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -5
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -4
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +30 -49
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +5 -5
- package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +51 -62
- package/deps/rocksdb/rocksdb/port/win/xpress_win.h +2 -2
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +4 -3
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +28 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -3
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +1 -0
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -6
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +1 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -6
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +90 -80
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +5 -4
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +63 -69
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +58 -57
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +3 -3
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +35 -30
- package/deps/rocksdb/rocksdb/table/get_context.cc +16 -10
- package/deps/rocksdb/rocksdb/table/iter_heap.h +2 -0
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +1 -3
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +31 -16
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +6 -6
- package/deps/rocksdb/rocksdb/table/multiget_context.h +5 -6
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +1 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.cc +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +7 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +3 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +2 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +4 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +2 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +10 -21
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +14 -12
- package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +2 -5
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -3
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +0 -6
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +0 -33
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -6
- package/deps/rocksdb/rocksdb/table/table_properties.cc +24 -37
- package/deps/rocksdb/rocksdb/table/table_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +9 -8
- package/deps/rocksdb/rocksdb/table/table_test.cc +77 -82
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +8 -18
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +2 -2
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +13 -18
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +1 -2
- package/deps/rocksdb/rocksdb/test_util/testutil.h +6 -7
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +3 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +1 -1
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -7
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +3 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +296 -314
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +6 -6
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +57 -64
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +6 -5
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +1 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +10 -10
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +6 -3
- package/deps/rocksdb/rocksdb/util/aligned_buffer.h +12 -31
- package/deps/rocksdb/rocksdb/util/autovector.h +3 -6
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +12 -12
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +8 -12
- package/deps/rocksdb/rocksdb/util/coding.cc +1 -0
- package/deps/rocksdb/rocksdb/util/coding.h +17 -15
- package/deps/rocksdb/rocksdb/util/coding_test.cc +14 -15
- package/deps/rocksdb/rocksdb/util/comparator.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +6 -3
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.cc +5 -8
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +202 -297
- package/deps/rocksdb/rocksdb/util/crc32c.h +2 -3
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +2 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +39 -54
- package/deps/rocksdb/rocksdb/util/defer.h +2 -1
- package/deps/rocksdb/rocksdb/util/defer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +2 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.cc +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +24 -29
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +4 -4
- package/deps/rocksdb/rocksdb/util/hash_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/heap.h +5 -4
- package/deps/rocksdb/rocksdb/util/heap_test.cc +15 -25
- package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
- package/deps/rocksdb/rocksdb/util/murmurhash.cc +7 -2
- package/deps/rocksdb/rocksdb/util/murmurhash.h +4 -3
- package/deps/rocksdb/rocksdb/util/mutexlock.h +5 -11
- package/deps/rocksdb/rocksdb/util/random.cc +1 -0
- package/deps/rocksdb/rocksdb/util/random.h +2 -4
- package/deps/rocksdb/rocksdb/util/random_test.cc +2 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +4 -3
- package/deps/rocksdb/rocksdb/util/slice.cc +1 -1
- package/deps/rocksdb/rocksdb/util/slice_test.cc +1 -2
- package/deps/rocksdb/rocksdb/util/status.cc +2 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +64 -76
- package/deps/rocksdb/rocksdb/util/thread_local.cc +18 -32
- package/deps/rocksdb/rocksdb/util/thread_local.h +2 -3
- package/deps/rocksdb/rocksdb/util/thread_operation.h +34 -43
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +54 -73
- package/deps/rocksdb/rocksdb/util/threadpool_imp.h +18 -18
- package/deps/rocksdb/rocksdb/util/timer.h +4 -9
- package/deps/rocksdb/rocksdb/util/timer_queue.h +1 -0
- package/deps/rocksdb/rocksdb/util/timer_queue_test.cc +1 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +1 -2
- package/deps/rocksdb/rocksdb/util/xxhash.h +7 -4
- package/deps/rocksdb/rocksdb/util/xxph3.h +3 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +16 -24
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +106 -104
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +6 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +11 -15
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +12 -12
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +56 -55
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +91 -74
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +17 -34
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +21 -45
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +74 -97
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +17 -18
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +19 -19
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +19 -18
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +7 -10
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +10 -15
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +9 -13
- package/deps/rocksdb/rocksdb/utilities/leveldb_options/leveldb_options.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.cc +7 -9
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +4 -5
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +2 -4
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +39 -50
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +4 -3
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +5 -7
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +5 -4
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +3 -6
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +18 -13
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +1 -3
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +15 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +14 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +4 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +5 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +2 -6
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +80 -79
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +9 -17
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -186,7 +186,7 @@ class Constructor {
|
|
|
186
186
|
public:
|
|
187
187
|
explicit Constructor(const Comparator* cmp)
|
|
188
188
|
: data_(stl_wrappers::LessOfComparator(cmp)) {}
|
|
189
|
-
virtual ~Constructor() {
|
|
189
|
+
virtual ~Constructor() {}
|
|
190
190
|
|
|
191
191
|
void Add(const std::string& key, const Slice& value) {
|
|
192
192
|
data_[key] = value.ToString();
|
|
@@ -492,7 +492,7 @@ class TableConstructor : public Constructor {
|
|
|
492
492
|
};
|
|
493
493
|
uint64_t TableConstructor::cur_file_num_ = 1;
|
|
494
494
|
|
|
495
|
-
class MemTableConstructor: public Constructor {
|
|
495
|
+
class MemTableConstructor : public Constructor {
|
|
496
496
|
public:
|
|
497
497
|
explicit MemTableConstructor(const Comparator* cmp, WriteBufferManager* wb)
|
|
498
498
|
: Constructor(cmp),
|
|
@@ -566,11 +566,10 @@ class InternalIteratorFromIterator : public InternalIterator {
|
|
|
566
566
|
std::unique_ptr<Iterator> it_;
|
|
567
567
|
};
|
|
568
568
|
|
|
569
|
-
class DBConstructor: public Constructor {
|
|
569
|
+
class DBConstructor : public Constructor {
|
|
570
570
|
public:
|
|
571
571
|
explicit DBConstructor(const Comparator* cmp)
|
|
572
|
-
: Constructor(cmp),
|
|
573
|
-
comparator_(cmp) {
|
|
572
|
+
: Constructor(cmp), comparator_(cmp) {
|
|
574
573
|
db_ = nullptr;
|
|
575
574
|
NewDB();
|
|
576
575
|
}
|
|
@@ -654,15 +653,15 @@ std::ostream& operator<<(std::ostream& os, const TestArgs& args) {
|
|
|
654
653
|
|
|
655
654
|
static std::vector<TestArgs> GenerateArgList() {
|
|
656
655
|
std::vector<TestArgs> test_args;
|
|
657
|
-
std::vector<TestType> test_types = {
|
|
658
|
-
BLOCK_BASED_TABLE_TEST,
|
|
656
|
+
std::vector<TestType> test_types = {BLOCK_BASED_TABLE_TEST,
|
|
659
657
|
#ifndef ROCKSDB_LITE
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
658
|
+
PLAIN_TABLE_SEMI_FIXED_PREFIX,
|
|
659
|
+
PLAIN_TABLE_FULL_STR_PREFIX,
|
|
660
|
+
PLAIN_TABLE_TOTAL_ORDER,
|
|
663
661
|
#endif // !ROCKSDB_LITE
|
|
664
|
-
|
|
665
|
-
|
|
662
|
+
BLOCK_TEST,
|
|
663
|
+
MEMTABLE_TEST,
|
|
664
|
+
DB_TEST};
|
|
666
665
|
std::vector<bool> reverse_compare_types = {false, true};
|
|
667
666
|
std::vector<int> restart_intervals = {16, 1, 1024};
|
|
668
667
|
std::vector<uint32_t> compression_parallel_threads = {1, 4};
|
|
@@ -747,9 +746,8 @@ class FixedOrLessPrefixTransform : public SliceTransform {
|
|
|
747
746
|
const size_t prefix_len_;
|
|
748
747
|
|
|
749
748
|
public:
|
|
750
|
-
explicit FixedOrLessPrefixTransform(size_t prefix_len)
|
|
751
|
-
prefix_len_(prefix_len) {
|
|
752
|
-
}
|
|
749
|
+
explicit FixedOrLessPrefixTransform(size_t prefix_len)
|
|
750
|
+
: prefix_len_(prefix_len) {}
|
|
753
751
|
|
|
754
752
|
const char* Name() const override { return "rocksdb.FixedPrefix"; }
|
|
755
753
|
|
|
@@ -964,8 +962,8 @@ class HarnessTest : public testing::Test {
|
|
|
964
962
|
case 2: {
|
|
965
963
|
std::string key = PickRandomKey(rnd, keys);
|
|
966
964
|
model_iter = data.lower_bound(key);
|
|
967
|
-
if (kVerbose)
|
|
968
|
-
|
|
965
|
+
if (kVerbose)
|
|
966
|
+
fprintf(stderr, "Seek '%s'\n", EscapeString(key).c_str());
|
|
969
967
|
iter->Seek(Slice(key));
|
|
970
968
|
ASSERT_OK(iter->status());
|
|
971
969
|
ASSERT_EQ(ToString(data, model_iter), ToString(iter));
|
|
@@ -978,7 +976,7 @@ class HarnessTest : public testing::Test {
|
|
|
978
976
|
iter->Prev();
|
|
979
977
|
ASSERT_OK(iter->status());
|
|
980
978
|
if (model_iter == data.begin()) {
|
|
981
|
-
model_iter = data.end();
|
|
979
|
+
model_iter = data.end(); // Wrap around to invalid value
|
|
982
980
|
} else {
|
|
983
981
|
--model_iter;
|
|
984
982
|
}
|
|
@@ -1047,14 +1045,14 @@ class HarnessTest : public testing::Test {
|
|
|
1047
1045
|
break;
|
|
1048
1046
|
case 1: {
|
|
1049
1047
|
// Attempt to return something smaller than an existing key
|
|
1050
|
-
if (result.size() > 0 && result[result.size() - 1] > '\0'
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1048
|
+
if (result.size() > 0 && result[result.size() - 1] > '\0' &&
|
|
1049
|
+
(!only_support_prefix_seek_ ||
|
|
1050
|
+
options_.prefix_extractor->Transform(result).size() <
|
|
1051
|
+
result.size())) {
|
|
1054
1052
|
result[result.size() - 1]--;
|
|
1055
1053
|
}
|
|
1056
1054
|
break;
|
|
1057
|
-
|
|
1055
|
+
}
|
|
1058
1056
|
case 2: {
|
|
1059
1057
|
// Return something larger than an existing key
|
|
1060
1058
|
Increment(options_.comparator, &result);
|
|
@@ -1103,8 +1101,7 @@ static bool Between(uint64_t val, uint64_t low, uint64_t high) {
|
|
|
1103
1101
|
bool result = (val >= low) && (val <= high);
|
|
1104
1102
|
if (!result) {
|
|
1105
1103
|
fprintf(stderr, "Value %llu is not in range [%llu, %llu]\n",
|
|
1106
|
-
(unsigned long long)(val),
|
|
1107
|
-
(unsigned long long)(low),
|
|
1104
|
+
(unsigned long long)(val), (unsigned long long)(low),
|
|
1108
1105
|
(unsigned long long)(high));
|
|
1109
1106
|
}
|
|
1110
1107
|
return result;
|
|
@@ -1183,8 +1180,8 @@ class BlockBasedTableTest
|
|
|
1183
1180
|
|
|
1184
1181
|
{
|
|
1185
1182
|
std::unique_ptr<TraceReader> trace_reader;
|
|
1186
|
-
Status s =
|
|
1187
|
-
|
|
1183
|
+
Status s = NewFileTraceReader(env_, EnvOptions(), trace_file_path_,
|
|
1184
|
+
&trace_reader);
|
|
1188
1185
|
EXPECT_OK(s);
|
|
1189
1186
|
BlockCacheTraceReader reader(std::move(trace_reader));
|
|
1190
1187
|
BlockCacheTraceHeader header;
|
|
@@ -1249,8 +1246,7 @@ class BBTTailPrefetchTest : public TableTest {};
|
|
|
1249
1246
|
class FileChecksumTestHelper {
|
|
1250
1247
|
public:
|
|
1251
1248
|
FileChecksumTestHelper(bool convert_to_internal_key = false)
|
|
1252
|
-
: convert_to_internal_key_(convert_to_internal_key) {
|
|
1253
|
-
}
|
|
1249
|
+
: convert_to_internal_key_(convert_to_internal_key) {}
|
|
1254
1250
|
~FileChecksumTestHelper() {}
|
|
1255
1251
|
|
|
1256
1252
|
void CreateWritableFile() {
|
|
@@ -1368,22 +1364,18 @@ INSTANTIATE_TEST_CASE_P(FormatVersions, BlockBasedTableTest,
|
|
|
1368
1364
|
// This test serves as the living tutorial for the prefix scan of user collected
|
|
1369
1365
|
// properties.
|
|
1370
1366
|
TEST_F(TablePropertyTest, PrefixScanTest) {
|
|
1371
|
-
UserCollectedProperties props{
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
{"num.333.3", "3"},
|
|
1377
|
-
{"num.555.1", "1"},
|
|
1378
|
-
{"num.555.2", "2"},
|
|
1379
|
-
{"num.555.3", "3"}, };
|
|
1367
|
+
UserCollectedProperties props{
|
|
1368
|
+
{"num.111.1", "1"}, {"num.111.2", "2"}, {"num.111.3", "3"},
|
|
1369
|
+
{"num.333.1", "1"}, {"num.333.2", "2"}, {"num.333.3", "3"},
|
|
1370
|
+
{"num.555.1", "1"}, {"num.555.2", "2"}, {"num.555.3", "3"},
|
|
1371
|
+
};
|
|
1380
1372
|
|
|
1381
1373
|
// prefixes that exist
|
|
1382
1374
|
for (const std::string prefix : {"num.111", "num.333", "num.555"}) {
|
|
1383
1375
|
int num = 0;
|
|
1384
1376
|
for (auto pos = props.lower_bound(prefix);
|
|
1385
1377
|
pos != props.end() &&
|
|
1386
|
-
|
|
1378
|
+
pos->first.compare(0, prefix.size(), prefix) == 0;
|
|
1387
1379
|
++pos) {
|
|
1388
1380
|
++num;
|
|
1389
1381
|
auto key = prefix + "." + std::to_string(num);
|
|
@@ -2031,7 +2023,6 @@ TEST_P(BlockBasedTableTest, PrefetchTest) {
|
|
|
2031
2023
|
// [ k05 ] k05
|
|
2032
2024
|
// [ k06 k07 ] k07
|
|
2033
2025
|
|
|
2034
|
-
|
|
2035
2026
|
// Simple
|
|
2036
2027
|
PrefetchRange(&c, &opt, &table_options,
|
|
2037
2028
|
/*key_range=*/"k01", "k05",
|
|
@@ -2069,35 +2060,35 @@ TEST_P(BlockBasedTableTest, TotalOrderSeekOnHashIndex) {
|
|
|
2069
2060
|
// Make each key/value an individual block
|
|
2070
2061
|
table_options.block_size = 64;
|
|
2071
2062
|
switch (i) {
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2063
|
+
case 0:
|
|
2064
|
+
// Binary search index
|
|
2065
|
+
table_options.index_type = BlockBasedTableOptions::kBinarySearch;
|
|
2066
|
+
options.table_factory.reset(new BlockBasedTableFactory(table_options));
|
|
2067
|
+
break;
|
|
2068
|
+
case 1:
|
|
2069
|
+
// Hash search index
|
|
2070
|
+
table_options.index_type = BlockBasedTableOptions::kHashSearch;
|
|
2071
|
+
options.table_factory.reset(new BlockBasedTableFactory(table_options));
|
|
2072
|
+
options.prefix_extractor.reset(NewFixedPrefixTransform(4));
|
|
2073
|
+
break;
|
|
2074
|
+
case 2:
|
|
2075
|
+
// Hash search index with filter policy
|
|
2076
|
+
table_options.index_type = BlockBasedTableOptions::kHashSearch;
|
|
2077
|
+
table_options.filter_policy.reset(NewBloomFilterPolicy(10));
|
|
2078
|
+
options.table_factory.reset(new BlockBasedTableFactory(table_options));
|
|
2079
|
+
options.prefix_extractor.reset(NewFixedPrefixTransform(4));
|
|
2080
|
+
break;
|
|
2081
|
+
case 3:
|
|
2082
|
+
// Two-level index
|
|
2083
|
+
table_options.index_type = BlockBasedTableOptions::kTwoLevelIndexSearch;
|
|
2084
|
+
options.table_factory.reset(new BlockBasedTableFactory(table_options));
|
|
2085
|
+
break;
|
|
2086
|
+
case 4:
|
|
2087
|
+
// Binary search with first key
|
|
2088
|
+
table_options.index_type =
|
|
2089
|
+
BlockBasedTableOptions::kBinarySearchWithFirstKey;
|
|
2090
|
+
options.table_factory.reset(new BlockBasedTableFactory(table_options));
|
|
2091
|
+
break;
|
|
2101
2092
|
}
|
|
2102
2093
|
|
|
2103
2094
|
TableConstructor c(BytewiseComparator(),
|
|
@@ -2452,7 +2443,12 @@ void TableTest::IndexTest(BlockBasedTableOptions table_options) {
|
|
|
2452
2443
|
}
|
|
2453
2444
|
|
|
2454
2445
|
// find the upper bound of prefixes
|
|
2455
|
-
std::vector<std::string> upper_bound = {
|
|
2446
|
+
std::vector<std::string> upper_bound = {
|
|
2447
|
+
keys[1],
|
|
2448
|
+
keys[2],
|
|
2449
|
+
keys[7],
|
|
2450
|
+
keys[9],
|
|
2451
|
+
};
|
|
2456
2452
|
|
|
2457
2453
|
// find existing keys
|
|
2458
2454
|
for (const auto& item : kvmap) {
|
|
@@ -3969,19 +3965,19 @@ TEST_F(GeneralTableTest, ApproximateOffsetOfPlain) {
|
|
|
3969
3965
|
c.Finish(options, ioptions, moptions, table_options, internal_comparator,
|
|
3970
3966
|
&keys, &kvmap);
|
|
3971
3967
|
|
|
3972
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("abc"),
|
|
3973
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01"),
|
|
3974
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01a"),
|
|
3975
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k02"),
|
|
3976
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k03"),
|
|
3977
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k04"),
|
|
3968
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("abc"), 0, 0));
|
|
3969
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01"), 0, 0));
|
|
3970
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k01a"), 0, 0));
|
|
3971
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k02"), 0, 0));
|
|
3972
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k03"), 0, 0));
|
|
3973
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k04"), 10000, 11000));
|
|
3978
3974
|
// k04 and k05 will be in two consecutive blocks, the index is
|
|
3979
3975
|
// an arbitrary slice between k04 and k05, either before or after k04a
|
|
3980
3976
|
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k04a"), 10000, 211000));
|
|
3981
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k05"),
|
|
3982
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k06"),
|
|
3983
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k07"),
|
|
3984
|
-
ASSERT_TRUE(Between(c.ApproximateOffsetOf("xyz"),
|
|
3977
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k05"), 210000, 211000));
|
|
3978
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k06"), 510000, 511000));
|
|
3979
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("k07"), 510000, 511000));
|
|
3980
|
+
ASSERT_TRUE(Between(c.ApproximateOffsetOf("xyz"), 610000, 612000));
|
|
3985
3981
|
c.ResetTableReader();
|
|
3986
3982
|
}
|
|
3987
3983
|
|
|
@@ -4045,8 +4041,7 @@ TEST_F(GeneralTableTest, ApproximateOffsetOfCompressed) {
|
|
|
4045
4041
|
|
|
4046
4042
|
if (!XPRESS_Supported()) {
|
|
4047
4043
|
fprintf(stderr, "skipping xpress and xpress compression tests\n");
|
|
4048
|
-
}
|
|
4049
|
-
else {
|
|
4044
|
+
} else {
|
|
4050
4045
|
compression_state.push_back(kXpressCompression);
|
|
4051
4046
|
}
|
|
4052
4047
|
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
9
9
|
|
|
10
10
|
#pragma once
|
|
11
|
-
#include "rocksdb/iterator.h"
|
|
12
11
|
#include "rocksdb/env.h"
|
|
12
|
+
#include "rocksdb/iterator.h"
|
|
13
13
|
#include "table/iterator_wrapper.h"
|
|
14
14
|
|
|
15
15
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -21,22 +21,20 @@ SyncPoint* SyncPoint::GetInstance() {
|
|
|
21
21
|
|
|
22
22
|
SyncPoint::SyncPoint() : impl_(new Data) {}
|
|
23
23
|
|
|
24
|
-
SyncPoint
|
|
25
|
-
delete impl_;
|
|
26
|
-
}
|
|
24
|
+
SyncPoint::~SyncPoint() { delete impl_; }
|
|
27
25
|
|
|
28
26
|
void SyncPoint::LoadDependency(const std::vector<SyncPointPair>& dependencies) {
|
|
29
27
|
impl_->LoadDependency(dependencies);
|
|
30
28
|
}
|
|
31
29
|
|
|
32
30
|
void SyncPoint::LoadDependencyAndMarkers(
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
const std::vector<SyncPointPair>& dependencies,
|
|
32
|
+
const std::vector<SyncPointPair>& markers) {
|
|
35
33
|
impl_->LoadDependencyAndMarkers(dependencies, markers);
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
void SyncPoint::SetCallBack(const std::string& point,
|
|
39
|
-
|
|
37
|
+
const std::function<void(void*)>& callback) {
|
|
40
38
|
impl_->SetCallBack(point, callback);
|
|
41
39
|
}
|
|
42
40
|
|
|
@@ -44,21 +42,13 @@ void SyncPoint::ClearCallBack(const std::string& point) {
|
|
|
44
42
|
impl_->ClearCallBack(point);
|
|
45
43
|
}
|
|
46
44
|
|
|
47
|
-
void SyncPoint::ClearAllCallBacks() {
|
|
48
|
-
impl_->ClearAllCallBacks();
|
|
49
|
-
}
|
|
45
|
+
void SyncPoint::ClearAllCallBacks() { impl_->ClearAllCallBacks(); }
|
|
50
46
|
|
|
51
|
-
void SyncPoint::EnableProcessing() {
|
|
52
|
-
impl_->EnableProcessing();
|
|
53
|
-
}
|
|
47
|
+
void SyncPoint::EnableProcessing() { impl_->EnableProcessing(); }
|
|
54
48
|
|
|
55
|
-
void SyncPoint::DisableProcessing() {
|
|
56
|
-
impl_->DisableProcessing();
|
|
57
|
-
}
|
|
49
|
+
void SyncPoint::DisableProcessing() { impl_->DisableProcessing(); }
|
|
58
50
|
|
|
59
|
-
void SyncPoint::ClearTrace() {
|
|
60
|
-
impl_->ClearTrace();
|
|
61
|
-
}
|
|
51
|
+
void SyncPoint::ClearTrace() { impl_->ClearTrace(); }
|
|
62
52
|
|
|
63
53
|
void SyncPoint::Process(const Slice& point, void* cb_arg) {
|
|
64
54
|
impl_->Process(point, cb_arg);
|
|
@@ -37,7 +37,8 @@ void KillPoint::TestKillRandom(std::string kill_point, int odds_weight,
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
void SyncPoint::Data::LoadDependency(
|
|
40
|
+
void SyncPoint::Data::LoadDependency(
|
|
41
|
+
const std::vector<SyncPointPair>& dependencies) {
|
|
41
42
|
std::lock_guard<std::mutex> lock(mutex_);
|
|
42
43
|
successors_.clear();
|
|
43
44
|
predecessors_.clear();
|
|
@@ -52,8 +53,8 @@ void SyncPoint::Data::LoadDependency(const std::vector<SyncPointPair>& dependenc
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
void SyncPoint::Data::LoadDependencyAndMarkers(
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
const std::vector<SyncPointPair>& dependencies,
|
|
57
|
+
const std::vector<SyncPointPair>& markers) {
|
|
57
58
|
std::lock_guard<std::mutex> lock(mutex_);
|
|
58
59
|
successors_.clear();
|
|
59
60
|
predecessors_.clear();
|
|
@@ -52,11 +52,11 @@ struct SyncPoint::Data {
|
|
|
52
52
|
// successor/predecessor map loaded from LoadDependency
|
|
53
53
|
std::unordered_map<std::string, std::vector<std::string>> successors_;
|
|
54
54
|
std::unordered_map<std::string, std::vector<std::string>> predecessors_;
|
|
55
|
-
std::unordered_map<std::string, std::function<void(void*)
|
|
56
|
-
std::unordered_map<std::string, std::vector<std::string
|
|
55
|
+
std::unordered_map<std::string, std::function<void(void*)>> callbacks_;
|
|
56
|
+
std::unordered_map<std::string, std::vector<std::string>> markers_;
|
|
57
57
|
std::unordered_map<std::string, std::thread::id> marked_thread_id_;
|
|
58
58
|
|
|
59
|
-
std::mutex
|
|
59
|
+
std::mutex mutex_;
|
|
60
60
|
std::condition_variable cv_;
|
|
61
61
|
// sync points that have been passed through
|
|
62
62
|
std::unordered_set<std::string> cleared_points_;
|
|
@@ -68,29 +68,24 @@ struct SyncPoint::Data {
|
|
|
68
68
|
|
|
69
69
|
void LoadDependency(const std::vector<SyncPointPair>& dependencies);
|
|
70
70
|
void LoadDependencyAndMarkers(const std::vector<SyncPointPair>& dependencies,
|
|
71
|
-
|
|
71
|
+
const std::vector<SyncPointPair>& markers);
|
|
72
72
|
bool PredecessorsAllCleared(const std::string& point);
|
|
73
73
|
void SetCallBack(const std::string& point,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
74
|
+
const std::function<void(void*)>& callback) {
|
|
75
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
76
|
+
callbacks_[point] = callback;
|
|
77
|
+
point_filter_.Add(point);
|
|
78
|
+
}
|
|
79
79
|
|
|
80
80
|
void ClearCallBack(const std::string& point);
|
|
81
81
|
void ClearAllCallBacks();
|
|
82
|
-
void EnableProcessing() {
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
void DisableProcessing() {
|
|
86
|
-
enabled_ = false;
|
|
87
|
-
}
|
|
82
|
+
void EnableProcessing() { enabled_ = true; }
|
|
83
|
+
void DisableProcessing() { enabled_ = false; }
|
|
88
84
|
void ClearTrace() {
|
|
89
85
|
std::lock_guard<std::mutex> lock(mutex_);
|
|
90
86
|
cleared_points_.clear();
|
|
91
87
|
}
|
|
92
|
-
bool DisabledByMarker(const std::string& point,
|
|
93
|
-
std::thread::id thread_id) {
|
|
88
|
+
bool DisabledByMarker(const std::string& point, std::thread::id thread_id) {
|
|
94
89
|
auto marked_point_iter = marked_thread_id_.find(point);
|
|
95
90
|
return marked_point_iter != marked_thread_id_.end() &&
|
|
96
91
|
thread_id != marked_point_iter->second;
|
|
@@ -98,4 +93,4 @@ struct SyncPoint::Data {
|
|
|
98
93
|
void Process(const Slice& point, void* cb_arg);
|
|
99
94
|
};
|
|
100
95
|
} // namespace ROCKSDB_NAMESPACE
|
|
101
|
-
#endif
|
|
96
|
+
#endif // NDEBUG
|
|
@@ -28,8 +28,7 @@ std::string GetPidStr() { return std::to_string(getpid()); }
|
|
|
28
28
|
if (s.ok()) {
|
|
29
29
|
return ::testing::AssertionSuccess();
|
|
30
30
|
} else {
|
|
31
|
-
return ::testing::AssertionFailure() << s_expr << std::endl
|
|
32
|
-
<< s.ToString();
|
|
31
|
+
return ::testing::AssertionFailure() << s_expr << std::endl << s.ToString();
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
34
|
|
|
@@ -144,9 +144,8 @@ class StringSink : public FSWritableFile {
|
|
|
144
144
|
if (reader_contents_ != nullptr) {
|
|
145
145
|
assert(reader_contents_->size() <= last_flush_);
|
|
146
146
|
size_t offset = last_flush_ - reader_contents_->size();
|
|
147
|
-
*reader_contents_ =
|
|
148
|
-
contents_.data() + offset,
|
|
149
|
-
contents_.size() - offset);
|
|
147
|
+
*reader_contents_ =
|
|
148
|
+
Slice(contents_.data() + offset, contents_.size() - offset);
|
|
150
149
|
last_flush_ = contents_.size();
|
|
151
150
|
}
|
|
152
151
|
|
|
@@ -165,8 +164,8 @@ class StringSink : public FSWritableFile {
|
|
|
165
164
|
void Drop(size_t bytes) {
|
|
166
165
|
if (reader_contents_ != nullptr) {
|
|
167
166
|
contents_.resize(contents_.size() - bytes);
|
|
168
|
-
*reader_contents_ =
|
|
169
|
-
reader_contents_->data(), reader_contents_->size() - bytes);
|
|
167
|
+
*reader_contents_ =
|
|
168
|
+
Slice(reader_contents_->data(), reader_contents_->size() - bytes);
|
|
170
169
|
last_flush_ = contents_.size();
|
|
171
170
|
}
|
|
172
171
|
}
|
|
@@ -282,7 +281,7 @@ class StringSource : public FSRandomAccessFile {
|
|
|
282
281
|
mmap_(mmap),
|
|
283
282
|
total_reads_(0) {}
|
|
284
283
|
|
|
285
|
-
virtual ~StringSource() {
|
|
284
|
+
virtual ~StringSource() {}
|
|
286
285
|
|
|
287
286
|
uint64_t Size() const { return contents_.size(); }
|
|
288
287
|
|
|
@@ -324,7 +323,7 @@ class StringSource : public FSRandomAccessFile {
|
|
|
324
323
|
char* rid = id;
|
|
325
324
|
rid = EncodeVarint64(rid, uniq_id_);
|
|
326
325
|
rid = EncodeVarint64(rid, 0);
|
|
327
|
-
return static_cast<size_t>(rid-id);
|
|
326
|
+
return static_cast<size_t>(rid - id);
|
|
328
327
|
}
|
|
329
328
|
|
|
330
329
|
int total_reads() const { return total_reads_; }
|
|
@@ -13,14 +13,13 @@
|
|
|
13
13
|
#include <string>
|
|
14
14
|
#include <thread>
|
|
15
15
|
|
|
16
|
+
#include "db/dbformat.h"
|
|
17
|
+
#include "db/snapshot_impl.h"
|
|
18
|
+
#include "logging/logging.h"
|
|
16
19
|
#include "rocksdb/db.h"
|
|
17
20
|
#include "rocksdb/utilities/optimistic_transaction_db.h"
|
|
18
21
|
#include "rocksdb/utilities/transaction.h"
|
|
19
22
|
#include "rocksdb/utilities/transaction_db.h"
|
|
20
|
-
|
|
21
|
-
#include "db/dbformat.h"
|
|
22
|
-
#include "db/snapshot_impl.h"
|
|
23
|
-
#include "logging/logging.h"
|
|
24
23
|
#include "util/random.h"
|
|
25
24
|
#include "util/string_util.h"
|
|
26
25
|
|
|
@@ -1175,7 +1175,8 @@ void BlockCacheTraceAnalyzer::WriteReuseLifetime(
|
|
|
1175
1175
|
}
|
|
1176
1176
|
|
|
1177
1177
|
void BlockCacheTraceAnalyzer::WriteBlockReuseTimeline(
|
|
1178
|
-
const uint64_t reuse_window, bool user_access_only,
|
|
1178
|
+
const uint64_t reuse_window, bool user_access_only,
|
|
1179
|
+
TraceType block_type) const {
|
|
1179
1180
|
// A map from block key to an array of bools that states whether a block is
|
|
1180
1181
|
// accessed in a time window.
|
|
1181
1182
|
std::map<uint64_t, std::vector<bool>> block_accessed;
|
|
@@ -1214,7 +1215,8 @@ void BlockCacheTraceAnalyzer::WriteBlockReuseTimeline(
|
|
|
1214
1215
|
TraverseBlocks(block_callback);
|
|
1215
1216
|
|
|
1216
1217
|
// A cell is the number of blocks accessed in a reuse window.
|
|
1217
|
-
std::unique_ptr<uint64_t[]> reuse_table(
|
|
1218
|
+
std::unique_ptr<uint64_t[]> reuse_table(
|
|
1219
|
+
new uint64_t[reuse_vector_size * reuse_vector_size]);
|
|
1218
1220
|
for (uint64_t start_time = 0; start_time < reuse_vector_size; start_time++) {
|
|
1219
1221
|
// Initialize the reuse_table.
|
|
1220
1222
|
for (uint64_t i = 0; i < reuse_vector_size; i++) {
|
|
@@ -1255,8 +1257,9 @@ void BlockCacheTraceAnalyzer::WriteBlockReuseTimeline(
|
|
|
1255
1257
|
if (j < start_time) {
|
|
1256
1258
|
row += "100.0";
|
|
1257
1259
|
} else {
|
|
1258
|
-
row += std::to_string(
|
|
1259
|
-
|
|
1260
|
+
row += std::to_string(
|
|
1261
|
+
percent(reuse_table[start_time * reuse_vector_size + j],
|
|
1262
|
+
reuse_table[start_time * reuse_vector_size + start_time]));
|
|
1260
1263
|
}
|
|
1261
1264
|
}
|
|
1262
1265
|
out << row << std::endl;
|
|
@@ -1811,9 +1814,10 @@ void BlockCacheTraceAnalyzer::PrintDataBlockAccessStats() const {
|
|
|
1811
1814
|
return;
|
|
1812
1815
|
}
|
|
1813
1816
|
// Use four decimal points.
|
|
1814
|
-
uint64_t percent_referenced_for_existing_keys =
|
|
1815
|
-
((double)block.key_num_access_map.size() /
|
|
1816
|
-
|
|
1817
|
+
uint64_t percent_referenced_for_existing_keys =
|
|
1818
|
+
(uint64_t)(((double)block.key_num_access_map.size() /
|
|
1819
|
+
(double)block.num_keys) *
|
|
1820
|
+
10000.0);
|
|
1817
1821
|
uint64_t percent_referenced_for_non_existing_keys =
|
|
1818
1822
|
(uint64_t)(((double)block.non_exist_key_num_access_map.size() /
|
|
1819
1823
|
(double)block.num_keys) *
|
|
@@ -106,7 +106,7 @@ struct BlockAccessInfo {
|
|
|
106
106
|
ParsedInternalKey internal_key;
|
|
107
107
|
Status s = ParseInternalKey(access.referenced_key, &internal_key,
|
|
108
108
|
false /* log_err_key */); // TODO
|
|
109
|
-
assert(s.ok());
|
|
109
|
+
assert(s.ok()); // TODO
|
|
110
110
|
}
|
|
111
111
|
} else {
|
|
112
112
|
non_exist_key_num_access_map[access.referenced_key][access.caller]++;
|
|
@@ -292,7 +292,8 @@ class BlockCacheTraceAnalyzer {
|
|
|
292
292
|
// The file is named
|
|
293
293
|
// "block_type_user_access_only_reuse_window_reuse_timeline". The file format
|
|
294
294
|
// is start_time,0,1,...,N where N equals trace_duration / reuse_window.
|
|
295
|
-
void WriteBlockReuseTimeline(const uint64_t reuse_window,
|
|
295
|
+
void WriteBlockReuseTimeline(const uint64_t reuse_window,
|
|
296
|
+
bool user_access_only,
|
|
296
297
|
TraceType block_type) const;
|
|
297
298
|
|
|
298
299
|
// Write the Get spatical locality into csv files saved in 'output_dir'.
|