@nxtedition/rocksdb 15.4.1 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +70 -23
- package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
- package/deps/rocksdb/rocksdb/BUCK +42 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
- package/deps/rocksdb/rocksdb/Makefile +59 -32
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
- package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
- package/deps/rocksdb/rocksdb/db/builder.h +7 -0
- package/deps/rocksdb/rocksdb/db/c.cc +373 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
- package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
- package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
- package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
- package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
- package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
- package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
- package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
- package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
- package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
- package/deps/rocksdb/rocksdb/env/env.cc +1 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
- package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
- package/deps/rocksdb/rocksdb/folly.mk +22 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
- package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
- package/deps/rocksdb/rocksdb/options/options.cc +5 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
- package/deps/rocksdb/rocksdb/port/lang.h +4 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
- package/deps/rocksdb/rocksdb/src.mk +12 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
- package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
- package/deps/rocksdb/rocksdb/table/format.cc +27 -15
- package/deps/rocksdb/rocksdb/table/format.h +41 -15
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
- package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
- package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
- package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
- package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
- package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
- package/deps/rocksdb/rocksdb/util/coding.h +14 -27
- package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
- package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
- package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
- package/deps/rocksdb/rocksdb/util/math.h +3 -1
- package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
- package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
- package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
- package/deps/rocksdb/rocksdb/util/status.cc +3 -1
- package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
- package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
- package/deps/rocksdb/rocksdb.gyp +7 -0
- package/index.js +70 -10
- package/iterator.js +25 -3
- package/max_rev_operator.h +9 -5
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
|
@@ -97,7 +97,7 @@ DBTestBase::DBTestBase(const std::string path, bool env_do_fsync)
|
|
|
97
97
|
EXPECT_OK(DestroyDB(dbname_, delete_options));
|
|
98
98
|
// Destroy it for not alternative WAL dir is used.
|
|
99
99
|
EXPECT_OK(DestroyDB(dbname_, options));
|
|
100
|
-
db_
|
|
100
|
+
db_.reset();
|
|
101
101
|
Reopen(options);
|
|
102
102
|
Random::GetTLSInstance()->Reset(0xdeadbeef);
|
|
103
103
|
}
|
|
@@ -520,7 +520,7 @@ Options DBTestBase::GetOptions(
|
|
|
520
520
|
}
|
|
521
521
|
case kBlockBasedTableWithLatestFormat: {
|
|
522
522
|
// In case different from default
|
|
523
|
-
table_options.format_version =
|
|
523
|
+
table_options.format_version = kLatestBbtFormatVersion;
|
|
524
524
|
break;
|
|
525
525
|
}
|
|
526
526
|
case kOptimizeFiltersForHits: {
|
|
@@ -664,7 +664,8 @@ Status DBTestBase::TryReopenWithColumnFamilies(
|
|
|
664
664
|
DBOptions db_opts = DBOptions(options[0]);
|
|
665
665
|
last_options_ = options[0];
|
|
666
666
|
MaybeInstallTimeElapseOnlySleep(db_opts);
|
|
667
|
-
|
|
667
|
+
Status s = DB::Open(db_opts, dbname_, column_families, &handles_, &db_);
|
|
668
|
+
return s;
|
|
668
669
|
}
|
|
669
670
|
|
|
670
671
|
Status DBTestBase::TryReopenWithColumnFamilies(
|
|
@@ -674,6 +675,28 @@ Status DBTestBase::TryReopenWithColumnFamilies(
|
|
|
674
675
|
return TryReopenWithColumnFamilies(cfs, v_opts);
|
|
675
676
|
}
|
|
676
677
|
|
|
678
|
+
Status DBTestBase::TryReopenReadOnlyWithColumnFamilies(
|
|
679
|
+
const std::vector<std::string>& cfs, const std::vector<Options>& options) {
|
|
680
|
+
Close();
|
|
681
|
+
EXPECT_EQ(cfs.size(), options.size());
|
|
682
|
+
std::vector<ColumnFamilyDescriptor> column_families;
|
|
683
|
+
for (size_t i = 0; i < cfs.size(); ++i) {
|
|
684
|
+
column_families.emplace_back(cfs[i], options[i]);
|
|
685
|
+
}
|
|
686
|
+
DBOptions db_opts = DBOptions(options[0]);
|
|
687
|
+
last_options_ = options[0];
|
|
688
|
+
MaybeInstallTimeElapseOnlySleep(db_opts);
|
|
689
|
+
return DB::OpenForReadOnly(db_opts, dbname_, column_families, &handles_,
|
|
690
|
+
&db_);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
Status DBTestBase::TryReopenReadOnlyWithColumnFamilies(
|
|
694
|
+
const std::vector<std::string>& cfs, const Options& options) {
|
|
695
|
+
Close();
|
|
696
|
+
std::vector<Options> v_opts(cfs.size(), options);
|
|
697
|
+
return TryReopenReadOnlyWithColumnFamilies(cfs, v_opts);
|
|
698
|
+
}
|
|
699
|
+
|
|
677
700
|
void DBTestBase::Reopen(const Options& options) {
|
|
678
701
|
ASSERT_OK(TryReopen(options));
|
|
679
702
|
}
|
|
@@ -683,8 +706,7 @@ void DBTestBase::Close() {
|
|
|
683
706
|
EXPECT_OK(db_->DestroyColumnFamilyHandle(h));
|
|
684
707
|
}
|
|
685
708
|
handles_.clear();
|
|
686
|
-
|
|
687
|
-
db_ = nullptr;
|
|
709
|
+
db_.reset();
|
|
688
710
|
}
|
|
689
711
|
|
|
690
712
|
void DBTestBase::DestroyAndReopen(const Options& options) {
|
|
@@ -709,7 +731,8 @@ void DBTestBase::Destroy(const Options& options, bool delete_cf_paths) {
|
|
|
709
731
|
Status DBTestBase::ReadOnlyReopen(const Options& options) {
|
|
710
732
|
Close();
|
|
711
733
|
MaybeInstallTimeElapseOnlySleep(options);
|
|
712
|
-
|
|
734
|
+
Status s = DB::OpenForReadOnly(options, dbname_, &db_);
|
|
735
|
+
return s;
|
|
713
736
|
}
|
|
714
737
|
|
|
715
738
|
Status DBTestBase::EnforcedReadOnlyReopen(const Options& options) {
|
|
@@ -720,7 +743,8 @@ Status DBTestBase::EnforcedReadOnlyReopen(const Options& options) {
|
|
|
720
743
|
std::make_shared<ReadOnlyFileSystem>(env_->GetFileSystem());
|
|
721
744
|
env_read_only_ = std::make_shared<CompositeEnvWrapper>(env_, fs_read_only);
|
|
722
745
|
options_copy.env = env_read_only_.get();
|
|
723
|
-
|
|
746
|
+
Status s = DB::OpenForReadOnly(options_copy, dbname_, &db_);
|
|
747
|
+
return s;
|
|
724
748
|
}
|
|
725
749
|
|
|
726
750
|
Status DBTestBase::TryReopen(const Options& options) {
|
|
@@ -735,7 +759,8 @@ Status DBTestBase::TryReopen(const Options& options) {
|
|
|
735
759
|
// clears the block cache.
|
|
736
760
|
last_options_ = options;
|
|
737
761
|
MaybeInstallTimeElapseOnlySleep(options);
|
|
738
|
-
|
|
762
|
+
Status s = DB::Open(options, dbname_, &db_);
|
|
763
|
+
return s;
|
|
739
764
|
}
|
|
740
765
|
|
|
741
766
|
bool DBTestBase::IsDirectIOSupported() {
|
|
@@ -1162,7 +1187,7 @@ int DBTestBase::NumTableFilesAtLevel(int level, int cf) {
|
|
|
1162
1187
|
int DBTestBase::NumTableFilesAtLevel(int level, ColumnFamilyHandle* cfh,
|
|
1163
1188
|
DB* db) {
|
|
1164
1189
|
if (!db) {
|
|
1165
|
-
db = db_;
|
|
1190
|
+
db = db_.get();
|
|
1166
1191
|
}
|
|
1167
1192
|
std::string property;
|
|
1168
1193
|
EXPECT_TRUE(db->GetProperty(
|
|
@@ -1208,7 +1233,7 @@ std::string DBTestBase::FilesPerLevel(int cf) {
|
|
|
1208
1233
|
|
|
1209
1234
|
std::string DBTestBase::FilesPerLevel(ColumnFamilyHandle* cfh, DB* db) {
|
|
1210
1235
|
if (!db) {
|
|
1211
|
-
db = db_;
|
|
1236
|
+
db = db_.get();
|
|
1212
1237
|
}
|
|
1213
1238
|
int num_levels = db->NumberLevels(cfh);
|
|
1214
1239
|
std::string result;
|
|
@@ -1072,7 +1072,7 @@ class DBTestBase : public testing::Test {
|
|
|
1072
1072
|
SpecialEnv* env_;
|
|
1073
1073
|
std::shared_ptr<Env> env_read_only_;
|
|
1074
1074
|
std::shared_ptr<Env> env_guard_;
|
|
1075
|
-
DB
|
|
1075
|
+
std::unique_ptr<DB> db_;
|
|
1076
1076
|
std::vector<ColumnFamilyHandle*> handles_;
|
|
1077
1077
|
|
|
1078
1078
|
int option_config_;
|
|
@@ -1157,7 +1157,7 @@ class DBTestBase : public testing::Test {
|
|
|
1157
1157
|
const anon::OptionsOverride& options_override =
|
|
1158
1158
|
anon::OptionsOverride()) const;
|
|
1159
1159
|
|
|
1160
|
-
DBImpl* dbfull() { return static_cast_with_check<DBImpl>(db_); }
|
|
1160
|
+
DBImpl* dbfull() { return static_cast_with_check<DBImpl>(db_.get()); }
|
|
1161
1161
|
|
|
1162
1162
|
void CreateColumnFamilies(const std::vector<std::string>& cfs,
|
|
1163
1163
|
const Options& options);
|
|
@@ -1177,6 +1177,12 @@ class DBTestBase : public testing::Test {
|
|
|
1177
1177
|
Status TryReopenWithColumnFamilies(const std::vector<std::string>& cfs,
|
|
1178
1178
|
const Options& options);
|
|
1179
1179
|
|
|
1180
|
+
Status TryReopenReadOnlyWithColumnFamilies(
|
|
1181
|
+
const std::vector<std::string>& cfs, const std::vector<Options>& options);
|
|
1182
|
+
|
|
1183
|
+
Status TryReopenReadOnlyWithColumnFamilies(
|
|
1184
|
+
const std::vector<std::string>& cfs, const Options& options);
|
|
1185
|
+
|
|
1180
1186
|
void Reopen(const Options& options);
|
|
1181
1187
|
|
|
1182
1188
|
void Close();
|
|
@@ -395,13 +395,13 @@ TEST_P(DBWALTestWithTimestamp, RecoverAndNoFlush) {
|
|
|
395
395
|
read_opts.timestamp = &ts_slice;
|
|
396
396
|
ASSERT_OK(CreateAndReopenWithTs({"pikachu"}, ts_options, persist_udt,
|
|
397
397
|
avoid_flush_during_recovery));
|
|
398
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"), 0U);
|
|
398
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"), 0U);
|
|
399
399
|
ASSERT_OK(Put(1, "foo", ts1, "v1"));
|
|
400
400
|
ASSERT_OK(Put(1, "baz", ts1, "v5"));
|
|
401
401
|
|
|
402
402
|
ASSERT_OK(ReopenColumnFamiliesWithTs({"pikachu"}, ts_options, persist_udt,
|
|
403
403
|
avoid_flush_during_recovery));
|
|
404
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"), 0U);
|
|
404
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"), 0U);
|
|
405
405
|
// Do a timestamped read with ts1 after second reopen.
|
|
406
406
|
CheckGet(read_opts, 1, "foo", "v1", ts1);
|
|
407
407
|
CheckGet(read_opts, 1, "baz", "v5", ts1);
|
|
@@ -415,7 +415,7 @@ TEST_P(DBWALTestWithTimestamp, RecoverAndNoFlush) {
|
|
|
415
415
|
|
|
416
416
|
ASSERT_OK(ReopenColumnFamiliesWithTs({"pikachu"}, ts_options, persist_udt,
|
|
417
417
|
avoid_flush_during_recovery));
|
|
418
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"), 0U);
|
|
418
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"), 0U);
|
|
419
419
|
std::string ts3;
|
|
420
420
|
PutFixed64(&ts3, 3);
|
|
421
421
|
ASSERT_OK(Put(1, "foo", ts3, "v4"));
|
|
@@ -466,14 +466,14 @@ TEST_P(DBWALTestWithTimestamp, RecoverAndFlush) {
|
|
|
466
466
|
|
|
467
467
|
ASSERT_OK(CreateAndReopenWithTs({"pikachu"}, ts_options, persist_udt));
|
|
468
468
|
// No flush, no sst files, because of no data.
|
|
469
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"), 0U);
|
|
469
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"), 0U);
|
|
470
470
|
ASSERT_OK(Put(1, largest_ukey_without_ts, write_ts, "v1"));
|
|
471
471
|
ASSERT_OK(Put(1, smallest_ukey_without_ts, write_ts, "v5"));
|
|
472
472
|
|
|
473
473
|
ASSERT_OK(ReopenColumnFamiliesWithTs({"pikachu"}, ts_options, persist_udt));
|
|
474
474
|
// Memtable recovered from WAL flushed because `avoid_flush_during_recovery`
|
|
475
475
|
// defaults to false, created one L0 file.
|
|
476
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"), 1U);
|
|
476
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"), 1U);
|
|
477
477
|
|
|
478
478
|
std::vector<std::vector<FileMetaData>> level_to_files;
|
|
479
479
|
dbfull()->TEST_GetFilesMetaData(handles_[1], &level_to_files);
|
|
@@ -600,9 +600,9 @@ TEST_F(DBWALTest, RecoverWithTableHandle) {
|
|
|
600
600
|
for (const auto& level : files) {
|
|
601
601
|
for (const auto& file : level) {
|
|
602
602
|
if (options.max_open_files == kSmallMaxOpenFiles) {
|
|
603
|
-
ASSERT_TRUE(file.
|
|
603
|
+
ASSERT_TRUE(file.fd.pinned_reader.Get() == nullptr);
|
|
604
604
|
} else {
|
|
605
|
-
ASSERT_TRUE(file.
|
|
605
|
+
ASSERT_TRUE(file.fd.pinned_reader.Get() != nullptr);
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
608
|
}
|
|
@@ -1347,7 +1347,7 @@ TEST_F(DBWALTest, RecoverCheckFileAmountWithSmallWriteBuffer) {
|
|
|
1347
1347
|
auto tables = ListTableFiles(env_, dbname_);
|
|
1348
1348
|
ASSERT_EQ(tables.size(), static_cast<size_t>(1));
|
|
1349
1349
|
// Make sure 'dobrynia' was flushed: check sst files amount
|
|
1350
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "dobrynia"),
|
|
1350
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "dobrynia"),
|
|
1351
1351
|
static_cast<uint64_t>(1));
|
|
1352
1352
|
}
|
|
1353
1353
|
// New WAL file
|
|
@@ -1363,16 +1363,16 @@ TEST_F(DBWALTest, RecoverCheckFileAmountWithSmallWriteBuffer) {
|
|
|
1363
1363
|
options);
|
|
1364
1364
|
{
|
|
1365
1365
|
// No inserts => default is empty
|
|
1366
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "default"),
|
|
1366
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "default"),
|
|
1367
1367
|
static_cast<uint64_t>(0));
|
|
1368
1368
|
// First 4 keys goes to separate SSTs + 1 more SST for 2 smaller keys
|
|
1369
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"),
|
|
1369
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"),
|
|
1370
1370
|
static_cast<uint64_t>(5));
|
|
1371
1371
|
// 1 SST for big key + 1 SST for small one
|
|
1372
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "dobrynia"),
|
|
1372
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "dobrynia"),
|
|
1373
1373
|
static_cast<uint64_t>(2));
|
|
1374
1374
|
// 1 SST for all keys
|
|
1375
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "nikitich"),
|
|
1375
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "nikitich"),
|
|
1376
1376
|
static_cast<uint64_t>(1));
|
|
1377
1377
|
}
|
|
1378
1378
|
}
|
|
@@ -1401,7 +1401,7 @@ TEST_F(DBWALTest, RecoverCheckFileAmount) {
|
|
|
1401
1401
|
{
|
|
1402
1402
|
auto tables = ListTableFiles(env_, dbname_);
|
|
1403
1403
|
ASSERT_EQ(tables.size(), static_cast<size_t>(1));
|
|
1404
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "nikitich"),
|
|
1404
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "nikitich"),
|
|
1405
1405
|
static_cast<uint64_t>(1));
|
|
1406
1406
|
}
|
|
1407
1407
|
// Memtable for 'nikitich' has flushed, new WAL file has opened
|
|
@@ -1425,7 +1425,7 @@ TEST_F(DBWALTest, RecoverCheckFileAmount) {
|
|
|
1425
1425
|
{
|
|
1426
1426
|
auto tables = ListTableFiles(env_, dbname_);
|
|
1427
1427
|
ASSERT_EQ(tables.size(), static_cast<size_t>(2));
|
|
1428
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "nikitich"),
|
|
1428
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "nikitich"),
|
|
1429
1429
|
static_cast<uint64_t>(2));
|
|
1430
1430
|
}
|
|
1431
1431
|
|
|
@@ -1437,13 +1437,13 @@ TEST_F(DBWALTest, RecoverCheckFileAmount) {
|
|
|
1437
1437
|
// first, second and third WALs went to the same SST.
|
|
1438
1438
|
// So, there is 6 SSTs: three for 'nikitich', one for 'default', one for
|
|
1439
1439
|
// 'dobrynia', one for 'pikachu'
|
|
1440
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "default"),
|
|
1440
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "default"),
|
|
1441
1441
|
static_cast<uint64_t>(1));
|
|
1442
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "nikitich"),
|
|
1442
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "nikitich"),
|
|
1443
1443
|
static_cast<uint64_t>(3));
|
|
1444
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "dobrynia"),
|
|
1444
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "dobrynia"),
|
|
1445
1445
|
static_cast<uint64_t>(1));
|
|
1446
|
-
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "pikachu"),
|
|
1446
|
+
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_.get(), "pikachu"),
|
|
1447
1447
|
static_cast<uint64_t>(1));
|
|
1448
1448
|
}
|
|
1449
1449
|
}
|
|
@@ -1521,9 +1521,9 @@ TEST_F(DBWALTest, DISABLED_RecycleMultipleWalsCrash) {
|
|
|
1521
1521
|
// from an old incarnation of the WAL on recovery
|
|
1522
1522
|
ASSERT_OK(db_->PauseBackgroundWork());
|
|
1523
1523
|
ASSERT_OK(Put("ignore1", Random::GetTLSInstance()->RandomString(500)));
|
|
1524
|
-
ASSERT_OK(
|
|
1524
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
1525
1525
|
ASSERT_OK(Put("ignore2", Random::GetTLSInstance()->RandomString(500)));
|
|
1526
|
-
ASSERT_OK(
|
|
1526
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
1527
1527
|
ASSERT_OK(db_->ContinueBackgroundWork());
|
|
1528
1528
|
ASSERT_OK(Flush());
|
|
1529
1529
|
ASSERT_OK(Put("ignore3", Random::GetTLSInstance()->RandomString(500)));
|
|
@@ -1545,13 +1545,13 @@ TEST_F(DBWALTest, DISABLED_RecycleMultipleWalsCrash) {
|
|
|
1545
1545
|
// gap in sequence numbers to interfere with recovery
|
|
1546
1546
|
ASSERT_OK(db_->PauseBackgroundWork());
|
|
1547
1547
|
ASSERT_OK(Put("key1", "val1"));
|
|
1548
|
-
ASSERT_OK(
|
|
1548
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
1549
1549
|
ASSERT_OK(Put("key2", "val2"));
|
|
1550
|
-
ASSERT_OK(
|
|
1550
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
1551
1551
|
// Need a gap in sequence numbers, so e.g. ingest external file
|
|
1552
1552
|
// with an open snapshot
|
|
1553
1553
|
{
|
|
1554
|
-
ManagedSnapshot snapshot(db_);
|
|
1554
|
+
ManagedSnapshot snapshot(db_.get());
|
|
1555
1555
|
ASSERT_OK(
|
|
1556
1556
|
db_->IngestExternalFile({external_file1}, IngestExternalFileOptions()));
|
|
1557
1557
|
}
|
|
@@ -1560,7 +1560,7 @@ TEST_F(DBWALTest, DISABLED_RecycleMultipleWalsCrash) {
|
|
|
1560
1560
|
// Need an SST file that is logically after that WAL, so that dropping WAL
|
|
1561
1561
|
// data is not a valid point in time.
|
|
1562
1562
|
{
|
|
1563
|
-
ManagedSnapshot snapshot(db_);
|
|
1563
|
+
ManagedSnapshot snapshot(db_.get());
|
|
1564
1564
|
ASSERT_OK(
|
|
1565
1565
|
db_->IngestExternalFile({external_file2}, IngestExternalFileOptions()));
|
|
1566
1566
|
}
|
|
@@ -1613,7 +1613,7 @@ TEST_F(DBWALTest, SyncWalPartialFailure) {
|
|
|
1613
1613
|
return s;
|
|
1614
1614
|
}
|
|
1615
1615
|
|
|
1616
|
-
|
|
1616
|
+
Atomic<uint32_t> syncs_before_failure_{UINT32_MAX};
|
|
1617
1617
|
|
|
1618
1618
|
protected:
|
|
1619
1619
|
class MyTestWritableFile : public FSWritableFileOwnerWrapper {
|
|
@@ -1655,10 +1655,10 @@ TEST_F(DBWALTest, SyncWalPartialFailure) {
|
|
|
1655
1655
|
// with a single thread, to exercise as much logic as we reasonably can.
|
|
1656
1656
|
ASSERT_OK(db_->PauseBackgroundWork());
|
|
1657
1657
|
ASSERT_OK(Put("key1", "val1"));
|
|
1658
|
-
ASSERT_OK(
|
|
1658
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
1659
1659
|
ASSERT_OK(db_->SyncWAL());
|
|
1660
1660
|
ASSERT_OK(Put("key2", "val2"));
|
|
1661
|
-
ASSERT_OK(
|
|
1661
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
1662
1662
|
ASSERT_OK(Put("key3", "val3"));
|
|
1663
1663
|
|
|
1664
1664
|
// Allow 1 of the WALs to sync, but another won't
|
|
@@ -1879,9 +1879,11 @@ TEST_F(DBWALTest, TrackAndVerifyWALsRecycleWAL) {
|
|
|
1879
1879
|
// Drop `Put("key1", "old_value")` in the first WAL
|
|
1880
1880
|
ASSERT_OK(test::TruncateFile(options.env, log_name, 0 /* new_length */));
|
|
1881
1881
|
|
|
1882
|
-
|
|
1882
|
+
{
|
|
1883
|
+
Status s = DB::Open(options, dbname_, &db_);
|
|
1883
1884
|
|
|
1884
|
-
|
|
1885
|
+
ASSERT_OK(s);
|
|
1886
|
+
}
|
|
1885
1887
|
|
|
1886
1888
|
ASSERT_EQ("wal_to_recycle", Get("key_ignore2"));
|
|
1887
1889
|
ASSERT_EQ("NOT_FOUND", Get("key1"));
|
|
@@ -1979,7 +1981,10 @@ TEST_P(DBWALTrackAndVerifyWALsWithParamsTest, Basic) {
|
|
|
1979
1981
|
ASSERT_OK(options.env->DeleteFile(second_log_name));
|
|
1980
1982
|
}
|
|
1981
1983
|
|
|
1982
|
-
Status s
|
|
1984
|
+
Status s;
|
|
1985
|
+
{
|
|
1986
|
+
s = DB::Open(options, dbname_, &db_);
|
|
1987
|
+
}
|
|
1983
1988
|
|
|
1984
1989
|
if (i == 0) {
|
|
1985
1990
|
ASSERT_OK(s);
|
|
@@ -2266,11 +2271,10 @@ TEST_F(DBWALTest, RaceInstallFlushResultsWithWalObsoletion) {
|
|
|
2266
2271
|
SyncPoint::GetInstance()->DisableProcessing();
|
|
2267
2272
|
SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
2268
2273
|
|
|
2269
|
-
DB
|
|
2274
|
+
std::unique_ptr<DB> db1;
|
|
2270
2275
|
Status s = DB::OpenForReadOnly(options, dbname_, &db1);
|
|
2271
2276
|
ASSERT_OK(s);
|
|
2272
2277
|
assert(db1);
|
|
2273
|
-
delete db1;
|
|
2274
2278
|
}
|
|
2275
2279
|
|
|
2276
2280
|
TEST_F(DBWALTest, FixSyncWalOnObseletedWalWithNewManifestCausingMissingWAL) {
|
|
@@ -662,7 +662,7 @@ TEST_F(DBBasicTestWithTimestamp, TrimHistoryTest) {
|
|
|
662
662
|
ASSERT_OK(db_->Put(WriteOptions(), "k1", Timestamp(4, 0), "v2"));
|
|
663
663
|
ASSERT_OK(db_->Delete(WriteOptions(), "k1", Timestamp(5, 0)));
|
|
664
664
|
ASSERT_OK(db_->Put(WriteOptions(), "k1", Timestamp(6, 0), "v3"));
|
|
665
|
-
check_value_by_ts(db_, "k1", Timestamp(7, 0), Status::OK(), "v3",
|
|
665
|
+
check_value_by_ts(db_.get(), "k1", Timestamp(7, 0), Status::OK(), "v3",
|
|
666
666
|
Timestamp(6, 0));
|
|
667
667
|
ASSERT_OK(Flush());
|
|
668
668
|
Close();
|
|
@@ -675,27 +675,27 @@ TEST_F(DBBasicTestWithTimestamp, TrimHistoryTest) {
|
|
|
675
675
|
// Trim data whose version > Timestamp(5, 0), read(k1, ts(7)) <- NOT_FOUND.
|
|
676
676
|
ASSERT_OK(DB::OpenAndTrimHistory(db_options, dbname_, column_families,
|
|
677
677
|
&handles_, &db_, Timestamp(5, 0)));
|
|
678
|
-
check_value_by_ts(db_, "k1", Timestamp(7, 0), Status::NotFound(), "",
|
|
678
|
+
check_value_by_ts(db_.get(), "k1", Timestamp(7, 0), Status::NotFound(), "",
|
|
679
679
|
Timestamp(5, 0));
|
|
680
680
|
Close();
|
|
681
681
|
|
|
682
682
|
// Trim data whose timestamp > Timestamp(4, 0), read(k1, ts(7)) <- v2
|
|
683
683
|
ASSERT_OK(DB::OpenAndTrimHistory(db_options, dbname_, column_families,
|
|
684
684
|
&handles_, &db_, Timestamp(4, 0)));
|
|
685
|
-
check_value_by_ts(db_, "k1", Timestamp(7, 0), Status::OK(), "v2",
|
|
685
|
+
check_value_by_ts(db_.get(), "k1", Timestamp(7, 0), Status::OK(), "v2",
|
|
686
686
|
Timestamp(4, 0));
|
|
687
687
|
Close();
|
|
688
688
|
|
|
689
689
|
Reopen(options);
|
|
690
690
|
ASSERT_OK(db_->DeleteRange(WriteOptions(), db_->DefaultColumnFamily(), "k1",
|
|
691
691
|
"k3", Timestamp(7, 0)));
|
|
692
|
-
check_value_by_ts(db_, "k1", Timestamp(8, 0), Status::NotFound(), "",
|
|
692
|
+
check_value_by_ts(db_.get(), "k1", Timestamp(8, 0), Status::NotFound(), "",
|
|
693
693
|
Timestamp(7, 0));
|
|
694
694
|
Close();
|
|
695
695
|
// Trim data whose timestamp > Timestamp(6, 0), read(k1, ts(8)) <- v2
|
|
696
696
|
ASSERT_OK(DB::OpenAndTrimHistory(db_options, dbname_, column_families,
|
|
697
697
|
&handles_, &db_, Timestamp(6, 0)));
|
|
698
|
-
check_value_by_ts(db_, "k1", Timestamp(8, 0), Status::OK(), "v2",
|
|
698
|
+
check_value_by_ts(db_.get(), "k1", Timestamp(8, 0), Status::OK(), "v2",
|
|
699
699
|
Timestamp(4, 0));
|
|
700
700
|
Close();
|
|
701
701
|
}
|
|
@@ -1427,8 +1427,12 @@ TEST_F(DBBasicTestWithTimestamp, ReseekToNextUserKey) {
|
|
|
1427
1427
|
{
|
|
1428
1428
|
std::string ts_str = Timestamp(static_cast<uint64_t>(kNumKeys + 1), 0);
|
|
1429
1429
|
WriteBatch batch(0, 0, 0, kTimestampSize);
|
|
1430
|
-
{
|
|
1431
|
-
|
|
1430
|
+
{
|
|
1431
|
+
ASSERT_OK(batch.Put("a", "new_value"));
|
|
1432
|
+
}
|
|
1433
|
+
{
|
|
1434
|
+
ASSERT_OK(batch.Put("b", "new_value"));
|
|
1435
|
+
}
|
|
1432
1436
|
s = batch.UpdateTimestamps(
|
|
1433
1437
|
ts_str, [kTimestampSize](uint32_t) { return kTimestampSize; });
|
|
1434
1438
|
ASSERT_OK(s);
|