@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
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
#include "rocksdb/merge_operator.h"
|
|
24
24
|
#include "rocksdb/utilities/db_ttl.h"
|
|
25
25
|
#include "test_util/testharness.h"
|
|
26
|
+
#include "util/cast_util.h"
|
|
26
27
|
#include "util/random.h"
|
|
27
28
|
#include "utilities/merge_operators.h"
|
|
28
29
|
#include "utilities/merge_operators/string_append/stringappend2.h"
|
|
@@ -34,8 +35,7 @@ const std::string kDbName = test::PerThreadDBPath("stringappend_test");
|
|
|
34
35
|
|
|
35
36
|
namespace {
|
|
36
37
|
// OpenDb opens a (possibly new) rocksdb database with a StringAppendOperator
|
|
37
|
-
std::
|
|
38
|
-
DB* db;
|
|
38
|
+
std::unique_ptr<DB> OpenNormalDb(const std::string& delim) {
|
|
39
39
|
Options options;
|
|
40
40
|
options.create_if_missing = true;
|
|
41
41
|
MergeOperator* mergeOperator;
|
|
@@ -45,12 +45,13 @@ std::shared_ptr<DB> OpenNormalDb(const std::string& delim) {
|
|
|
45
45
|
mergeOperator = new StringAppendOperator(delim);
|
|
46
46
|
}
|
|
47
47
|
options.merge_operator.reset(mergeOperator);
|
|
48
|
+
std::unique_ptr<DB> db;
|
|
48
49
|
EXPECT_OK(DB::Open(options, kDbName, &db));
|
|
49
|
-
return
|
|
50
|
+
return db;
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
// Open a TtlDB with a non-associative StringAppendTESTOperator
|
|
53
|
-
std::
|
|
54
|
+
std::unique_ptr<DB> OpenTtlDb(const std::string& delim) {
|
|
54
55
|
DBWithTTL* db;
|
|
55
56
|
Options options;
|
|
56
57
|
options.create_if_missing = true;
|
|
@@ -62,7 +63,7 @@ std::shared_ptr<DB> OpenTtlDb(const std::string& delim) {
|
|
|
62
63
|
}
|
|
63
64
|
options.merge_operator.reset(mergeOperator);
|
|
64
65
|
EXPECT_OK(DBWithTTL::Open(options, kDbName, &db, 123456));
|
|
65
|
-
return std::
|
|
66
|
+
return std::unique_ptr<DB>(db);
|
|
66
67
|
}
|
|
67
68
|
} // namespace
|
|
68
69
|
|
|
@@ -72,8 +73,7 @@ class StringLists {
|
|
|
72
73
|
public:
|
|
73
74
|
// Constructor: specifies the rocksdb db
|
|
74
75
|
/* implicit */
|
|
75
|
-
StringLists(
|
|
76
|
-
: db_(db), merge_option_(), get_option_() {
|
|
76
|
+
StringLists(UnownedPtr<DB> db) : db_(db), merge_option_(), get_option_() {
|
|
77
77
|
assert(db);
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -113,7 +113,7 @@ class StringLists {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
private:
|
|
116
|
-
|
|
116
|
+
UnownedPtr<DB> db_;
|
|
117
117
|
WriteOptions merge_option_;
|
|
118
118
|
ReadOptions get_option_;
|
|
119
119
|
};
|
|
@@ -138,7 +138,7 @@ class StringAppendOperatorTest : public testing::Test,
|
|
|
138
138
|
StringAppendOperatorTest::SetOpenDbFunction(&OpenNormalDb);
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
using OpenFuncPtr = std::
|
|
141
|
+
using OpenFuncPtr = std::unique_ptr<DB> (*)(const std::string&);
|
|
142
142
|
|
|
143
143
|
// Allows user to open databases with different configurations.
|
|
144
144
|
// e.g.: Can open a DB or a TtlDB, etc.
|
|
@@ -154,7 +154,7 @@ StringAppendOperatorTest::OpenFuncPtr StringAppendOperatorTest::OpenDb =
|
|
|
154
154
|
|
|
155
155
|
TEST_P(StringAppendOperatorTest, IteratorTest) {
|
|
156
156
|
auto db_ = OpenDb(",");
|
|
157
|
-
StringLists slists(db_);
|
|
157
|
+
StringLists slists(db_.get());
|
|
158
158
|
|
|
159
159
|
slists.Append("k1", "v1");
|
|
160
160
|
slists.Append("k1", "v2");
|
|
@@ -249,7 +249,7 @@ TEST_P(StringAppendOperatorTest, IteratorTest) {
|
|
|
249
249
|
|
|
250
250
|
TEST_P(StringAppendOperatorTest, SimpleTest) {
|
|
251
251
|
auto db = OpenDb(",");
|
|
252
|
-
StringLists slists(db);
|
|
252
|
+
StringLists slists(db.get());
|
|
253
253
|
|
|
254
254
|
slists.Append("k1", "v1");
|
|
255
255
|
slists.Append("k1", "v2");
|
|
@@ -262,7 +262,7 @@ TEST_P(StringAppendOperatorTest, SimpleTest) {
|
|
|
262
262
|
|
|
263
263
|
TEST_P(StringAppendOperatorTest, SimpleDelimiterTest) {
|
|
264
264
|
auto db = OpenDb("|");
|
|
265
|
-
StringLists slists(db);
|
|
265
|
+
StringLists slists(db.get());
|
|
266
266
|
|
|
267
267
|
slists.Append("k1", "v1");
|
|
268
268
|
slists.Append("k1", "v2");
|
|
@@ -275,7 +275,7 @@ TEST_P(StringAppendOperatorTest, SimpleDelimiterTest) {
|
|
|
275
275
|
|
|
276
276
|
TEST_P(StringAppendOperatorTest, EmptyDelimiterTest) {
|
|
277
277
|
auto db = OpenDb("");
|
|
278
|
-
StringLists slists(db);
|
|
278
|
+
StringLists slists(db.get());
|
|
279
279
|
|
|
280
280
|
slists.Append("k1", "v1");
|
|
281
281
|
slists.Append("k1", "v2");
|
|
@@ -288,7 +288,7 @@ TEST_P(StringAppendOperatorTest, EmptyDelimiterTest) {
|
|
|
288
288
|
|
|
289
289
|
TEST_P(StringAppendOperatorTest, MultiCharDelimiterTest) {
|
|
290
290
|
auto db = OpenDb("<>");
|
|
291
|
-
StringLists slists(db);
|
|
291
|
+
StringLists slists(db.get());
|
|
292
292
|
|
|
293
293
|
slists.Append("k1", "v1");
|
|
294
294
|
slists.Append("k1", "v2");
|
|
@@ -302,7 +302,7 @@ TEST_P(StringAppendOperatorTest, MultiCharDelimiterTest) {
|
|
|
302
302
|
TEST_P(StringAppendOperatorTest, DelimiterIsDefensivelyCopiedTest) {
|
|
303
303
|
std::string delimiter = "<>";
|
|
304
304
|
auto db = OpenDb(delimiter);
|
|
305
|
-
StringLists slists(db);
|
|
305
|
+
StringLists slists(db.get());
|
|
306
306
|
|
|
307
307
|
slists.Append("k1", "v1");
|
|
308
308
|
slists.Append("k1", "v2");
|
|
@@ -316,7 +316,7 @@ TEST_P(StringAppendOperatorTest, DelimiterIsDefensivelyCopiedTest) {
|
|
|
316
316
|
|
|
317
317
|
TEST_P(StringAppendOperatorTest, OneValueNoDelimiterTest) {
|
|
318
318
|
auto db = OpenDb("!");
|
|
319
|
-
StringLists slists(db);
|
|
319
|
+
StringLists slists(db.get());
|
|
320
320
|
|
|
321
321
|
slists.Append("random_key", "single_val");
|
|
322
322
|
|
|
@@ -327,7 +327,7 @@ TEST_P(StringAppendOperatorTest, OneValueNoDelimiterTest) {
|
|
|
327
327
|
|
|
328
328
|
TEST_P(StringAppendOperatorTest, VariousKeys) {
|
|
329
329
|
auto db = OpenDb("\n");
|
|
330
|
-
StringLists slists(db);
|
|
330
|
+
StringLists slists(db.get());
|
|
331
331
|
|
|
332
332
|
slists.Append("c", "asdasd");
|
|
333
333
|
slists.Append("a", "x");
|
|
@@ -353,7 +353,7 @@ TEST_P(StringAppendOperatorTest, VariousKeys) {
|
|
|
353
353
|
// Generate semi random keys/words from a small distribution.
|
|
354
354
|
TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
|
|
355
355
|
auto db = OpenDb(" ");
|
|
356
|
-
StringLists slists(db);
|
|
356
|
+
StringLists slists(db.get());
|
|
357
357
|
|
|
358
358
|
// Generate a list of random keys and values
|
|
359
359
|
const int kWordCount = 15;
|
|
@@ -402,7 +402,7 @@ TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
|
|
|
402
402
|
|
|
403
403
|
TEST_P(StringAppendOperatorTest, BIGRandomMixGetAppend) {
|
|
404
404
|
auto db = OpenDb(" ");
|
|
405
|
-
StringLists slists(db);
|
|
405
|
+
StringLists slists(db.get());
|
|
406
406
|
|
|
407
407
|
// Generate a list of random keys and values
|
|
408
408
|
const int kWordCount = 15;
|
|
@@ -453,7 +453,7 @@ TEST_P(StringAppendOperatorTest, PersistentVariousKeys) {
|
|
|
453
453
|
// Perform the following operations in limited scope
|
|
454
454
|
{
|
|
455
455
|
auto db = OpenDb("\n");
|
|
456
|
-
StringLists slists(db);
|
|
456
|
+
StringLists slists(db.get());
|
|
457
457
|
|
|
458
458
|
slists.Append("c", "asdasd");
|
|
459
459
|
slists.Append("a", "x");
|
|
@@ -476,7 +476,7 @@ TEST_P(StringAppendOperatorTest, PersistentVariousKeys) {
|
|
|
476
476
|
// Reopen the database (the previous changes should persist / be remembered)
|
|
477
477
|
{
|
|
478
478
|
auto db = OpenDb("\n");
|
|
479
|
-
StringLists slists(db);
|
|
479
|
+
StringLists slists(db.get());
|
|
480
480
|
|
|
481
481
|
slists.Append("c", "bbnagnagsx");
|
|
482
482
|
slists.Append("a", "sa");
|
|
@@ -502,7 +502,7 @@ TEST_P(StringAppendOperatorTest, PersistentVariousKeys) {
|
|
|
502
502
|
// Reopen the database (the previous changes should persist / be remembered)
|
|
503
503
|
{
|
|
504
504
|
auto db = OpenDb("\n");
|
|
505
|
-
StringLists slists(db);
|
|
505
|
+
StringLists slists(db.get());
|
|
506
506
|
|
|
507
507
|
// All changes should be on disk. This will test VersionSet Get()
|
|
508
508
|
std::string a, b, c;
|
|
@@ -520,7 +520,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
|
|
|
520
520
|
// Perform the following operations in limited scope
|
|
521
521
|
{
|
|
522
522
|
auto db = OpenDb("\n");
|
|
523
|
-
StringLists slists(db);
|
|
523
|
+
StringLists slists(db.get());
|
|
524
524
|
std::string a, b, c;
|
|
525
525
|
|
|
526
526
|
// Append, Flush, Get
|
|
@@ -559,7 +559,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
|
|
|
559
559
|
// Reopen the database (the previous changes should persist / be remembered)
|
|
560
560
|
{
|
|
561
561
|
auto db = OpenDb("\n");
|
|
562
|
-
StringLists slists(db);
|
|
562
|
+
StringLists slists(db.get());
|
|
563
563
|
std::string a, b, c;
|
|
564
564
|
|
|
565
565
|
// Get (Quick check for persistence of previous database)
|
|
@@ -607,7 +607,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
|
|
|
607
607
|
|
|
608
608
|
TEST_P(StringAppendOperatorTest, SimpleTestNullDelimiter) {
|
|
609
609
|
auto db = OpenDb(std::string(1, '\0'));
|
|
610
|
-
StringLists slists(db);
|
|
610
|
+
StringLists slists(db.get());
|
|
611
611
|
|
|
612
612
|
slists.Append("k1", "v1");
|
|
613
613
|
slists.Append("k1", "v2");
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
namespace ROCKSDB_NAMESPACE {
|
|
17
17
|
namespace {
|
|
18
|
-
bool MatchesInteger(const std::string
|
|
18
|
+
bool MatchesInteger(const std::string& target, size_t start, size_t pos) {
|
|
19
19
|
// If it is numeric, everything up to the match must be a number
|
|
20
20
|
int digits = 0;
|
|
21
21
|
if (target[start] == '-') {
|
|
@@ -31,7 +31,7 @@ bool MatchesInteger(const std::string &target, size_t start, size_t pos) {
|
|
|
31
31
|
return (digits > 0);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
bool MatchesDecimal(const std::string
|
|
34
|
+
bool MatchesDecimal(const std::string& target, size_t start, size_t pos) {
|
|
35
35
|
int digits = 0;
|
|
36
36
|
if (target[start] == '-') {
|
|
37
37
|
start++; // Allow negative numbers
|
|
@@ -54,8 +54,8 @@ bool MatchesDecimal(const std::string &target, size_t start, size_t pos) {
|
|
|
54
54
|
} // namespace
|
|
55
55
|
|
|
56
56
|
size_t ObjectLibrary::PatternEntry::MatchSeparatorAt(
|
|
57
|
-
size_t start, Quantifier mode, const std::string
|
|
58
|
-
const std::string
|
|
57
|
+
size_t start, Quantifier mode, const std::string& target, size_t tlen,
|
|
58
|
+
const std::string& separator) const {
|
|
59
59
|
size_t slen = separator.size();
|
|
60
60
|
// See if there is enough space. If so, find the separator
|
|
61
61
|
if (tlen < start + slen) {
|
|
@@ -87,9 +87,9 @@ size_t ObjectLibrary::PatternEntry::MatchSeparatorAt(
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string
|
|
90
|
+
bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string& name,
|
|
91
91
|
size_t nlen,
|
|
92
|
-
const std::string
|
|
92
|
+
const std::string& target,
|
|
93
93
|
size_t tlen) const {
|
|
94
94
|
if (separators_.empty()) {
|
|
95
95
|
assert(optional_); // If there are no separators, it must be only a name
|
|
@@ -109,7 +109,7 @@ bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string &name,
|
|
|
109
109
|
size_t start = nlen;
|
|
110
110
|
auto mode = kMatchExact;
|
|
111
111
|
for (size_t idx = 0; idx < separators_.size(); ++idx) {
|
|
112
|
-
const auto
|
|
112
|
+
const auto& separator = separators_[idx];
|
|
113
113
|
start = MatchSeparatorAt(start, mode, target, tlen, separator.first);
|
|
114
114
|
if (start == std::string::npos) {
|
|
115
115
|
return false;
|
|
@@ -132,12 +132,12 @@ bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string &name,
|
|
|
132
132
|
return true;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
bool ObjectLibrary::PatternEntry::Matches(const std::string
|
|
135
|
+
bool ObjectLibrary::PatternEntry::Matches(const std::string& target) const {
|
|
136
136
|
auto tlen = target.size();
|
|
137
137
|
if (MatchesTarget(name_, nlength_, target, tlen)) {
|
|
138
138
|
return true;
|
|
139
139
|
} else if (!names_.empty()) {
|
|
140
|
-
for (const auto
|
|
140
|
+
for (const auto& alt : names_) {
|
|
141
141
|
if (MatchesTarget(alt, alt.size(), target, tlen)) {
|
|
142
142
|
return true;
|
|
143
143
|
}
|
|
@@ -146,17 +146,17 @@ bool ObjectLibrary::PatternEntry::Matches(const std::string &target) const {
|
|
|
146
146
|
return false;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
size_t ObjectLibrary::GetFactoryCount(size_t
|
|
149
|
+
size_t ObjectLibrary::GetFactoryCount(size_t* types) const {
|
|
150
150
|
std::unique_lock<std::mutex> lock(mu_);
|
|
151
151
|
*types = factories_.size();
|
|
152
152
|
size_t factories = 0;
|
|
153
|
-
for (const auto
|
|
153
|
+
for (const auto& e : factories_) {
|
|
154
154
|
factories += e.second.size();
|
|
155
155
|
}
|
|
156
156
|
return factories;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
size_t ObjectLibrary::GetFactoryCount(const std::string
|
|
159
|
+
size_t ObjectLibrary::GetFactoryCount(const std::string& type) const {
|
|
160
160
|
std::unique_lock<std::mutex> lock(mu_);
|
|
161
161
|
auto iter = factories_.find(type);
|
|
162
162
|
if (iter != factories_.end()) {
|
|
@@ -166,36 +166,36 @@ size_t ObjectLibrary::GetFactoryCount(const std::string &type) const {
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
void ObjectLibrary::GetFactoryNames(const std::string
|
|
170
|
-
std::vector<std::string
|
|
169
|
+
void ObjectLibrary::GetFactoryNames(const std::string& type,
|
|
170
|
+
std::vector<std::string>* names) const {
|
|
171
171
|
assert(names);
|
|
172
172
|
std::unique_lock<std::mutex> lock(mu_);
|
|
173
173
|
auto iter = factories_.find(type);
|
|
174
174
|
if (iter != factories_.end()) {
|
|
175
|
-
for (const auto
|
|
175
|
+
for (const auto& f : iter->second) {
|
|
176
176
|
names->push_back(f->Name());
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
void ObjectLibrary::GetFactoryTypes(
|
|
182
|
-
std::unordered_set<std::string
|
|
182
|
+
std::unordered_set<std::string>* types) const {
|
|
183
183
|
assert(types);
|
|
184
184
|
std::unique_lock<std::mutex> lock(mu_);
|
|
185
|
-
for (const auto
|
|
185
|
+
for (const auto& iter : factories_) {
|
|
186
186
|
types->insert(iter.first);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
void ObjectLibrary::Dump(Logger
|
|
190
|
+
void ObjectLibrary::Dump(Logger* logger) const {
|
|
191
191
|
std::unique_lock<std::mutex> lock(mu_);
|
|
192
192
|
if (logger != nullptr && !factories_.empty()) {
|
|
193
193
|
ROCKS_LOG_HEADER(logger, " Registered Library: %s\n", id_.c_str());
|
|
194
|
-
for (const auto
|
|
194
|
+
for (const auto& iter : factories_) {
|
|
195
195
|
ROCKS_LOG_HEADER(logger, " Registered factories for type[%s] ",
|
|
196
196
|
iter.first.c_str());
|
|
197
197
|
bool printed_one = false;
|
|
198
|
-
for (const auto
|
|
198
|
+
for (const auto& e : iter.second) {
|
|
199
199
|
ROCKS_LOG_HEADER(logger, "%c %s", (printed_one) ? ',' : ':', e->Name());
|
|
200
200
|
printed_one = true;
|
|
201
201
|
}
|
|
@@ -205,7 +205,7 @@ void ObjectLibrary::Dump(Logger *logger) const {
|
|
|
205
205
|
|
|
206
206
|
// Returns the Default singleton instance of the ObjectLibrary
|
|
207
207
|
// This instance will contain most of the "standard" registered objects
|
|
208
|
-
std::shared_ptr<ObjectLibrary
|
|
208
|
+
std::shared_ptr<ObjectLibrary>& ObjectLibrary::Default() {
|
|
209
209
|
// Use avoid destruction here so the default ObjectLibrary will not be
|
|
210
210
|
// statically destroyed and long-lived.
|
|
211
211
|
STATIC_AVOID_DESTRUCTION(std::shared_ptr<ObjectLibrary>, instance)
|
|
@@ -213,9 +213,9 @@ std::shared_ptr<ObjectLibrary> &ObjectLibrary::Default() {
|
|
|
213
213
|
return instance;
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
ObjectRegistry::ObjectRegistry(const std::shared_ptr<ObjectLibrary
|
|
216
|
+
ObjectRegistry::ObjectRegistry(const std::shared_ptr<ObjectLibrary>& library) {
|
|
217
217
|
libraries_.push_back(library);
|
|
218
|
-
for (const auto
|
|
218
|
+
for (const auto& b : builtins_) {
|
|
219
219
|
RegisterPlugin(b.first, b.second);
|
|
220
220
|
}
|
|
221
221
|
}
|
|
@@ -233,13 +233,13 @@ std::shared_ptr<ObjectRegistry> ObjectRegistry::NewInstance() {
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
std::shared_ptr<ObjectRegistry> ObjectRegistry::NewInstance(
|
|
236
|
-
const std::shared_ptr<ObjectRegistry
|
|
236
|
+
const std::shared_ptr<ObjectRegistry>& parent) {
|
|
237
237
|
return std::make_shared<ObjectRegistry>(parent);
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
Status ObjectRegistry::SetManagedObject(
|
|
241
|
-
const std::string
|
|
242
|
-
const std::shared_ptr<Customizable
|
|
241
|
+
const std::string& type, const std::string& id,
|
|
242
|
+
const std::shared_ptr<Customizable>& object) {
|
|
243
243
|
std::string object_key = ToManagedObjectKey(type, id);
|
|
244
244
|
std::shared_ptr<Customizable> curr;
|
|
245
245
|
if (parent_ != nullptr) {
|
|
@@ -267,7 +267,7 @@ Status ObjectRegistry::SetManagedObject(
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
std::shared_ptr<Customizable> ObjectRegistry::GetManagedObject(
|
|
270
|
-
const std::string
|
|
270
|
+
const std::string& type, const std::string& id) const {
|
|
271
271
|
{
|
|
272
272
|
std::unique_lock<std::mutex> lock(objects_mutex_);
|
|
273
273
|
auto iter = managed_objects_.find(ToManagedObjectKey(type, id));
|
|
@@ -283,8 +283,8 @@ std::shared_ptr<Customizable> ObjectRegistry::GetManagedObject(
|
|
|
283
283
|
}
|
|
284
284
|
|
|
285
285
|
Status ObjectRegistry::ListManagedObjects(
|
|
286
|
-
const std::string
|
|
287
|
-
std::vector<std::shared_ptr<Customizable
|
|
286
|
+
const std::string& type, const std::string& name,
|
|
287
|
+
std::vector<std::shared_ptr<Customizable>>* results) const {
|
|
288
288
|
{
|
|
289
289
|
std::string key = ToManagedObjectKey(type, name);
|
|
290
290
|
std::unique_lock<std::mutex> lock(objects_mutex_);
|
|
@@ -309,50 +309,50 @@ Status ObjectRegistry::ListManagedObjects(
|
|
|
309
309
|
// Returns the number of registered types for this registry.
|
|
310
310
|
// If specified (not-null), types is updated to include the names of the
|
|
311
311
|
// registered types.
|
|
312
|
-
size_t ObjectRegistry::GetFactoryCount(const std::string
|
|
312
|
+
size_t ObjectRegistry::GetFactoryCount(const std::string& type) const {
|
|
313
313
|
size_t count = 0;
|
|
314
314
|
if (parent_ != nullptr) {
|
|
315
315
|
count = parent_->GetFactoryCount(type);
|
|
316
316
|
}
|
|
317
317
|
std::unique_lock<std::mutex> lock(library_mutex_);
|
|
318
|
-
for (const auto
|
|
318
|
+
for (const auto& library : libraries_) {
|
|
319
319
|
count += library->GetFactoryCount(type);
|
|
320
320
|
}
|
|
321
321
|
return count;
|
|
322
322
|
}
|
|
323
323
|
|
|
324
|
-
void ObjectRegistry::GetFactoryNames(const std::string
|
|
325
|
-
std::vector<std::string
|
|
324
|
+
void ObjectRegistry::GetFactoryNames(const std::string& type,
|
|
325
|
+
std::vector<std::string>* names) const {
|
|
326
326
|
assert(names);
|
|
327
327
|
names->clear();
|
|
328
328
|
if (parent_ != nullptr) {
|
|
329
329
|
parent_->GetFactoryNames(type, names);
|
|
330
330
|
}
|
|
331
331
|
std::unique_lock<std::mutex> lock(library_mutex_);
|
|
332
|
-
for (const auto
|
|
332
|
+
for (const auto& library : libraries_) {
|
|
333
333
|
library->GetFactoryNames(type, names);
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
336
|
|
|
337
337
|
void ObjectRegistry::GetFactoryTypes(
|
|
338
|
-
std::unordered_set<std::string
|
|
338
|
+
std::unordered_set<std::string>* types) const {
|
|
339
339
|
assert(types);
|
|
340
340
|
if (parent_ != nullptr) {
|
|
341
341
|
parent_->GetFactoryTypes(types);
|
|
342
342
|
}
|
|
343
343
|
std::unique_lock<std::mutex> lock(library_mutex_);
|
|
344
|
-
for (const auto
|
|
344
|
+
for (const auto& library : libraries_) {
|
|
345
345
|
library->GetFactoryTypes(types);
|
|
346
346
|
}
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
-
void ObjectRegistry::Dump(Logger
|
|
349
|
+
void ObjectRegistry::Dump(Logger* logger) const {
|
|
350
350
|
if (logger != nullptr) {
|
|
351
351
|
std::unique_lock<std::mutex> lock(library_mutex_);
|
|
352
352
|
if (!plugins_.empty()) {
|
|
353
353
|
ROCKS_LOG_HEADER(logger, " Registered Plugins:");
|
|
354
354
|
bool printed_one = false;
|
|
355
|
-
for (const auto
|
|
355
|
+
for (const auto& plugin : plugins_) {
|
|
356
356
|
ROCKS_LOG_HEADER(logger, "%s%s", (printed_one) ? ", " : " ",
|
|
357
357
|
plugin.c_str());
|
|
358
358
|
printed_one = true;
|
|
@@ -368,8 +368,8 @@ void ObjectRegistry::Dump(Logger *logger) const {
|
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
-
int ObjectRegistry::RegisterPlugin(const std::string
|
|
372
|
-
const RegistrarFunc
|
|
371
|
+
int ObjectRegistry::RegisterPlugin(const std::string& name,
|
|
372
|
+
const RegistrarFunc& func) {
|
|
373
373
|
if (!name.empty() && func != nullptr) {
|
|
374
374
|
plugins_.push_back(name);
|
|
375
375
|
return AddLibrary(name)->Register(func, name);
|
|
@@ -221,12 +221,9 @@ Status OpenDBWithCFs(const DBOptions& db_opts, const std::string& dbname,
|
|
|
221
221
|
std::unique_ptr<DB>* db,
|
|
222
222
|
std::vector<ColumnFamilyHandle*>* handles) {
|
|
223
223
|
handles->clear();
|
|
224
|
-
DB
|
|
225
|
-
Status s = DB::Open(db_opts, dbname, cf_descs, handles, &tmpdb);
|
|
224
|
+
Status s = DB::Open(db_opts, dbname, cf_descs, handles, db);
|
|
226
225
|
|
|
227
|
-
if (s.ok()) {
|
|
228
|
-
db->reset(tmpdb);
|
|
229
|
-
} else {
|
|
226
|
+
if (!s.ok()) {
|
|
230
227
|
for (auto* handle : *handles) {
|
|
231
228
|
delete handle;
|
|
232
229
|
}
|
|
@@ -216,8 +216,6 @@ class DummySliceTransform : public SliceTransform {
|
|
|
216
216
|
// determine whether this is a valid src upon the function applies
|
|
217
217
|
bool InDomain(const Slice& /*src*/) const override { return false; }
|
|
218
218
|
|
|
219
|
-
// determine whether dst=Transform(src) for some src
|
|
220
|
-
bool InRange(const Slice& /*dst*/) const override { return false; }
|
|
221
219
|
};
|
|
222
220
|
|
|
223
221
|
} // namespace
|
|
@@ -243,7 +241,7 @@ TEST_F(OptionsUtilTest, SanityCheck) {
|
|
|
243
241
|
db_opt.create_if_missing = true;
|
|
244
242
|
|
|
245
243
|
ASSERT_OK(DestroyDB(dbname_, Options(db_opt, cf_descs[0].options)));
|
|
246
|
-
DB
|
|
244
|
+
std::unique_ptr<DB> db;
|
|
247
245
|
std::vector<ColumnFamilyHandle*> handles;
|
|
248
246
|
// open and persist the options
|
|
249
247
|
ASSERT_OK(DB::Open(db_opt, dbname_, cf_descs, &handles, &db));
|
|
@@ -252,7 +250,7 @@ TEST_F(OptionsUtilTest, SanityCheck) {
|
|
|
252
250
|
for (auto* handle : handles) {
|
|
253
251
|
delete handle;
|
|
254
252
|
}
|
|
255
|
-
|
|
253
|
+
db.reset();
|
|
256
254
|
|
|
257
255
|
ConfigOptions config_options;
|
|
258
256
|
config_options.ignore_unknown_options = false;
|
|
@@ -435,7 +433,7 @@ TEST_F(OptionsUtilTest, LoadLatestOptions) {
|
|
|
435
433
|
DBOptions db_opts;
|
|
436
434
|
std::vector<ColumnFamilyDescriptor> cf_descs;
|
|
437
435
|
std::vector<ColumnFamilyHandle*> handles;
|
|
438
|
-
DB
|
|
436
|
+
std::unique_ptr<DB> db;
|
|
439
437
|
options.create_if_missing = true;
|
|
440
438
|
|
|
441
439
|
ASSERT_OK(DestroyDB(dbname_, options));
|
|
@@ -495,7 +493,7 @@ TEST_F(OptionsUtilTest, LoadLatestOptions) {
|
|
|
495
493
|
for (auto* handle : handles) {
|
|
496
494
|
delete handle;
|
|
497
495
|
}
|
|
498
|
-
|
|
496
|
+
db.reset();
|
|
499
497
|
ASSERT_OK(DestroyDB(dbname_, options, cf_descs));
|
|
500
498
|
}
|
|
501
499
|
|
|
@@ -639,7 +637,7 @@ TEST_F(OptionsUtilTest, BadLatestOptions) {
|
|
|
639
637
|
}
|
|
640
638
|
|
|
641
639
|
TEST_F(OptionsUtilTest, RenameDatabaseDirectory) {
|
|
642
|
-
DB
|
|
640
|
+
std::unique_ptr<DB> db;
|
|
643
641
|
Options options;
|
|
644
642
|
DBOptions db_opts;
|
|
645
643
|
std::vector<ColumnFamilyDescriptor> cf_descs;
|
|
@@ -652,7 +650,7 @@ TEST_F(OptionsUtilTest, RenameDatabaseDirectory) {
|
|
|
652
650
|
|
|
653
651
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
654
652
|
ASSERT_OK(db->Put(WriteOptions(), "foo", "value0"));
|
|
655
|
-
|
|
653
|
+
db.reset();
|
|
656
654
|
|
|
657
655
|
auto new_dbname = dbname_ + "_2";
|
|
658
656
|
|
|
@@ -669,14 +667,14 @@ TEST_F(OptionsUtilTest, RenameDatabaseDirectory) {
|
|
|
669
667
|
for (auto* handle : handles) {
|
|
670
668
|
delete handle;
|
|
671
669
|
}
|
|
672
|
-
|
|
670
|
+
db.reset();
|
|
673
671
|
Options new_options(db_opts, cf_descs[0].options);
|
|
674
672
|
ASSERT_OK(DestroyDB(new_dbname, new_options, cf_descs));
|
|
675
673
|
ASSERT_OK(DestroyDB(dbname_, options));
|
|
676
674
|
}
|
|
677
675
|
|
|
678
676
|
TEST_F(OptionsUtilTest, WalDirSettings) {
|
|
679
|
-
DB
|
|
677
|
+
std::unique_ptr<DB> db;
|
|
680
678
|
Options options;
|
|
681
679
|
DBOptions db_opts;
|
|
682
680
|
std::vector<ColumnFamilyDescriptor> cf_descs;
|
|
@@ -689,14 +687,14 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
|
|
|
689
687
|
|
|
690
688
|
// Open a DB with no wal dir set. The wal_dir should stay empty
|
|
691
689
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
692
|
-
|
|
690
|
+
db.reset();
|
|
693
691
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
694
692
|
ASSERT_EQ(db_opts.wal_dir, "");
|
|
695
693
|
|
|
696
694
|
// Open a DB with wal_dir == dbname. The wal_dir should be set to empty
|
|
697
695
|
options.wal_dir = dbname_;
|
|
698
696
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
699
|
-
|
|
697
|
+
db.reset();
|
|
700
698
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
701
699
|
ASSERT_EQ(db_opts.wal_dir, "");
|
|
702
700
|
|
|
@@ -705,7 +703,7 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
|
|
|
705
703
|
options.wal_dir = "";
|
|
706
704
|
options.db_paths.emplace_back(dbname_, std::numeric_limits<uint64_t>::max());
|
|
707
705
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
708
|
-
|
|
706
|
+
db.reset();
|
|
709
707
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
710
708
|
ASSERT_EQ(db_opts.wal_dir, "");
|
|
711
709
|
|
|
@@ -714,7 +712,7 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
|
|
|
714
712
|
options.wal_dir = dbname_ + "/";
|
|
715
713
|
options.db_paths.emplace_back(dbname_, std::numeric_limits<uint64_t>::max());
|
|
716
714
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
717
|
-
|
|
715
|
+
db.reset();
|
|
718
716
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
719
717
|
ASSERT_EQ(db_opts.wal_dir, "");
|
|
720
718
|
ASSERT_OK(DestroyDB(dbname_, options));
|
|
@@ -725,7 +723,7 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
|
|
|
725
723
|
options.db_paths.emplace_back(dbname_ + "_0",
|
|
726
724
|
std::numeric_limits<uint64_t>::max());
|
|
727
725
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
728
|
-
|
|
726
|
+
db.reset();
|
|
729
727
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
730
728
|
ASSERT_EQ(db_opts.wal_dir, dbname_);
|
|
731
729
|
ASSERT_OK(DestroyDB(dbname_, options));
|
|
@@ -734,14 +732,14 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
|
|
|
734
732
|
options.wal_dir = dbname_ + "/wal";
|
|
735
733
|
options.db_paths.clear();
|
|
736
734
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
737
|
-
|
|
735
|
+
db.reset();
|
|
738
736
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
739
737
|
ASSERT_EQ(db_opts.wal_dir, dbname_ + "/wal");
|
|
740
738
|
ASSERT_OK(DestroyDB(dbname_, options));
|
|
741
739
|
}
|
|
742
740
|
|
|
743
741
|
TEST_F(OptionsUtilTest, WalDirInOptins) {
|
|
744
|
-
DB
|
|
742
|
+
std::unique_ptr<DB> db;
|
|
745
743
|
Options options;
|
|
746
744
|
DBOptions db_opts;
|
|
747
745
|
std::vector<ColumnFamilyDescriptor> cf_descs;
|
|
@@ -755,7 +753,7 @@ TEST_F(OptionsUtilTest, WalDirInOptins) {
|
|
|
755
753
|
options.create_if_missing = true;
|
|
756
754
|
options.wal_dir = "";
|
|
757
755
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
758
|
-
|
|
756
|
+
db.reset();
|
|
759
757
|
options.wal_dir = dbname_;
|
|
760
758
|
std::string options_file;
|
|
761
759
|
ASSERT_OK(GetLatestOptionsFileName(dbname_, options.env, &options_file));
|
|
@@ -766,7 +764,7 @@ TEST_F(OptionsUtilTest, WalDirInOptins) {
|
|
|
766
764
|
ASSERT_EQ(db_opts.wal_dir, dbname_);
|
|
767
765
|
options.wal_dir = "";
|
|
768
766
|
ASSERT_OK(DB::Open(options, dbname_, &db));
|
|
769
|
-
|
|
767
|
+
db.reset();
|
|
770
768
|
ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
|
|
771
769
|
ASSERT_EQ(db_opts.wal_dir, "");
|
|
772
770
|
}
|
|
@@ -254,7 +254,7 @@ bool RandomAccessCacheFile::ParseRec(const LBA& lba, Slice* key, Slice* val,
|
|
|
254
254
|
|
|
255
255
|
CacheRecord rec;
|
|
256
256
|
if (!rec.Deserialize(data)) {
|
|
257
|
-
assert(
|
|
257
|
+
assert(false && "Error deserializing data");
|
|
258
258
|
Error(log_, "Error de-serializing record from file %s off %d",
|
|
259
259
|
Path().c_str(), lba.off_);
|
|
260
260
|
return false;
|
|
@@ -339,7 +339,7 @@ bool WriteableCacheFile::Append(const Slice& key, const Slice& val, LBA* lba) {
|
|
|
339
339
|
CacheRecord rec(key, val);
|
|
340
340
|
if (!rec.Serialize(&bufs_, &buf_woff_)) {
|
|
341
341
|
// unexpected error: unable to serialize the data
|
|
342
|
-
assert(
|
|
342
|
+
assert(false && "Error serializing record");
|
|
343
343
|
return false;
|
|
344
344
|
}
|
|
345
345
|
|
|
@@ -101,14 +101,14 @@ class BlockCacheFile : public LRUElement<BlockCacheFile> {
|
|
|
101
101
|
// append key/value to file and return LBA locator to user
|
|
102
102
|
virtual bool Append(const Slice& /*key*/, const Slice& /*val*/,
|
|
103
103
|
LBA* const /*lba*/) {
|
|
104
|
-
assert(
|
|
104
|
+
assert(false && "not implemented");
|
|
105
105
|
return false;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
// read from the record locator (LBA) and return key, value and status
|
|
109
109
|
virtual bool Read(const LBA& /*lba*/, Slice* /*key*/, Slice* /*block*/,
|
|
110
110
|
char* /*scratch*/) {
|
|
111
|
-
assert(
|
|
111
|
+
assert(false && "not implemented");
|
|
112
112
|
return false;
|
|
113
113
|
}
|
|
114
114
|
|