@nxtedition/rocksdb 15.4.1 → 15.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +24 -15
- package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
- package/deps/rocksdb/rocksdb/BUCK +42 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
- package/deps/rocksdb/rocksdb/Makefile +59 -32
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
- package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
- package/deps/rocksdb/rocksdb/db/builder.h +7 -0
- package/deps/rocksdb/rocksdb/db/c.cc +373 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
- package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
- package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
- package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
- package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
- package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
- package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
- package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
- package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
- package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
- package/deps/rocksdb/rocksdb/env/env.cc +1 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
- package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
- package/deps/rocksdb/rocksdb/folly.mk +22 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
- package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
- package/deps/rocksdb/rocksdb/options/options.cc +5 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
- package/deps/rocksdb/rocksdb/port/lang.h +4 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
- package/deps/rocksdb/rocksdb/src.mk +12 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
- package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
- package/deps/rocksdb/rocksdb/table/format.cc +27 -15
- package/deps/rocksdb/rocksdb/table/format.h +41 -15
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
- package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
- package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
- package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
- package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
- package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
- package/deps/rocksdb/rocksdb/util/coding.h +14 -27
- package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
- package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
- package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
- package/deps/rocksdb/rocksdb/util/math.h +3 -1
- package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
- package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
- package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
- package/deps/rocksdb/rocksdb/util/status.cc +3 -1
- package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
- package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
- package/deps/rocksdb/rocksdb.gyp +7 -0
- package/iterator.js +2 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
|
@@ -41,7 +41,9 @@ inline T BottomNBits(T v, int nbits) {
|
|
|
41
41
|
#endif
|
|
42
42
|
// Newer compilers compile this down to bzhi on x86, but some older
|
|
43
43
|
// ones don't, thus the need for the intrinsic above.
|
|
44
|
-
|
|
44
|
+
using UnsignedT = std::make_unsigned_t<T>;
|
|
45
|
+
UnsignedT mask = (static_cast<UnsignedT>(1) << nbits) - 1;
|
|
46
|
+
return static_cast<T>(static_cast<UnsignedT>(v) & mask);
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
// Fast implementation of floor(log2(v)). Undefined for 0 or negative
|
|
@@ -34,15 +34,15 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
34
34
|
|
|
35
35
|
class MutexLock {
|
|
36
36
|
public:
|
|
37
|
-
explicit MutexLock(port::Mutex
|
|
37
|
+
explicit MutexLock(port::Mutex* mu) : mu_(mu) { this->mu_->Lock(); }
|
|
38
38
|
// No copying allowed
|
|
39
|
-
MutexLock(const MutexLock
|
|
40
|
-
void operator=(const MutexLock
|
|
39
|
+
MutexLock(const MutexLock&) = delete;
|
|
40
|
+
void operator=(const MutexLock&) = delete;
|
|
41
41
|
|
|
42
42
|
~MutexLock() { this->mu_->Unlock(); }
|
|
43
43
|
|
|
44
44
|
private:
|
|
45
|
-
port::Mutex
|
|
45
|
+
port::Mutex* const mu_;
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
//
|
|
@@ -52,15 +52,15 @@ class MutexLock {
|
|
|
52
52
|
//
|
|
53
53
|
class ReadLock {
|
|
54
54
|
public:
|
|
55
|
-
explicit ReadLock(port::RWMutex
|
|
55
|
+
explicit ReadLock(port::RWMutex* mu) : mu_(mu) { this->mu_->ReadLock(); }
|
|
56
56
|
// No copying allowed
|
|
57
|
-
ReadLock(const ReadLock
|
|
58
|
-
void operator=(const ReadLock
|
|
57
|
+
ReadLock(const ReadLock&) = delete;
|
|
58
|
+
void operator=(const ReadLock&) = delete;
|
|
59
59
|
|
|
60
60
|
~ReadLock() { this->mu_->ReadUnlock(); }
|
|
61
61
|
|
|
62
62
|
private:
|
|
63
|
-
port::RWMutex
|
|
63
|
+
port::RWMutex* const mu_;
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
//
|
|
@@ -68,15 +68,15 @@ class ReadLock {
|
|
|
68
68
|
//
|
|
69
69
|
class ReadUnlock {
|
|
70
70
|
public:
|
|
71
|
-
explicit ReadUnlock(port::RWMutex
|
|
71
|
+
explicit ReadUnlock(port::RWMutex* mu) : mu_(mu) { mu->AssertHeld(); }
|
|
72
72
|
// No copying allowed
|
|
73
|
-
ReadUnlock(const ReadUnlock
|
|
74
|
-
ReadUnlock
|
|
73
|
+
ReadUnlock(const ReadUnlock&) = delete;
|
|
74
|
+
ReadUnlock& operator=(const ReadUnlock&) = delete;
|
|
75
75
|
|
|
76
76
|
~ReadUnlock() { mu_->ReadUnlock(); }
|
|
77
77
|
|
|
78
78
|
private:
|
|
79
|
-
port::RWMutex
|
|
79
|
+
port::RWMutex* const mu_;
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
//
|
|
@@ -86,15 +86,15 @@ class ReadUnlock {
|
|
|
86
86
|
//
|
|
87
87
|
class WriteLock {
|
|
88
88
|
public:
|
|
89
|
-
explicit WriteLock(port::RWMutex
|
|
89
|
+
explicit WriteLock(port::RWMutex* mu) : mu_(mu) { this->mu_->WriteLock(); }
|
|
90
90
|
// No copying allowed
|
|
91
|
-
WriteLock(const WriteLock
|
|
92
|
-
void operator=(const WriteLock
|
|
91
|
+
WriteLock(const WriteLock&) = delete;
|
|
92
|
+
void operator=(const WriteLock&) = delete;
|
|
93
93
|
|
|
94
94
|
~WriteLock() { this->mu_->WriteUnlock(); }
|
|
95
95
|
|
|
96
96
|
private:
|
|
97
|
-
port::RWMutex
|
|
97
|
+
port::RWMutex* const mu_;
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
//
|
|
@@ -145,12 +145,12 @@ struct ALIGN_AS(CACHE_LINE_SIZE) CacheAlignedWrapper {
|
|
|
145
145
|
template <class T>
|
|
146
146
|
struct Unwrap {
|
|
147
147
|
using type = T;
|
|
148
|
-
static type
|
|
148
|
+
static type& Go(T& t) { return t; }
|
|
149
149
|
};
|
|
150
150
|
template <class T>
|
|
151
151
|
struct Unwrap<CacheAlignedWrapper<T>> {
|
|
152
152
|
using type = T;
|
|
153
|
-
static type
|
|
153
|
+
static type& Go(CacheAlignedWrapper<T>& t) { return t.obj_; }
|
|
154
154
|
};
|
|
155
155
|
|
|
156
156
|
//
|
|
@@ -169,7 +169,7 @@ class Striped {
|
|
|
169
169
|
: stripe_count_(stripe_count), data_(new T[stripe_count]) {}
|
|
170
170
|
|
|
171
171
|
using Unwrapped = typename Unwrap<T>::type;
|
|
172
|
-
Unwrapped
|
|
172
|
+
Unwrapped& Get(const Key& key, uint64_t seed = 0) {
|
|
173
173
|
size_t index = FastRangeGeneric(hash_(key, seed), stripe_count_);
|
|
174
174
|
return Unwrap<T>::Go(data_[index]);
|
|
175
175
|
}
|
|
@@ -545,10 +545,10 @@ namespace ribbon {
|
|
|
545
545
|
// solution satisfying all the cr@start -> rr entries added.
|
|
546
546
|
template <bool kFirstCoeffAlwaysOne, typename BandingStorage,
|
|
547
547
|
typename BacktrackStorage>
|
|
548
|
-
bool BandingAdd(BandingStorage
|
|
548
|
+
bool BandingAdd(BandingStorage* bs, typename BandingStorage::Index start,
|
|
549
549
|
typename BandingStorage::ResultRow rr,
|
|
550
|
-
typename BandingStorage::CoeffRow cr, BacktrackStorage
|
|
551
|
-
typename BandingStorage::Index
|
|
550
|
+
typename BandingStorage::CoeffRow cr, BacktrackStorage* bts,
|
|
551
|
+
typename BandingStorage::Index* backtrack_pos) {
|
|
552
552
|
using CoeffRow = typename BandingStorage::CoeffRow;
|
|
553
553
|
using ResultRow = typename BandingStorage::ResultRow;
|
|
554
554
|
using Index = typename BandingStorage::Index;
|
|
@@ -608,8 +608,8 @@ bool BandingAdd(BandingStorage *bs, typename BandingStorage::Index start,
|
|
|
608
608
|
//
|
|
609
609
|
template <typename BandingStorage, typename BacktrackStorage,
|
|
610
610
|
typename BandingHasher, typename InputIterator>
|
|
611
|
-
bool BandingAddRange(BandingStorage
|
|
612
|
-
const BandingHasher
|
|
611
|
+
bool BandingAddRange(BandingStorage* bs, BacktrackStorage* bts,
|
|
612
|
+
const BandingHasher& bh, InputIterator begin,
|
|
613
613
|
InputIterator end) {
|
|
614
614
|
using CoeffRow = typename BandingStorage::CoeffRow;
|
|
615
615
|
using Index = typename BandingStorage::Index;
|
|
@@ -703,7 +703,7 @@ bool BandingAddRange(BandingStorage *bs, BacktrackStorage *bts,
|
|
|
703
703
|
//
|
|
704
704
|
template <typename BandingStorage, typename BandingHasher,
|
|
705
705
|
typename InputIterator>
|
|
706
|
-
bool BandingAddRange(BandingStorage
|
|
706
|
+
bool BandingAddRange(BandingStorage* bs, const BandingHasher& bh,
|
|
707
707
|
InputIterator begin, InputIterator end) {
|
|
708
708
|
using Index = typename BandingStorage::Index;
|
|
709
709
|
struct NoopBacktrackStorage {
|
|
@@ -754,7 +754,7 @@ bool BandingAddRange(BandingStorage *bs, const BandingHasher &bh,
|
|
|
754
754
|
// Back-substitution for generating a solution from BandingStorage to
|
|
755
755
|
// SimpleSolutionStorage.
|
|
756
756
|
template <typename SimpleSolutionStorage, typename BandingStorage>
|
|
757
|
-
void SimpleBackSubst(SimpleSolutionStorage
|
|
757
|
+
void SimpleBackSubst(SimpleSolutionStorage* sss, const BandingStorage& bs) {
|
|
758
758
|
using CoeffRow = typename BandingStorage::CoeffRow;
|
|
759
759
|
using Index = typename BandingStorage::Index;
|
|
760
760
|
using ResultRow = typename BandingStorage::ResultRow;
|
|
@@ -815,7 +815,7 @@ template <typename SimpleSolutionStorage>
|
|
|
815
815
|
typename SimpleSolutionStorage::ResultRow SimpleQueryHelper(
|
|
816
816
|
typename SimpleSolutionStorage::Index start_slot,
|
|
817
817
|
typename SimpleSolutionStorage::CoeffRow cr,
|
|
818
|
-
const SimpleSolutionStorage
|
|
818
|
+
const SimpleSolutionStorage& sss) {
|
|
819
819
|
using CoeffRow = typename SimpleSolutionStorage::CoeffRow;
|
|
820
820
|
using ResultRow = typename SimpleSolutionStorage::ResultRow;
|
|
821
821
|
|
|
@@ -833,8 +833,8 @@ typename SimpleSolutionStorage::ResultRow SimpleQueryHelper(
|
|
|
833
833
|
// General PHSF query a key from SimpleSolutionStorage.
|
|
834
834
|
template <typename SimpleSolutionStorage, typename PhsfQueryHasher>
|
|
835
835
|
typename SimpleSolutionStorage::ResultRow SimplePhsfQuery(
|
|
836
|
-
const typename PhsfQueryHasher::Key
|
|
837
|
-
const SimpleSolutionStorage
|
|
836
|
+
const typename PhsfQueryHasher::Key& key, const PhsfQueryHasher& hasher,
|
|
837
|
+
const SimpleSolutionStorage& sss) {
|
|
838
838
|
const typename PhsfQueryHasher::Hash hash = hasher.GetHash(key);
|
|
839
839
|
|
|
840
840
|
static_assert(sizeof(typename SimpleSolutionStorage::Index) ==
|
|
@@ -850,9 +850,9 @@ typename SimpleSolutionStorage::ResultRow SimplePhsfQuery(
|
|
|
850
850
|
|
|
851
851
|
// Filter query a key from SimpleSolutionStorage.
|
|
852
852
|
template <typename SimpleSolutionStorage, typename FilterQueryHasher>
|
|
853
|
-
bool SimpleFilterQuery(const typename FilterQueryHasher::Key
|
|
854
|
-
const FilterQueryHasher
|
|
855
|
-
const SimpleSolutionStorage
|
|
853
|
+
bool SimpleFilterQuery(const typename FilterQueryHasher::Key& key,
|
|
854
|
+
const FilterQueryHasher& hasher,
|
|
855
|
+
const SimpleSolutionStorage& sss) {
|
|
856
856
|
const typename FilterQueryHasher::Hash hash = hasher.GetHash(key);
|
|
857
857
|
const typename SimpleSolutionStorage::ResultRow expected =
|
|
858
858
|
hasher.GetResultRowFromHash(hash);
|
|
@@ -968,9 +968,9 @@ bool SimpleFilterQuery(const typename FilterQueryHasher::Key &key,
|
|
|
968
968
|
|
|
969
969
|
// A helper for InterleavedBackSubst.
|
|
970
970
|
template <typename BandingStorage>
|
|
971
|
-
inline void BackSubstBlock(typename BandingStorage::CoeffRow
|
|
971
|
+
inline void BackSubstBlock(typename BandingStorage::CoeffRow* state,
|
|
972
972
|
typename BandingStorage::Index num_columns,
|
|
973
|
-
const BandingStorage
|
|
973
|
+
const BandingStorage& bs,
|
|
974
974
|
typename BandingStorage::Index start_slot) {
|
|
975
975
|
using CoeffRow = typename BandingStorage::CoeffRow;
|
|
976
976
|
using Index = typename BandingStorage::Index;
|
|
@@ -1004,8 +1004,8 @@ inline void BackSubstBlock(typename BandingStorage::CoeffRow *state,
|
|
|
1004
1004
|
// Back-substitution for generating a solution from BandingStorage to
|
|
1005
1005
|
// InterleavedSolutionStorage.
|
|
1006
1006
|
template <typename InterleavedSolutionStorage, typename BandingStorage>
|
|
1007
|
-
void InterleavedBackSubst(InterleavedSolutionStorage
|
|
1008
|
-
const BandingStorage
|
|
1007
|
+
void InterleavedBackSubst(InterleavedSolutionStorage* iss,
|
|
1008
|
+
const BandingStorage& bs) {
|
|
1009
1009
|
using CoeffRow = typename BandingStorage::CoeffRow;
|
|
1010
1010
|
using Index = typename BandingStorage::Index;
|
|
1011
1011
|
|
|
@@ -1084,12 +1084,12 @@ void InterleavedBackSubst(InterleavedSolutionStorage *iss,
|
|
|
1084
1084
|
// Prefetch memory for a key in InterleavedSolutionStorage.
|
|
1085
1085
|
template <typename InterleavedSolutionStorage, typename PhsfQueryHasher>
|
|
1086
1086
|
inline void InterleavedPrepareQuery(
|
|
1087
|
-
const typename PhsfQueryHasher::Key
|
|
1088
|
-
const InterleavedSolutionStorage
|
|
1089
|
-
typename PhsfQueryHasher::Hash
|
|
1090
|
-
typename InterleavedSolutionStorage::Index
|
|
1091
|
-
typename InterleavedSolutionStorage::Index
|
|
1092
|
-
typename InterleavedSolutionStorage::Index
|
|
1087
|
+
const typename PhsfQueryHasher::Key& key, const PhsfQueryHasher& hasher,
|
|
1088
|
+
const InterleavedSolutionStorage& iss,
|
|
1089
|
+
typename PhsfQueryHasher::Hash* saved_hash,
|
|
1090
|
+
typename InterleavedSolutionStorage::Index* saved_segment_num,
|
|
1091
|
+
typename InterleavedSolutionStorage::Index* saved_num_columns,
|
|
1092
|
+
typename InterleavedSolutionStorage::Index* saved_start_bit) {
|
|
1093
1093
|
using Hash = typename PhsfQueryHasher::Hash;
|
|
1094
1094
|
using CoeffRow = typename InterleavedSolutionStorage::CoeffRow;
|
|
1095
1095
|
using Index = typename InterleavedSolutionStorage::Index;
|
|
@@ -1131,7 +1131,7 @@ inline typename InterleavedSolutionStorage::ResultRow InterleavedPhsfQuery(
|
|
|
1131
1131
|
typename InterleavedSolutionStorage::Index segment_num,
|
|
1132
1132
|
typename InterleavedSolutionStorage::Index num_columns,
|
|
1133
1133
|
typename InterleavedSolutionStorage::Index start_bit,
|
|
1134
|
-
const PhsfQueryHasher
|
|
1134
|
+
const PhsfQueryHasher& hasher, const InterleavedSolutionStorage& iss) {
|
|
1135
1135
|
using CoeffRow = typename InterleavedSolutionStorage::CoeffRow;
|
|
1136
1136
|
using Index = typename InterleavedSolutionStorage::Index;
|
|
1137
1137
|
using ResultRow = typename InterleavedSolutionStorage::ResultRow;
|
|
@@ -1170,7 +1170,7 @@ inline bool InterleavedFilterQuery(
|
|
|
1170
1170
|
typename InterleavedSolutionStorage::Index segment_num,
|
|
1171
1171
|
typename InterleavedSolutionStorage::Index num_columns,
|
|
1172
1172
|
typename InterleavedSolutionStorage::Index start_bit,
|
|
1173
|
-
const FilterQueryHasher
|
|
1173
|
+
const FilterQueryHasher& hasher, const InterleavedSolutionStorage& iss) {
|
|
1174
1174
|
using CoeffRow = typename InterleavedSolutionStorage::CoeffRow;
|
|
1175
1175
|
using Index = typename InterleavedSolutionStorage::Index;
|
|
1176
1176
|
using ResultRow = typename InterleavedSolutionStorage::ResultRow;
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
namespace ROCKSDB_NAMESPACE {
|
|
16
16
|
|
|
17
17
|
// MultiCompressorWrapper implementation
|
|
18
|
-
MultiCompressorWrapper::MultiCompressorWrapper(const CompressionOptions& opts
|
|
19
|
-
CompressionDict&& dict)
|
|
18
|
+
MultiCompressorWrapper::MultiCompressorWrapper(const CompressionOptions& opts)
|
|
20
19
|
: opts_(opts) {
|
|
21
20
|
// TODO: make the compression manager a field
|
|
22
21
|
auto builtInManager = GetBuiltinV2CompressionManager();
|
|
@@ -27,12 +26,11 @@ MultiCompressorWrapper::MultiCompressorWrapper(const CompressionOptions& opts,
|
|
|
27
26
|
}
|
|
28
27
|
compressors_.push_back(builtInManager->GetCompressor(opts, type));
|
|
29
28
|
}
|
|
30
|
-
(void)dict;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
Compressor::DictConfig MultiCompressorWrapper::GetDictGuidance(
|
|
34
32
|
CacheEntryRole block_type) const {
|
|
35
|
-
return compressors_.back()->
|
|
33
|
+
return compressors_.back()->GetDictGuidance(block_type);
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
Slice MultiCompressorWrapper::GetSerializedDict() const {
|
|
@@ -48,11 +46,11 @@ Compressor::ManagedWorkingArea MultiCompressorWrapper::ObtainWorkingArea() {
|
|
|
48
46
|
}
|
|
49
47
|
|
|
50
48
|
std::unique_ptr<Compressor> MultiCompressorWrapper::MaybeCloneSpecialized(
|
|
51
|
-
CacheEntryRole block_type,
|
|
49
|
+
CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
|
|
52
50
|
// TODO: full dictionary compression support. Currently this just falls
|
|
53
51
|
// back on a non-multi compressor when asked to use a dictionary.
|
|
54
52
|
return compressors_.back()->MaybeCloneSpecialized(block_type,
|
|
55
|
-
std::move(
|
|
53
|
+
std::move(dict_config));
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
// RandomMixedCompressor implementation
|
|
@@ -10,22 +10,21 @@
|
|
|
10
10
|
#include <memory>
|
|
11
11
|
#include <vector>
|
|
12
12
|
|
|
13
|
-
#include "compression.h"
|
|
14
13
|
#include "rocksdb/advanced_compression.h"
|
|
14
|
+
#include "util/atomic.h"
|
|
15
15
|
|
|
16
16
|
namespace ROCKSDB_NAMESPACE {
|
|
17
17
|
|
|
18
18
|
class MultiCompressorWrapper : public Compressor {
|
|
19
19
|
public:
|
|
20
|
-
explicit MultiCompressorWrapper(const CompressionOptions& opts
|
|
21
|
-
CompressionDict&& dict = {});
|
|
20
|
+
explicit MultiCompressorWrapper(const CompressionOptions& opts);
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
DictConfig GetDictGuidance(CacheEntryRole block_type) const override;
|
|
24
23
|
Slice GetSerializedDict() const override;
|
|
25
24
|
CompressionType GetPreferredCompressionType() const override;
|
|
26
25
|
ManagedWorkingArea ObtainWorkingArea() override;
|
|
27
26
|
std::unique_ptr<Compressor> MaybeCloneSpecialized(
|
|
28
|
-
CacheEntryRole block_type,
|
|
27
|
+
CacheEntryRole block_type, DictConfigArgs&& dict_config) const override;
|
|
29
28
|
|
|
30
29
|
protected:
|
|
31
30
|
const CompressionOptions opts_;
|
|
@@ -61,10 +61,6 @@ class FixedPrefixTransform : public SliceTransform {
|
|
|
61
61
|
return (src.size() >= prefix_len_);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
bool InRange(const Slice& dst) const override {
|
|
65
|
-
return (dst.size() == prefix_len_);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
64
|
bool FullLengthEnabled(size_t* len) const override {
|
|
69
65
|
*len = prefix_len_;
|
|
70
66
|
return true;
|
|
@@ -111,10 +107,6 @@ class CappedPrefixTransform : public SliceTransform {
|
|
|
111
107
|
|
|
112
108
|
bool InDomain(const Slice& /*src*/) const override { return true; }
|
|
113
109
|
|
|
114
|
-
bool InRange(const Slice& dst) const override {
|
|
115
|
-
return (dst.size() <= cap_len_);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
110
|
bool FullLengthEnabled(size_t* len) const override {
|
|
119
111
|
*len = cap_len_;
|
|
120
112
|
return true;
|
|
@@ -136,8 +128,6 @@ class NoopTransform : public SliceTransform {
|
|
|
136
128
|
|
|
137
129
|
bool InDomain(const Slice& /*src*/) const override { return true; }
|
|
138
130
|
|
|
139
|
-
bool InRange(const Slice& /*dst*/) const override { return true; }
|
|
140
|
-
|
|
141
131
|
bool SameResultWhenAppended(const Slice& /*prefix*/) const override {
|
|
142
132
|
return false;
|
|
143
133
|
}
|
|
@@ -590,7 +590,7 @@ TEST(BitFieldsTest, BitFields) {
|
|
|
590
590
|
ASSERT_EQ(after.Get<Field5>(), 0U);
|
|
591
591
|
}
|
|
592
592
|
{
|
|
593
|
-
|
|
593
|
+
BitFieldsAtomic<MyState> acqrel{state};
|
|
594
594
|
ASSERT_EQ(state, acqrel.Load());
|
|
595
595
|
acqrel.Store(state2);
|
|
596
596
|
ASSERT_EQ(state2, acqrel.Load());
|
|
@@ -622,6 +622,29 @@ TEST(BitFieldsTest, BitFields) {
|
|
|
622
622
|
ASSERT_EQ(after.Get<Field3>(), true);
|
|
623
623
|
ASSERT_EQ(state.Get<Field4>(), 3U);
|
|
624
624
|
|
|
625
|
+
auto transform2a = Field2::And(true) + Field3::And(false);
|
|
626
|
+
acqrel.Apply(transform2a, &before, &after);
|
|
627
|
+
ASSERT_EQ(after.Get<Field2>(), true);
|
|
628
|
+
ASSERT_EQ(after.Get<Field3>(), false);
|
|
629
|
+
|
|
630
|
+
auto transform2b = Field2::And(false) + Field3::And(true);
|
|
631
|
+
acqrel.Apply(transform2b, &before, &after);
|
|
632
|
+
ASSERT_EQ(after.Get<Field2>(), false);
|
|
633
|
+
ASSERT_EQ(after.Get<Field3>(), false);
|
|
634
|
+
|
|
635
|
+
auto transform2c = Field2::Or(true) + Field3::Or(false);
|
|
636
|
+
acqrel.Apply(transform2c, &before, &after);
|
|
637
|
+
ASSERT_EQ(after.Get<Field2>(), true);
|
|
638
|
+
ASSERT_EQ(after.Get<Field3>(), false);
|
|
639
|
+
|
|
640
|
+
auto transform2d = Field2::Or(false) + Field3::Or(true);
|
|
641
|
+
acqrel.Apply(transform2d, &before, &after);
|
|
642
|
+
ASSERT_EQ(after.Get<Field2>(), true);
|
|
643
|
+
ASSERT_EQ(after.Get<Field3>(), true);
|
|
644
|
+
|
|
645
|
+
ASSERT_EQ(state.Get<Field1>(), 45U);
|
|
646
|
+
ASSERT_EQ(state.Get<Field4>(), 3U);
|
|
647
|
+
|
|
625
648
|
auto transform3 = Field1::PlusTransformPromiseNoOverflow(10000U) +
|
|
626
649
|
Field4::MinusTransformPromiseNoUnderflow(3U);
|
|
627
650
|
acqrel.Apply(transform3, &before, &after);
|
|
@@ -636,6 +659,17 @@ TEST(BitFieldsTest, BitFields) {
|
|
|
636
659
|
ASSERT_EQ(after.Get<Field1>(), 9046U);
|
|
637
660
|
ASSERT_EQ(after.Get<Field4>(), 31U);
|
|
638
661
|
|
|
662
|
+
auto transform4a =
|
|
663
|
+
Field1::AndTransform(8192U + 4096U) + Field4::AndTransform(15U);
|
|
664
|
+
acqrel.Apply(transform4a, &before, &after);
|
|
665
|
+
ASSERT_EQ(after.Get<Field1>(), 8192U);
|
|
666
|
+
ASSERT_EQ(after.Get<Field4>(), 15U);
|
|
667
|
+
|
|
668
|
+
auto transform4b = Field1::OrTransform(127U) + Field4::OrTransform(16U);
|
|
669
|
+
acqrel.Apply(transform4b, &before, &after);
|
|
670
|
+
ASSERT_EQ(after.Get<Field1>(), 8192U + 127U);
|
|
671
|
+
ASSERT_EQ(after.Get<Field4>(), 31U);
|
|
672
|
+
|
|
639
673
|
// Unmodified
|
|
640
674
|
ASSERT_EQ(after.Get<Field2>(), true);
|
|
641
675
|
ASSERT_EQ(after.Get<Field3>(), true);
|
|
@@ -49,7 +49,7 @@ class SliceTransformDBTest : public testing::Test {
|
|
|
49
49
|
private:
|
|
50
50
|
std::string dbname_;
|
|
51
51
|
Env* env_;
|
|
52
|
-
DB
|
|
52
|
+
std::unique_ptr<DB> db_;
|
|
53
53
|
|
|
54
54
|
public:
|
|
55
55
|
SliceTransformDBTest() : env_(Env::Default()), db_(nullptr) {
|
|
@@ -58,11 +58,11 @@ class SliceTransformDBTest : public testing::Test {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
~SliceTransformDBTest() override {
|
|
61
|
-
|
|
61
|
+
db_.reset();
|
|
62
62
|
EXPECT_OK(DestroyDB(dbname_, last_options_));
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
DB* db() { return db_; }
|
|
65
|
+
DB* db() { return db_.get(); }
|
|
66
66
|
|
|
67
67
|
// Return the current option configuration.
|
|
68
68
|
Options* GetOptions() { return &last_options_; }
|
|
@@ -74,14 +74,12 @@ class SliceTransformDBTest : public testing::Test {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
void Destroy() {
|
|
77
|
-
|
|
78
|
-
db_ = nullptr;
|
|
77
|
+
db_.reset();
|
|
79
78
|
ASSERT_OK(DestroyDB(dbname_, last_options_));
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
Status TryReopen() {
|
|
83
|
-
|
|
84
|
-
db_ = nullptr;
|
|
82
|
+
db_.reset();
|
|
85
83
|
last_options_.create_if_missing = true;
|
|
86
84
|
|
|
87
85
|
return DB::Open(last_options_, dbname_, &db_);
|
|
@@ -46,7 +46,9 @@ static const char* msgs[static_cast<int>(Status::kMaxSubCode)] = {
|
|
|
46
46
|
"IO fenced off", // kIOFenced
|
|
47
47
|
"Merge operator failed", // kMergeOperatorFailed
|
|
48
48
|
"Number of operands merged exceeded threshold", // kMergeOperandThresholdExceeded
|
|
49
|
-
"MultiScan reached file prefetch limit", //
|
|
49
|
+
"MultiScan reached file prefetch limit", // kPrefetchLimitReached
|
|
50
|
+
"Not expected code path", // kNotExpectedCodePath
|
|
51
|
+
"All compactions aborted", // kCompactionAborted
|
|
50
52
|
};
|
|
51
53
|
|
|
52
54
|
Status::Status(Code _code, SubCode _subcode, const Slice& msg,
|
|
@@ -112,6 +112,7 @@ class StopWatchNano {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
void Start() {
|
|
115
|
+
assert(clock_);
|
|
115
116
|
if constexpr (use_cpu_time) {
|
|
116
117
|
start_ = clock_->CPUNanos();
|
|
117
118
|
} else {
|
|
@@ -119,6 +120,7 @@ class StopWatchNano {
|
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
uint64_t ElapsedNanos(bool reset = false) {
|
|
123
|
+
assert(clock_);
|
|
122
124
|
uint64_t now = 0;
|
|
123
125
|
if constexpr (use_cpu_time) {
|
|
124
126
|
now = clock_->CPUNanos();
|
|
@@ -1886,7 +1886,10 @@ void BackupEngineImpl::SetBackupInfoFromBackupMeta(
|
|
|
1886
1886
|
finfo.directory = dir;
|
|
1887
1887
|
uint64_t number;
|
|
1888
1888
|
FileType type;
|
|
1889
|
-
|
|
1889
|
+
// file_ptr->filename may contain directory components (e.g.
|
|
1890
|
+
// "private/1/000008.log"). ParseFileName expects a bare filename,
|
|
1891
|
+
// so use GetDbFileName() to extract it.
|
|
1892
|
+
bool ok = ParseFileName(file_ptr->GetDbFileName(), &number, &type);
|
|
1890
1893
|
if (ok) {
|
|
1891
1894
|
finfo.file_number = number;
|
|
1892
1895
|
finfo.file_type = type;
|