@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
|
@@ -317,40 +317,89 @@ struct ClockHandle : public ClockHandleBasicData {
|
|
|
317
317
|
// | acquire counter | release counter | hit bit | state marker |
|
|
318
318
|
// -----------------------------------------------------------------------
|
|
319
319
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
320
|
+
struct SlotMeta : public BitFields<uint64_t, SlotMeta> {
|
|
321
|
+
// For reading or updating counters in meta word.
|
|
322
|
+
static constexpr uint8_t kCounterNumBits = 30;
|
|
323
|
+
// Number of times the a reference has been acquired (or attempted)
|
|
324
|
+
// since last reset by eviction processing
|
|
325
|
+
using AcquireCounter =
|
|
326
|
+
UnsignedBitField<SlotMeta, kCounterNumBits, NoPrevBitField>;
|
|
327
|
+
// Number of times the a reference has been released (or attempted)
|
|
328
|
+
// since last reset by eviction processing
|
|
329
|
+
using ReleaseCounter =
|
|
330
|
+
UnsignedBitField<SlotMeta, kCounterNumBits, AcquireCounter>;
|
|
331
|
+
// Metadata bit in support of secondary cache
|
|
332
|
+
using HitFlag = BoolBitField<SlotMeta, ReleaseCounter>;
|
|
333
|
+
// Occupied means any state other than empty
|
|
334
|
+
using OccupiedFlag = BoolBitField<SlotMeta, HitFlag>;
|
|
335
|
+
// Shareable means the entry is reference counted (visible or invisible)
|
|
336
|
+
// (only set if also occupied)
|
|
337
|
+
using ShareableFlag = BoolBitField<SlotMeta, OccupiedFlag>;
|
|
338
|
+
// Visible is only set if also shareable (invisible can't be found by
|
|
339
|
+
// Lookup)
|
|
340
|
+
using VisibleFlag = BoolBitField<SlotMeta, ShareableFlag>;
|
|
341
|
+
|
|
342
|
+
// Convenience functions
|
|
343
|
+
uint32_t GetAcquireCounter() const { return Get<AcquireCounter>(); }
|
|
344
|
+
void SetAcquireCounter(uint32_t val) { Set<AcquireCounter>(val); }
|
|
345
|
+
uint32_t GetReleaseCounter() const { return Get<ReleaseCounter>(); }
|
|
346
|
+
void SetReleaseCounter(uint32_t val) { Set<ReleaseCounter>(val); }
|
|
347
|
+
uint32_t GetRefcount() const {
|
|
348
|
+
return Get<AcquireCounter>() - Get<ReleaseCounter>();
|
|
349
|
+
}
|
|
350
|
+
bool GetHit() const { return Get<HitFlag>(); }
|
|
351
|
+
void SetHit(bool val) { Set<HitFlag>(val); }
|
|
352
|
+
|
|
353
|
+
// Some distinct states for the various state flags
|
|
354
|
+
bool IsEmpty() const {
|
|
355
|
+
bool rv = !Get<OccupiedFlag>();
|
|
356
|
+
if (rv) {
|
|
357
|
+
assert(!Get<ShareableFlag>());
|
|
358
|
+
assert(!Get<VisibleFlag>());
|
|
359
|
+
}
|
|
360
|
+
return rv;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
bool IsUnderConstruction() const {
|
|
364
|
+
bool rv = Get<OccupiedFlag>() && !Get<ShareableFlag>();
|
|
365
|
+
if (rv) {
|
|
366
|
+
assert(!Get<VisibleFlag>());
|
|
367
|
+
}
|
|
368
|
+
return rv;
|
|
369
|
+
}
|
|
370
|
+
void SetUnderConstruction() {
|
|
371
|
+
Set<OccupiedFlag>(true);
|
|
372
|
+
Set<ShareableFlag>(false);
|
|
373
|
+
Set<VisibleFlag>(false);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
bool IsShareable() const { return Get<ShareableFlag>(); }
|
|
377
|
+
bool IsInvisible() const {
|
|
378
|
+
bool rv = Get<ShareableFlag>() && !Get<VisibleFlag>();
|
|
379
|
+
if (rv) {
|
|
380
|
+
assert(Get<OccupiedFlag>());
|
|
381
|
+
}
|
|
382
|
+
return rv;
|
|
383
|
+
}
|
|
384
|
+
void SetInvisible() {
|
|
385
|
+
Set<OccupiedFlag>(true);
|
|
386
|
+
Set<ShareableFlag>(true);
|
|
387
|
+
Set<VisibleFlag>(false);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
bool IsVisible() const {
|
|
391
|
+
bool rv = Get<ShareableFlag>() && Get<VisibleFlag>();
|
|
392
|
+
if (rv) {
|
|
393
|
+
assert(Get<OccupiedFlag>());
|
|
394
|
+
}
|
|
395
|
+
return rv;
|
|
396
|
+
}
|
|
397
|
+
void SetVisible() {
|
|
398
|
+
Set<OccupiedFlag>(true);
|
|
399
|
+
Set<ShareableFlag>(true);
|
|
400
|
+
Set<VisibleFlag>(true);
|
|
401
|
+
}
|
|
402
|
+
};
|
|
354
403
|
|
|
355
404
|
// Constants for initializing the countdown clock. (Countdown clock is only
|
|
356
405
|
// in effect with zero refs, acquire counter == release counter, and in that
|
|
@@ -364,7 +413,7 @@ struct ClockHandle : public ClockHandleBasicData {
|
|
|
364
413
|
// TODO: make these coundown values tuning parameters for eviction?
|
|
365
414
|
|
|
366
415
|
// See above. Mutable for read reference counting.
|
|
367
|
-
mutable
|
|
416
|
+
mutable BitFieldsAtomic<SlotMeta> meta{};
|
|
368
417
|
}; // struct ClockHandle
|
|
369
418
|
|
|
370
419
|
class BaseClockTable {
|
|
@@ -431,9 +480,9 @@ class BaseClockTable {
|
|
|
431
480
|
bool IsEvictionEffortExceeded(const BaseClockTable::EvictionData& data) const;
|
|
432
481
|
#ifndef NDEBUG
|
|
433
482
|
// Acquire N references
|
|
434
|
-
void TEST_RefN(ClockHandle& handle,
|
|
483
|
+
void TEST_RefN(ClockHandle& handle, uint32_t n);
|
|
435
484
|
// Helper for TEST_ReleaseN
|
|
436
|
-
void TEST_ReleaseNMinus1(ClockHandle* handle,
|
|
485
|
+
void TEST_ReleaseNMinus1(ClockHandle* handle, uint32_t n);
|
|
437
486
|
#endif
|
|
438
487
|
|
|
439
488
|
private: // fns
|
|
@@ -489,13 +538,13 @@ class BaseClockTable {
|
|
|
489
538
|
// TODO: is this separation needed if we don't do background evictions?
|
|
490
539
|
ALIGN_AS(CACHE_LINE_SIZE)
|
|
491
540
|
// Number of elements in the table.
|
|
492
|
-
|
|
541
|
+
Atomic<size_t> occupancy_{};
|
|
493
542
|
|
|
494
543
|
// Memory usage by entries tracked by the cache (including standalone)
|
|
495
|
-
|
|
544
|
+
Atomic<size_t> usage_{};
|
|
496
545
|
|
|
497
546
|
// Part of usage by standalone entries (not in table)
|
|
498
|
-
|
|
547
|
+
Atomic<size_t> standalone_usage_{};
|
|
499
548
|
|
|
500
549
|
// Maximum total charge of all elements stored in the table.
|
|
501
550
|
// (Relaxed: eventual consistency/update is OK)
|
|
@@ -586,7 +635,7 @@ class FixedHyperClockTable : public BaseClockTable {
|
|
|
586
635
|
bool GrowIfNeeded(size_t new_occupancy, InsertState& state);
|
|
587
636
|
|
|
588
637
|
HandleImpl* DoInsert(const ClockHandleBasicData& proto,
|
|
589
|
-
|
|
638
|
+
uint32_t initial_countdown, bool take_ref,
|
|
590
639
|
InsertState& state);
|
|
591
640
|
|
|
592
641
|
// Runs the clock eviction algorithm trying to reclaim at least
|
|
@@ -614,7 +663,7 @@ class FixedHyperClockTable : public BaseClockTable {
|
|
|
614
663
|
}
|
|
615
664
|
|
|
616
665
|
// Release N references
|
|
617
|
-
void TEST_ReleaseN(HandleImpl* handle,
|
|
666
|
+
void TEST_ReleaseN(HandleImpl* handle, uint32_t n);
|
|
618
667
|
#endif
|
|
619
668
|
|
|
620
669
|
// The load factor p is a real number in (0, 1) such that at all
|
|
@@ -850,8 +899,8 @@ class AutoHyperClockTable : public BaseClockTable {
|
|
|
850
899
|
|
|
851
900
|
// See above. The head pointer is logically independent of the rest of
|
|
852
901
|
// the entry, including the chain next pointer.
|
|
853
|
-
|
|
854
|
-
|
|
902
|
+
BitFieldsAtomic<NextWithShift> head_next_with_shift{kUnusedMarker};
|
|
903
|
+
BitFieldsAtomic<NextWithShift> chain_next_with_shift{kUnusedMarker};
|
|
855
904
|
|
|
856
905
|
// For supporting CreateStandalone and some fallback cases.
|
|
857
906
|
inline bool IsStandalone() const {
|
|
@@ -897,7 +946,7 @@ class AutoHyperClockTable : public BaseClockTable {
|
|
|
897
946
|
bool GrowIfNeeded(size_t new_occupancy, InsertState& state);
|
|
898
947
|
|
|
899
948
|
HandleImpl* DoInsert(const ClockHandleBasicData& proto,
|
|
900
|
-
|
|
949
|
+
uint32_t initial_countdown, bool take_ref,
|
|
901
950
|
InsertState& state);
|
|
902
951
|
|
|
903
952
|
// Runs the clock eviction algorithm trying to reclaim at least
|
|
@@ -925,7 +974,7 @@ class AutoHyperClockTable : public BaseClockTable {
|
|
|
925
974
|
}
|
|
926
975
|
|
|
927
976
|
// Release N references
|
|
928
|
-
void TEST_ReleaseN(HandleImpl* handle,
|
|
977
|
+
void TEST_ReleaseN(HandleImpl* handle, uint32_t n);
|
|
929
978
|
#endif
|
|
930
979
|
|
|
931
980
|
// Maximum ratio of number of occupied slots to number of usable slots. The
|
|
@@ -1007,7 +1056,7 @@ class AutoHyperClockTable : public BaseClockTable {
|
|
|
1007
1056
|
// To maximize parallelization of Grow() operations, this field is only
|
|
1008
1057
|
// updated opportunistically after Grow() operations and in DoInsert() where
|
|
1009
1058
|
// it is found to be out-of-date. See CatchUpLengthInfoNoWait().
|
|
1010
|
-
|
|
1059
|
+
Atomic<uint64_t> length_info_;
|
|
1011
1060
|
|
|
1012
1061
|
// An already-computed version of the usable length times the max load
|
|
1013
1062
|
// factor. Could be slightly out of date but GrowIfNeeded()/Grow() handle
|
|
@@ -1130,8 +1179,8 @@ class ALIGN_AS(CACHE_LINE_SIZE) ClockCacheShard final : public CacheShardBase {
|
|
|
1130
1179
|
return table_.TEST_MutableOccupancyLimit();
|
|
1131
1180
|
}
|
|
1132
1181
|
// Acquire/release N references
|
|
1133
|
-
void TEST_RefN(HandleImpl* handle,
|
|
1134
|
-
void TEST_ReleaseN(HandleImpl* handle,
|
|
1182
|
+
void TEST_RefN(HandleImpl* handle, uint32_t n);
|
|
1183
|
+
void TEST_ReleaseN(HandleImpl* handle, uint32_t n);
|
|
1135
1184
|
#endif
|
|
1136
1185
|
|
|
1137
1186
|
private: // data
|
|
@@ -50,8 +50,7 @@ CompressedSecondaryCache::CompressedSecondaryCache(
|
|
|
50
50
|
std::make_shared<CacheReservationManagerImpl<CacheEntryRole::kMisc>>(
|
|
51
51
|
cache_))),
|
|
52
52
|
disable_cache_(opts.capacity == 0) {
|
|
53
|
-
auto mgr =
|
|
54
|
-
GetBuiltinCompressionManager(cache_options_.compress_format_version);
|
|
53
|
+
auto mgr = GetBuiltinV2CompressionManager();
|
|
55
54
|
compressor_ = mgr->GetCompressor(cache_options_.compression_opts,
|
|
56
55
|
cache_options_.compression_type);
|
|
57
56
|
decompressor_ =
|
|
@@ -356,9 +355,6 @@ std::string CompressedSecondaryCache::GetPrintableOptions() const {
|
|
|
356
355
|
const_cast<CompressionOptions&>(cache_options_.compression_opts))
|
|
357
356
|
.c_str());
|
|
358
357
|
ret.append(buffer);
|
|
359
|
-
snprintf(buffer, kBufferSize, " compress_format_version : %d\n",
|
|
360
|
-
cache_options_.compress_format_version);
|
|
361
|
-
ret.append(buffer);
|
|
362
358
|
return ret;
|
|
363
359
|
}
|
|
364
360
|
|
|
@@ -856,8 +856,7 @@ TEST_P(CompressedSecondaryCacheTestWithCompressionParam, BasicTestFromString) {
|
|
|
856
856
|
if (LZ4_Supported()) {
|
|
857
857
|
sec_cache_uri =
|
|
858
858
|
"compressed_secondary_cache://"
|
|
859
|
-
"capacity=2048;num_shard_bits=0;compression_type=kLZ4Compression;
|
|
860
|
-
"compress_format_version=2";
|
|
859
|
+
"capacity=2048;num_shard_bits=0;compression_type=kLZ4Compression";
|
|
861
860
|
} else {
|
|
862
861
|
ROCKSDB_GTEST_SKIP("This test requires LZ4 support.");
|
|
863
862
|
sec_cache_uri =
|
|
@@ -888,7 +887,7 @@ TEST_P(CompressedSecondaryCacheTestWithCompressionParam,
|
|
|
888
887
|
sec_cache_uri =
|
|
889
888
|
"compressed_secondary_cache://"
|
|
890
889
|
"capacity=2048;num_shard_bits=0;compression_type=kLZ4Compression;"
|
|
891
|
-
"
|
|
890
|
+
"enable_custom_split_merge=true";
|
|
892
891
|
} else {
|
|
893
892
|
ROCKSDB_GTEST_SKIP("This test requires LZ4 support.");
|
|
894
893
|
sec_cache_uri =
|
|
@@ -1503,7 +1503,7 @@ TEST_P(BasicSecondaryCacheTest, FullCapacityTest) {
|
|
|
1503
1503
|
/*context*/ this, Cache::Priority::LOW);
|
|
1504
1504
|
ASSERT_EQ(handle1, nullptr);
|
|
1505
1505
|
|
|
1506
|
-
// k1 promotion can fail with
|
|
1506
|
+
// k1 promotion can fail with strict_capacity_limit=true, but Lookup still
|
|
1507
1507
|
// succeeds using a standalone handle
|
|
1508
1508
|
handle1 = cache->Lookup(k1.AsSlice(), GetHelper(),
|
|
1509
1509
|
/*context*/ this, Cache::Priority::LOW);
|
|
@@ -1680,7 +1680,7 @@ TEST_P(DBSecondaryCacheTest, TestSecondaryCacheCorrectness2) {
|
|
|
1680
1680
|
// After Flush is successful, RocksDB will do the paranoid check for the new
|
|
1681
1681
|
// SST file. Meta blocks are always cached in the block cache and they
|
|
1682
1682
|
// will not be evicted. When block_2 is cache miss and read out, it is
|
|
1683
|
-
// inserted to the block cache.
|
|
1683
|
+
// inserted to the block cache. Therefore, block_1 is evicted from block
|
|
1684
1684
|
// cache and successfully inserted to the secondary cache. Here are 2
|
|
1685
1685
|
// lookups in the secondary cache for block_1 and block_2.
|
|
1686
1686
|
ASSERT_EQ(secondary_cache->num_inserts(), 1u);
|
|
@@ -1721,7 +1721,7 @@ TEST_P(DBSecondaryCacheTest, TestSecondaryCacheCorrectness2) {
|
|
|
1721
1721
|
v = Get(Key(0));
|
|
1722
1722
|
ASSERT_EQ(1007, v.size());
|
|
1723
1723
|
// This Get needs to access block_1, since block_1 is not in block cache
|
|
1724
|
-
// there is one
|
|
1724
|
+
// there is one secondary cache lookup. Then, block_1 is cached in the
|
|
1725
1725
|
// block cache.
|
|
1726
1726
|
ASSERT_EQ(secondary_cache->num_inserts(), 2u);
|
|
1727
1727
|
ASSERT_EQ(secondary_cache->num_lookups(), 5u);
|
|
@@ -1785,7 +1785,7 @@ TEST_P(DBSecondaryCacheTest, NoSecondaryCacheInsertion) {
|
|
|
1785
1785
|
std::string v = Get(Key(0));
|
|
1786
1786
|
ASSERT_EQ(1000, v.size());
|
|
1787
1787
|
// Since the block cache is large enough, all the blocks are cached. we
|
|
1788
|
-
// do not need to lookup the
|
|
1788
|
+
// do not need to lookup the secondary cache.
|
|
1789
1789
|
ASSERT_EQ(secondary_cache->num_inserts(), 0u);
|
|
1790
1790
|
ASSERT_EQ(secondary_cache->num_lookups(), 2u);
|
|
1791
1791
|
|
|
@@ -2150,7 +2150,7 @@ TEST_P(DBSecondaryCacheTest, LRUCacheDumpLoadBasic) {
|
|
|
2150
2150
|
ASSERT_OK(Flush());
|
|
2151
2151
|
Compact("a", "z");
|
|
2152
2152
|
|
|
2153
|
-
// do
|
|
2153
|
+
// do the read for all the key value pairs, so all the blocks should be in
|
|
2154
2154
|
// cache
|
|
2155
2155
|
uint32_t start_insert = cache->GetInsertCount();
|
|
2156
2156
|
uint32_t start_lookup = cache->GetLookupcount();
|
|
@@ -2179,7 +2179,7 @@ TEST_P(DBSecondaryCacheTest, LRUCacheDumpLoadBasic) {
|
|
|
2179
2179
|
&cache_dumper);
|
|
2180
2180
|
ASSERT_OK(s);
|
|
2181
2181
|
std::vector<DB*> db_list;
|
|
2182
|
-
db_list.push_back(db_);
|
|
2182
|
+
db_list.push_back(db_.get());
|
|
2183
2183
|
s = cache_dumper->SetDumpFilter(db_list);
|
|
2184
2184
|
ASSERT_OK(s);
|
|
2185
2185
|
s = cache_dumper->DumpCacheEntriesToWriter();
|
|
@@ -2263,11 +2263,11 @@ TEST_P(DBSecondaryCacheTest, LRUCacheDumpLoadWithFilter) {
|
|
|
2263
2263
|
options.env = fault_env_.get();
|
|
2264
2264
|
std::string dbname1 = test::PerThreadDBPath("db_1");
|
|
2265
2265
|
ASSERT_OK(DestroyDB(dbname1, options));
|
|
2266
|
-
DB
|
|
2266
|
+
std::unique_ptr<DB> db1;
|
|
2267
2267
|
ASSERT_OK(DB::Open(options, dbname1, &db1));
|
|
2268
2268
|
std::string dbname2 = test::PerThreadDBPath("db_2");
|
|
2269
2269
|
ASSERT_OK(DestroyDB(dbname2, options));
|
|
2270
|
-
DB
|
|
2270
|
+
std::unique_ptr<DB> db2;
|
|
2271
2271
|
ASSERT_OK(DB::Open(options, dbname2, &db2));
|
|
2272
2272
|
fault_fs_->SetFailGetUniqueId(true);
|
|
2273
2273
|
|
|
@@ -2335,7 +2335,7 @@ TEST_P(DBSecondaryCacheTest, LRUCacheDumpLoadWithFilter) {
|
|
|
2335
2335
|
&cache_dumper);
|
|
2336
2336
|
ASSERT_OK(s);
|
|
2337
2337
|
std::vector<DB*> db_list;
|
|
2338
|
-
db_list.push_back(db1);
|
|
2338
|
+
db_list.push_back(db1.get());
|
|
2339
2339
|
s = cache_dumper->SetDumpFilter(db_list);
|
|
2340
2340
|
ASSERT_OK(s);
|
|
2341
2341
|
s = cache_dumper->DumpCacheEntriesToWriter();
|
|
@@ -2377,7 +2377,7 @@ TEST_P(DBSecondaryCacheTest, LRUCacheDumpLoadWithFilter) {
|
|
|
2377
2377
|
ASSERT_OK(s);
|
|
2378
2378
|
|
|
2379
2379
|
ASSERT_OK(db1->Close());
|
|
2380
|
-
|
|
2380
|
+
db1.reset();
|
|
2381
2381
|
ASSERT_OK(DB::Open(options, dbname1, &db1));
|
|
2382
2382
|
|
|
2383
2383
|
// After load, we do the Get again. To validate the cache, we do not allow any
|
|
@@ -2406,8 +2406,8 @@ TEST_P(DBSecondaryCacheTest, LRUCacheDumpLoadWithFilter) {
|
|
|
2406
2406
|
ASSERT_EQ(256, static_cast<int>(block_lookup));
|
|
2407
2407
|
fault_fs_->SetFailGetUniqueId(false);
|
|
2408
2408
|
fault_fs_->SetFilesystemActive(true);
|
|
2409
|
-
|
|
2410
|
-
|
|
2409
|
+
db1.reset();
|
|
2410
|
+
db2.reset();
|
|
2411
2411
|
ASSERT_OK(DestroyDB(dbname1, options));
|
|
2412
2412
|
ASSERT_OK(DestroyDB(dbname2, options));
|
|
2413
2413
|
}
|
|
@@ -2464,7 +2464,7 @@ TEST_P(DBSecondaryCacheTest, TestSecondaryCacheOptionBasic) {
|
|
|
2464
2464
|
std::string v = Get(Key(0));
|
|
2465
2465
|
ASSERT_EQ(1007, v.size());
|
|
2466
2466
|
|
|
2467
|
-
// Check the data in first block. Cache miss,
|
|
2467
|
+
// Check the data in first block. Cache miss, directly read from SST file.
|
|
2468
2468
|
ASSERT_EQ(secondary_cache->num_inserts(), 0u);
|
|
2469
2469
|
ASSERT_EQ(secondary_cache->num_lookups(), 0u);
|
|
2470
2470
|
|
|
@@ -2598,7 +2598,7 @@ TEST_P(DBSecondaryCacheTest, TestSecondaryCacheOptionChange) {
|
|
|
2598
2598
|
}
|
|
2599
2599
|
|
|
2600
2600
|
// Two DB test. We create 2 DBs sharing the same block cache and secondary
|
|
2601
|
-
// cache. We
|
|
2601
|
+
// cache. We disable the secondary cache option for DB2.
|
|
2602
2602
|
TEST_P(DBSecondaryCacheTest, TestSecondaryCacheOptionTwoDB) {
|
|
2603
2603
|
if (IsHyperClock()) {
|
|
2604
2604
|
ROCKSDB_GTEST_BYPASS("Test depends on LRUCache-specific behaviors");
|
|
@@ -2619,11 +2619,11 @@ TEST_P(DBSecondaryCacheTest, TestSecondaryCacheOptionTwoDB) {
|
|
|
2619
2619
|
options.paranoid_file_checks = true;
|
|
2620
2620
|
std::string dbname1 = test::PerThreadDBPath("db_t_1");
|
|
2621
2621
|
ASSERT_OK(DestroyDB(dbname1, options));
|
|
2622
|
-
DB
|
|
2622
|
+
std::unique_ptr<DB> db1;
|
|
2623
2623
|
ASSERT_OK(DB::Open(options, dbname1, &db1));
|
|
2624
2624
|
std::string dbname2 = test::PerThreadDBPath("db_t_2");
|
|
2625
2625
|
ASSERT_OK(DestroyDB(dbname2, options));
|
|
2626
|
-
DB
|
|
2626
|
+
std::unique_ptr<DB> db2;
|
|
2627
2627
|
Options options2 = options;
|
|
2628
2628
|
options2.lowest_used_cache_tier = CacheTier::kVolatileTier;
|
|
2629
2629
|
ASSERT_OK(DB::Open(options2, dbname2, &db2));
|
|
@@ -2700,8 +2700,8 @@ TEST_P(DBSecondaryCacheTest, TestSecondaryCacheOptionTwoDB) {
|
|
|
2700
2700
|
|
|
2701
2701
|
fault_fs_->SetFailGetUniqueId(false);
|
|
2702
2702
|
fault_fs_->SetFilesystemActive(true);
|
|
2703
|
-
|
|
2704
|
-
|
|
2703
|
+
db1.reset();
|
|
2704
|
+
db2.reset();
|
|
2705
2705
|
ASSERT_OK(DestroyDB(dbname1, options));
|
|
2706
2706
|
ASSERT_OK(DestroyDB(dbname2, options));
|
|
2707
2707
|
}
|
|
@@ -8,7 +8,7 @@ DB_STRESS_CMD?=./db_stress
|
|
|
8
8
|
include common.mk
|
|
9
9
|
|
|
10
10
|
CRASHTEST_MAKE=$(MAKE) -f crash_test.mk
|
|
11
|
-
CRASHTEST_PY=$(PYTHON) -u tools/db_crashtest.py --stress_cmd=$(DB_STRESS_CMD) --cleanup_cmd='$(DB_CLEANUP_CMD)'
|
|
11
|
+
CRASHTEST_PY=$(PYTHON) -u tools/db_crashtest.py --stress_cmd=$(DB_STRESS_CMD) --cleanup_cmd='$(DB_CLEANUP_CMD)' --destroy_db_initially=1
|
|
12
12
|
|
|
13
13
|
.PHONY: crash_test crash_test_with_atomic_flush crash_test_with_txn \
|
|
14
14
|
crash_test_with_wc_txn crash_test_with_wp_txn crash_test_with_wup_txn \
|
|
@@ -34,6 +34,7 @@ CRASHTEST_PY=$(PYTHON) -u tools/db_crashtest.py --stress_cmd=$(DB_STRESS_CMD) --
|
|
|
34
34
|
whitebox_crash_test_with_txn whitebox_crash_test_with_ts \
|
|
35
35
|
whitebox_crash_test_with_optimistic_txn \
|
|
36
36
|
whitebox_crash_test_with_tiered_storage \
|
|
37
|
+
crash_test_db_cleanup \
|
|
37
38
|
|
|
38
39
|
crash_test: $(DB_STRESS_CMD)
|
|
39
40
|
# Do not parallelize
|
|
@@ -161,6 +162,9 @@ whitebox_crash_test_with_optimistic_txn: $(DB_STRESS_CMD)
|
|
|
161
162
|
$(CRASHTEST_PY) --optimistic_txn whitebox --random_kill_odd \
|
|
162
163
|
$(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
|
|
163
164
|
|
|
165
|
+
crash_test_db_cleanup: $(DB_STRESS_CMD)
|
|
166
|
+
$(DB_STRESS_CMD) --delete_dir_and_exit=$(TEST_TMPDIR)
|
|
167
|
+
|
|
164
168
|
# Old names DEPRECATED
|
|
165
169
|
crash_test_with_txn: crash_test_with_wc_txn
|
|
166
170
|
whitebox_crash_test_with_txn: whitebox_crash_test_with_wc_txn
|
|
@@ -67,6 +67,16 @@ BlobFileBuilder::BlobFileBuilder(
|
|
|
67
67
|
min_blob_size_(mutable_cf_options->min_blob_size),
|
|
68
68
|
blob_file_size_(mutable_cf_options->blob_file_size),
|
|
69
69
|
blob_compression_type_(mutable_cf_options->blob_compression_type),
|
|
70
|
+
// TODO: support most CompressionOptions with a new CF option
|
|
71
|
+
// blob_compression_opts
|
|
72
|
+
// TODO with schema change: support custom compression manager and options
|
|
73
|
+
// such as max_compressed_bytes_per_kb
|
|
74
|
+
// NOTE: returns nullptr for kNoCompression
|
|
75
|
+
blob_compressor_(GetBuiltinV2CompressionManager()->GetCompressor(
|
|
76
|
+
CompressionOptions{}, blob_compression_type_)),
|
|
77
|
+
blob_compressor_wa_(blob_compressor_
|
|
78
|
+
? blob_compressor_->ObtainWorkingArea()
|
|
79
|
+
: Compressor::ManagedWorkingArea{}),
|
|
70
80
|
prepopulate_blob_cache_(mutable_cf_options->prepopulate_blob_cache),
|
|
71
81
|
file_options_(file_options),
|
|
72
82
|
write_options_(write_options),
|
|
@@ -113,7 +123,7 @@ Status BlobFileBuilder::Add(const Slice& key, const Slice& value,
|
|
|
113
123
|
}
|
|
114
124
|
|
|
115
125
|
Slice blob = value;
|
|
116
|
-
|
|
126
|
+
GrowableBuffer compressed_blob;
|
|
117
127
|
|
|
118
128
|
{
|
|
119
129
|
const Status s = CompressBlobIfNeeded(&blob, &compressed_blob);
|
|
@@ -254,36 +264,27 @@ Status BlobFileBuilder::OpenBlobFileIfNeeded() {
|
|
|
254
264
|
}
|
|
255
265
|
|
|
256
266
|
Status BlobFileBuilder::CompressBlobIfNeeded(
|
|
257
|
-
Slice* blob,
|
|
267
|
+
Slice* blob, GrowableBuffer* compressed_blob) const {
|
|
258
268
|
assert(blob);
|
|
259
269
|
assert(compressed_blob);
|
|
260
270
|
assert(compressed_blob->empty());
|
|
261
271
|
assert(immutable_options_);
|
|
262
272
|
|
|
263
|
-
if (
|
|
273
|
+
if (!blob_compressor_) {
|
|
274
|
+
assert(blob_compression_type_ == kNoCompression);
|
|
264
275
|
return Status::OK();
|
|
265
276
|
}
|
|
277
|
+
assert(blob_compression_type_ != kNoCompression);
|
|
266
278
|
|
|
267
|
-
//
|
|
268
|
-
CompressionOptions opts;
|
|
269
|
-
CompressionContext context(blob_compression_type_, opts);
|
|
279
|
+
// WART: always stored as compressed even when that increases the size.
|
|
270
280
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
{
|
|
279
|
-
StopWatch stop_watch(immutable_options_->clock, immutable_options_->stats,
|
|
280
|
-
BLOB_DB_COMPRESSION_MICROS);
|
|
281
|
-
success = OLD_CompressData(*blob, info, compression_format_version,
|
|
282
|
-
compressed_blob);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
if (!success) {
|
|
286
|
-
return Status::Corruption("Error compressing blob");
|
|
281
|
+
Status s;
|
|
282
|
+
StopWatch stop_watch(immutable_options_->clock, immutable_options_->stats,
|
|
283
|
+
BLOB_DB_COMPRESSION_MICROS);
|
|
284
|
+
s = LegacyForceBuiltinCompression(*blob_compressor_, &blob_compressor_wa_,
|
|
285
|
+
*blob, compressed_blob);
|
|
286
|
+
if (!s.ok()) {
|
|
287
|
+
return s;
|
|
287
288
|
}
|
|
288
289
|
|
|
289
290
|
*blob = Slice(*compressed_blob);
|
|
@@ -10,12 +10,14 @@
|
|
|
10
10
|
#include <string>
|
|
11
11
|
#include <vector>
|
|
12
12
|
|
|
13
|
+
#include "rocksdb/advanced_compression.h"
|
|
13
14
|
#include "rocksdb/advanced_options.h"
|
|
14
15
|
#include "rocksdb/compression_type.h"
|
|
15
16
|
#include "rocksdb/env.h"
|
|
16
17
|
#include "rocksdb/options.h"
|
|
17
18
|
#include "rocksdb/rocksdb_namespace.h"
|
|
18
19
|
#include "rocksdb/types.h"
|
|
20
|
+
#include "util/aligned_buffer.h"
|
|
19
21
|
|
|
20
22
|
namespace ROCKSDB_NAMESPACE {
|
|
21
23
|
|
|
@@ -76,7 +78,8 @@ class BlobFileBuilder {
|
|
|
76
78
|
private:
|
|
77
79
|
bool IsBlobFileOpen() const;
|
|
78
80
|
Status OpenBlobFileIfNeeded();
|
|
79
|
-
Status CompressBlobIfNeeded(Slice* blob,
|
|
81
|
+
Status CompressBlobIfNeeded(Slice* blob,
|
|
82
|
+
GrowableBuffer* compressed_blob) const;
|
|
80
83
|
Status WriteBlobToFile(const Slice& key, const Slice& blob,
|
|
81
84
|
uint64_t* blob_file_number, uint64_t* blob_offset);
|
|
82
85
|
Status CloseBlobFile();
|
|
@@ -91,6 +94,8 @@ class BlobFileBuilder {
|
|
|
91
94
|
uint64_t min_blob_size_;
|
|
92
95
|
uint64_t blob_file_size_;
|
|
93
96
|
CompressionType blob_compression_type_;
|
|
97
|
+
std::unique_ptr<Compressor> blob_compressor_;
|
|
98
|
+
mutable Compressor::ManagedWorkingArea blob_compressor_wa_;
|
|
94
99
|
PrepopulateBlobCache prepopulate_blob_cache_;
|
|
95
100
|
const FileOptions* file_options_;
|
|
96
101
|
const WriteOptions* write_options_;
|
|
@@ -403,22 +403,19 @@ TEST_F(BlobFileBuilderTest, Compression) {
|
|
|
403
403
|
ASSERT_EQ(blob_file_addition.GetBlobFileNumber(), blob_file_number);
|
|
404
404
|
ASSERT_EQ(blob_file_addition.GetTotalBlobCount(), 1);
|
|
405
405
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
std::string compressed_value;
|
|
413
|
-
ASSERT_TRUE(Snappy_Compress(info, uncompressed_value.data(),
|
|
414
|
-
uncompressed_value.size(), &compressed_value));
|
|
406
|
+
auto compressor =
|
|
407
|
+
GetBuiltinV2CompressionManager()->GetCompressor({}, kSnappyCompression);
|
|
408
|
+
GrowableBuffer compressed_value;
|
|
409
|
+
ASSERT_OK(LegacyForceBuiltinCompression(*compressor, /*working_area=*/nullptr,
|
|
410
|
+
uncompressed_value,
|
|
411
|
+
&compressed_value));
|
|
415
412
|
|
|
416
413
|
ASSERT_EQ(blob_file_addition.GetTotalBlobBytes(),
|
|
417
414
|
BlobLogRecord::kHeaderSize + key_size + compressed_value.size());
|
|
418
415
|
|
|
419
416
|
// Verify the contents of the new blob file as well as the blob reference
|
|
420
417
|
std::vector<std::pair<std::string, std::string>> expected_key_value_pairs{
|
|
421
|
-
{key, compressed_value}};
|
|
418
|
+
{key, compressed_value.AsSlice().ToString()}};
|
|
422
419
|
std::vector<std::string> blob_indexes{blob_index};
|
|
423
420
|
|
|
424
421
|
VerifyBlobFile(blob_file_number, blob_file_path, column_family_id,
|
|
@@ -457,11 +454,12 @@ TEST_F(BlobFileBuilderTest, CompressionError) {
|
|
|
457
454
|
nullptr /*IOTracer*/, nullptr /*BlobFileCompletionCallback*/,
|
|
458
455
|
BlobFileCreationReason::kFlush, &blob_file_paths, &blob_file_additions);
|
|
459
456
|
|
|
460
|
-
SyncPoint::GetInstance()->SetCallBack(
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
457
|
+
SyncPoint::GetInstance()->SetCallBack(
|
|
458
|
+
"LegacyForceBuiltinCompression:TamperWithStatus", [](void* arg) {
|
|
459
|
+
Status* ret = static_cast<Status*>(arg);
|
|
460
|
+
ASSERT_OK(*ret);
|
|
461
|
+
*ret = Status::Corruption("Tampered result");
|
|
462
|
+
});
|
|
465
463
|
SyncPoint::GetInstance()->EnableProcessing();
|
|
466
464
|
|
|
467
465
|
constexpr char key[] = "1";
|
|
@@ -469,7 +467,7 @@ TEST_F(BlobFileBuilderTest, CompressionError) {
|
|
|
469
467
|
|
|
470
468
|
std::string blob_index;
|
|
471
469
|
|
|
472
|
-
|
|
470
|
+
ASSERT_EQ(builder.Add(key, value, &blob_index).code(), Status::kCorruption);
|
|
473
471
|
|
|
474
472
|
SyncPoint::GetInstance()->DisableProcessing();
|
|
475
473
|
SyncPoint::GetInstance()->ClearAllCallBacks();
|