@nxtedition/rocksdb 15.4.1 → 15.5.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 +24 -15
- 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/iterator.js +2 -2
- 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
|
@@ -1689,6 +1689,46 @@ TEST_F(DBOptionsTest, SetOptionsNoManifestWrite) {
|
|
|
1689
1689
|
ASSERT_EQ(Get("x"), "x");
|
|
1690
1690
|
}
|
|
1691
1691
|
|
|
1692
|
+
TEST_F(DBOptionsTest, SetOptionsMultipleColumnFamilies) {
|
|
1693
|
+
Options options;
|
|
1694
|
+
options.create_if_missing = true;
|
|
1695
|
+
options.env = CurrentOptions().env;
|
|
1696
|
+
options.disable_auto_compactions = true;
|
|
1697
|
+
Reopen(options);
|
|
1698
|
+
|
|
1699
|
+
// Create two additional column families
|
|
1700
|
+
CreateColumnFamilies({"cf1", "cf2"}, options);
|
|
1701
|
+
ReopenWithColumnFamilies({"default", "cf1", "cf2"}, options);
|
|
1702
|
+
|
|
1703
|
+
// Verify initial state - auto compaction should be disabled
|
|
1704
|
+
ASSERT_TRUE(dbfull()->GetOptions(handles_[0]).disable_auto_compactions);
|
|
1705
|
+
ASSERT_TRUE(dbfull()->GetOptions(handles_[1]).disable_auto_compactions);
|
|
1706
|
+
ASSERT_TRUE(dbfull()->GetOptions(handles_[2]).disable_auto_compactions);
|
|
1707
|
+
|
|
1708
|
+
// Set options on multiple column families at once
|
|
1709
|
+
ASSERT_OK(dbfull()->SetOptions({handles_[1], handles_[2]},
|
|
1710
|
+
{{"disable_auto_compactions", "false"}}));
|
|
1711
|
+
|
|
1712
|
+
ASSERT_TRUE(
|
|
1713
|
+
dbfull()->GetOptions(handles_[0]).disable_auto_compactions); // unchanged
|
|
1714
|
+
ASSERT_FALSE(
|
|
1715
|
+
dbfull()->GetOptions(handles_[1]).disable_auto_compactions); // changed
|
|
1716
|
+
ASSERT_FALSE(
|
|
1717
|
+
dbfull()->GetOptions(handles_[2]).disable_auto_compactions); // changed
|
|
1718
|
+
|
|
1719
|
+
std::unordered_map<ColumnFamilyHandle*,
|
|
1720
|
+
std::unordered_map<std::string, std::string>>
|
|
1721
|
+
options_map;
|
|
1722
|
+
options_map[handles_[0]] = {{"disable_auto_compactions", "false"}};
|
|
1723
|
+
options_map[handles_[1]] = {{"disable_auto_compactions", "true"}};
|
|
1724
|
+
options_map[handles_[2]] = {{"disable_auto_compactions", "true"}};
|
|
1725
|
+
ASSERT_OK(dbfull()->SetOptions(options_map));
|
|
1726
|
+
|
|
1727
|
+
ASSERT_FALSE(dbfull()->GetOptions(handles_[0]).disable_auto_compactions);
|
|
1728
|
+
ASSERT_TRUE(dbfull()->GetOptions(handles_[1]).disable_auto_compactions);
|
|
1729
|
+
ASSERT_TRUE(dbfull()->GetOptions(handles_[2]).disable_auto_compactions);
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1692
1732
|
} // namespace ROCKSDB_NAMESPACE
|
|
1693
1733
|
|
|
1694
1734
|
int main(int argc, char** argv) {
|
|
@@ -384,7 +384,7 @@ TEST_F(DBPropertiesTest, AggregatedTableProperties) {
|
|
|
384
384
|
|
|
385
385
|
// Hold open a snapshot to prevent range tombstones from being compacted
|
|
386
386
|
// away.
|
|
387
|
-
ManagedSnapshot snapshot(db_);
|
|
387
|
+
ManagedSnapshot snapshot(db_.get());
|
|
388
388
|
|
|
389
389
|
Random rnd(5632);
|
|
390
390
|
for (int table = 1; table <= kTableCount; ++table) {
|
|
@@ -582,7 +582,7 @@ TEST_F(DBPropertiesTest, AggregatedTablePropertiesAtLevel) {
|
|
|
582
582
|
DestroyAndReopen(options);
|
|
583
583
|
|
|
584
584
|
// Hold open a snapshot to prevent range tombstones from being compacted away.
|
|
585
|
-
ManagedSnapshot snapshot(db_);
|
|
585
|
+
ManagedSnapshot snapshot(db_.get());
|
|
586
586
|
|
|
587
587
|
std::string level_tp_strings[kMaxLevel];
|
|
588
588
|
std::string tp_string;
|
|
@@ -1519,16 +1519,14 @@ TEST_F(DBPropertiesTest, NeedCompactHintPersistentTest) {
|
|
|
1519
1519
|
|
|
1520
1520
|
// Excluded from RocksDB lite tests due to `GetPropertiesOfAllTables()` usage.
|
|
1521
1521
|
TEST_F(DBPropertiesTest, BlockAddForCompressionSampling) {
|
|
1522
|
-
// Sampled compression requires at least one of the following four types.
|
|
1523
|
-
if (!Snappy_Supported() && !Zlib_Supported() && !LZ4_Supported() &&
|
|
1524
|
-
!ZSTD_Supported()) {
|
|
1525
|
-
return;
|
|
1526
|
-
}
|
|
1527
|
-
|
|
1528
1522
|
Options options = CurrentOptions();
|
|
1529
1523
|
options.disable_auto_compactions = true;
|
|
1530
1524
|
options.table_properties_collector_factories.emplace_back(
|
|
1531
1525
|
std::make_shared<BlockCountingTablePropertiesCollectorFactory>());
|
|
1526
|
+
options.compression = kNoCompression;
|
|
1527
|
+
|
|
1528
|
+
bool fast_sampling_supported = Snappy_Supported() || LZ4_Supported();
|
|
1529
|
+
bool slow_sampling_supported = ZSTD_Supported() || Zlib_Supported();
|
|
1532
1530
|
|
|
1533
1531
|
for (bool sample_for_compression : {false, true}) {
|
|
1534
1532
|
// For simplicity/determinism, sample 100% when enabled, or 0% when disabled
|
|
@@ -1542,10 +1540,11 @@ TEST_F(DBPropertiesTest, BlockAddForCompressionSampling) {
|
|
|
1542
1540
|
// L1_0 ["a", "b"]
|
|
1543
1541
|
//
|
|
1544
1542
|
// L0_0 was created by flush. L1_0 was created by compaction. Each file
|
|
1545
|
-
// contains one data block.
|
|
1543
|
+
// contains one data block with enough data to be compressible.
|
|
1546
1544
|
for (int i = 0; i < 3; ++i) {
|
|
1547
|
-
|
|
1548
|
-
|
|
1545
|
+
for (int j = 0; j < 50; ++j) {
|
|
1546
|
+
ASSERT_OK(Put(std::to_string(j), "thisismyvalue"));
|
|
1547
|
+
}
|
|
1549
1548
|
ASSERT_OK(Flush());
|
|
1550
1549
|
if (i == 1) {
|
|
1551
1550
|
ASSERT_OK(db_->CompactRange(CompactRangeOptions(), nullptr, nullptr));
|
|
@@ -1558,13 +1557,33 @@ TEST_F(DBPropertiesTest, BlockAddForCompressionSampling) {
|
|
|
1558
1557
|
ASSERT_OK(db_->GetPropertiesOfAllTables(&file_to_props));
|
|
1559
1558
|
ASSERT_EQ(2, file_to_props.size());
|
|
1560
1559
|
for (const auto& file_and_props : file_to_props) {
|
|
1561
|
-
auto&
|
|
1560
|
+
auto& props = *file_and_props.second;
|
|
1561
|
+
auto& user_props = props.user_collected_properties;
|
|
1562
1562
|
ASSERT_TRUE(user_props.find(BlockCountingTablePropertiesCollector::
|
|
1563
1563
|
kNumSampledBlocksPropertyName) !=
|
|
1564
1564
|
user_props.end());
|
|
1565
1565
|
ASSERT_EQ(user_props.at(BlockCountingTablePropertiesCollector::
|
|
1566
1566
|
kNumSampledBlocksPropertyName),
|
|
1567
1567
|
std::to_string(sample_for_compression ? 1 : 0));
|
|
1568
|
+
if (sample_for_compression) {
|
|
1569
|
+
EXPECT_GT(props.fast_compression_estimated_data_size, 0);
|
|
1570
|
+
EXPECT_GT(props.slow_compression_estimated_data_size, 0);
|
|
1571
|
+
if (fast_sampling_supported) {
|
|
1572
|
+
EXPECT_LT(props.fast_compression_estimated_data_size,
|
|
1573
|
+
props.data_size);
|
|
1574
|
+
if (slow_sampling_supported) {
|
|
1575
|
+
EXPECT_LT(props.slow_compression_estimated_data_size,
|
|
1576
|
+
props.fast_compression_estimated_data_size);
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
if (slow_sampling_supported) {
|
|
1580
|
+
EXPECT_LT(props.slow_compression_estimated_data_size,
|
|
1581
|
+
props.data_size);
|
|
1582
|
+
}
|
|
1583
|
+
} else {
|
|
1584
|
+
EXPECT_EQ(props.fast_compression_estimated_data_size, 0);
|
|
1585
|
+
EXPECT_EQ(props.slow_compression_estimated_data_size, 0);
|
|
1586
|
+
}
|
|
1568
1587
|
}
|
|
1569
1588
|
}
|
|
1570
1589
|
}
|
|
@@ -1845,7 +1864,7 @@ TEST_F(DBPropertiesTest, MinObsoleteSstNumberToKeep) {
|
|
|
1845
1864
|
options.listeners.push_back(listener);
|
|
1846
1865
|
options.level0_file_num_compaction_trigger = kNumL0Files;
|
|
1847
1866
|
DestroyAndReopen(options);
|
|
1848
|
-
listener->SetDB(db_);
|
|
1867
|
+
listener->SetDB(db_.get());
|
|
1849
1868
|
|
|
1850
1869
|
for (int i = 0; i < kNumL0Files; ++i) {
|
|
1851
1870
|
// Make sure they overlap in keyspace to prevent trivial move
|
|
@@ -2047,7 +2047,7 @@ TEST_F(DBRangeDelTest, IteratorReseek) {
|
|
|
2047
2047
|
// Immutable memtable
|
|
2048
2048
|
ASSERT_OK(db_->DeleteRange(WriteOptions(), db_->DefaultColumnFamily(), Key(1),
|
|
2049
2049
|
Key(2)));
|
|
2050
|
-
ASSERT_OK(
|
|
2050
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
2051
2051
|
std::string value;
|
|
2052
2052
|
ASSERT_TRUE(dbfull()->GetProperty(db_->DefaultColumnFamily(),
|
|
2053
2053
|
"rocksdb.num-immutable-mem-table", &value));
|
|
@@ -237,7 +237,7 @@ TEST_F(DBReadOnlyTestWithTimestamp, IteratorAndGet) {
|
|
|
237
237
|
it->Next(), ++count, ++key) {
|
|
238
238
|
CheckIterUserEntry(it.get(), Key1(key), kTypeValue,
|
|
239
239
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
240
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
240
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
241
241
|
write_timestamps[i]);
|
|
242
242
|
}
|
|
243
243
|
ASSERT_OK(it->status());
|
|
@@ -250,7 +250,7 @@ TEST_F(DBReadOnlyTestWithTimestamp, IteratorAndGet) {
|
|
|
250
250
|
it->Prev(), ++count, --key) {
|
|
251
251
|
CheckIterUserEntry(it.get(), Key1(key), kTypeValue,
|
|
252
252
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
253
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
253
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
254
254
|
write_timestamps[i]);
|
|
255
255
|
}
|
|
256
256
|
ASSERT_OK(it->status());
|
|
@@ -272,7 +272,7 @@ TEST_F(DBReadOnlyTestWithTimestamp, IteratorAndGet) {
|
|
|
272
272
|
it->Valid(); it->Next(), ++key, ++count) {
|
|
273
273
|
CheckIterUserEntry(it.get(), Key1(key), kTypeValue,
|
|
274
274
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
275
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
275
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
276
276
|
write_timestamps[i]);
|
|
277
277
|
}
|
|
278
278
|
ASSERT_OK(it->status());
|
|
@@ -282,7 +282,7 @@ TEST_F(DBReadOnlyTestWithTimestamp, IteratorAndGet) {
|
|
|
282
282
|
it->Valid(); it->Prev(), --key, ++count) {
|
|
283
283
|
CheckIterUserEntry(it.get(), Key1(key - 1), kTypeValue,
|
|
284
284
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
285
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
285
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
286
286
|
write_timestamps[i]);
|
|
287
287
|
}
|
|
288
288
|
ASSERT_OK(it->status());
|
|
@@ -56,12 +56,11 @@ class DBSecondaryTestBase : public DBBasicTestWithTimestampBase {
|
|
|
56
56
|
ASSERT_OK(db_secondary_->DestroyColumnFamilyHandle(h));
|
|
57
57
|
}
|
|
58
58
|
handles_secondary_.clear();
|
|
59
|
-
|
|
60
|
-
db_secondary_ = nullptr;
|
|
59
|
+
db_secondary_.reset();
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
DBImplSecondary* db_secondary_full() {
|
|
64
|
-
return static_cast<DBImplSecondary*>(db_secondary_);
|
|
63
|
+
return static_cast<DBImplSecondary*>(db_secondary_.get());
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
void CheckFileTypeCounts(const std::string& dir, int expected_log,
|
|
@@ -69,7 +68,7 @@ class DBSecondaryTestBase : public DBBasicTestWithTimestampBase {
|
|
|
69
68
|
|
|
70
69
|
std::string secondary_path_;
|
|
71
70
|
std::vector<ColumnFamilyHandle*> handles_secondary_;
|
|
72
|
-
DB
|
|
71
|
+
std::unique_ptr<DB> db_secondary_;
|
|
73
72
|
};
|
|
74
73
|
|
|
75
74
|
void DBSecondaryTestBase::OpenSecondary(const Options& options) {
|
|
@@ -152,8 +151,8 @@ TEST_F(DBSecondaryTest, NonExistingDb) {
|
|
|
152
151
|
options.env = env_;
|
|
153
152
|
options.max_open_files = -1;
|
|
154
153
|
const std::string dbname = "/doesnt/exist";
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
std::unique_ptr<DB> dbptr;
|
|
155
|
+
Status s = DB::OpenAsSecondary(options, dbname, secondary_path_, &dbptr);
|
|
157
156
|
ASSERT_TRUE(s.IsIOError());
|
|
158
157
|
}
|
|
159
158
|
|
|
@@ -182,7 +181,7 @@ TEST_F(DBSecondaryTest, ReopenAsSecondary) {
|
|
|
182
181
|
|
|
183
182
|
ReadOptions ropts;
|
|
184
183
|
ropts.verify_checksums = true;
|
|
185
|
-
auto db1 = static_cast<DBImplSecondary*>(db_);
|
|
184
|
+
auto db1 = static_cast<DBImplSecondary*>(db_.get());
|
|
186
185
|
ASSERT_NE(nullptr, db1);
|
|
187
186
|
Iterator* iter = db1->NewIterator(ropts);
|
|
188
187
|
ASSERT_NE(nullptr, iter);
|
|
@@ -834,7 +833,7 @@ TEST_F(DBSecondaryTest, OpenWithSubsetOfColumnFamilies) {
|
|
|
834
833
|
options1.max_open_files = -1;
|
|
835
834
|
OpenSecondary(options1);
|
|
836
835
|
ASSERT_EQ(0, handles_secondary_.size());
|
|
837
|
-
ASSERT_NE(nullptr, db_secondary_);
|
|
836
|
+
ASSERT_NE(nullptr, db_secondary_.get());
|
|
838
837
|
|
|
839
838
|
ASSERT_OK(Put(0 /*cf*/, "foo", "foo_value"));
|
|
840
839
|
ASSERT_OK(Put(1 /*cf*/, "foo", "foo_value"));
|
|
@@ -1152,7 +1151,7 @@ TEST_F(DBSecondaryTest, DISABLED_SwitchWAL) {
|
|
|
1152
1151
|
for (int k = 0; k != 16; ++k) {
|
|
1153
1152
|
ASSERT_OK(Put("key" + std::to_string(k), "value" + std::to_string(k)));
|
|
1154
1153
|
ASSERT_OK(db_secondary_->TryCatchUpWithPrimary());
|
|
1155
|
-
verify_db(dbfull(), db_secondary_);
|
|
1154
|
+
verify_db(dbfull(), db_secondary_.get());
|
|
1156
1155
|
}
|
|
1157
1156
|
}
|
|
1158
1157
|
|
|
@@ -1221,7 +1220,7 @@ TEST_F(DBSecondaryTest, DISABLED_SwitchWALMultiColumnFamilies) {
|
|
|
1221
1220
|
TEST_SYNC_POINT(
|
|
1222
1221
|
"DBSecondaryTest::SwitchWALMultipleColumnFamilies:BeforeCatchUp");
|
|
1223
1222
|
ASSERT_OK(db_secondary_->TryCatchUpWithPrimary());
|
|
1224
|
-
verify_db(dbfull(), handles_, db_secondary_, handles_secondary_);
|
|
1223
|
+
verify_db(dbfull(), handles_, db_secondary_.get(), handles_secondary_);
|
|
1225
1224
|
SyncPoint::GetInstance()->ClearTrace();
|
|
1226
1225
|
}
|
|
1227
1226
|
}
|
|
@@ -1357,7 +1356,7 @@ TEST_F(DBSecondaryTest, OpenWithTransactionDB) {
|
|
|
1357
1356
|
TransactionDBOptions txn_db_opts;
|
|
1358
1357
|
ASSERT_OK(TransactionDB::Open(options, txn_db_opts, dbname_, &txn_db));
|
|
1359
1358
|
ASSERT_NE(txn_db, nullptr);
|
|
1360
|
-
db_
|
|
1359
|
+
db_.reset(txn_db);
|
|
1361
1360
|
|
|
1362
1361
|
std::vector<std::string> cfs = {"new_CF"};
|
|
1363
1362
|
CreateColumnFamilies(cfs, options);
|
|
@@ -1561,7 +1560,7 @@ TEST_F(DBSecondaryTestWithTimestamp, IteratorAndGet) {
|
|
|
1561
1560
|
it->Next(), ++count, ++key) {
|
|
1562
1561
|
CheckIterUserEntry(it.get(), Key1(key), kTypeValue,
|
|
1563
1562
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
1564
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
1563
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
1565
1564
|
write_timestamps[i]);
|
|
1566
1565
|
}
|
|
1567
1566
|
ASSERT_OK(it->status());
|
|
@@ -1574,7 +1573,7 @@ TEST_F(DBSecondaryTestWithTimestamp, IteratorAndGet) {
|
|
|
1574
1573
|
it->Prev(), ++count, --key) {
|
|
1575
1574
|
CheckIterUserEntry(it.get(), Key1(key), kTypeValue,
|
|
1576
1575
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
1577
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
1576
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
1578
1577
|
write_timestamps[i]);
|
|
1579
1578
|
}
|
|
1580
1579
|
ASSERT_OK(it->status());
|
|
@@ -1596,7 +1595,7 @@ TEST_F(DBSecondaryTestWithTimestamp, IteratorAndGet) {
|
|
|
1596
1595
|
it->Valid(); it->Next(), ++key, ++count) {
|
|
1597
1596
|
CheckIterUserEntry(it.get(), Key1(key), kTypeValue,
|
|
1598
1597
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
1599
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
1598
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
1600
1599
|
write_timestamps[i]);
|
|
1601
1600
|
}
|
|
1602
1601
|
ASSERT_OK(it->status());
|
|
@@ -1606,7 +1605,7 @@ TEST_F(DBSecondaryTestWithTimestamp, IteratorAndGet) {
|
|
|
1606
1605
|
it->Valid(); it->Prev(), --key, ++count) {
|
|
1607
1606
|
CheckIterUserEntry(it.get(), Key1(key - 1), kTypeValue,
|
|
1608
1607
|
"value" + std::to_string(i), write_timestamps[i]);
|
|
1609
|
-
get_value_and_check(db_, read_opts, it->key(), it->value(),
|
|
1608
|
+
get_value_and_check(db_.get(), read_opts, it->key(), it->value(),
|
|
1610
1609
|
write_timestamps[i]);
|
|
1611
1610
|
}
|
|
1612
1611
|
ASSERT_OK(it->status());
|
|
@@ -1828,6 +1827,60 @@ TEST_F(DBSecondaryTestWithTimestamp, Iterators) {
|
|
|
1828
1827
|
Close();
|
|
1829
1828
|
}
|
|
1830
1829
|
|
|
1830
|
+
TEST_F(DBSecondaryTest, GetLiveFilesOnSecondary) {
|
|
1831
|
+
Options options;
|
|
1832
|
+
options.env = env_;
|
|
1833
|
+
options.level0_file_num_compaction_trigger = 4;
|
|
1834
|
+
Reopen(options);
|
|
1835
|
+
|
|
1836
|
+
// Write some data and flush to create SST files on the primary.
|
|
1837
|
+
for (int i = 0; i < 3; ++i) {
|
|
1838
|
+
ASSERT_OK(Put("key" + std::to_string(i), "value" + std::to_string(i)));
|
|
1839
|
+
ASSERT_OK(Flush());
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
// Open secondary and verify GetLiveFiles works.
|
|
1843
|
+
Options options1;
|
|
1844
|
+
options1.env = env_;
|
|
1845
|
+
options1.max_open_files = -1;
|
|
1846
|
+
OpenSecondary(options1);
|
|
1847
|
+
|
|
1848
|
+
std::vector<std::string> live_files;
|
|
1849
|
+
uint64_t manifest_size = 0;
|
|
1850
|
+
ASSERT_OK(db_secondary_->GetLiveFiles(live_files, &manifest_size));
|
|
1851
|
+
ASSERT_GT(live_files.size(), 0);
|
|
1852
|
+
ASSERT_GT(manifest_size, 0);
|
|
1853
|
+
|
|
1854
|
+
// Should contain SST files, CURRENT, MANIFEST, and OPTIONS.
|
|
1855
|
+
bool has_sst = false;
|
|
1856
|
+
bool has_current = false;
|
|
1857
|
+
bool has_manifest = false;
|
|
1858
|
+
for (const auto& f : live_files) {
|
|
1859
|
+
if (f.find(".sst") != std::string::npos) {
|
|
1860
|
+
has_sst = true;
|
|
1861
|
+
} else if (f.find("CURRENT") != std::string::npos) {
|
|
1862
|
+
has_current = true;
|
|
1863
|
+
} else if (f.find("MANIFEST") != std::string::npos) {
|
|
1864
|
+
has_manifest = true;
|
|
1865
|
+
}
|
|
1866
|
+
}
|
|
1867
|
+
ASSERT_TRUE(has_sst);
|
|
1868
|
+
ASSERT_TRUE(has_current);
|
|
1869
|
+
ASSERT_TRUE(has_manifest);
|
|
1870
|
+
|
|
1871
|
+
// Write more data on primary, catch up, and verify the file list updates.
|
|
1872
|
+
ASSERT_OK(Put("key3", "value3"));
|
|
1873
|
+
ASSERT_OK(Flush());
|
|
1874
|
+
|
|
1875
|
+
ASSERT_OK(db_secondary_->TryCatchUpWithPrimary());
|
|
1876
|
+
|
|
1877
|
+
std::vector<std::string> live_files_after;
|
|
1878
|
+
uint64_t manifest_size_after = 0;
|
|
1879
|
+
ASSERT_OK(
|
|
1880
|
+
db_secondary_->GetLiveFiles(live_files_after, &manifest_size_after));
|
|
1881
|
+
ASSERT_GT(live_files_after.size(), live_files.size());
|
|
1882
|
+
}
|
|
1883
|
+
|
|
1831
1884
|
} // namespace ROCKSDB_NAMESPACE
|
|
1832
1885
|
|
|
1833
1886
|
int main(int argc, char** argv) {
|
|
@@ -1535,7 +1535,7 @@ TEST_F(DBSSTTest, OpenDBWithInfiniteMaxOpenFiles) {
|
|
|
1535
1535
|
|
|
1536
1536
|
for (const auto& level : files) {
|
|
1537
1537
|
for (const auto& file : level) {
|
|
1538
|
-
ASSERT_TRUE(file.
|
|
1538
|
+
ASSERT_TRUE(file.fd.pinned_reader.Get() != nullptr);
|
|
1539
1539
|
}
|
|
1540
1540
|
}
|
|
1541
1541
|
|
|
@@ -321,7 +321,7 @@ TEST_F(DBStatisticsTest, BytesWrittenStats) {
|
|
|
321
321
|
options.enable_pipelined_write = enable_pipelined_write;
|
|
322
322
|
ASSERT_OK(TransactionDB::Open(options, txn_db_opts, dbname_, &txn_db));
|
|
323
323
|
ASSERT_NE(txn_db, nullptr);
|
|
324
|
-
db_
|
|
324
|
+
db_.reset(txn_db);
|
|
325
325
|
|
|
326
326
|
WriteOptions wopts;
|
|
327
327
|
TransactionOptions txn_opts;
|
|
@@ -351,8 +351,7 @@ TEST_F(DBStatisticsTest, BytesWrittenStats) {
|
|
|
351
351
|
WriteBatchInternal::kHeader);
|
|
352
352
|
|
|
353
353
|
// Cleanup
|
|
354
|
-
db_
|
|
355
|
-
delete txn_db;
|
|
354
|
+
db_.reset();
|
|
356
355
|
}
|
|
357
356
|
}
|
|
358
357
|
|
|
@@ -69,14 +69,6 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
69
69
|
|
|
70
70
|
// Create 4 tables
|
|
71
71
|
for (int table = 0; table < 4; ++table) {
|
|
72
|
-
// Use old meta name for table properties for one file
|
|
73
|
-
if (table == 3) {
|
|
74
|
-
SyncPoint::GetInstance()->SetCallBack(
|
|
75
|
-
"BlockBasedTableBuilder::WritePropertiesBlock:Meta", [&](void* meta) {
|
|
76
|
-
*static_cast<const std::string**>(meta) = &kPropertiesBlockOldName;
|
|
77
|
-
});
|
|
78
|
-
SyncPoint::GetInstance()->EnableProcessing();
|
|
79
|
-
}
|
|
80
72
|
// Build file
|
|
81
73
|
for (int i = 0; i < 10 + table; ++i) {
|
|
82
74
|
ASSERT_OK(
|
|
@@ -84,7 +76,6 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
84
76
|
}
|
|
85
77
|
ASSERT_OK(db_->Flush(FlushOptions()));
|
|
86
78
|
}
|
|
87
|
-
SyncPoint::GetInstance()->DisableProcessing();
|
|
88
79
|
std::string original_session_id;
|
|
89
80
|
ASSERT_OK(db_->GetDbSessionId(original_session_id));
|
|
90
81
|
|
|
@@ -99,7 +90,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
99
90
|
// Clear out auto-opened files
|
|
100
91
|
dbfull()->TEST_table_cache()->EraseUnRefEntries();
|
|
101
92
|
ASSERT_EQ(dbfull()->TEST_table_cache()->GetUsage(), 0U);
|
|
102
|
-
VerifyTableProperties(db_, 10 + 11 + 12 + 13);
|
|
93
|
+
VerifyTableProperties(db_.get(), 10 + 11 + 12 + 13);
|
|
103
94
|
|
|
104
95
|
// 2. Put two tables to table cache and
|
|
105
96
|
Reopen(options);
|
|
@@ -112,7 +103,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
112
103
|
Get(std::to_string(i * 100 + 0));
|
|
113
104
|
}
|
|
114
105
|
|
|
115
|
-
VerifyTableProperties(db_, 10 + 11 + 12 + 13);
|
|
106
|
+
VerifyTableProperties(db_.get(), 10 + 11 + 12 + 13);
|
|
116
107
|
|
|
117
108
|
// 3. Put all tables to table cache
|
|
118
109
|
Reopen(options);
|
|
@@ -120,7 +111,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
120
111
|
for (int i = 0; i < 4; ++i) {
|
|
121
112
|
Get(std::to_string(i * 100 + 0));
|
|
122
113
|
}
|
|
123
|
-
VerifyTableProperties(db_, 10 + 11 + 12 + 13);
|
|
114
|
+
VerifyTableProperties(db_.get(), 10 + 11 + 12 + 13);
|
|
124
115
|
|
|
125
116
|
// 4. Try to read CORRUPT properties (a) directly from file, and (b)
|
|
126
117
|
// through reader on Get
|
|
@@ -169,10 +160,7 @@ TEST_F(DBTablePropertiesTest, GetPropertiesOfAllTablesTest) {
|
|
|
169
160
|
SyncPoint::GetInstance()->DisableProcessing();
|
|
170
161
|
}
|
|
171
162
|
|
|
172
|
-
TEST_F(DBTablePropertiesTest,
|
|
173
|
-
// RocksDB versions 2.5 - 2.7 generate some properties that Block considers
|
|
174
|
-
// invalid in some way. This approximates that.
|
|
175
|
-
|
|
163
|
+
TEST_F(DBTablePropertiesTest, InvalidReportedAsCorruption) {
|
|
176
164
|
// Inject properties block data that Block considers invalid
|
|
177
165
|
SyncPoint::GetInstance()->SetCallBack(
|
|
178
166
|
"BlockBasedTableBuilder::WritePropertiesBlock:BlockData",
|
|
@@ -189,13 +177,10 @@ TEST_F(DBTablePropertiesTest, InvalidIgnored) {
|
|
|
189
177
|
for (int i = 0; i < 10; ++i) {
|
|
190
178
|
ASSERT_OK(db_->Put(WriteOptions(), std::to_string(i), "val"));
|
|
191
179
|
}
|
|
192
|
-
|
|
180
|
+
// Corrupted properties block should be detected and reported as corruption
|
|
181
|
+
ASSERT_TRUE(db_->Flush(FlushOptions()).IsCorruption());
|
|
193
182
|
|
|
194
183
|
SyncPoint::GetInstance()->DisableProcessing();
|
|
195
|
-
|
|
196
|
-
// Not crashing is good enough
|
|
197
|
-
TablePropertiesCollection props;
|
|
198
|
-
ASSERT_OK(db_->GetPropertiesOfAllTables(&props));
|
|
199
184
|
}
|
|
200
185
|
|
|
201
186
|
TEST_F(DBTablePropertiesTest, CreateOnDeletionCollectorFactory) {
|