@nxtedition/rocksdb 8.2.8 → 9.0.1
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 +0 -21
- package/deps/rocksdb/rocksdb/CMakeLists.txt +20 -10
- package/deps/rocksdb/rocksdb/Makefile +37 -25
- package/deps/rocksdb/rocksdb/README.md +29 -0
- package/deps/rocksdb/rocksdb/TARGETS +25 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +229 -74
- package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +58 -95
- package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
- package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2683 -496
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +580 -159
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +145 -42
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +20 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +391 -17
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +309 -212
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -32
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +439 -12
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +44 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +11 -1
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +16 -3
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
- package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +28 -12
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +20 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +8 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +35 -10
- package/deps/rocksdb/rocksdb/db/c.cc +233 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +140 -6
- package/deps/rocksdb/rocksdb/db/column_family.cc +110 -51
- package/deps/rocksdb/rocksdb/db/column_family.h +34 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +314 -7
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +106 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +47 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +10 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +148 -60
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +22 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +33 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +14 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +90 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +170 -95
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +32 -58
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +46 -10
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +13 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +74 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +850 -44
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +275 -1
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +52 -19
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +733 -320
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +155 -66
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +516 -155
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +8 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +17 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +100 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +95 -50
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +136 -79
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +6 -95
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +31 -22
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +85 -57
- package/deps/rocksdb/rocksdb/db/db_iter.h +11 -2
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +193 -7
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +294 -26
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +364 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +13 -3
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +282 -167
- package/deps/rocksdb/rocksdb/db/db_test.cc +180 -49
- package/deps/rocksdb/rocksdb/db/db_test2.cc +84 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +25 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.h +45 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +14 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +245 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +480 -1
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +67 -34
- package/deps/rocksdb/rocksdb/db/error_handler.h +13 -9
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +144 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +105 -17
- package/deps/rocksdb/rocksdb/db/flush_job.h +27 -4
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -12
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
- package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
- package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +70 -83
- package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +45 -11
- package/deps/rocksdb/rocksdb/db/memtable_list.h +43 -2
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +91 -5
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
- package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
- package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +5 -2
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +25 -7
- package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +459 -74
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
- package/deps/rocksdb/rocksdb/db/table_cache.cc +76 -54
- package/deps/rocksdb/rocksdb/db/table_cache.h +18 -12
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
- package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
- package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
- package/deps/rocksdb/rocksdb/db/version_edit.h +58 -10
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
- package/deps/rocksdb/rocksdb/db/version_set.cc +207 -110
- package/deps/rocksdb/rocksdb/db/version_set.h +36 -15
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -26
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +55 -20
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +37 -13
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +110 -58
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +68 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +8 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +429 -237
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +13 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +21 -14
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +29 -38
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +302 -101
- package/deps/rocksdb/rocksdb/env/env.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +79 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +100 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +64 -18
- package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
- package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1225 -97
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +72 -33
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +40 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +163 -91
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +112 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +108 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +42 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +92 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +34 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +91 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +130 -22
- package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +92 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +37 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +20 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +42 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +53 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -2
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +4 -3
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +22 -1
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
- package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +6 -1
- package/deps/rocksdb/rocksdb/options/db_options.cc +54 -2
- package/deps/rocksdb/rocksdb/options/db_options.h +4 -0
- package/deps/rocksdb/rocksdb/options/options.cc +15 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +18 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +14 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -1
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/README +10 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +32 -12
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
- package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
- package/deps/rocksdb/rocksdb/src.mk +10 -1
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
- package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +116 -43
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +9 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +321 -49
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +98 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +233 -98
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +58 -23
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +52 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -18
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +20 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +232 -71
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +36 -19
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +11 -7
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +14 -13
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +9 -2
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/format.cc +175 -33
- package/deps/rocksdb/rocksdb/table/format.h +63 -10
- package/deps/rocksdb/rocksdb/table/get_context.cc +52 -89
- package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +22 -2
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +45 -9
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +24 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
- package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +87 -65
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +221 -33
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -11
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
- package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
- package/deps/rocksdb/rocksdb/util/cast_util.h +24 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +55 -8
- package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +119 -35
- package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
- package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
- package/deps/rocksdb/rocksdb/util/hash.h +7 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
- package/deps/rocksdb/rocksdb/util/math.h +58 -6
- package/deps/rocksdb/rocksdb/util/math128.h +29 -7
- package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
- package/deps/rocksdb/rocksdb/util/overload.h +23 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
- package/deps/rocksdb/rocksdb/util/status.cc +1 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
- package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
- package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +10 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +385 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +192 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +461 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
- package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +71 -26
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +20 -16
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +7 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +12 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +272 -33
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +195 -23
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +19 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +88 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +43 -17
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +73 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +41 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +15 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +59 -28
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +111 -14
- package/deps/rocksdb/rocksdb.gyp +6 -2
- package/index.js +0 -8
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
#include "db/merge_helper.h"
|
|
19
19
|
#include "db/pinned_iterators_manager.h"
|
|
20
20
|
#include "db/wide/wide_column_serialization.h"
|
|
21
|
+
#include "db/wide/wide_columns_helper.h"
|
|
21
22
|
#include "file/filename.h"
|
|
22
23
|
#include "logging/logging.h"
|
|
23
24
|
#include "memory/arena.h"
|
|
@@ -77,11 +78,13 @@ DBIter::DBIter(Env* _env, const ReadOptions& read_options,
|
|
|
77
78
|
expose_blob_index_(expose_blob_index),
|
|
78
79
|
is_blob_(false),
|
|
79
80
|
arena_mode_(arena_mode),
|
|
81
|
+
io_activity_(read_options.io_activity),
|
|
80
82
|
db_impl_(db_impl),
|
|
81
83
|
cfd_(cfd),
|
|
82
84
|
timestamp_ub_(read_options.timestamp),
|
|
83
85
|
timestamp_lb_(read_options.iter_start_ts),
|
|
84
|
-
timestamp_size_(timestamp_ub_ ? timestamp_ub_->size() : 0)
|
|
86
|
+
timestamp_size_(timestamp_ub_ ? timestamp_ub_->size() : 0),
|
|
87
|
+
auto_readahead_size_(read_options.auto_readahead_size) {
|
|
85
88
|
RecordTick(statistics_, NO_ITERATOR_CREATED);
|
|
86
89
|
if (pin_thru_lifetime_) {
|
|
87
90
|
pinned_iters_mgr_.StartPinning();
|
|
@@ -196,12 +199,11 @@ bool DBIter::SetBlobValueIfNeeded(const Slice& user_key,
|
|
|
196
199
|
|
|
197
200
|
// TODO: consider moving ReadOptions from ArenaWrappedDBIter to DBIter to
|
|
198
201
|
// avoid having to copy options back and forth.
|
|
199
|
-
// TODO: plumb Env::IOActivity
|
|
200
202
|
ReadOptions read_options;
|
|
201
203
|
read_options.read_tier = read_tier_;
|
|
202
204
|
read_options.fill_cache = fill_cache_;
|
|
203
205
|
read_options.verify_checksums = verify_checksums_;
|
|
204
|
-
|
|
206
|
+
read_options.io_activity = io_activity_;
|
|
205
207
|
constexpr FilePrefetchBuffer* prefetch_buffer = nullptr;
|
|
206
208
|
constexpr uint64_t* bytes_read = nullptr;
|
|
207
209
|
|
|
@@ -230,11 +232,35 @@ bool DBIter::SetValueAndColumnsFromEntity(Slice slice) {
|
|
|
230
232
|
return false;
|
|
231
233
|
}
|
|
232
234
|
|
|
233
|
-
if (
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
if (WideColumnsHelper::HasDefaultColumn(wide_columns_)) {
|
|
236
|
+
value_ = WideColumnsHelper::GetDefaultColumn(wide_columns_);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
bool DBIter::SetValueAndColumnsFromMergeResult(const Status& merge_status,
|
|
243
|
+
ValueType result_type) {
|
|
244
|
+
if (!merge_status.ok()) {
|
|
245
|
+
valid_ = false;
|
|
246
|
+
status_ = merge_status;
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
if (result_type == kTypeWideColumnEntity) {
|
|
251
|
+
if (!SetValueAndColumnsFromEntity(saved_value_)) {
|
|
252
|
+
assert(!valid_);
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
valid_ = true;
|
|
257
|
+
return true;
|
|
236
258
|
}
|
|
237
259
|
|
|
260
|
+
assert(result_type == kTypeValue);
|
|
261
|
+
SetValueAndColumnsFromPlain(pinned_value_.data() ? pinned_value_
|
|
262
|
+
: saved_value_);
|
|
263
|
+
valid_ = true;
|
|
238
264
|
return true;
|
|
239
265
|
}
|
|
240
266
|
|
|
@@ -554,8 +580,7 @@ bool DBIter::MergeValuesNewToOld() {
|
|
|
554
580
|
if (kTypeValue == ikey.type) {
|
|
555
581
|
// hit a put, merge the put value with operands and store the
|
|
556
582
|
// final result in saved_value_. We are done!
|
|
557
|
-
|
|
558
|
-
if (!Merge(&val, ikey.user_key)) {
|
|
583
|
+
if (!MergeWithPlainBaseValue(iter_.value(), ikey.user_key)) {
|
|
559
584
|
return false;
|
|
560
585
|
}
|
|
561
586
|
// iter_ is positioned after put
|
|
@@ -584,7 +609,7 @@ bool DBIter::MergeValuesNewToOld() {
|
|
|
584
609
|
return false;
|
|
585
610
|
}
|
|
586
611
|
valid_ = true;
|
|
587
|
-
if (!
|
|
612
|
+
if (!MergeWithPlainBaseValue(blob_value_, ikey.user_key)) {
|
|
588
613
|
return false;
|
|
589
614
|
}
|
|
590
615
|
|
|
@@ -598,7 +623,7 @@ bool DBIter::MergeValuesNewToOld() {
|
|
|
598
623
|
}
|
|
599
624
|
return true;
|
|
600
625
|
} else if (kTypeWideColumnEntity == ikey.type) {
|
|
601
|
-
if (!
|
|
626
|
+
if (!MergeWithWideColumnBaseValue(iter_.value(), ikey.user_key)) {
|
|
602
627
|
return false;
|
|
603
628
|
}
|
|
604
629
|
|
|
@@ -628,7 +653,7 @@ bool DBIter::MergeValuesNewToOld() {
|
|
|
628
653
|
// a deletion marker.
|
|
629
654
|
// feed null as the existing value to the merge operator, such that
|
|
630
655
|
// client can differentiate this scenario and do things accordingly.
|
|
631
|
-
if (!
|
|
656
|
+
if (!MergeWithNoBaseValue(saved_key_.GetUserKey())) {
|
|
632
657
|
return false;
|
|
633
658
|
}
|
|
634
659
|
assert(status_.ok());
|
|
@@ -719,15 +744,22 @@ bool DBIter::ReverseToBackward() {
|
|
|
719
744
|
// When current_entry_is_merged_ is true, iter_ may be positioned on the next
|
|
720
745
|
// key, which may not exist or may have prefix different from current.
|
|
721
746
|
// If that's the case, seek to saved_key_.
|
|
722
|
-
|
|
723
|
-
|
|
747
|
+
//
|
|
748
|
+
// In case of auto_readahead_size enabled, index_iter moves forward during
|
|
749
|
+
// forward scan for block cache lookup and points to different block. If Prev
|
|
750
|
+
// op is called, it needs to call SeekForPrev to point to right index_iter_ in
|
|
751
|
+
// BlockBasedTableIterator. This only happens when direction is changed from
|
|
752
|
+
// forward to backward.
|
|
753
|
+
if ((current_entry_is_merged_ &&
|
|
754
|
+
(!expect_total_order_inner_iter() || !iter_.Valid())) ||
|
|
755
|
+
auto_readahead_size_) {
|
|
724
756
|
IterKey last_key;
|
|
725
757
|
// Using kMaxSequenceNumber and kValueTypeForSeek
|
|
726
758
|
// (not kValueTypeForSeekForPrev) to seek to a key strictly smaller
|
|
727
759
|
// than saved_key_.
|
|
728
760
|
last_key.SetInternalKey(ParsedInternalKey(
|
|
729
761
|
saved_key_.GetUserKey(), kMaxSequenceNumber, kValueTypeForSeek));
|
|
730
|
-
if (!expect_total_order_inner_iter()) {
|
|
762
|
+
if (!expect_total_order_inner_iter() || auto_readahead_size_) {
|
|
731
763
|
iter_.SeekForPrev(last_key.GetInternalKey());
|
|
732
764
|
} else {
|
|
733
765
|
// Some iterators may not support SeekForPrev(), so we avoid using it
|
|
@@ -979,7 +1011,7 @@ bool DBIter::FindValueForCurrentKey() {
|
|
|
979
1011
|
if (last_not_merge_type == kTypeDeletion ||
|
|
980
1012
|
last_not_merge_type == kTypeSingleDeletion ||
|
|
981
1013
|
last_not_merge_type == kTypeDeletionWithTimestamp) {
|
|
982
|
-
if (!
|
|
1014
|
+
if (!MergeWithNoBaseValue(saved_key_.GetUserKey())) {
|
|
983
1015
|
return false;
|
|
984
1016
|
}
|
|
985
1017
|
return true;
|
|
@@ -994,7 +1026,7 @@ bool DBIter::FindValueForCurrentKey() {
|
|
|
994
1026
|
return false;
|
|
995
1027
|
}
|
|
996
1028
|
valid_ = true;
|
|
997
|
-
if (!
|
|
1029
|
+
if (!MergeWithPlainBaseValue(blob_value_, saved_key_.GetUserKey())) {
|
|
998
1030
|
return false;
|
|
999
1031
|
}
|
|
1000
1032
|
|
|
@@ -1002,14 +1034,15 @@ bool DBIter::FindValueForCurrentKey() {
|
|
|
1002
1034
|
|
|
1003
1035
|
return true;
|
|
1004
1036
|
} else if (last_not_merge_type == kTypeWideColumnEntity) {
|
|
1005
|
-
if (!
|
|
1037
|
+
if (!MergeWithWideColumnBaseValue(pinned_value_,
|
|
1038
|
+
saved_key_.GetUserKey())) {
|
|
1006
1039
|
return false;
|
|
1007
1040
|
}
|
|
1008
1041
|
|
|
1009
1042
|
return true;
|
|
1010
1043
|
} else {
|
|
1011
1044
|
assert(last_not_merge_type == kTypeValue);
|
|
1012
|
-
if (!
|
|
1045
|
+
if (!MergeWithPlainBaseValue(pinned_value_, saved_key_.GetUserKey())) {
|
|
1013
1046
|
return false;
|
|
1014
1047
|
}
|
|
1015
1048
|
return true;
|
|
@@ -1185,8 +1218,7 @@ bool DBIter::FindValueForCurrentKeyUsingSeek() {
|
|
|
1185
1218
|
}
|
|
1186
1219
|
|
|
1187
1220
|
if (ikey.type == kTypeValue) {
|
|
1188
|
-
|
|
1189
|
-
if (!Merge(&val, saved_key_.GetUserKey())) {
|
|
1221
|
+
if (!MergeWithPlainBaseValue(iter_.value(), saved_key_.GetUserKey())) {
|
|
1190
1222
|
return false;
|
|
1191
1223
|
}
|
|
1192
1224
|
return true;
|
|
@@ -1205,7 +1237,7 @@ bool DBIter::FindValueForCurrentKeyUsingSeek() {
|
|
|
1205
1237
|
return false;
|
|
1206
1238
|
}
|
|
1207
1239
|
valid_ = true;
|
|
1208
|
-
if (!
|
|
1240
|
+
if (!MergeWithPlainBaseValue(blob_value_, saved_key_.GetUserKey())) {
|
|
1209
1241
|
return false;
|
|
1210
1242
|
}
|
|
1211
1243
|
|
|
@@ -1213,7 +1245,8 @@ bool DBIter::FindValueForCurrentKeyUsingSeek() {
|
|
|
1213
1245
|
|
|
1214
1246
|
return true;
|
|
1215
1247
|
} else if (ikey.type == kTypeWideColumnEntity) {
|
|
1216
|
-
if (!
|
|
1248
|
+
if (!MergeWithWideColumnBaseValue(iter_.value(),
|
|
1249
|
+
saved_key_.GetUserKey())) {
|
|
1217
1250
|
return false;
|
|
1218
1251
|
}
|
|
1219
1252
|
|
|
@@ -1227,7 +1260,7 @@ bool DBIter::FindValueForCurrentKeyUsingSeek() {
|
|
|
1227
1260
|
}
|
|
1228
1261
|
}
|
|
1229
1262
|
|
|
1230
|
-
if (!
|
|
1263
|
+
if (!MergeWithNoBaseValue(saved_key_.GetUserKey())) {
|
|
1231
1264
|
return false;
|
|
1232
1265
|
}
|
|
1233
1266
|
|
|
@@ -1250,47 +1283,42 @@ bool DBIter::FindValueForCurrentKeyUsingSeek() {
|
|
|
1250
1283
|
return true;
|
|
1251
1284
|
}
|
|
1252
1285
|
|
|
1253
|
-
bool DBIter::
|
|
1286
|
+
bool DBIter::MergeWithNoBaseValue(const Slice& user_key) {
|
|
1254
1287
|
// `op_failure_scope` (an output parameter) is not provided (set to nullptr)
|
|
1255
1288
|
// since a failure must be propagated regardless of its value.
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
/*
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
status_ = s;
|
|
1264
|
-
return false;
|
|
1265
|
-
}
|
|
1266
|
-
|
|
1267
|
-
SetValueAndColumnsFromPlain(pinned_value_.data() ? pinned_value_
|
|
1268
|
-
: saved_value_);
|
|
1269
|
-
|
|
1270
|
-
valid_ = true;
|
|
1271
|
-
return true;
|
|
1289
|
+
ValueType result_type;
|
|
1290
|
+
const Status s = MergeHelper::TimedFullMerge(
|
|
1291
|
+
merge_operator_, user_key, MergeHelper::kNoBaseValue,
|
|
1292
|
+
merge_context_.GetOperands(), logger_, statistics_, clock_,
|
|
1293
|
+
/* update_num_ops_stats */ true, &saved_value_, &pinned_value_,
|
|
1294
|
+
&result_type, /* op_failure_scope */ nullptr);
|
|
1295
|
+
return SetValueAndColumnsFromMergeResult(s, result_type);
|
|
1272
1296
|
}
|
|
1273
1297
|
|
|
1274
|
-
bool DBIter::
|
|
1298
|
+
bool DBIter::MergeWithPlainBaseValue(const Slice& value,
|
|
1299
|
+
const Slice& user_key) {
|
|
1275
1300
|
// `op_failure_scope` (an output parameter) is not provided (set to nullptr)
|
|
1276
1301
|
// since a failure must be propagated regardless of its value.
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
/*
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
return false;
|
|
1286
|
-
}
|
|
1287
|
-
|
|
1288
|
-
if (!SetValueAndColumnsFromEntity(saved_value_)) {
|
|
1289
|
-
return false;
|
|
1290
|
-
}
|
|
1302
|
+
ValueType result_type;
|
|
1303
|
+
const Status s = MergeHelper::TimedFullMerge(
|
|
1304
|
+
merge_operator_, user_key, MergeHelper::kPlainBaseValue, value,
|
|
1305
|
+
merge_context_.GetOperands(), logger_, statistics_, clock_,
|
|
1306
|
+
/* update_num_ops_stats */ true, &saved_value_, &pinned_value_,
|
|
1307
|
+
&result_type, /* op_failure_scope */ nullptr);
|
|
1308
|
+
return SetValueAndColumnsFromMergeResult(s, result_type);
|
|
1309
|
+
}
|
|
1291
1310
|
|
|
1292
|
-
|
|
1293
|
-
|
|
1311
|
+
bool DBIter::MergeWithWideColumnBaseValue(const Slice& entity,
|
|
1312
|
+
const Slice& user_key) {
|
|
1313
|
+
// `op_failure_scope` (an output parameter) is not provided (set to nullptr)
|
|
1314
|
+
// since a failure must be propagated regardless of its value.
|
|
1315
|
+
ValueType result_type;
|
|
1316
|
+
const Status s = MergeHelper::TimedFullMerge(
|
|
1317
|
+
merge_operator_, user_key, MergeHelper::kWideBaseValue, entity,
|
|
1318
|
+
merge_context_.GetOperands(), logger_, statistics_, clock_,
|
|
1319
|
+
/* update_num_ops_stats */ true, &saved_value_, &pinned_value_,
|
|
1320
|
+
&result_type, /* op_failure_scope */ nullptr);
|
|
1321
|
+
return SetValueAndColumnsFromMergeResult(s, result_type);
|
|
1294
1322
|
}
|
|
1295
1323
|
|
|
1296
1324
|
// Move backwards until the key smaller than saved_key_.
|
|
@@ -209,6 +209,7 @@ class DBIter final : public Iterator {
|
|
|
209
209
|
if (read_callback_) {
|
|
210
210
|
read_callback_->Refresh(s);
|
|
211
211
|
}
|
|
212
|
+
iter_.SetRangeDelReadSeqno(s);
|
|
212
213
|
}
|
|
213
214
|
void set_valid(bool v) { valid_ = v; }
|
|
214
215
|
|
|
@@ -312,14 +313,20 @@ class DBIter final : public Iterator {
|
|
|
312
313
|
|
|
313
314
|
bool SetValueAndColumnsFromEntity(Slice slice);
|
|
314
315
|
|
|
316
|
+
bool SetValueAndColumnsFromMergeResult(const Status& merge_status,
|
|
317
|
+
ValueType result_type);
|
|
318
|
+
|
|
315
319
|
void ResetValueAndColumns() {
|
|
316
320
|
value_.clear();
|
|
317
321
|
wide_columns_.clear();
|
|
318
322
|
}
|
|
319
323
|
|
|
324
|
+
// The following methods perform the actual merge operation for the
|
|
325
|
+
// no base value/plain base value/wide-column base value cases.
|
|
320
326
|
// If user-defined timestamp is enabled, `user_key` includes timestamp.
|
|
321
|
-
bool
|
|
322
|
-
bool
|
|
327
|
+
bool MergeWithNoBaseValue(const Slice& user_key);
|
|
328
|
+
bool MergeWithPlainBaseValue(const Slice& value, const Slice& user_key);
|
|
329
|
+
bool MergeWithWideColumnBaseValue(const Slice& entity, const Slice& user_key);
|
|
323
330
|
|
|
324
331
|
const SliceTransform* prefix_extractor_;
|
|
325
332
|
Env* const env_;
|
|
@@ -384,6 +391,7 @@ class DBIter final : public Iterator {
|
|
|
384
391
|
bool expose_blob_index_;
|
|
385
392
|
bool is_blob_;
|
|
386
393
|
bool arena_mode_;
|
|
394
|
+
const Env::IOActivity io_activity_;
|
|
387
395
|
// List of operands for merge operator.
|
|
388
396
|
MergeContext merge_context_;
|
|
389
397
|
LocalStatistics local_stats_;
|
|
@@ -394,6 +402,7 @@ class DBIter final : public Iterator {
|
|
|
394
402
|
const Slice* const timestamp_lb_;
|
|
395
403
|
const size_t timestamp_size_;
|
|
396
404
|
std::string saved_timestamp_;
|
|
405
|
+
bool auto_readahead_size_;
|
|
397
406
|
};
|
|
398
407
|
|
|
399
408
|
// Return a new iterator that converts internal keys (yielded by
|
|
@@ -275,6 +275,7 @@ TEST_F(DBIteratorTest, DBIteratorPrevNext) {
|
|
|
275
275
|
|
|
276
276
|
db_iter->Next();
|
|
277
277
|
ASSERT_TRUE(!db_iter->Valid());
|
|
278
|
+
ASSERT_OK(db_iter->status());
|
|
278
279
|
}
|
|
279
280
|
// Test to check the SeekToLast() with iterate_upper_bound not set
|
|
280
281
|
{
|
|
@@ -1415,6 +1416,7 @@ TEST_F(DBIteratorTest, DBIterator1) {
|
|
|
1415
1416
|
ASSERT_EQ(db_iter->key().ToString(), "b");
|
|
1416
1417
|
db_iter->Next();
|
|
1417
1418
|
ASSERT_FALSE(db_iter->Valid());
|
|
1419
|
+
ASSERT_OK(db_iter->status());
|
|
1418
1420
|
}
|
|
1419
1421
|
|
|
1420
1422
|
TEST_F(DBIteratorTest, DBIterator2) {
|
|
@@ -1528,6 +1530,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1528
1530
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
1529
1531
|
db_iter->Prev();
|
|
1530
1532
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1533
|
+
ASSERT_OK(db_iter->status());
|
|
1531
1534
|
}
|
|
1532
1535
|
|
|
1533
1536
|
{
|
|
@@ -1552,6 +1555,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1552
1555
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1,merge_2");
|
|
1553
1556
|
db_iter->Prev();
|
|
1554
1557
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1558
|
+
ASSERT_OK(db_iter->status());
|
|
1555
1559
|
}
|
|
1556
1560
|
|
|
1557
1561
|
{
|
|
@@ -1576,6 +1580,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1576
1580
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1,merge_2,merge_3");
|
|
1577
1581
|
db_iter->Prev();
|
|
1578
1582
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1583
|
+
ASSERT_OK(db_iter->status());
|
|
1579
1584
|
}
|
|
1580
1585
|
|
|
1581
1586
|
{
|
|
@@ -1600,6 +1605,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1600
1605
|
ASSERT_EQ(db_iter->value().ToString(), "put_1");
|
|
1601
1606
|
db_iter->Prev();
|
|
1602
1607
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1608
|
+
ASSERT_OK(db_iter->status());
|
|
1603
1609
|
}
|
|
1604
1610
|
|
|
1605
1611
|
{
|
|
@@ -1624,6 +1630,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1624
1630
|
ASSERT_EQ(db_iter->value().ToString(), "put_1,merge_4");
|
|
1625
1631
|
db_iter->Prev();
|
|
1626
1632
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1633
|
+
ASSERT_OK(db_iter->status());
|
|
1627
1634
|
}
|
|
1628
1635
|
|
|
1629
1636
|
{
|
|
@@ -1648,6 +1655,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1648
1655
|
ASSERT_EQ(db_iter->value().ToString(), "put_1,merge_4,merge_5");
|
|
1649
1656
|
db_iter->Prev();
|
|
1650
1657
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1658
|
+
ASSERT_OK(db_iter->status());
|
|
1651
1659
|
}
|
|
1652
1660
|
|
|
1653
1661
|
{
|
|
@@ -1672,6 +1680,7 @@ TEST_F(DBIteratorTest, DBIterator5) {
|
|
|
1672
1680
|
ASSERT_EQ(db_iter->value().ToString(), "put_1,merge_4,merge_5,merge_6");
|
|
1673
1681
|
db_iter->Prev();
|
|
1674
1682
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1683
|
+
ASSERT_OK(db_iter->status());
|
|
1675
1684
|
}
|
|
1676
1685
|
|
|
1677
1686
|
{
|
|
@@ -1726,6 +1735,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1726
1735
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
1727
1736
|
db_iter->Prev();
|
|
1728
1737
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1738
|
+
ASSERT_OK(db_iter->status());
|
|
1729
1739
|
}
|
|
1730
1740
|
|
|
1731
1741
|
{
|
|
@@ -1750,6 +1760,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1750
1760
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1,merge_2");
|
|
1751
1761
|
db_iter->Prev();
|
|
1752
1762
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1763
|
+
ASSERT_OK(db_iter->status());
|
|
1753
1764
|
}
|
|
1754
1765
|
|
|
1755
1766
|
{
|
|
@@ -1774,6 +1785,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1774
1785
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1,merge_2,merge_3");
|
|
1775
1786
|
db_iter->Prev();
|
|
1776
1787
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1788
|
+
ASSERT_OK(db_iter->status());
|
|
1777
1789
|
}
|
|
1778
1790
|
|
|
1779
1791
|
{
|
|
@@ -1794,6 +1806,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1794
1806
|
nullptr /* read_callback */));
|
|
1795
1807
|
db_iter->SeekToLast();
|
|
1796
1808
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1809
|
+
ASSERT_OK(db_iter->status());
|
|
1797
1810
|
}
|
|
1798
1811
|
|
|
1799
1812
|
{
|
|
@@ -1818,6 +1831,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1818
1831
|
ASSERT_EQ(db_iter->value().ToString(), "merge_4");
|
|
1819
1832
|
db_iter->Prev();
|
|
1820
1833
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1834
|
+
ASSERT_OK(db_iter->status());
|
|
1821
1835
|
}
|
|
1822
1836
|
|
|
1823
1837
|
{
|
|
@@ -1842,6 +1856,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1842
1856
|
ASSERT_EQ(db_iter->value().ToString(), "merge_4,merge_5");
|
|
1843
1857
|
db_iter->Prev();
|
|
1844
1858
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1859
|
+
ASSERT_OK(db_iter->status());
|
|
1845
1860
|
}
|
|
1846
1861
|
|
|
1847
1862
|
{
|
|
@@ -1866,6 +1881,7 @@ TEST_F(DBIteratorTest, DBIterator6) {
|
|
|
1866
1881
|
ASSERT_EQ(db_iter->value().ToString(), "merge_4,merge_5,merge_6");
|
|
1867
1882
|
db_iter->Prev();
|
|
1868
1883
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1884
|
+
ASSERT_OK(db_iter->status());
|
|
1869
1885
|
}
|
|
1870
1886
|
}
|
|
1871
1887
|
|
|
@@ -1910,6 +1926,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
1910
1926
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
1911
1927
|
db_iter->Prev();
|
|
1912
1928
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1929
|
+
ASSERT_OK(db_iter->status());
|
|
1913
1930
|
}
|
|
1914
1931
|
|
|
1915
1932
|
{
|
|
@@ -1952,6 +1969,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
1952
1969
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
1953
1970
|
db_iter->Prev();
|
|
1954
1971
|
ASSERT_TRUE(!db_iter->Valid());
|
|
1972
|
+
ASSERT_OK(db_iter->status());
|
|
1955
1973
|
}
|
|
1956
1974
|
|
|
1957
1975
|
{
|
|
@@ -1994,6 +2012,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
1994
2012
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
1995
2013
|
db_iter->Prev();
|
|
1996
2014
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2015
|
+
ASSERT_OK(db_iter->status());
|
|
1997
2016
|
}
|
|
1998
2017
|
|
|
1999
2018
|
{
|
|
@@ -2041,6 +2060,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
2041
2060
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
2042
2061
|
db_iter->Prev();
|
|
2043
2062
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2063
|
+
ASSERT_OK(db_iter->status());
|
|
2044
2064
|
}
|
|
2045
2065
|
|
|
2046
2066
|
{
|
|
@@ -2089,6 +2109,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
2089
2109
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
2090
2110
|
db_iter->Prev();
|
|
2091
2111
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2112
|
+
ASSERT_OK(db_iter->status());
|
|
2092
2113
|
}
|
|
2093
2114
|
|
|
2094
2115
|
{
|
|
@@ -2131,6 +2152,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
2131
2152
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
2132
2153
|
db_iter->Prev();
|
|
2133
2154
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2155
|
+
ASSERT_OK(db_iter->status());
|
|
2134
2156
|
}
|
|
2135
2157
|
|
|
2136
2158
|
{
|
|
@@ -2179,6 +2201,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
2179
2201
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
2180
2202
|
db_iter->Prev();
|
|
2181
2203
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2204
|
+
ASSERT_OK(db_iter->status());
|
|
2182
2205
|
}
|
|
2183
2206
|
|
|
2184
2207
|
{
|
|
@@ -2228,6 +2251,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
2228
2251
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
2229
2252
|
db_iter->Prev();
|
|
2230
2253
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2254
|
+
ASSERT_OK(db_iter->status());
|
|
2231
2255
|
}
|
|
2232
2256
|
|
|
2233
2257
|
{
|
|
@@ -2271,6 +2295,7 @@ TEST_F(DBIteratorTest, DBIterator7) {
|
|
|
2271
2295
|
ASSERT_EQ(db_iter->value().ToString(), "merge_1");
|
|
2272
2296
|
db_iter->Prev();
|
|
2273
2297
|
ASSERT_TRUE(!db_iter->Valid());
|
|
2298
|
+
ASSERT_OK(db_iter->status());
|
|
2274
2299
|
}
|
|
2275
2300
|
}
|
|
2276
2301
|
|
|
@@ -2440,6 +2465,7 @@ TEST_F(DBIteratorTest, SeekToLastOccurrenceSeq0) {
|
|
|
2440
2465
|
ASSERT_EQ(db_iter->value().ToString(), "2");
|
|
2441
2466
|
db_iter->Next();
|
|
2442
2467
|
ASSERT_FALSE(db_iter->Valid());
|
|
2468
|
+
ASSERT_OK(db_iter->status());
|
|
2443
2469
|
}
|
|
2444
2470
|
|
|
2445
2471
|
TEST_F(DBIteratorTest, DBIterator11) {
|
|
@@ -2469,6 +2495,7 @@ TEST_F(DBIteratorTest, DBIterator11) {
|
|
|
2469
2495
|
ASSERT_EQ(db_iter->key().ToString(), "b");
|
|
2470
2496
|
db_iter->Next();
|
|
2471
2497
|
ASSERT_FALSE(db_iter->Valid());
|
|
2498
|
+
ASSERT_OK(db_iter->status());
|
|
2472
2499
|
}
|
|
2473
2500
|
|
|
2474
2501
|
TEST_F(DBIteratorTest, DBIterator12) {
|
|
@@ -2497,6 +2524,7 @@ TEST_F(DBIteratorTest, DBIterator12) {
|
|
|
2497
2524
|
ASSERT_EQ(db_iter->value().ToString(), "1");
|
|
2498
2525
|
db_iter->Prev();
|
|
2499
2526
|
ASSERT_FALSE(db_iter->Valid());
|
|
2527
|
+
ASSERT_OK(db_iter->status());
|
|
2500
2528
|
}
|
|
2501
2529
|
|
|
2502
2530
|
TEST_F(DBIteratorTest, DBIterator13) {
|
|
@@ -2635,6 +2663,7 @@ TEST_F(DBIterWithMergeIterTest, InnerMergeIterator1) {
|
|
|
2635
2663
|
ASSERT_EQ(db_iter_->value().ToString(), "3");
|
|
2636
2664
|
db_iter_->Next();
|
|
2637
2665
|
ASSERT_FALSE(db_iter_->Valid());
|
|
2666
|
+
ASSERT_OK(db_iter_->status());
|
|
2638
2667
|
}
|
|
2639
2668
|
|
|
2640
2669
|
TEST_F(DBIterWithMergeIterTest, InnerMergeIterator2) {
|