@nxtedition/rocksdb 10.0.13 → 10.0.15
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/.tap/coverage/213879bb-47ae-470e-bb54-f4157d9f60e2.json +162898 -0
- package/.tap/processinfo/{4c642b53-6895-4ef0-9391-7c6b8d484262.json → 213879bb-47ae-470e-bb54-f4157d9f60e2.json} +117 -121
- package/.tap/test-results/node_modules/abstract-level/test/get-test.js.tap +0 -0
- package/.tap/test-results/test/abstract-level-test.js.tap +1705 -0
- package/.tap/test-results/test/batch-test.js.tap +12 -0
- package/.tap/test-results/test/chained-batch-gc-test.js.tap +11 -0
- package/.tap/test-results/test/cleanup-hanging-iterators-test.js.tap +58 -0
- package/.tap/test-results/test/clear-gc-test.js.tap +13 -0
- package/.tap/test-results/test/column-test.js.tap +55 -0
- package/.tap/test-results/test/common.js.tap +0 -0
- package/.tap/test-results/test/compression-test.js.tap +30 -0
- package/.tap/test-results/test/db-identity.js.tap +12 -0
- package/.tap/test-results/test/electron.js.tap +0 -0
- package/.tap/test-results/test/env-cleanup-hook-test.js.tap +2 -0
- package/.tap/test-results/test/env-cleanup-hook.js.tap +0 -0
- package/.tap/test-results/test/gc.js.tap +0 -0
- package/.tap/test-results/test/getproperty-test.js.tap +29 -0
- package/.tap/test-results/test/iterator-gc-test.js.tap +4 -0
- package/.tap/test-results/test/iterator-hwm-test.js.tap +24 -0
- package/.tap/test-results/test/iterator-recursion-test.js.tap +12 -0
- package/.tap/test-results/test/iterator-starvation-test.js.tap +2 -0
- package/.tap/test-results/test/iterator-test.js.tap +0 -0
- package/.tap/test-results/test/leak-tester-batch.js.tap +0 -0
- package/.tap/test-results/test/leak-tester-iterator.js.tap +0 -0
- package/.tap/test-results/test/leak-tester.js.tap +0 -0
- package/.tap/test-results/test/lock-test.js.tap +0 -0
- package/.tap/test-results/test/lock.js.tap +0 -0
- package/.tap/test-results/test/make.js.tap +0 -0
- package/.tap/test-results/test/max-rev-merge.js.tap +0 -12
- package/.tap/test-results/test/merge-operator-test.js.tap +0 -0
- package/.tap/test-results/test/mkdir-test.js.tap +0 -0
- package/.tap/test-results/test/segfault-test.js.tap +0 -0
- package/.tap/test-results/test/stack-blower.js.tap +0 -0
- package/binding.cc +42 -34
- package/deps/rocksdb/rocksdb/CMakeLists.txt +44 -14
- package/deps/rocksdb/rocksdb/Makefile +34 -17
- package/deps/rocksdb/rocksdb/TARGETS +27 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +95 -42
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +0 -1
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +5 -3
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +381 -393
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +88 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +14 -7
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +1 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +21 -19
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +8 -7
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +1 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +89 -13
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +16 -8
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +6 -6
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +15 -9
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +16 -13
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +306 -23
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +3 -4
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +30 -27
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +8 -10
- package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.cc +20 -0
- package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.h +83 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +19 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +18 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +7 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +56 -27
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +11 -7
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +20 -19
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +106 -31
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +5 -8
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +4 -2
- package/deps/rocksdb/rocksdb/db/builder.cc +89 -44
- package/deps/rocksdb/rocksdb/db/builder.h +4 -6
- package/deps/rocksdb/rocksdb/db/c.cc +205 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -20
- package/deps/rocksdb/rocksdb/db/coalescing_iterator.cc +47 -0
- package/deps/rocksdb/rocksdb/db/coalescing_iterator.h +79 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +100 -36
- package/deps/rocksdb/rocksdb/db/column_family.h +46 -28
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +168 -46
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +51 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +72 -24
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +11 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +7 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +87 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +310 -70
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +78 -62
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +0 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +33 -96
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +18 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +7 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +42 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +20 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +7 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +18 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +95 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +6 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +213 -34
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +7 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +16 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +75 -142
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +577 -34
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience.cc +1 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +7 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +366 -136
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +9 -10
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +282 -6
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +551 -150
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +41 -13
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +54 -17
- package/deps/rocksdb/rocksdb/db/db_follower_test.cc +527 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -58
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +34 -45
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +699 -580
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +308 -230
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +180 -107
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +10 -6
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +36 -61
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +347 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.h +54 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +206 -155
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +5 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +41 -39
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +26 -22
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +14 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +126 -46
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +21 -9
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +294 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +116 -78
- package/deps/rocksdb/rocksdb/db/db_iter.h +31 -7
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +34 -14
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +69 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +153 -18
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +9 -1
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +6 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +105 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +97 -111
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +12 -3
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +82 -30
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +5 -7
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +64 -22
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +74 -0
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +175 -47
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/db_test.cc +133 -109
- package/deps/rocksdb/rocksdb/db/db_test2.cc +227 -139
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +42 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.h +67 -24
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +140 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +17 -19
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +332 -87
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +250 -30
- package/deps/rocksdb/rocksdb/db/dbformat.cc +41 -8
- package/deps/rocksdb/rocksdb/db/dbformat.h +100 -17
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +48 -8
- package/deps/rocksdb/rocksdb/db/error_handler.cc +102 -116
- package/deps/rocksdb/rocksdb/db/error_handler.h +28 -6
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +263 -99
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +3 -1
- package/deps/rocksdb/rocksdb/db/experimental.cc +1073 -7
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +261 -111
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +263 -183
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +31 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +698 -7
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/flush_job.cc +41 -41
- package/deps/rocksdb/rocksdb/db/flush_job.h +11 -8
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -13
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +19 -6
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +12 -12
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +83 -52
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +169 -2
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -6
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -2
- package/deps/rocksdb/rocksdb/db/job_context.h +17 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +44 -20
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +81 -17
- package/deps/rocksdb/rocksdb/db/log_writer.cc +135 -92
- package/deps/rocksdb/rocksdb/db/log_writer.h +11 -10
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -3
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/memtable.cc +82 -62
- package/deps/rocksdb/rocksdb/db/memtable.h +17 -9
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +19 -13
- package/deps/rocksdb/rocksdb/db/memtable_list.h +3 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +38 -5
- package/deps/rocksdb/rocksdb/db/merge_context.h +3 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +34 -156
- package/deps/rocksdb/rocksdb/db/merge_helper.h +52 -46
- package/deps/rocksdb/rocksdb/db/merge_test.cc +16 -11
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +289 -0
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_test.cc +918 -0
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/output_validator.cc +8 -12
- package/deps/rocksdb/rocksdb/db/output_validator.h +1 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +23 -4
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +2 -3
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +2 -2
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +21 -8
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +0 -2
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +0 -1
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +17 -4
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +6 -3
- package/deps/rocksdb/rocksdb/db/repair.cc +35 -29
- package/deps/rocksdb/rocksdb/db/repair_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +428 -156
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +393 -227
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +154 -82
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +2 -2
- package/deps/rocksdb/rocksdb/db/table_cache.cc +9 -11
- package/deps/rocksdb/rocksdb/db/table_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +8 -3
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +27 -26
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +23 -23
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +5 -5
- package/deps/rocksdb/rocksdb/db/version_builder.cc +6 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +62 -29
- package/deps/rocksdb/rocksdb/db/version_edit.cc +1 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +30 -11
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +291 -116
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +54 -11
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/version_set.cc +301 -141
- package/deps/rocksdb/rocksdb/db/version_set.h +90 -33
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +817 -193
- package/deps/rocksdb/rocksdb/db/version_util.h +10 -5
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +15 -11
- package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +10 -9
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +403 -28
- package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +2 -2
- package/deps/rocksdb/rocksdb/db/write_batch.cc +204 -18
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +4 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +149 -5
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/write_stall_stats.h +7 -7
- package/deps/rocksdb/rocksdb/db/write_thread.cc +86 -47
- package/deps/rocksdb/rocksdb/db/write_thread.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +176 -68
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +337 -125
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +38 -9
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +126 -34
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +2 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +161 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +267 -9
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +13 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +9 -9
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +535 -86
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +27 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +8 -15
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +46 -21
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +74 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +28 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +426 -151
- package/deps/rocksdb/rocksdb/env/composite_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/emulated_clock.h +6 -6
- package/deps/rocksdb/rocksdb/env/env.cc +21 -11
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +9 -9
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +3 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +3 -3
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -2
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -10
- package/deps/rocksdb/rocksdb/env/env_test.cc +24 -18
- package/deps/rocksdb/rocksdb/env/file_system.cc +7 -6
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +3 -3
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +3 -3
- package/deps/rocksdb/rocksdb/env/fs_on_demand.cc +331 -0
- package/deps/rocksdb/rocksdb/env/fs_on_demand.h +139 -0
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +14 -15
- package/deps/rocksdb/rocksdb/env/io_posix.cc +15 -10
- package/deps/rocksdb/rocksdb/env/io_posix.h +86 -92
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +6 -6
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +8 -6
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +599 -592
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +312 -200
- package/deps/rocksdb/rocksdb/file/file_util.cc +19 -14
- package/deps/rocksdb/rocksdb/file/file_util.h +34 -24
- package/deps/rocksdb/rocksdb/file/filename.cc +32 -17
- package/deps/rocksdb/rocksdb/file/filename.h +51 -53
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +82 -441
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +7 -6
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -5
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +9 -3
- package/deps/rocksdb/rocksdb/file/read_write_util.h +3 -3
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +6 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +9 -4
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +8 -4
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +110 -89
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +34 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +39 -189
- package/deps/rocksdb/rocksdb/include/rocksdb/attribute_groups.h +114 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +91 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +52 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +27 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +146 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +254 -151
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +39 -36
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +431 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +57 -23
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +27 -57
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +74 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +11 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +146 -71
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +7 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +17 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +17 -19
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +10 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +18 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +12 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +118 -116
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +26 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +18 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/threadpool.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +8 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +12 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +5 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +159 -167
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +52 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +3 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/types_util.h +36 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +118 -20
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +87 -45
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +26 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +22 -1
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +7 -9
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +5 -6
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +2 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +3 -3
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -1
- package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -3
- package/deps/rocksdb/rocksdb/memory/arena.h +11 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +17 -2
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +1 -1
- package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +1 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
- package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +11 -10
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +8 -7
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +3 -3
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +2 -2
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +3 -1
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +20 -10
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +15 -15
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +7 -3
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +14 -14
- package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +4 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +8 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +5 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +64 -58
- package/deps/rocksdb/rocksdb/monitoring/statistics_impl.h +11 -12
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +7 -1
- package/deps/rocksdb/rocksdb/options/cf_options.cc +20 -28
- package/deps/rocksdb/rocksdb/options/cf_options.h +7 -14
- package/deps/rocksdb/rocksdb/options/configurable.cc +20 -12
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +4 -6
- package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -2
- package/deps/rocksdb/rocksdb/options/customizable.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +3 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +22 -48
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -3
- package/deps/rocksdb/rocksdb/options/offpeak_time_info.cc +59 -0
- package/deps/rocksdb/rocksdb/options/offpeak_time_info.h +37 -0
- package/deps/rocksdb/rocksdb/options/options.cc +14 -6
- package/deps/rocksdb/rocksdb/options/options_helper.cc +8 -13
- package/deps/rocksdb/rocksdb/options/options_helper.h +2 -3
- package/deps/rocksdb/rocksdb/options/options_parser.cc +35 -26
- package/deps/rocksdb/rocksdb/options/options_parser.h +4 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +30 -23
- package/deps/rocksdb/rocksdb/port/lang.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_example.h +7 -7
- package/deps/rocksdb/rocksdb/port/port_posix.cc +7 -7
- package/deps/rocksdb/rocksdb/port/port_posix.h +7 -7
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +85 -24
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +1 -2
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +4 -4
- package/deps/rocksdb/rocksdb/port/win/io_win.h +13 -17
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +3 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +4 -4
- package/deps/rocksdb/rocksdb/src.mk +16 -1
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -7
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +39 -15
- package/deps/rocksdb/rocksdb/table/block_based/block.h +7 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +80 -40
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +20 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +228 -122
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +50 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +82 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +17 -20
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +47 -13
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +163 -50
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +23 -23
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +6 -4
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +32 -27
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +7 -10
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +25 -7
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -5
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +6 -6
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -5
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -5
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +138 -86
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +22 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +26 -13
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +11 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +11 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +10 -5
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +6 -7
- package/deps/rocksdb/rocksdb/table/format.cc +15 -21
- package/deps/rocksdb/rocksdb/table/format.h +8 -0
- package/deps/rocksdb/rocksdb/table/get_context.cc +121 -78
- package/deps/rocksdb/rocksdb/table/get_context.h +11 -6
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +12 -5
- package/deps/rocksdb/rocksdb/table/iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -1
- package/deps/rocksdb/rocksdb/table/merger_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +5 -0
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +4 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +15 -11
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +8 -4
- package/deps/rocksdb/rocksdb/table/mock_table.cc +12 -8
- package/deps/rocksdb/rocksdb/table/mock_table.h +1 -3
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +0 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -21
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +4 -14
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +7 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +7 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +15 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +75 -30
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +7 -2
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +76 -11
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +358 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +93 -16
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +12 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +12 -6
- package/deps/rocksdb/rocksdb/table/table_iterator.h +69 -0
- package/deps/rocksdb/rocksdb/table/table_properties.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +8 -6
- package/deps/rocksdb/rocksdb/table/table_test.cc +732 -121
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +3 -1
- package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
- package/deps/rocksdb/rocksdb/table/unique_id.cc +2 -2
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +2 -2
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +5 -5
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -6
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +2 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +56 -32
- package/deps/rocksdb/rocksdb/test_util/testutil.h +57 -34
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +18 -1
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +210 -112
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +22 -27
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +10 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +328 -59
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +34 -2
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +64 -17
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +8 -1
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +3 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +136 -10
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -2
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +50 -8
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +51 -45
- package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +10 -10
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +14 -4
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +2 -1
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +2 -2
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +2 -4
- package/deps/rocksdb/rocksdb/util/atomic.h +111 -0
- package/deps/rocksdb/rocksdb/util/autovector.h +5 -1
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +12 -2
- package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
- package/deps/rocksdb/rocksdb/util/coding.h +34 -38
- package/deps/rocksdb/rocksdb/util/coding_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/comparator.cc +18 -5
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +4 -4
- package/deps/rocksdb/rocksdb/util/crc32c.cc +3 -6
- package/deps/rocksdb/rocksdb/util/crc32c.h +3 -3
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +3 -4
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -2
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -4
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -2
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +3 -3
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +83 -59
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/hash.h +4 -4
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +3 -3
- package/deps/rocksdb/rocksdb/util/murmurhash.cc +1 -1
- package/deps/rocksdb/rocksdb/util/random.cc +3 -4
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +23 -43
- package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +21 -16
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +44 -24
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +2 -3
- package/deps/rocksdb/rocksdb/util/ribbon_config.cc +2 -10
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/slice.cc +4 -5
- package/deps/rocksdb/rocksdb/util/slice_test.cc +70 -4
- package/deps/rocksdb/rocksdb/util/status.cc +1 -1
- package/deps/rocksdb/rocksdb/util/stderr_logger.cc +39 -7
- package/deps/rocksdb/rocksdb/util/stderr_logger.h +12 -2
- package/deps/rocksdb/rocksdb/util/string_util.cc +31 -18
- package/deps/rocksdb/rocksdb/util/string_util.h +9 -9
- package/deps/rocksdb/rocksdb/util/string_util_test.cc +36 -0
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +5 -5
- package/deps/rocksdb/rocksdb/util/thread_local.cc +1 -1
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +3 -4
- package/deps/rocksdb/rocksdb/util/threadpool_imp.h +1 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +12 -16
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +5 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +116 -116
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +33 -31
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -22
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +9 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +3 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +22 -55
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +113 -74
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +36 -24
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +27 -11
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +68 -54
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +16 -16
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +29 -9
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +27 -14
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +8 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +9 -7
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +7 -10
- package/deps/rocksdb/rocksdb/utilities/debug.cc +6 -2
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +18 -11
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +18 -25
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +32 -23
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +51 -48
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +3 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +10 -10
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +5 -6
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +5 -6
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -8
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +29 -21
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +14 -15
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_bench.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -5
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +8 -8
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +6 -9
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +6 -6
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +12 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +17 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +442 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +27 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +28 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +70 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +50 -22
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +64 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +76 -17
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +6 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +573 -77
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +65 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +13 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +14 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +37 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +23 -29
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +31 -40
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +8 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +34 -18
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +21 -25
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/types_util.cc +88 -0
- package/deps/rocksdb/rocksdb/utilities/types_util_test.cc +98 -0
- package/deps/rocksdb/rocksdb/utilities/util_merge_operators_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +463 -90
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +259 -76
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +70 -14
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +609 -10
- package/deps/rocksdb/rocksdb.gyp +8 -4
- package/index.js +18 -4
- package/max_rev_operator.h +2 -0
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/util.h +29 -5
- package/.tap/coverage/4c642b53-6895-4ef0-9391-7c6b8d484262.json +0 -14334
- package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +0 -57
|
@@ -25,7 +25,10 @@ class OfflineManifestWriter {
|
|
|
25
25
|
options.table_cache_numshardbits)),
|
|
26
26
|
versions_(db_path, &immutable_db_options_, sopt_, tc_.get(), &wb_, &wc_,
|
|
27
27
|
/*block_cache_tracer=*/nullptr, /*io_tracer=*/nullptr,
|
|
28
|
-
/*db_id
|
|
28
|
+
/*db_id=*/"", /*db_session_id=*/"",
|
|
29
|
+
options.daily_offpeak_time_utc,
|
|
30
|
+
/*error_handler=*/nullptr,
|
|
31
|
+
/*read_only=*/false) {}
|
|
29
32
|
|
|
30
33
|
Status Recover(const std::vector<ColumnFamilyDescriptor>& column_families) {
|
|
31
34
|
return versions_.Recover(column_families, /*read_only*/ false,
|
|
@@ -33,15 +36,17 @@ class OfflineManifestWriter {
|
|
|
33
36
|
/*no_error_if_files_missing*/ true);
|
|
34
37
|
}
|
|
35
38
|
|
|
36
|
-
Status LogAndApply(const ReadOptions& read_options,
|
|
39
|
+
Status LogAndApply(const ReadOptions& read_options,
|
|
40
|
+
const WriteOptions& write_options, ColumnFamilyData* cfd,
|
|
37
41
|
VersionEdit* edit,
|
|
38
42
|
FSDirectory* dir_contains_current_file) {
|
|
39
43
|
// Use `mutex` to imitate a locked DB mutex when calling `LogAndApply()`.
|
|
40
44
|
InstrumentedMutex mutex;
|
|
41
45
|
mutex.Lock();
|
|
42
|
-
Status s = versions_.LogAndApply(
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
Status s = versions_.LogAndApply(cfd, *cfd->GetLatestMutableCFOptions(),
|
|
47
|
+
read_options, write_options, edit, &mutex,
|
|
48
|
+
dir_contains_current_file,
|
|
49
|
+
false /* new_descriptor_log */);
|
|
45
50
|
mutex.Unlock();
|
|
46
51
|
return s;
|
|
47
52
|
}
|
|
@@ -153,15 +153,19 @@ void WalManager::PurgeObsoleteWALFiles() {
|
|
|
153
153
|
return;
|
|
154
154
|
}
|
|
155
155
|
uint64_t const now_seconds = static_cast<uint64_t>(current_time);
|
|
156
|
-
uint64_t const time_to_check =
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
156
|
+
uint64_t const time_to_check =
|
|
157
|
+
ttl_enabled
|
|
158
|
+
? std::min(kDefaultIntervalToDeleteObsoleteWAL,
|
|
159
|
+
std::max(uint64_t{1}, db_options_.WAL_ttl_seconds / 2))
|
|
160
|
+
: kDefaultIntervalToDeleteObsoleteWAL;
|
|
161
|
+
uint64_t old_last_run_time = purge_wal_files_last_run_.LoadRelaxed();
|
|
162
|
+
do {
|
|
163
|
+
if (old_last_run_time + time_to_check > now_seconds) {
|
|
164
|
+
// last run is recent enough, no need to purge
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
} while (!purge_wal_files_last_run_.CasWeakRelaxed(
|
|
168
|
+
/*expected=*/old_last_run_time, /*desired=*/now_seconds));
|
|
165
169
|
|
|
166
170
|
std::string archival_dir = ArchivalDirectory(wal_dir_);
|
|
167
171
|
std::vector<std::string> files;
|
|
@@ -333,8 +337,8 @@ Status WalManager::GetSortedWalsOfType(const std::string& path,
|
|
|
333
337
|
return s;
|
|
334
338
|
}
|
|
335
339
|
|
|
336
|
-
log_files.
|
|
337
|
-
new LogFileImpl(number, log_type, sequence, size_bytes))
|
|
340
|
+
log_files.emplace_back(
|
|
341
|
+
new LogFileImpl(number, log_type, sequence, size_bytes));
|
|
338
342
|
}
|
|
339
343
|
}
|
|
340
344
|
std::sort(
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
#include "rocksdb/status.h"
|
|
26
26
|
#include "rocksdb/transaction_log.h"
|
|
27
27
|
#include "rocksdb/types.h"
|
|
28
|
+
#include "util/atomic.h"
|
|
28
29
|
|
|
29
30
|
namespace ROCKSDB_NAMESPACE {
|
|
30
31
|
|
|
@@ -118,7 +119,7 @@ class WalManager {
|
|
|
118
119
|
port::Mutex read_first_record_cache_mutex_;
|
|
119
120
|
|
|
120
121
|
// last time when PurgeObsoleteWALFiles ran.
|
|
121
|
-
uint64_t purge_wal_files_last_run_;
|
|
122
|
+
RelaxedAtomic<uint64_t> purge_wal_files_last_run_;
|
|
122
123
|
|
|
123
124
|
bool seq_per_batch_;
|
|
124
125
|
|
|
@@ -50,11 +50,12 @@ class WalManagerTest : public testing::Test {
|
|
|
50
50
|
db_options_.fs = env_->GetFileSystem();
|
|
51
51
|
db_options_.clock = env_->GetSystemClock().get();
|
|
52
52
|
|
|
53
|
-
versions_.reset(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
versions_.reset(new VersionSet(
|
|
54
|
+
dbname_, &db_options_, env_options_, table_cache_.get(),
|
|
55
|
+
&write_buffer_manager_, &write_controller_,
|
|
56
|
+
/*block_cache_tracer=*/nullptr, /*io_tracer=*/nullptr,
|
|
57
|
+
/*db_id=*/"", /*db_session_id=*/"", /*daily_offpeak_time_utc=*/"",
|
|
58
|
+
/*error_handler=*/nullptr, /*read_only=*/false));
|
|
58
59
|
|
|
59
60
|
wal_manager_.reset(
|
|
60
61
|
new WalManager(db_options_, env_options_, nullptr /*IOTracer*/));
|
|
@@ -72,8 +73,8 @@ class WalManagerTest : public testing::Test {
|
|
|
72
73
|
WriteBatch batch;
|
|
73
74
|
ASSERT_OK(batch.Put(key, value));
|
|
74
75
|
WriteBatchInternal::SetSequence(&batch, seq);
|
|
75
|
-
ASSERT_OK(
|
|
76
|
-
|
|
76
|
+
ASSERT_OK(current_log_writer_->AddRecord(
|
|
77
|
+
WriteOptions(), WriteBatchInternal::Contents(&batch)));
|
|
77
78
|
versions_->SetLastAllocatedSequence(seq);
|
|
78
79
|
versions_->SetLastPublishedSequence(seq);
|
|
79
80
|
versions_->SetLastSequence(seq);
|
|
@@ -145,7 +146,8 @@ TEST_F(WalManagerTest, ReadFirstRecordCache) {
|
|
|
145
146
|
WriteBatch batch;
|
|
146
147
|
ASSERT_OK(batch.Put("foo", "bar"));
|
|
147
148
|
WriteBatchInternal::SetSequence(&batch, 10);
|
|
148
|
-
ASSERT_OK(
|
|
149
|
+
ASSERT_OK(
|
|
150
|
+
writer.AddRecord(WriteOptions(), WriteBatchInternal::Contents(&batch)));
|
|
149
151
|
|
|
150
152
|
// TODO(icanadi) move SpecialEnv outside of db_test, so we can reuse it here.
|
|
151
153
|
// Waiting for lei to finish with db_test
|
|
@@ -333,4 +335,3 @@ int main(int argc, char** argv) {
|
|
|
333
335
|
::testing::InitGoogleTest(&argc, argv);
|
|
334
336
|
return RUN_ALL_TESTS();
|
|
335
337
|
}
|
|
336
|
-
|
|
@@ -94,7 +94,7 @@ TEST_F(DBWideBasicTest, PutEntity) {
|
|
|
94
94
|
std::array<Status, num_keys> statuses;
|
|
95
95
|
|
|
96
96
|
db_->MultiGet(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
97
|
-
|
|
97
|
+
keys.data(), values.data(), statuses.data());
|
|
98
98
|
|
|
99
99
|
ASSERT_OK(statuses[0]);
|
|
100
100
|
ASSERT_EQ(values[0], first_value_of_default_column);
|
|
@@ -114,7 +114,7 @@ TEST_F(DBWideBasicTest, PutEntity) {
|
|
|
114
114
|
std::array<Status, num_keys> statuses;
|
|
115
115
|
|
|
116
116
|
db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
117
|
-
|
|
117
|
+
keys.data(), results.data(), statuses.data());
|
|
118
118
|
|
|
119
119
|
ASSERT_OK(statuses[0]);
|
|
120
120
|
ASSERT_EQ(results[0].columns(), first_columns);
|
|
@@ -236,6 +236,144 @@ TEST_F(DBWideBasicTest, PutEntityColumnFamily) {
|
|
|
236
236
|
ASSERT_OK(db_->Write(WriteOptions(), &batch));
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
+
TEST_F(DBWideBasicTest, GetEntityAsPinnableAttributeGroups) {
|
|
240
|
+
Options options = GetDefaultOptions();
|
|
241
|
+
CreateAndReopenWithCF({"hot_cf", "cold_cf"}, options);
|
|
242
|
+
|
|
243
|
+
constexpr int kDefaultCfHandleIndex = 0;
|
|
244
|
+
constexpr int kHotCfHandleIndex = 1;
|
|
245
|
+
constexpr int kColdCfHandleIndex = 2;
|
|
246
|
+
|
|
247
|
+
constexpr char first_key[] = "first";
|
|
248
|
+
WideColumns first_default_columns{
|
|
249
|
+
{"default_cf_col_1_name", "first_key_default_cf_col_1_value"},
|
|
250
|
+
{"default_cf_col_2_name", "first_key_default_cf_col_2_value"}};
|
|
251
|
+
WideColumns first_hot_columns{
|
|
252
|
+
{"hot_cf_col_1_name", "first_key_hot_cf_col_1_value"},
|
|
253
|
+
{"hot_cf_col_2_name", "first_key_hot_cf_col_2_value"}};
|
|
254
|
+
WideColumns first_cold_columns{
|
|
255
|
+
{"cold_cf_col_1_name", "first_key_cold_cf_col_1_value"}};
|
|
256
|
+
|
|
257
|
+
constexpr char second_key[] = "second";
|
|
258
|
+
WideColumns second_hot_columns{
|
|
259
|
+
{"hot_cf_col_1_name", "second_key_hot_cf_col_1_value"}};
|
|
260
|
+
WideColumns second_cold_columns{
|
|
261
|
+
{"cold_cf_col_1_name", "second_key_cold_cf_col_1_value"}};
|
|
262
|
+
|
|
263
|
+
AttributeGroups first_key_attribute_groups{
|
|
264
|
+
AttributeGroup(handles_[kDefaultCfHandleIndex], first_default_columns),
|
|
265
|
+
AttributeGroup(handles_[kHotCfHandleIndex], first_hot_columns),
|
|
266
|
+
AttributeGroup(handles_[kColdCfHandleIndex], first_cold_columns)};
|
|
267
|
+
AttributeGroups second_key_attribute_groups{
|
|
268
|
+
AttributeGroup(handles_[kHotCfHandleIndex], second_hot_columns),
|
|
269
|
+
AttributeGroup(handles_[kColdCfHandleIndex], second_cold_columns)};
|
|
270
|
+
ASSERT_OK(
|
|
271
|
+
db_->PutEntity(WriteOptions(), first_key, first_key_attribute_groups));
|
|
272
|
+
ASSERT_OK(
|
|
273
|
+
db_->PutEntity(WriteOptions(), second_key, second_key_attribute_groups));
|
|
274
|
+
|
|
275
|
+
std::vector<ColumnFamilyHandle*> all_cfs = handles_;
|
|
276
|
+
std::vector<ColumnFamilyHandle*> default_and_hot_cfs{
|
|
277
|
+
{handles_[kDefaultCfHandleIndex], handles_[kHotCfHandleIndex]}};
|
|
278
|
+
std::vector<ColumnFamilyHandle*> hot_and_cold_cfs{
|
|
279
|
+
{handles_[kHotCfHandleIndex], handles_[kColdCfHandleIndex]}};
|
|
280
|
+
std::vector<ColumnFamilyHandle*> default_null_and_hot_cfs{
|
|
281
|
+
handles_[kDefaultCfHandleIndex], nullptr, handles_[kHotCfHandleIndex],
|
|
282
|
+
nullptr};
|
|
283
|
+
auto create_result =
|
|
284
|
+
[](const std::vector<ColumnFamilyHandle*>& column_families)
|
|
285
|
+
-> PinnableAttributeGroups {
|
|
286
|
+
PinnableAttributeGroups result;
|
|
287
|
+
for (size_t i = 0; i < column_families.size(); ++i) {
|
|
288
|
+
result.emplace_back(column_families[i]);
|
|
289
|
+
}
|
|
290
|
+
return result;
|
|
291
|
+
};
|
|
292
|
+
{
|
|
293
|
+
// Case 1. Invalid Argument (passing in null CF)
|
|
294
|
+
AttributeGroups ag{
|
|
295
|
+
AttributeGroup(nullptr, first_default_columns),
|
|
296
|
+
AttributeGroup(handles_[kHotCfHandleIndex], first_hot_columns)};
|
|
297
|
+
ASSERT_NOK(db_->PutEntity(WriteOptions(), first_key, ag));
|
|
298
|
+
|
|
299
|
+
PinnableAttributeGroups result = create_result(default_null_and_hot_cfs);
|
|
300
|
+
Status s = db_->GetEntity(ReadOptions(), first_key, &result);
|
|
301
|
+
ASSERT_NOK(s);
|
|
302
|
+
ASSERT_TRUE(s.IsInvalidArgument());
|
|
303
|
+
// Valid CF, but failed with Incomplete status due to other attribute groups
|
|
304
|
+
ASSERT_TRUE(result[0].status().IsIncomplete());
|
|
305
|
+
// Null CF
|
|
306
|
+
ASSERT_TRUE(result[1].status().IsInvalidArgument());
|
|
307
|
+
// Valid CF, but failed with Incomplete status due to other attribute groups
|
|
308
|
+
ASSERT_TRUE(result[2].status().IsIncomplete());
|
|
309
|
+
// Null CF, but failed with Incomplete status because the nullcheck break
|
|
310
|
+
// out early in the loop
|
|
311
|
+
ASSERT_TRUE(result[3].status().IsIncomplete());
|
|
312
|
+
}
|
|
313
|
+
{
|
|
314
|
+
// Case 2. Get first key from default cf and hot_cf and second key from
|
|
315
|
+
// hot_cf and cold_cf
|
|
316
|
+
constexpr size_t num_column_families = 2;
|
|
317
|
+
PinnableAttributeGroups first_key_result =
|
|
318
|
+
create_result(default_and_hot_cfs);
|
|
319
|
+
PinnableAttributeGroups second_key_result = create_result(hot_and_cold_cfs);
|
|
320
|
+
|
|
321
|
+
// GetEntity for first_key
|
|
322
|
+
ASSERT_OK(db_->GetEntity(ReadOptions(), first_key, &first_key_result));
|
|
323
|
+
ASSERT_EQ(num_column_families, first_key_result.size());
|
|
324
|
+
// We expect to get values for all keys and CFs
|
|
325
|
+
for (size_t i = 0; i < num_column_families; ++i) {
|
|
326
|
+
ASSERT_OK(first_key_result[i].status());
|
|
327
|
+
}
|
|
328
|
+
// verify values for first key (default cf and hot cf)
|
|
329
|
+
ASSERT_EQ(first_default_columns, first_key_result[0].columns());
|
|
330
|
+
ASSERT_EQ(first_hot_columns, first_key_result[1].columns());
|
|
331
|
+
|
|
332
|
+
// GetEntity for second_key
|
|
333
|
+
ASSERT_OK(db_->GetEntity(ReadOptions(), second_key, &second_key_result));
|
|
334
|
+
ASSERT_EQ(num_column_families, second_key_result.size());
|
|
335
|
+
// We expect to get values for all keys and CFs
|
|
336
|
+
for (size_t i = 0; i < num_column_families; ++i) {
|
|
337
|
+
ASSERT_OK(second_key_result[i].status());
|
|
338
|
+
}
|
|
339
|
+
// verify values for second key (hot cf and cold cf)
|
|
340
|
+
ASSERT_EQ(second_hot_columns, second_key_result[0].columns());
|
|
341
|
+
ASSERT_EQ(second_cold_columns, second_key_result[1].columns());
|
|
342
|
+
}
|
|
343
|
+
{
|
|
344
|
+
// Case 3. Get first key and second key from all cfs. For the second key, we
|
|
345
|
+
// don't expect to get columns from default cf.
|
|
346
|
+
constexpr size_t num_column_families = 3;
|
|
347
|
+
PinnableAttributeGroups first_key_result = create_result(all_cfs);
|
|
348
|
+
PinnableAttributeGroups second_key_result = create_result(all_cfs);
|
|
349
|
+
|
|
350
|
+
// GetEntity for first_key
|
|
351
|
+
ASSERT_OK(db_->GetEntity(ReadOptions(), first_key, &first_key_result));
|
|
352
|
+
ASSERT_EQ(num_column_families, first_key_result.size());
|
|
353
|
+
// We expect to get values for all keys and CFs
|
|
354
|
+
for (size_t i = 0; i < num_column_families; ++i) {
|
|
355
|
+
ASSERT_OK(first_key_result[i].status());
|
|
356
|
+
}
|
|
357
|
+
// verify values for first key
|
|
358
|
+
ASSERT_EQ(first_default_columns, first_key_result[0].columns());
|
|
359
|
+
ASSERT_EQ(first_hot_columns, first_key_result[1].columns());
|
|
360
|
+
ASSERT_EQ(first_cold_columns, first_key_result[2].columns());
|
|
361
|
+
|
|
362
|
+
// GetEntity for second_key
|
|
363
|
+
ASSERT_OK(db_->GetEntity(ReadOptions(), second_key, &second_key_result));
|
|
364
|
+
ASSERT_EQ(num_column_families, second_key_result.size());
|
|
365
|
+
// key does not exist in default cf
|
|
366
|
+
ASSERT_NOK(second_key_result[0].status());
|
|
367
|
+
ASSERT_TRUE(second_key_result[0].status().IsNotFound());
|
|
368
|
+
|
|
369
|
+
// verify values for second key (hot cf and cold cf)
|
|
370
|
+
ASSERT_OK(second_key_result[1].status());
|
|
371
|
+
ASSERT_OK(second_key_result[2].status());
|
|
372
|
+
ASSERT_EQ(second_hot_columns, second_key_result[1].columns());
|
|
373
|
+
ASSERT_EQ(second_cold_columns, second_key_result[2].columns());
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
239
377
|
TEST_F(DBWideBasicTest, MultiCFMultiGetEntity) {
|
|
240
378
|
Options options = GetDefaultOptions();
|
|
241
379
|
CreateAndReopenWithCF({"corinthian"}, options);
|
|
@@ -260,8 +398,8 @@ TEST_F(DBWideBasicTest, MultiCFMultiGetEntity) {
|
|
|
260
398
|
std::array<PinnableWideColumns, num_keys> results;
|
|
261
399
|
std::array<Status, num_keys> statuses;
|
|
262
400
|
|
|
263
|
-
db_->MultiGetEntity(ReadOptions(), num_keys,
|
|
264
|
-
|
|
401
|
+
db_->MultiGetEntity(ReadOptions(), num_keys, column_families.data(),
|
|
402
|
+
keys.data(), results.data(), statuses.data());
|
|
265
403
|
|
|
266
404
|
ASSERT_OK(statuses[0]);
|
|
267
405
|
ASSERT_EQ(results[0].columns(), first_columns);
|
|
@@ -274,9 +412,9 @@ TEST_F(DBWideBasicTest, MultiCFMultiGetEntityAsPinnableAttributeGroups) {
|
|
|
274
412
|
Options options = GetDefaultOptions();
|
|
275
413
|
CreateAndReopenWithCF({"hot_cf", "cold_cf"}, options);
|
|
276
414
|
|
|
277
|
-
constexpr int
|
|
278
|
-
constexpr int
|
|
279
|
-
constexpr int
|
|
415
|
+
constexpr int kDefaultCfHandleIndex = 0;
|
|
416
|
+
constexpr int kHotCfHandleIndex = 1;
|
|
417
|
+
constexpr int kColdCfHandleIndex = 2;
|
|
280
418
|
|
|
281
419
|
constexpr char first_key[] = "first";
|
|
282
420
|
WideColumns first_default_columns{
|
|
@@ -293,25 +431,28 @@ TEST_F(DBWideBasicTest, MultiCFMultiGetEntityAsPinnableAttributeGroups) {
|
|
|
293
431
|
WideColumns second_cold_columns{
|
|
294
432
|
{"cold_cf_col_1_name", "second_key_cold_cf_col_1_value"}};
|
|
295
433
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
434
|
+
AttributeGroups first_key_attribute_groups{
|
|
435
|
+
AttributeGroup(handles_[kDefaultCfHandleIndex], first_default_columns),
|
|
436
|
+
AttributeGroup(handles_[kHotCfHandleIndex], first_hot_columns),
|
|
437
|
+
AttributeGroup(handles_[kColdCfHandleIndex], first_cold_columns)};
|
|
438
|
+
AttributeGroups second_key_attribute_groups{
|
|
439
|
+
AttributeGroup(handles_[kHotCfHandleIndex], second_hot_columns),
|
|
440
|
+
AttributeGroup(handles_[kColdCfHandleIndex], second_cold_columns)};
|
|
441
|
+
|
|
442
|
+
ASSERT_OK(
|
|
443
|
+
db_->PutEntity(WriteOptions(), first_key, first_key_attribute_groups));
|
|
444
|
+
ASSERT_OK(
|
|
445
|
+
db_->PutEntity(WriteOptions(), second_key, second_key_attribute_groups));
|
|
307
446
|
|
|
308
447
|
constexpr size_t num_keys = 2;
|
|
309
448
|
std::array<Slice, num_keys> keys = {first_key, second_key};
|
|
310
449
|
std::vector<ColumnFamilyHandle*> all_cfs = handles_;
|
|
311
450
|
std::vector<ColumnFamilyHandle*> default_and_hot_cfs{
|
|
312
|
-
{handles_[
|
|
451
|
+
{handles_[kDefaultCfHandleIndex], handles_[kHotCfHandleIndex]}};
|
|
313
452
|
std::vector<ColumnFamilyHandle*> hot_and_cold_cfs{
|
|
314
|
-
{handles_[
|
|
453
|
+
{handles_[kHotCfHandleIndex], handles_[kColdCfHandleIndex]}};
|
|
454
|
+
std::vector<ColumnFamilyHandle*> null_and_hot_cfs{
|
|
455
|
+
nullptr, handles_[kHotCfHandleIndex], nullptr};
|
|
315
456
|
auto create_result =
|
|
316
457
|
[](const std::vector<ColumnFamilyHandle*>& column_families)
|
|
317
458
|
-> PinnableAttributeGroups {
|
|
@@ -322,7 +463,7 @@ TEST_F(DBWideBasicTest, MultiCFMultiGetEntityAsPinnableAttributeGroups) {
|
|
|
322
463
|
return result;
|
|
323
464
|
};
|
|
324
465
|
{
|
|
325
|
-
// Check for invalid argument
|
|
466
|
+
// Check for invalid read option argument
|
|
326
467
|
ReadOptions read_options;
|
|
327
468
|
read_options.io_activity = Env::IOActivity::kGetEntity;
|
|
328
469
|
std::vector<PinnableAttributeGroups> results;
|
|
@@ -336,6 +477,31 @@ TEST_F(DBWideBasicTest, MultiCFMultiGetEntityAsPinnableAttributeGroups) {
|
|
|
336
477
|
ASSERT_TRUE(results[i][j].status().IsInvalidArgument());
|
|
337
478
|
}
|
|
338
479
|
}
|
|
480
|
+
// Check for invalid column family in Attribute Group result
|
|
481
|
+
results.clear();
|
|
482
|
+
results.emplace_back(create_result(null_and_hot_cfs));
|
|
483
|
+
results.emplace_back(create_result(all_cfs));
|
|
484
|
+
db_->MultiGetEntity(ReadOptions(), num_keys, keys.data(), results.data());
|
|
485
|
+
|
|
486
|
+
// First one failed due to null CFs in the AttributeGroup
|
|
487
|
+
// Null CF
|
|
488
|
+
ASSERT_NOK(results[0][0].status());
|
|
489
|
+
ASSERT_TRUE(results[0][0].status().IsInvalidArgument());
|
|
490
|
+
// Valid CF, but failed with incomplete status because of other attribute
|
|
491
|
+
// groups
|
|
492
|
+
ASSERT_NOK(results[0][1].status());
|
|
493
|
+
ASSERT_TRUE(results[0][1].status().IsIncomplete());
|
|
494
|
+
// Null CF
|
|
495
|
+
ASSERT_NOK(results[0][2].status());
|
|
496
|
+
ASSERT_TRUE(results[0][2].status().IsInvalidArgument());
|
|
497
|
+
|
|
498
|
+
// Second one failed with Incomplete because first one failed
|
|
499
|
+
ASSERT_NOK(results[1][0].status());
|
|
500
|
+
ASSERT_TRUE(results[1][0].status().IsIncomplete());
|
|
501
|
+
ASSERT_NOK(results[1][1].status());
|
|
502
|
+
ASSERT_TRUE(results[1][1].status().IsIncomplete());
|
|
503
|
+
ASSERT_NOK(results[1][2].status());
|
|
504
|
+
ASSERT_TRUE(results[1][2].status().IsIncomplete());
|
|
339
505
|
}
|
|
340
506
|
{
|
|
341
507
|
// Case 1. Get first key from default cf and hot_cf and second key from
|
|
@@ -476,7 +642,7 @@ TEST_F(DBWideBasicTest, MergePlainKeyValue) {
|
|
|
476
642
|
std::array<Status, num_keys> statuses;
|
|
477
643
|
|
|
478
644
|
db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
479
|
-
|
|
645
|
+
keys.data(), results.data(), statuses.data());
|
|
480
646
|
|
|
481
647
|
ASSERT_OK(statuses[0]);
|
|
482
648
|
ASSERT_EQ(results[0].columns(), expected_first_columns);
|
|
@@ -656,7 +822,7 @@ TEST_F(DBWideBasicTest, MergeEntity) {
|
|
|
656
822
|
std::array<Status, num_keys> statuses;
|
|
657
823
|
|
|
658
824
|
db_->MultiGet(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
659
|
-
|
|
825
|
+
keys.data(), values.data(), statuses.data());
|
|
660
826
|
|
|
661
827
|
ASSERT_EQ(values[0], first_expected_default);
|
|
662
828
|
ASSERT_OK(statuses[0]);
|
|
@@ -673,7 +839,7 @@ TEST_F(DBWideBasicTest, MergeEntity) {
|
|
|
673
839
|
std::array<Status, num_keys> statuses;
|
|
674
840
|
|
|
675
841
|
db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
676
|
-
|
|
842
|
+
keys.data(), results.data(), statuses.data());
|
|
677
843
|
|
|
678
844
|
ASSERT_OK(statuses[0]);
|
|
679
845
|
ASSERT_EQ(results[0].columns(), first_expected_columns);
|
|
@@ -734,7 +900,7 @@ TEST_F(DBWideBasicTest, MergeEntity) {
|
|
|
734
900
|
int number_of_operands = 0;
|
|
735
901
|
|
|
736
902
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
737
|
-
first_key,
|
|
903
|
+
first_key, merge_operands.data(),
|
|
738
904
|
&get_merge_opts, &number_of_operands));
|
|
739
905
|
|
|
740
906
|
ASSERT_EQ(number_of_operands, num_merge_operands);
|
|
@@ -747,7 +913,7 @@ TEST_F(DBWideBasicTest, MergeEntity) {
|
|
|
747
913
|
int number_of_operands = 0;
|
|
748
914
|
|
|
749
915
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
750
|
-
second_key,
|
|
916
|
+
second_key, merge_operands.data(),
|
|
751
917
|
&get_merge_opts, &number_of_operands));
|
|
752
918
|
|
|
753
919
|
ASSERT_EQ(number_of_operands, num_merge_operands);
|
|
@@ -767,7 +933,7 @@ TEST_F(DBWideBasicTest, MergeEntity) {
|
|
|
767
933
|
int number_of_operands = 0;
|
|
768
934
|
|
|
769
935
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
770
|
-
first_key,
|
|
936
|
+
first_key, merge_operands.data(),
|
|
771
937
|
&get_merge_opts, &number_of_operands));
|
|
772
938
|
|
|
773
939
|
ASSERT_EQ(number_of_operands, num_merge_operands);
|
|
@@ -779,7 +945,7 @@ TEST_F(DBWideBasicTest, MergeEntity) {
|
|
|
779
945
|
int number_of_operands = 0;
|
|
780
946
|
|
|
781
947
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
782
|
-
second_key,
|
|
948
|
+
second_key, merge_operands.data(),
|
|
783
949
|
&get_merge_opts, &number_of_operands));
|
|
784
950
|
|
|
785
951
|
ASSERT_EQ(number_of_operands, num_merge_operands);
|
|
@@ -1557,6 +1723,215 @@ TEST_F(DBWideBasicTest, PutEntitySerializationError) {
|
|
|
1557
1723
|
ASSERT_OK(db_->Write(WriteOptions(), &batch));
|
|
1558
1724
|
}
|
|
1559
1725
|
|
|
1726
|
+
TEST_F(DBWideBasicTest, PinnableWideColumnsMove) {
|
|
1727
|
+
Options options = GetDefaultOptions();
|
|
1728
|
+
|
|
1729
|
+
constexpr char key1[] = "foo";
|
|
1730
|
+
constexpr char value[] = "bar";
|
|
1731
|
+
ASSERT_OK(db_->Put(WriteOptions(), db_->DefaultColumnFamily(), key1, value));
|
|
1732
|
+
|
|
1733
|
+
constexpr char key2[] = "baz";
|
|
1734
|
+
const WideColumns columns{{"quux", "corge"}};
|
|
1735
|
+
ASSERT_OK(db_->PutEntity(WriteOptions(), db_->DefaultColumnFamily(), key2,
|
|
1736
|
+
columns));
|
|
1737
|
+
|
|
1738
|
+
ASSERT_OK(db_->Flush(FlushOptions()));
|
|
1739
|
+
|
|
1740
|
+
const auto test_move = [&](bool fill_cache) {
|
|
1741
|
+
ReadOptions read_options;
|
|
1742
|
+
read_options.fill_cache = fill_cache;
|
|
1743
|
+
|
|
1744
|
+
{
|
|
1745
|
+
const WideColumns expected_columns{{kDefaultWideColumnName, value}};
|
|
1746
|
+
|
|
1747
|
+
{
|
|
1748
|
+
PinnableWideColumns result;
|
|
1749
|
+
ASSERT_OK(db_->GetEntity(read_options, db_->DefaultColumnFamily(), key1,
|
|
1750
|
+
&result));
|
|
1751
|
+
ASSERT_EQ(result.columns(), expected_columns);
|
|
1752
|
+
|
|
1753
|
+
PinnableWideColumns move_target(std::move(result));
|
|
1754
|
+
ASSERT_EQ(move_target.columns(), expected_columns);
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
{
|
|
1758
|
+
PinnableWideColumns result;
|
|
1759
|
+
ASSERT_OK(db_->GetEntity(read_options, db_->DefaultColumnFamily(), key1,
|
|
1760
|
+
&result));
|
|
1761
|
+
ASSERT_EQ(result.columns(), expected_columns);
|
|
1762
|
+
|
|
1763
|
+
PinnableWideColumns move_target;
|
|
1764
|
+
move_target = std::move(result);
|
|
1765
|
+
ASSERT_EQ(move_target.columns(), expected_columns);
|
|
1766
|
+
}
|
|
1767
|
+
}
|
|
1768
|
+
|
|
1769
|
+
{
|
|
1770
|
+
PinnableWideColumns result;
|
|
1771
|
+
ASSERT_OK(db_->GetEntity(read_options, db_->DefaultColumnFamily(), key2,
|
|
1772
|
+
&result));
|
|
1773
|
+
ASSERT_EQ(result.columns(), columns);
|
|
1774
|
+
|
|
1775
|
+
PinnableWideColumns move_target(std::move(result));
|
|
1776
|
+
ASSERT_EQ(move_target.columns(), columns);
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
{
|
|
1780
|
+
PinnableWideColumns result;
|
|
1781
|
+
ASSERT_OK(db_->GetEntity(read_options, db_->DefaultColumnFamily(), key2,
|
|
1782
|
+
&result));
|
|
1783
|
+
ASSERT_EQ(result.columns(), columns);
|
|
1784
|
+
|
|
1785
|
+
PinnableWideColumns move_target;
|
|
1786
|
+
move_target = std::move(result);
|
|
1787
|
+
ASSERT_EQ(move_target.columns(), columns);
|
|
1788
|
+
}
|
|
1789
|
+
};
|
|
1790
|
+
|
|
1791
|
+
// Test with and without fill_cache to cover both the case when pointers are
|
|
1792
|
+
// invalidated during PinnableSlice's move and when they are not.
|
|
1793
|
+
test_move(/* fill_cache*/ false);
|
|
1794
|
+
test_move(/* fill_cache*/ true);
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1797
|
+
TEST_F(DBWideBasicTest, SanityChecks) {
|
|
1798
|
+
constexpr char foo[] = "foo";
|
|
1799
|
+
constexpr char bar[] = "bar";
|
|
1800
|
+
constexpr size_t num_keys = 2;
|
|
1801
|
+
|
|
1802
|
+
{
|
|
1803
|
+
constexpr ColumnFamilyHandle* column_family = nullptr;
|
|
1804
|
+
PinnableWideColumns columns;
|
|
1805
|
+
ASSERT_TRUE(db_->GetEntity(ReadOptions(), column_family, foo, &columns)
|
|
1806
|
+
.IsInvalidArgument());
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1809
|
+
{
|
|
1810
|
+
constexpr PinnableWideColumns* columns = nullptr;
|
|
1811
|
+
ASSERT_TRUE(
|
|
1812
|
+
db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(), foo, columns)
|
|
1813
|
+
.IsInvalidArgument());
|
|
1814
|
+
}
|
|
1815
|
+
|
|
1816
|
+
{
|
|
1817
|
+
ReadOptions read_options;
|
|
1818
|
+
read_options.io_activity = Env::IOActivity::kGet;
|
|
1819
|
+
|
|
1820
|
+
PinnableWideColumns columns;
|
|
1821
|
+
ASSERT_TRUE(
|
|
1822
|
+
db_->GetEntity(read_options, db_->DefaultColumnFamily(), foo, &columns)
|
|
1823
|
+
.IsInvalidArgument());
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
{
|
|
1827
|
+
constexpr ColumnFamilyHandle* column_family = nullptr;
|
|
1828
|
+
std::array<Slice, num_keys> keys{{foo, bar}};
|
|
1829
|
+
std::array<PinnableWideColumns, num_keys> results;
|
|
1830
|
+
std::array<Status, num_keys> statuses;
|
|
1831
|
+
|
|
1832
|
+
db_->MultiGetEntity(ReadOptions(), column_family, num_keys, keys.data(),
|
|
1833
|
+
results.data(), statuses.data());
|
|
1834
|
+
|
|
1835
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1836
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
{
|
|
1840
|
+
constexpr Slice* keys = nullptr;
|
|
1841
|
+
std::array<PinnableWideColumns, num_keys> results;
|
|
1842
|
+
std::array<Status, num_keys> statuses;
|
|
1843
|
+
|
|
1844
|
+
db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
1845
|
+
keys, results.data(), statuses.data());
|
|
1846
|
+
|
|
1847
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1848
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1851
|
+
{
|
|
1852
|
+
std::array<Slice, num_keys> keys{{foo, bar}};
|
|
1853
|
+
constexpr PinnableWideColumns* results = nullptr;
|
|
1854
|
+
std::array<Status, num_keys> statuses;
|
|
1855
|
+
|
|
1856
|
+
db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
|
|
1857
|
+
keys.data(), results, statuses.data());
|
|
1858
|
+
|
|
1859
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1860
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
{
|
|
1864
|
+
ReadOptions read_options;
|
|
1865
|
+
read_options.io_activity = Env::IOActivity::kMultiGet;
|
|
1866
|
+
|
|
1867
|
+
std::array<Slice, num_keys> keys{{foo, bar}};
|
|
1868
|
+
std::array<PinnableWideColumns, num_keys> results;
|
|
1869
|
+
std::array<Status, num_keys> statuses;
|
|
1870
|
+
|
|
1871
|
+
db_->MultiGetEntity(read_options, db_->DefaultColumnFamily(), num_keys,
|
|
1872
|
+
keys.data(), results.data(), statuses.data());
|
|
1873
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1874
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1877
|
+
{
|
|
1878
|
+
constexpr ColumnFamilyHandle** column_families = nullptr;
|
|
1879
|
+
std::array<Slice, num_keys> keys{{foo, bar}};
|
|
1880
|
+
std::array<PinnableWideColumns, num_keys> results;
|
|
1881
|
+
std::array<Status, num_keys> statuses;
|
|
1882
|
+
|
|
1883
|
+
db_->MultiGetEntity(ReadOptions(), num_keys, column_families, keys.data(),
|
|
1884
|
+
results.data(), statuses.data());
|
|
1885
|
+
|
|
1886
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1887
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1888
|
+
}
|
|
1889
|
+
|
|
1890
|
+
{
|
|
1891
|
+
std::array<ColumnFamilyHandle*, num_keys> column_families{
|
|
1892
|
+
{db_->DefaultColumnFamily(), db_->DefaultColumnFamily()}};
|
|
1893
|
+
constexpr Slice* keys = nullptr;
|
|
1894
|
+
std::array<PinnableWideColumns, num_keys> results;
|
|
1895
|
+
std::array<Status, num_keys> statuses;
|
|
1896
|
+
|
|
1897
|
+
db_->MultiGetEntity(ReadOptions(), num_keys, column_families.data(), keys,
|
|
1898
|
+
results.data(), statuses.data());
|
|
1899
|
+
|
|
1900
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1901
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1902
|
+
}
|
|
1903
|
+
|
|
1904
|
+
{
|
|
1905
|
+
std::array<ColumnFamilyHandle*, num_keys> column_families{
|
|
1906
|
+
{db_->DefaultColumnFamily(), db_->DefaultColumnFamily()}};
|
|
1907
|
+
std::array<Slice, num_keys> keys{{foo, bar}};
|
|
1908
|
+
constexpr PinnableWideColumns* results = nullptr;
|
|
1909
|
+
std::array<Status, num_keys> statuses;
|
|
1910
|
+
|
|
1911
|
+
db_->MultiGetEntity(ReadOptions(), num_keys, column_families.data(),
|
|
1912
|
+
keys.data(), results, statuses.data());
|
|
1913
|
+
|
|
1914
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1915
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1916
|
+
}
|
|
1917
|
+
|
|
1918
|
+
{
|
|
1919
|
+
ReadOptions read_options;
|
|
1920
|
+
read_options.io_activity = Env::IOActivity::kMultiGet;
|
|
1921
|
+
|
|
1922
|
+
std::array<ColumnFamilyHandle*, num_keys> column_families{
|
|
1923
|
+
{db_->DefaultColumnFamily(), db_->DefaultColumnFamily()}};
|
|
1924
|
+
std::array<Slice, num_keys> keys{{foo, bar}};
|
|
1925
|
+
std::array<PinnableWideColumns, num_keys> results;
|
|
1926
|
+
std::array<Status, num_keys> statuses;
|
|
1927
|
+
|
|
1928
|
+
db_->MultiGetEntity(read_options, num_keys, column_families.data(),
|
|
1929
|
+
keys.data(), results.data(), statuses.data());
|
|
1930
|
+
ASSERT_TRUE(statuses[0].IsInvalidArgument());
|
|
1931
|
+
ASSERT_TRUE(statuses[1].IsInvalidArgument());
|
|
1932
|
+
}
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1560
1935
|
} // namespace ROCKSDB_NAMESPACE
|
|
1561
1936
|
|
|
1562
1937
|
int main(int argc, char** argv) {
|