@nxtedition/rocksdb 7.1.29 → 7.1.31
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 +34 -0
- 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/index.js +4 -0
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -63,8 +63,11 @@ class DummyDB : public StackableDB {
|
|
|
63
63
|
public:
|
|
64
64
|
/* implicit */
|
|
65
65
|
DummyDB(const Options& options, const std::string& dbname)
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
: StackableDB(nullptr),
|
|
67
|
+
options_(options),
|
|
68
|
+
dbname_(dbname),
|
|
69
|
+
deletions_enabled_(true),
|
|
70
|
+
sequence_number_(0) {}
|
|
68
71
|
|
|
69
72
|
SequenceNumber GetLatestSequenceNumber() const override {
|
|
70
73
|
return ++sequence_number_;
|
|
@@ -139,7 +142,7 @@ class DummyDB : public StackableDB {
|
|
|
139
142
|
std::string dbname_;
|
|
140
143
|
bool deletions_enabled_;
|
|
141
144
|
mutable SequenceNumber sequence_number_;
|
|
142
|
-
};
|
|
145
|
+
}; // DummyDB
|
|
143
146
|
|
|
144
147
|
class TestFs : public FileSystemWrapper {
|
|
145
148
|
public:
|
|
@@ -545,7 +548,7 @@ class FileManager : public EnvWrapper {
|
|
|
545
548
|
|
|
546
549
|
private:
|
|
547
550
|
Random rnd_;
|
|
548
|
-
};
|
|
551
|
+
}; // FileManager
|
|
549
552
|
|
|
550
553
|
// utility functions
|
|
551
554
|
namespace {
|
|
@@ -608,8 +611,8 @@ class BackupEngineTest : public testing::Test {
|
|
|
608
611
|
kShareWithChecksum,
|
|
609
612
|
};
|
|
610
613
|
|
|
611
|
-
const std::vector<ShareOption> kAllShareOptions = {
|
|
612
|
-
|
|
614
|
+
const std::vector<ShareOption> kAllShareOptions = {kNoShare, kShareNoChecksum,
|
|
615
|
+
kShareWithChecksum};
|
|
613
616
|
|
|
614
617
|
BackupEngineTest() {
|
|
615
618
|
// set up files
|
|
@@ -632,7 +635,7 @@ class BackupEngineTest : public testing::Test {
|
|
|
632
635
|
// set up db options
|
|
633
636
|
options_.create_if_missing = true;
|
|
634
637
|
options_.paranoid_checks = true;
|
|
635
|
-
options_.write_buffer_size = 1 << 17;
|
|
638
|
+
options_.write_buffer_size = 1 << 17; // 128KB
|
|
636
639
|
options_.wal_dir = dbname_;
|
|
637
640
|
options_.enable_blob_files = true;
|
|
638
641
|
|
|
@@ -3540,107 +3543,106 @@ TEST_F(BackupEngineTest, Concurrency) {
|
|
|
3540
3543
|
std::array<std::thread, 4> restore_verify_threads;
|
|
3541
3544
|
for (uint32_t i = 0; i < read_threads.size(); ++i) {
|
|
3542
3545
|
uint32_t sleep_micros = rng() % 100000;
|
|
3543
|
-
read_threads[i] =
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
test_db_env_->SleepForMicroseconds(sleep_micros);
|
|
3547
|
-
|
|
3548
|
-
// Whether to also re-open the BackupEngine, potentially seeing
|
|
3549
|
-
// additional backups
|
|
3550
|
-
bool reopen = i == 3;
|
|
3551
|
-
// Whether we are going to restore "latest"
|
|
3552
|
-
bool latest = i > 1;
|
|
3553
|
-
|
|
3554
|
-
BackupEngine* my_be;
|
|
3555
|
-
if (reopen) {
|
|
3556
|
-
ASSERT_OK(BackupEngine::Open(test_db_env_.get(), be_opts, &my_be));
|
|
3557
|
-
} else {
|
|
3558
|
-
my_be = backup_engine_.get();
|
|
3559
|
-
}
|
|
3546
|
+
read_threads[i] = std::thread([this, i, sleep_micros, &db_opts, &be_opts,
|
|
3547
|
+
&restore_verify_threads, &limiter] {
|
|
3548
|
+
test_db_env_->SleepForMicroseconds(sleep_micros);
|
|
3560
3549
|
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
infos.clear();
|
|
3567
|
-
if (reopen) {
|
|
3568
|
-
ASSERT_GE(count, 2U);
|
|
3569
|
-
ASSERT_LE(count, 4U);
|
|
3570
|
-
fprintf(stderr, "Reopen saw %u backups\n", count);
|
|
3571
|
-
} else {
|
|
3572
|
-
ASSERT_EQ(count, 2U);
|
|
3573
|
-
}
|
|
3574
|
-
std::vector<BackupID> ids;
|
|
3575
|
-
my_be->GetCorruptedBackups(&ids);
|
|
3576
|
-
ASSERT_EQ(ids.size(), 0U);
|
|
3577
|
-
|
|
3578
|
-
// (Eventually, see below) Restore one of the backups, or "latest"
|
|
3579
|
-
std::string restore_db_dir = dbname_ + "/restore" + std::to_string(i);
|
|
3580
|
-
DestroyDir(test_db_env_.get(), restore_db_dir).PermitUncheckedError();
|
|
3581
|
-
BackupID to_restore;
|
|
3582
|
-
if (latest) {
|
|
3583
|
-
to_restore = count;
|
|
3584
|
-
} else {
|
|
3585
|
-
to_restore = i + 1;
|
|
3586
|
-
}
|
|
3550
|
+
// Whether to also re-open the BackupEngine, potentially seeing
|
|
3551
|
+
// additional backups
|
|
3552
|
+
bool reopen = i == 3;
|
|
3553
|
+
// Whether we are going to restore "latest"
|
|
3554
|
+
bool latest = i > 1;
|
|
3587
3555
|
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
for (;;) {
|
|
3595
|
-
s = DB::Open(db_opts, restore_db_dir, &restored);
|
|
3596
|
-
if (s.IsInvalidArgument()) {
|
|
3597
|
-
// Restore hasn't finished
|
|
3598
|
-
test_db_env_->SleepForMicroseconds(1000);
|
|
3599
|
-
continue;
|
|
3600
|
-
} else {
|
|
3601
|
-
// We should only get InvalidArgument if restore is
|
|
3602
|
-
// incomplete, or OK if complete
|
|
3603
|
-
ASSERT_OK(s);
|
|
3604
|
-
break;
|
|
3605
|
-
}
|
|
3606
|
-
}
|
|
3607
|
-
int factor = std::min(static_cast<int>(to_restore), max_factor);
|
|
3608
|
-
AssertExists(restored, 0, factor * keys_iteration);
|
|
3609
|
-
AssertEmpty(restored, factor * keys_iteration,
|
|
3610
|
-
(factor + 1) * keys_iteration);
|
|
3611
|
-
delete restored;
|
|
3612
|
-
});
|
|
3613
|
-
|
|
3614
|
-
// (Ok now) Restore one of the backups, or "latest"
|
|
3615
|
-
if (latest) {
|
|
3616
|
-
ASSERT_OK(my_be->RestoreDBFromLatestBackup(restore_db_dir,
|
|
3617
|
-
restore_db_dir));
|
|
3618
|
-
} else {
|
|
3619
|
-
ASSERT_OK(my_be->VerifyBackup(to_restore, true));
|
|
3620
|
-
ASSERT_OK(my_be->RestoreDBFromBackup(to_restore, restore_db_dir,
|
|
3621
|
-
restore_db_dir));
|
|
3622
|
-
}
|
|
3556
|
+
BackupEngine* my_be;
|
|
3557
|
+
if (reopen) {
|
|
3558
|
+
ASSERT_OK(BackupEngine::Open(test_db_env_.get(), be_opts, &my_be));
|
|
3559
|
+
} else {
|
|
3560
|
+
my_be = backup_engine_.get();
|
|
3561
|
+
}
|
|
3623
3562
|
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3563
|
+
// Verify metadata (we don't receive updates from concurrently
|
|
3564
|
+
// creating a new backup)
|
|
3565
|
+
std::vector<BackupInfo> infos;
|
|
3566
|
+
my_be->GetBackupInfo(&infos);
|
|
3567
|
+
const uint32_t count = static_cast<uint32_t>(infos.size());
|
|
3568
|
+
infos.clear();
|
|
3569
|
+
if (reopen) {
|
|
3570
|
+
ASSERT_GE(count, 2U);
|
|
3571
|
+
ASSERT_LE(count, 4U);
|
|
3572
|
+
fprintf(stderr, "Reopen saw %u backups\n", count);
|
|
3573
|
+
} else {
|
|
3574
|
+
ASSERT_EQ(count, 2U);
|
|
3575
|
+
}
|
|
3576
|
+
std::vector<BackupID> ids;
|
|
3577
|
+
my_be->GetCorruptedBackups(&ids);
|
|
3578
|
+
ASSERT_EQ(ids.size(), 0U);
|
|
3579
|
+
|
|
3580
|
+
// (Eventually, see below) Restore one of the backups, or "latest"
|
|
3581
|
+
std::string restore_db_dir = dbname_ + "/restore" + std::to_string(i);
|
|
3582
|
+
DestroyDir(test_db_env_.get(), restore_db_dir).PermitUncheckedError();
|
|
3583
|
+
BackupID to_restore;
|
|
3584
|
+
if (latest) {
|
|
3585
|
+
to_restore = count;
|
|
3586
|
+
} else {
|
|
3587
|
+
to_restore = i + 1;
|
|
3588
|
+
}
|
|
3631
3589
|
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3590
|
+
// Open restored DB to verify its contents, but test atomic restore
|
|
3591
|
+
// by doing it async and ensuring we either get OK or InvalidArgument
|
|
3592
|
+
restore_verify_threads[i] =
|
|
3593
|
+
std::thread([this, &db_opts, restore_db_dir, to_restore] {
|
|
3594
|
+
DB* restored;
|
|
3595
|
+
Status s;
|
|
3596
|
+
for (;;) {
|
|
3597
|
+
s = DB::Open(db_opts, restore_db_dir, &restored);
|
|
3598
|
+
if (s.IsInvalidArgument()) {
|
|
3599
|
+
// Restore hasn't finished
|
|
3600
|
+
test_db_env_->SleepForMicroseconds(1000);
|
|
3601
|
+
continue;
|
|
3602
|
+
} else {
|
|
3603
|
+
// We should only get InvalidArgument if restore is
|
|
3604
|
+
// incomplete, or OK if complete
|
|
3605
|
+
ASSERT_OK(s);
|
|
3606
|
+
break;
|
|
3607
|
+
}
|
|
3608
|
+
}
|
|
3609
|
+
int factor = std::min(static_cast<int>(to_restore), max_factor);
|
|
3610
|
+
AssertExists(restored, 0, factor * keys_iteration);
|
|
3611
|
+
AssertEmpty(restored, factor * keys_iteration,
|
|
3612
|
+
(factor + 1) * keys_iteration);
|
|
3613
|
+
delete restored;
|
|
3614
|
+
});
|
|
3615
|
+
|
|
3616
|
+
// (Ok now) Restore one of the backups, or "latest"
|
|
3617
|
+
if (latest) {
|
|
3618
|
+
ASSERT_OK(
|
|
3619
|
+
my_be->RestoreDBFromLatestBackup(restore_db_dir, restore_db_dir));
|
|
3620
|
+
} else {
|
|
3621
|
+
ASSERT_OK(my_be->VerifyBackup(to_restore, true));
|
|
3622
|
+
ASSERT_OK(my_be->RestoreDBFromBackup(to_restore, restore_db_dir,
|
|
3623
|
+
restore_db_dir));
|
|
3624
|
+
}
|
|
3639
3625
|
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3626
|
+
// Test for race condition in reconfiguring limiter
|
|
3627
|
+
// FIXME: this could set to a different value in all threads, except
|
|
3628
|
+
// GenericRateLimiter::SetBytesPerSecond has a write-write race
|
|
3629
|
+
// reported by TSAN
|
|
3630
|
+
if (i == 0) {
|
|
3631
|
+
limiter->SetBytesPerSecond(2000000000);
|
|
3632
|
+
}
|
|
3633
|
+
|
|
3634
|
+
// Re-verify metadata (we don't receive updates from concurrently
|
|
3635
|
+
// creating a new backup)
|
|
3636
|
+
my_be->GetBackupInfo(&infos);
|
|
3637
|
+
ASSERT_EQ(infos.size(), count);
|
|
3638
|
+
my_be->GetCorruptedBackups(&ids);
|
|
3639
|
+
ASSERT_EQ(ids.size(), 0);
|
|
3640
|
+
// fprintf(stderr, "Finished read thread\n");
|
|
3641
|
+
|
|
3642
|
+
if (reopen) {
|
|
3643
|
+
delete my_be;
|
|
3644
|
+
}
|
|
3645
|
+
});
|
|
3644
3646
|
}
|
|
3645
3647
|
|
|
3646
3648
|
BackupEngine* alt_be;
|
|
@@ -4196,7 +4198,7 @@ TEST_F(BackupEngineTest, FileTemperatures) {
|
|
|
4196
4198
|
}
|
|
4197
4199
|
}
|
|
4198
4200
|
|
|
4199
|
-
} //
|
|
4201
|
+
} // namespace
|
|
4200
4202
|
|
|
4201
4203
|
} // namespace ROCKSDB_NAMESPACE
|
|
4202
4204
|
|
|
@@ -155,8 +155,7 @@ class BlobDB : public StackableDB {
|
|
|
155
155
|
|
|
156
156
|
using ROCKSDB_NAMESPACE::StackableDB::MultiGet;
|
|
157
157
|
virtual std::vector<Status> MultiGet(
|
|
158
|
-
const ReadOptions& options,
|
|
159
|
-
const std::vector<Slice>& keys,
|
|
158
|
+
const ReadOptions& options, const std::vector<Slice>& keys,
|
|
160
159
|
std::vector<std::string>* values) override = 0;
|
|
161
160
|
virtual std::vector<Status> MultiGet(
|
|
162
161
|
const ReadOptions& options,
|
|
@@ -179,8 +178,8 @@ class BlobDB : public StackableDB {
|
|
|
179
178
|
PinnableSlice* /*values*/, Status* statuses,
|
|
180
179
|
const bool /*sorted_input*/ = false) override {
|
|
181
180
|
for (size_t i = 0; i < num_keys; ++i) {
|
|
182
|
-
statuses[i] =
|
|
183
|
-
"Blob DB doesn't support batched MultiGet");
|
|
181
|
+
statuses[i] =
|
|
182
|
+
Status::NotSupported("Blob DB doesn't support batched MultiGet");
|
|
184
183
|
}
|
|
185
184
|
}
|
|
186
185
|
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#ifndef ROCKSDB_LITE
|
|
7
7
|
|
|
8
8
|
#include "utilities/blob_db/blob_db_impl.h"
|
|
9
|
+
|
|
9
10
|
#include <algorithm>
|
|
10
11
|
#include <cinttypes>
|
|
11
12
|
#include <iomanip>
|
|
@@ -1023,9 +1024,8 @@ Status BlobDBImpl::Put(const WriteOptions& options, const Slice& key,
|
|
|
1023
1024
|
return PutUntil(options, key, value, kNoExpiration);
|
|
1024
1025
|
}
|
|
1025
1026
|
|
|
1026
|
-
Status BlobDBImpl::PutWithTTL(const WriteOptions& options,
|
|
1027
|
-
const Slice&
|
|
1028
|
-
uint64_t ttl) {
|
|
1027
|
+
Status BlobDBImpl::PutWithTTL(const WriteOptions& options, const Slice& key,
|
|
1028
|
+
const Slice& value, uint64_t ttl) {
|
|
1029
1029
|
uint64_t now = EpochNow();
|
|
1030
1030
|
uint64_t expiration = kNoExpiration - now > ttl ? now + ttl : kNoExpiration;
|
|
1031
1031
|
return PutUntil(options, key, value, expiration);
|
|
@@ -1385,9 +1385,9 @@ Status BlobDBImpl::AppendBlob(const std::shared_ptr<BlobFile>& bfile,
|
|
|
1385
1385
|
return s;
|
|
1386
1386
|
}
|
|
1387
1387
|
|
|
1388
|
-
std::vector<Status> BlobDBImpl::MultiGet(
|
|
1389
|
-
|
|
1390
|
-
|
|
1388
|
+
std::vector<Status> BlobDBImpl::MultiGet(const ReadOptions& read_options,
|
|
1389
|
+
const std::vector<Slice>& keys,
|
|
1390
|
+
std::vector<std::string>* values) {
|
|
1391
1391
|
StopWatch multiget_sw(clock_, statistics_, BLOB_DB_MULTIGET_MICROS);
|
|
1392
1392
|
RecordTick(statistics_, BLOB_DB_NUM_MULTIGET);
|
|
1393
1393
|
// Get a snapshot to avoid blob file get deleted between we
|
|
@@ -124,8 +124,7 @@ class BlobDBImpl : public BlobDB {
|
|
|
124
124
|
|
|
125
125
|
using BlobDB::MultiGet;
|
|
126
126
|
virtual std::vector<Status> MultiGet(
|
|
127
|
-
const ReadOptions& read_options,
|
|
128
|
-
const std::vector<Slice>& keys,
|
|
127
|
+
const ReadOptions& read_options, const std::vector<Slice>& keys,
|
|
129
128
|
std::vector<std::string>* values) override;
|
|
130
129
|
|
|
131
130
|
using BlobDB::Write;
|
|
@@ -58,8 +58,7 @@ class BlobDBTest : public testing::Test {
|
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
BlobDBTest()
|
|
61
|
-
: dbname_(test::PerThreadDBPath("blob_db_test")),
|
|
62
|
-
blob_db_(nullptr) {
|
|
61
|
+
: dbname_(test::PerThreadDBPath("blob_db_test")), blob_db_(nullptr) {
|
|
63
62
|
mock_clock_ = std::make_shared<MockSystemClock>(SystemClock::Default());
|
|
64
63
|
mock_env_.reset(new CompositeEnvWrapper(Env::Default(), mock_clock_));
|
|
65
64
|
fault_injection_env_.reset(new FaultInjectionTestEnv(Env::Default()));
|
|
@@ -209,7 +208,7 @@ class BlobDBTest : public testing::Test {
|
|
|
209
208
|
|
|
210
209
|
void VerifyDB(DB *db, const std::map<std::string, std::string> &data) {
|
|
211
210
|
// Verify normal Get
|
|
212
|
-
auto*
|
|
211
|
+
auto *cfh = db->DefaultColumnFamily();
|
|
213
212
|
for (auto &p : data) {
|
|
214
213
|
PinnableSlice value_slice;
|
|
215
214
|
ASSERT_OK(db->Get(ReadOptions(), cfh, p.first, &value_slice));
|
|
@@ -2391,7 +2390,7 @@ TEST_F(BlobDBTest, SyncBlobFileBeforeCloseIOError) {
|
|
|
2391
2390
|
} // namespace ROCKSDB_NAMESPACE
|
|
2392
2391
|
|
|
2393
2392
|
// A black-box test for the ttl wrapper around rocksdb
|
|
2394
|
-
int main(int argc, char**
|
|
2393
|
+
int main(int argc, char **argv) {
|
|
2395
2394
|
ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
|
|
2396
2395
|
::testing::InitGoogleTest(&argc, argv);
|
|
2397
2396
|
return RUN_ALL_TESTS();
|
|
@@ -226,7 +226,9 @@ Status BlobDumpTool::DumpRecord(DisplayType show_key, DisplayType show_blob,
|
|
|
226
226
|
DumpSlice(Slice(slice.data(), static_cast<size_t>(key_size)), show_key);
|
|
227
227
|
if (show_blob != DisplayType::kNone) {
|
|
228
228
|
fprintf(stdout, " blob : ");
|
|
229
|
-
DumpSlice(Slice(slice.data() + static_cast<size_t>(key_size),
|
|
229
|
+
DumpSlice(Slice(slice.data() + static_cast<size_t>(key_size),
|
|
230
|
+
static_cast<size_t>(value_size)),
|
|
231
|
+
show_blob);
|
|
230
232
|
}
|
|
231
233
|
if (show_uncompressed_blob != DisplayType::kNone) {
|
|
232
234
|
fprintf(stdout, " raw blob : ");
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
#include "utilities/blob_db/blob_file.h"
|
|
8
8
|
|
|
9
9
|
#include <stdio.h>
|
|
10
|
-
#include <cinttypes>
|
|
11
10
|
|
|
12
11
|
#include <algorithm>
|
|
12
|
+
#include <cinttypes>
|
|
13
13
|
#include <memory>
|
|
14
14
|
|
|
15
15
|
#include "db/column_family.h"
|
|
@@ -210,16 +210,14 @@ Status BlobFile::ReadMetadata(const std::shared_ptr<FileSystem>& fs,
|
|
|
210
210
|
file_size_ = file_size;
|
|
211
211
|
} else {
|
|
212
212
|
ROCKS_LOG_ERROR(info_log_,
|
|
213
|
-
"Failed to get size of blob file %" PRIu64
|
|
214
|
-
", status: %s",
|
|
213
|
+
"Failed to get size of blob file %" PRIu64 ", status: %s",
|
|
215
214
|
file_number_, s.ToString().c_str());
|
|
216
215
|
return s;
|
|
217
216
|
}
|
|
218
217
|
if (file_size < BlobLogHeader::kSize) {
|
|
219
|
-
ROCKS_LOG_ERROR(
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
file_number_, file_size);
|
|
218
|
+
ROCKS_LOG_ERROR(
|
|
219
|
+
info_log_, "Incomplete blob file blob file %" PRIu64 ", size: %" PRIu64,
|
|
220
|
+
file_number_, file_size);
|
|
223
221
|
return Status::Corruption("Incomplete blob file header.");
|
|
224
222
|
}
|
|
225
223
|
|
|
@@ -250,10 +248,9 @@ Status BlobFile::ReadMetadata(const std::shared_ptr<FileSystem>& fs,
|
|
|
250
248
|
Env::IO_TOTAL /* rate_limiter_priority */);
|
|
251
249
|
}
|
|
252
250
|
if (!s.ok()) {
|
|
253
|
-
ROCKS_LOG_ERROR(
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
file_number_, s.ToString().c_str());
|
|
251
|
+
ROCKS_LOG_ERROR(
|
|
252
|
+
info_log_, "Failed to read header of blob file %" PRIu64 ", status: %s",
|
|
253
|
+
file_number_, s.ToString().c_str());
|
|
257
254
|
return s;
|
|
258
255
|
}
|
|
259
256
|
BlobLogHeader header;
|
|
@@ -294,10 +291,9 @@ Status BlobFile::ReadMetadata(const std::shared_ptr<FileSystem>& fs,
|
|
|
294
291
|
nullptr, Env::IO_TOTAL /* rate_limiter_priority */);
|
|
295
292
|
}
|
|
296
293
|
if (!s.ok()) {
|
|
297
|
-
ROCKS_LOG_ERROR(
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
file_number_, s.ToString().c_str());
|
|
294
|
+
ROCKS_LOG_ERROR(
|
|
295
|
+
info_log_, "Failed to read footer of blob file %" PRIu64 ", status: %s",
|
|
296
|
+
file_number_, s.ToString().c_str());
|
|
301
297
|
return s;
|
|
302
298
|
}
|
|
303
299
|
BlobLogFooter footer;
|
|
@@ -7,8 +7,6 @@
|
|
|
7
7
|
#include "table/block_based/block_based_table_reader.h"
|
|
8
8
|
#ifndef ROCKSDB_LITE
|
|
9
9
|
|
|
10
|
-
#include "utilities/cache_dump_load_impl.h"
|
|
11
|
-
|
|
12
10
|
#include "cache/cache_entry_roles.h"
|
|
13
11
|
#include "file/writable_file_writer.h"
|
|
14
12
|
#include "port/lang.h"
|
|
@@ -17,6 +15,7 @@
|
|
|
17
15
|
#include "rocksdb/utilities/ldb_cmd.h"
|
|
18
16
|
#include "table/format.h"
|
|
19
17
|
#include "util/crc32c.h"
|
|
18
|
+
#include "utilities/cache_dump_load_impl.h"
|
|
20
19
|
|
|
21
20
|
namespace ROCKSDB_NAMESPACE {
|
|
22
21
|
|
|
@@ -40,8 +40,8 @@ CompactionFilter::Decision CassandraCompactionFilter::FilterV2(
|
|
|
40
40
|
const Slice& existing_value, std::string* new_value,
|
|
41
41
|
std::string* /*skip_until*/) const {
|
|
42
42
|
bool value_changed = false;
|
|
43
|
-
RowValue row_value =
|
|
44
|
-
|
|
43
|
+
RowValue row_value =
|
|
44
|
+
RowValue::Deserialize(existing_value.data(), existing_value.size());
|
|
45
45
|
RowValue compacted =
|
|
46
46
|
options_.purge_ttl_on_expiration
|
|
47
47
|
? row_value.RemoveExpiredColumns(&value_changed)
|
|
@@ -51,7 +51,7 @@ CompactionFilter::Decision CassandraCompactionFilter::FilterV2(
|
|
|
51
51
|
compacted = compacted.RemoveTombstones(options_.gc_grace_period_in_seconds);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
if(compacted.Empty()) {
|
|
54
|
+
if (compacted.Empty()) {
|
|
55
55
|
return Decision::kRemove;
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -25,18 +25,18 @@ namespace cassandra {
|
|
|
25
25
|
* promoted to kValue type after serials of merging in compaction.
|
|
26
26
|
*/
|
|
27
27
|
class CassandraCompactionFilter : public CompactionFilter {
|
|
28
|
-
public:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
private:
|
|
39
|
-
|
|
28
|
+
public:
|
|
29
|
+
explicit CassandraCompactionFilter(bool purge_ttl_on_expiration,
|
|
30
|
+
int32_t gc_grace_period_in_seconds);
|
|
31
|
+
static const char* kClassName() { return "CassandraCompactionFilter"; }
|
|
32
|
+
const char* Name() const override { return kClassName(); }
|
|
33
|
+
|
|
34
|
+
virtual Decision FilterV2(int level, const Slice& key, ValueType value_type,
|
|
35
|
+
const Slice& existing_value, std::string* new_value,
|
|
36
|
+
std::string* skip_until) const override;
|
|
37
|
+
|
|
38
|
+
private:
|
|
39
|
+
CassandraOptions options_;
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
class CassandraCompactionFilterFactory : public CompactionFilterFactory {
|