@nxtedition/rocksdb 13.5.7 → 13.5.9
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 +248 -70
- package/binding.gyp +2 -2
- package/deps/rocksdb/rocksdb/BUCK +12 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -0
- package/deps/rocksdb/rocksdb/Makefile +28 -23
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -1
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +43 -39
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +0 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -2
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +1 -3
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +11 -1
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +13 -5
- package/deps/rocksdb/rocksdb/crash_test.mk +61 -15
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +136 -45
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +34 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +10 -7
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +12 -9
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/builder.cc +22 -8
- package/deps/rocksdb/rocksdb/db/builder.h +5 -4
- package/deps/rocksdb/rocksdb/db/c.cc +556 -15
- package/deps/rocksdb/rocksdb/db/c_test.c +133 -12
- package/deps/rocksdb/rocksdb/db/column_family.cc +114 -50
- package/deps/rocksdb/rocksdb/db/column_family.h +53 -36
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +95 -70
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +71 -51
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -86
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +26 -68
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +0 -122
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +453 -258
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +117 -92
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +38 -38
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +24 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +34 -45
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +32 -31
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +10 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +82 -34
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +267 -179
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +273 -89
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +300 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_state.cc +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_state.h +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +28 -23
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +69 -51
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +522 -245
- package/deps/rocksdb/rocksdb/db/convenience.cc +15 -4
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +1 -3
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +196 -17
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +74 -62
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +48 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +682 -250
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +11 -16
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +57 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +540 -490
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +347 -188
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +584 -217
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +13 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -7
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +40 -36
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +751 -372
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +35 -32
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +24 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +125 -63
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +311 -196
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +15 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +42 -29
- package/deps/rocksdb/rocksdb/db/db_iter.h +96 -31
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +168 -228
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +454 -0
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +90 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +60 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +7 -3
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +85 -27
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +114 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +51 -3
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +325 -18
- package/deps/rocksdb/rocksdb/db/db_test2.cc +644 -20
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +9 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +64 -45
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +203 -14
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +259 -30
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +75 -1
- package/deps/rocksdb/rocksdb/db/dbformat.h +70 -6
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +0 -190
- package/deps/rocksdb/rocksdb/db/error_handler.cc +22 -7
- package/deps/rocksdb/rocksdb/db/error_handler.h +16 -1
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +41 -26
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +464 -78
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +166 -69
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +54 -25
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -3
- package/deps/rocksdb/rocksdb/db/flush_job.cc +98 -81
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -9
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +80 -84
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +2 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +12 -19
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +41 -15
- package/deps/rocksdb/rocksdb/db/internal_stats.h +63 -52
- package/deps/rocksdb/rocksdb/db/job_context.h +59 -24
- package/deps/rocksdb/rocksdb/db/listener_test.cc +69 -10
- package/deps/rocksdb/rocksdb/db/log_format.h +11 -2
- package/deps/rocksdb/rocksdb/db/log_reader.cc +147 -34
- package/deps/rocksdb/rocksdb/db/log_reader.h +40 -11
- package/deps/rocksdb/rocksdb/db/log_test.cc +16 -3
- package/deps/rocksdb/rocksdb/db/log_writer.cc +102 -55
- package/deps/rocksdb/rocksdb/db/log_writer.h +21 -2
- package/deps/rocksdb/rocksdb/db/malloc_stats.h +0 -2
- package/deps/rocksdb/rocksdb/db/memtable.cc +16 -47
- package/deps/rocksdb/rocksdb/db/memtable.h +76 -12
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +23 -20
- package/deps/rocksdb/rocksdb/db/memtable_list.h +9 -11
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +18 -37
- package/deps/rocksdb/rocksdb/db/merge_context.h +2 -1
- package/deps/rocksdb/rocksdb/db/merge_test.cc +8 -0
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +15 -7
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +6 -3
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +22 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +41 -1
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +29 -34
- package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +14 -15
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +1 -3
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +47 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -3
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +1 -3
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_edit.cc +8 -37
- package/deps/rocksdb/rocksdb/db/version_edit.h +32 -1
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +26 -18
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -5
- package/deps/rocksdb/rocksdb/db/version_set.cc +282 -197
- package/deps/rocksdb/rocksdb/db/version_set.h +54 -57
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +28 -35
- package/deps/rocksdb/rocksdb/db/version_util.h +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +3 -2
- package/deps/rocksdb/rocksdb/db/wal_manager.h +0 -1
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +1 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +22 -8
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +7 -6
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/write_thread.h +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +13 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_service.h +39 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compression_manager.h +65 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +45 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +22 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +28 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -38
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +80 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +51 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +23 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +305 -15
- package/deps/rocksdb/rocksdb/env/env.cc +32 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +0 -2
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -4
- package/deps/rocksdb/rocksdb/env/env_posix.cc +4 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +0 -1
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +20 -11
- package/deps/rocksdb/rocksdb/env/fs_readonly.h +0 -2
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +0 -2
- package/deps/rocksdb/rocksdb/env/fs_remap.h +0 -2
- package/deps/rocksdb/rocksdb/env/io_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/io_posix.h +3 -2
- package/deps/rocksdb/rocksdb/env/mock_env.cc +0 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +2 -2
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +0 -2
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +0 -2
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +30 -21
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +16 -0
- package/deps/rocksdb/rocksdb/file/file_util.cc +32 -14
- package/deps/rocksdb/rocksdb/file/file_util.h +22 -5
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +229 -76
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +21 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +10 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +12 -8
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +1 -2
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +0 -2
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +598 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_iterator.h +36 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +70 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +232 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +149 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +132 -34
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +158 -79
- package/deps/rocksdb/rocksdb/include/rocksdb/db_bench_tool.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +4 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +275 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +50 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +10 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +5 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/multi_scan.h +237 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +230 -39
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +31 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +41 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +18 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +20 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +19 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +124 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +26 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +55 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +3 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +96 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index_faiss.h +117 -0
- package/deps/rocksdb/rocksdb/{utilities/secondary_index/faiss_ivf_index.h → include/rocksdb/utilities/secondary_index_simple.h} +11 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +26 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +16 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +63 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +28 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +3 -3
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +0 -2
- package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +0 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +0 -1
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +3 -1
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +2 -2
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +2 -4
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +69 -8
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +32 -9
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +58 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +5 -0
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +3 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +44 -13
- package/deps/rocksdb/rocksdb/options/cf_options.h +21 -7
- package/deps/rocksdb/rocksdb/options/configurable.cc +5 -5
- package/deps/rocksdb/rocksdb/options/configurable_test.h +1 -2
- package/deps/rocksdb/rocksdb/options/customizable.cc +0 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -11
- package/deps/rocksdb/rocksdb/options/db_options.cc +18 -15
- package/deps/rocksdb/rocksdb/options/db_options.h +2 -2
- package/deps/rocksdb/rocksdb/options/options.cc +296 -305
- package/deps/rocksdb/rocksdb/options/options_helper.cc +188 -62
- package/deps/rocksdb/rocksdb/options/options_helper.h +3 -3
- package/deps/rocksdb/rocksdb/options/options_parser.cc +2 -4
- package/deps/rocksdb/rocksdb/options/options_parser.h +0 -1
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +17 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +101 -76
- package/deps/rocksdb/rocksdb/port/lang.h +2 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +2 -1
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +3 -2
- package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +99 -1
- package/deps/rocksdb/rocksdb/port/win/xpress_win.h +6 -0
- package/deps/rocksdb/rocksdb/src.mk +17 -11
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1094 -929
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +6 -19
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +76 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +221 -131
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +12 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +23 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -38
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +5 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +10 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +35 -43
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +0 -4
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +4 -4
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +37 -35
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +11 -7
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +4 -3
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +31 -5
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +0 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +0 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +483 -0
- package/deps/rocksdb/rocksdb/table/format.cc +62 -44
- package/deps/rocksdb/rocksdb/table/format.h +35 -12
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +3 -13
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +6 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +150 -141
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +5 -0
- package/deps/rocksdb/rocksdb/table/multiget_context.h +3 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +8 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +0 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +0 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +0 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +6 -6
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +86 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +88 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +0 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +3 -2
- package/deps/rocksdb/rocksdb/table/table_test.cc +899 -22
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.h +132 -1
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +0 -1
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +0 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +163 -77
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +0 -2
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +120 -52
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +0 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +0 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +94 -0
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +0 -1
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +3 -5
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/util/async_file_reader.h +15 -8
- package/deps/rocksdb/rocksdb/util/auto_skip_compressor.cc +131 -0
- package/deps/rocksdb/rocksdb/util/auto_skip_compressor.h +90 -0
- package/deps/rocksdb/rocksdb/util/autovector.h +1 -1
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +0 -2
- package/deps/rocksdb/rocksdb/util/compression.cc +936 -4
- package/deps/rocksdb/rocksdb/util/compression.h +348 -232
- package/deps/rocksdb/rocksdb/util/compression_test.cc +229 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +10 -10
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.c +1 -0
- package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -0
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +1 -3
- package/deps/rocksdb/rocksdb/util/ppc-opcode.h +5 -5
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +108 -0
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +67 -0
- package/deps/rocksdb/rocksdb/util/slice_test.cc +83 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +0 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +18 -5
- package/deps/rocksdb/rocksdb/util/udt_util.h +10 -7
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +650 -154
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +438 -144
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +16 -17
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +2 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +7 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +0 -48
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/debug.cc +7 -14
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +10 -9
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +183 -32
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +258 -12
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_helper.h +33 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_iterator.cc +99 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +280 -120
- package/deps/rocksdb/rocksdb/utilities/secondary_index/simple_secondary_index.cc +79 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +52 -16
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +10 -6
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +55 -0
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -2
- 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 +1 -1
- 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/util/dbt.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +1 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +36 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1118 -37
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +4 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +0 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +125 -127
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +45 -23
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +54 -22
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +477 -58
- package/deps/rocksdb/rocksdb.gyp +9 -4
- package/index.js +50 -9
- package/package.json +8 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
#include "options/cf_options.h"
|
|
20
20
|
#include "rocksdb/db.h"
|
|
21
21
|
#include "rocksdb/iterator.h"
|
|
22
|
-
#include "util/autovector.h"
|
|
23
22
|
|
|
24
23
|
namespace ROCKSDB_NAMESPACE {
|
|
25
24
|
|
|
@@ -65,12 +64,26 @@ class ArenaWrappedDBIter : public Iterator {
|
|
|
65
64
|
void SeekToLast() override { db_iter_->SeekToLast(); }
|
|
66
65
|
// 'target' does not contain timestamp, even if user timestamp feature is
|
|
67
66
|
// enabled.
|
|
68
|
-
void Seek(const Slice& target) override {
|
|
67
|
+
void Seek(const Slice& target) override {
|
|
68
|
+
MaybeAutoRefresh(true /* is_seek */, DBIter::kForward);
|
|
69
|
+
db_iter_->Seek(target);
|
|
70
|
+
}
|
|
71
|
+
|
|
69
72
|
void SeekForPrev(const Slice& target) override {
|
|
73
|
+
MaybeAutoRefresh(true /* is_seek */, DBIter::kReverse);
|
|
70
74
|
db_iter_->SeekForPrev(target);
|
|
71
75
|
}
|
|
72
|
-
|
|
73
|
-
void
|
|
76
|
+
|
|
77
|
+
void Next() override {
|
|
78
|
+
db_iter_->Next();
|
|
79
|
+
MaybeAutoRefresh(false /* is_seek */, DBIter::kForward);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
void Prev() override {
|
|
83
|
+
db_iter_->Prev();
|
|
84
|
+
MaybeAutoRefresh(false /* is_seek */, DBIter::kReverse);
|
|
85
|
+
}
|
|
86
|
+
|
|
74
87
|
Slice key() const override { return db_iter_->key(); }
|
|
75
88
|
Slice value() const override { return db_iter_->value(); }
|
|
76
89
|
const WideColumns& columns() const override { return db_iter_->columns(); }
|
|
@@ -85,13 +98,19 @@ class ArenaWrappedDBIter : public Iterator {
|
|
|
85
98
|
|
|
86
99
|
bool PrepareValue() override { return db_iter_->PrepareValue(); }
|
|
87
100
|
|
|
101
|
+
void Prepare(const std::vector<ScanOptions>& scan_opts) override {
|
|
102
|
+
db_iter_->Prepare(scan_opts);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// FIXME: we could just pass SV in for mutable cf option, version and version
|
|
106
|
+
// number, but this is used by SstFileReader which does not have a SV.
|
|
88
107
|
void Init(Env* env, const ReadOptions& read_options,
|
|
89
108
|
const ImmutableOptions& ioptions,
|
|
90
109
|
const MutableCFOptions& mutable_cf_options, const Version* version,
|
|
91
|
-
const SequenceNumber& sequence,
|
|
92
|
-
uint64_t max_sequential_skip_in_iterations, uint64_t version_number,
|
|
110
|
+
const SequenceNumber& sequence, uint64_t version_number,
|
|
93
111
|
ReadCallback* read_callback, ColumnFamilyHandleImpl* cfh,
|
|
94
|
-
bool expose_blob_index, bool allow_refresh
|
|
112
|
+
bool expose_blob_index, bool allow_refresh,
|
|
113
|
+
ReadOnlyMemTable* active_mem);
|
|
95
114
|
|
|
96
115
|
// Store some parameters so we can refresh the iterator at a later point
|
|
97
116
|
// with these same params
|
|
@@ -103,6 +122,9 @@ class ArenaWrappedDBIter : public Iterator {
|
|
|
103
122
|
}
|
|
104
123
|
|
|
105
124
|
private:
|
|
125
|
+
void DoRefresh(const Snapshot* snapshot, uint64_t sv_number);
|
|
126
|
+
void MaybeAutoRefresh(bool is_seek, DBIter::Direction direction);
|
|
127
|
+
|
|
106
128
|
DBIter* db_iter_ = nullptr;
|
|
107
129
|
Arena arena_;
|
|
108
130
|
uint64_t sv_number_;
|
|
@@ -111,20 +133,16 @@ class ArenaWrappedDBIter : public Iterator {
|
|
|
111
133
|
ReadCallback* read_callback_;
|
|
112
134
|
bool expose_blob_index_ = false;
|
|
113
135
|
bool allow_refresh_ = true;
|
|
136
|
+
bool allow_mark_memtable_for_flush_ = true;
|
|
114
137
|
// If this is nullptr, it means the mutable memtable does not contain range
|
|
115
138
|
// tombstone when added under this DBIter.
|
|
116
139
|
std::unique_ptr<TruncatedRangeDelIterator>* memtable_range_tombstone_iter_ =
|
|
117
140
|
nullptr;
|
|
118
141
|
};
|
|
119
142
|
|
|
120
|
-
// Generate the arena wrapped iterator class.
|
|
121
|
-
// `cfh` is used for reneweal. If left null, renewal will not
|
|
122
|
-
// be supported.
|
|
123
143
|
ArenaWrappedDBIter* NewArenaWrappedDbIterator(
|
|
124
|
-
Env* env, const ReadOptions& read_options,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
ColumnFamilyHandleImpl* cfh = nullptr, bool expose_blob_index = false,
|
|
129
|
-
bool allow_refresh = true);
|
|
144
|
+
Env* env, const ReadOptions& read_options, ColumnFamilyHandleImpl* cfh,
|
|
145
|
+
SuperVersion* sv, const SequenceNumber& sequence,
|
|
146
|
+
ReadCallback* read_callback, DBImpl* db_impl, bool expose_blob_index,
|
|
147
|
+
bool allow_refresh, bool allow_mark_memtable_for_flush);
|
|
130
148
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -188,10 +188,12 @@ Status BlobFileBuilder::OpenBlobFileIfNeeded() {
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
std::unique_ptr<FSWritableFile> file;
|
|
191
|
-
|
|
191
|
+
FileOptions fo_copy;
|
|
192
192
|
{
|
|
193
193
|
assert(file_options_);
|
|
194
|
-
|
|
194
|
+
fo_copy = *file_options_;
|
|
195
|
+
fo_copy.write_hint = write_hint_;
|
|
196
|
+
Status s = NewWritableFile(fs_, blob_file_path, &file, fo_copy);
|
|
195
197
|
|
|
196
198
|
TEST_SYNC_POINT_CALLBACK(
|
|
197
199
|
"BlobFileBuilder::OpenBlobFileIfNeeded:NewWritableFile", &s);
|
|
@@ -209,7 +211,9 @@ Status BlobFileBuilder::OpenBlobFileIfNeeded() {
|
|
|
209
211
|
|
|
210
212
|
assert(file);
|
|
211
213
|
file->SetIOPriority(write_options_->rate_limiter_priority);
|
|
212
|
-
|
|
214
|
+
// Subsequent attempts to override the hint via SetWriteLifeTimeHint
|
|
215
|
+
// with the very same value will be ignored by the fs.
|
|
216
|
+
file->SetWriteLifeTimeHint(fo_copy.write_hint);
|
|
213
217
|
FileTypeSet tmp_set = immutable_options_->checksum_handoff_file_types;
|
|
214
218
|
Statistics* const statistics = immutable_options_->stats;
|
|
215
219
|
std::unique_ptr<WritableFileWriter> file_writer(new WritableFileWriter(
|
|
@@ -263,10 +267,9 @@ Status BlobFileBuilder::CompressBlobIfNeeded(
|
|
|
263
267
|
// TODO: allow user CompressionOptions, including max_compressed_bytes_per_kb
|
|
264
268
|
CompressionOptions opts;
|
|
265
269
|
CompressionContext context(blob_compression_type_, opts);
|
|
266
|
-
constexpr uint64_t sample_for_compression = 0;
|
|
267
270
|
|
|
268
271
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
269
|
-
blob_compression_type_
|
|
272
|
+
blob_compression_type_);
|
|
270
273
|
|
|
271
274
|
constexpr uint32_t compression_format_version = 2;
|
|
272
275
|
|
|
@@ -275,8 +278,8 @@ Status BlobFileBuilder::CompressBlobIfNeeded(
|
|
|
275
278
|
{
|
|
276
279
|
StopWatch stop_watch(immutable_options_->clock, immutable_options_->stats,
|
|
277
280
|
BLOB_DB_COMPRESSION_MICROS);
|
|
278
|
-
success =
|
|
279
|
-
|
|
281
|
+
success = OLD_CompressData(*blob, info, compression_format_version,
|
|
282
|
+
compressed_blob);
|
|
280
283
|
}
|
|
281
284
|
|
|
282
285
|
if (!success) {
|
|
@@ -405,10 +405,9 @@ TEST_F(BlobFileBuilderTest, Compression) {
|
|
|
405
405
|
|
|
406
406
|
CompressionOptions opts;
|
|
407
407
|
CompressionContext context(kSnappyCompression, opts);
|
|
408
|
-
constexpr uint64_t sample_for_compression = 0;
|
|
409
408
|
|
|
410
409
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
411
|
-
kSnappyCompression
|
|
410
|
+
kSnappyCompression);
|
|
412
411
|
|
|
413
412
|
std::string compressed_value;
|
|
414
413
|
ASSERT_TRUE(Snappy_Compress(info, uncompressed_value.data(),
|
|
@@ -250,7 +250,8 @@ Status BlobFileReader::ReadFromFile(const RandomAccessFileReader* file_reader,
|
|
|
250
250
|
Status s;
|
|
251
251
|
|
|
252
252
|
IOOptions io_options;
|
|
253
|
-
|
|
253
|
+
IODebugContext dbg;
|
|
254
|
+
s = file_reader->PrepareIOOptions(read_options, io_options, &dbg);
|
|
254
255
|
if (!s.ok()) {
|
|
255
256
|
return s;
|
|
256
257
|
}
|
|
@@ -259,13 +260,13 @@ Status BlobFileReader::ReadFromFile(const RandomAccessFileReader* file_reader,
|
|
|
259
260
|
constexpr char* scratch = nullptr;
|
|
260
261
|
|
|
261
262
|
s = file_reader->Read(io_options, read_offset, read_size, slice, scratch,
|
|
262
|
-
aligned_buf);
|
|
263
|
+
aligned_buf, &dbg);
|
|
263
264
|
} else {
|
|
264
265
|
buf->reset(new char[read_size]);
|
|
265
266
|
constexpr AlignedBuf* aligned_scratch = nullptr;
|
|
266
267
|
|
|
267
268
|
s = file_reader->Read(io_options, read_offset, read_size, slice, buf->get(),
|
|
268
|
-
aligned_scratch);
|
|
269
|
+
aligned_scratch, &dbg);
|
|
269
270
|
}
|
|
270
271
|
|
|
271
272
|
if (!s.ok()) {
|
|
@@ -334,7 +335,8 @@ Status BlobFileReader::GetBlob(
|
|
|
334
335
|
constexpr bool for_compaction = true;
|
|
335
336
|
|
|
336
337
|
IOOptions io_options;
|
|
337
|
-
|
|
338
|
+
IODebugContext dbg;
|
|
339
|
+
s = file_reader_->PrepareIOOptions(read_options, io_options, &dbg);
|
|
338
340
|
if (!s.ok()) {
|
|
339
341
|
return s;
|
|
340
342
|
}
|
|
@@ -463,10 +465,11 @@ void BlobFileReader::MultiGetBlob(
|
|
|
463
465
|
PERF_COUNTER_ADD(blob_read_count, num_blobs);
|
|
464
466
|
PERF_COUNTER_ADD(blob_read_byte, total_len);
|
|
465
467
|
IOOptions opts;
|
|
466
|
-
|
|
468
|
+
IODebugContext dbg;
|
|
469
|
+
s = file_reader_->PrepareIOOptions(read_options, opts, &dbg);
|
|
467
470
|
if (s.ok()) {
|
|
468
471
|
s = file_reader_->MultiRead(opts, read_reqs.data(), read_reqs.size(),
|
|
469
|
-
direct_io ? &aligned_buf : nullptr);
|
|
472
|
+
direct_io ? &aligned_buf : nullptr, &dbg);
|
|
470
473
|
}
|
|
471
474
|
if (!s.ok()) {
|
|
472
475
|
for (auto& req : read_reqs) {
|
|
@@ -602,9 +605,9 @@ Status BlobFileReader::UncompressBlobIfNeeded(
|
|
|
602
605
|
{
|
|
603
606
|
PERF_TIMER_GUARD(blob_decompress_time);
|
|
604
607
|
StopWatch stop_watch(clock, statistics, BLOB_DB_DECOMPRESSION_MICROS);
|
|
605
|
-
output =
|
|
606
|
-
|
|
607
|
-
|
|
608
|
+
output = OLD_UncompressData(info, value_slice.data(), value_slice.size(),
|
|
609
|
+
&uncompressed_size, compression_format_version,
|
|
610
|
+
allocator);
|
|
608
611
|
}
|
|
609
612
|
|
|
610
613
|
TEST_SYNC_POINT_CALLBACK(
|
|
@@ -75,15 +75,14 @@ void WriteBlobFile(const ImmutableOptions& immutable_options,
|
|
|
75
75
|
} else {
|
|
76
76
|
CompressionOptions opts;
|
|
77
77
|
CompressionContext context(compression, opts);
|
|
78
|
-
constexpr uint64_t sample_for_compression = 0;
|
|
79
78
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
80
|
-
compression
|
|
79
|
+
compression);
|
|
81
80
|
|
|
82
81
|
constexpr uint32_t compression_format_version = 2;
|
|
83
82
|
|
|
84
83
|
for (size_t i = 0; i < num; ++i) {
|
|
85
|
-
ASSERT_TRUE(
|
|
86
|
-
|
|
84
|
+
ASSERT_TRUE(OLD_CompressData(blobs[i], info, compression_format_version,
|
|
85
|
+
&compressed_blobs[i]));
|
|
87
86
|
blobs_to_write[i] = compressed_blobs[i];
|
|
88
87
|
blob_sizes[i] = compressed_blobs[i].size();
|
|
89
88
|
}
|
|
@@ -82,8 +82,8 @@ Status BlobSource::PutBlobIntoCache(
|
|
|
82
82
|
assert(cached_blob->IsEmpty());
|
|
83
83
|
|
|
84
84
|
TypedHandle* cache_handle = nullptr;
|
|
85
|
-
const Status s = InsertEntryIntoCache(cache_key, blob->get(),
|
|
86
|
-
|
|
85
|
+
const Status s = InsertEntryIntoCache(cache_key, blob->get(), &cache_handle,
|
|
86
|
+
Cache::Priority::BOTTOM);
|
|
87
87
|
if (s.ok()) {
|
|
88
88
|
blob->release();
|
|
89
89
|
|
|
@@ -77,15 +77,14 @@ void WriteBlobFile(const ImmutableOptions& immutable_options,
|
|
|
77
77
|
} else {
|
|
78
78
|
CompressionOptions opts;
|
|
79
79
|
CompressionContext context(compression, opts);
|
|
80
|
-
constexpr uint64_t sample_for_compression = 0;
|
|
81
80
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
82
|
-
compression
|
|
81
|
+
compression);
|
|
83
82
|
|
|
84
83
|
constexpr uint32_t compression_format_version = 2;
|
|
85
84
|
|
|
86
85
|
for (size_t i = 0; i < num; ++i) {
|
|
87
|
-
ASSERT_TRUE(
|
|
88
|
-
|
|
86
|
+
ASSERT_TRUE(OLD_CompressData(blobs[i], info, compression_format_version,
|
|
87
|
+
&compressed_blobs[i]));
|
|
89
88
|
blobs_to_write[i] = compressed_blobs[i];
|
|
90
89
|
blob_sizes[i] = compressed_blobs[i].size();
|
|
91
90
|
}
|
|
@@ -74,8 +74,8 @@ Status BuildTable(
|
|
|
74
74
|
EventLogger* event_logger, int job_id, TableProperties* table_properties,
|
|
75
75
|
Env::WriteLifeTimeHint write_hint, const std::string* full_history_ts_low,
|
|
76
76
|
BlobFileCompletionCallback* blob_callback, Version* version,
|
|
77
|
-
uint64_t*
|
|
78
|
-
|
|
77
|
+
uint64_t* memtable_payload_bytes, uint64_t* memtable_garbage_bytes,
|
|
78
|
+
InternalStats::CompactionStats* flush_stats) {
|
|
79
79
|
assert((tboptions.column_family_id ==
|
|
80
80
|
TablePropertiesCollectorFactory::Context::kUnknownColumnFamily) ==
|
|
81
81
|
tboptions.column_family_name.empty());
|
|
@@ -145,7 +145,9 @@ Status BuildTable(
|
|
|
145
145
|
bool use_direct_writes = file_options.use_direct_writes;
|
|
146
146
|
TEST_SYNC_POINT_CALLBACK("BuildTable:create_file", &use_direct_writes);
|
|
147
147
|
#endif // !NDEBUG
|
|
148
|
-
|
|
148
|
+
FileOptions fo_copy = file_options;
|
|
149
|
+
fo_copy.write_hint = write_hint;
|
|
150
|
+
IOStatus io_s = NewWritableFile(fs, fname, &file, fo_copy);
|
|
149
151
|
assert(s.ok());
|
|
150
152
|
s = io_s;
|
|
151
153
|
if (io_status->ok()) {
|
|
@@ -163,7 +165,9 @@ Status BuildTable(
|
|
|
163
165
|
table_file_created = true;
|
|
164
166
|
FileTypeSet tmp_set = ioptions.checksum_handoff_file_types;
|
|
165
167
|
file->SetIOPriority(tboptions.write_options.rate_limiter_priority);
|
|
166
|
-
|
|
168
|
+
// Subsequent attempts to override the hint via SetWriteLifeTimeHint
|
|
169
|
+
// with the very same value will be ignored by the fs.
|
|
170
|
+
file->SetWriteLifeTimeHint(fo_copy.write_hint);
|
|
167
171
|
file_writer.reset(new WritableFileWriter(
|
|
168
172
|
std::move(file), fname, file_options, ioptions.clock, io_tracer,
|
|
169
173
|
ioptions.stats, Histograms::SST_WRITE_MICROS, ioptions.listeners,
|
|
@@ -214,8 +218,7 @@ Status BuildTable(
|
|
|
214
218
|
const Slice& key = c_iter.key();
|
|
215
219
|
const Slice& value = c_iter.value();
|
|
216
220
|
ParsedInternalKey ikey = c_iter.ikey();
|
|
217
|
-
|
|
218
|
-
Slice key_after_flush = key_after_flush_buf;
|
|
221
|
+
Slice key_after_flush = key;
|
|
219
222
|
Slice value_after_flush = value;
|
|
220
223
|
|
|
221
224
|
if (ikey.type == kTypeValuePreferredSeqno) {
|
|
@@ -233,6 +236,7 @@ Status BuildTable(
|
|
|
233
236
|
std::min(smallest_preferred_seqno, preferred_seqno);
|
|
234
237
|
} else {
|
|
235
238
|
// Cannot get a useful preferred seqno, convert it to a kTypeValue.
|
|
239
|
+
key_after_flush_buf.assign(key.data(), key.size());
|
|
236
240
|
UpdateInternalKey(&key_after_flush_buf, ikey.sequence, kTypeValue);
|
|
237
241
|
ikey = ParsedInternalKey(ikey.user_key, ikey.sequence, kTypeValue);
|
|
238
242
|
key_after_flush = key_after_flush_buf;
|
|
@@ -249,6 +253,10 @@ Status BuildTable(
|
|
|
249
253
|
}
|
|
250
254
|
builder->Add(key_after_flush, value_after_flush);
|
|
251
255
|
|
|
256
|
+
if (flush_stats) {
|
|
257
|
+
flush_stats->num_output_records++;
|
|
258
|
+
}
|
|
259
|
+
|
|
252
260
|
s = meta->UpdateBoundaries(key_after_flush, value_after_flush,
|
|
253
261
|
ikey.sequence, ikey.type);
|
|
254
262
|
if (!s.ok()) {
|
|
@@ -280,6 +288,9 @@ Status BuildTable(
|
|
|
280
288
|
auto tombstone = range_del_it->Tombstone();
|
|
281
289
|
std::pair<InternalKey, Slice> kv = tombstone.Serialize();
|
|
282
290
|
builder->Add(kv.first.Encode(), kv.second);
|
|
291
|
+
if (flush_stats) {
|
|
292
|
+
flush_stats->num_output_records++;
|
|
293
|
+
}
|
|
283
294
|
InternalKey tombstone_end = tombstone.SerializeEndKey();
|
|
284
295
|
meta->UpdateBoundariesForRange(kv.first, tombstone_end, tombstone.seq_,
|
|
285
296
|
tboptions.internal_comparator);
|
|
@@ -301,9 +312,9 @@ Status BuildTable(
|
|
|
301
312
|
|
|
302
313
|
TEST_SYNC_POINT("BuildTable:BeforeFinishBuildTable");
|
|
303
314
|
const bool empty = builder->IsEmpty();
|
|
304
|
-
if (
|
|
315
|
+
if (flush_stats) {
|
|
305
316
|
assert(c_iter.HasNumInputEntryScanned());
|
|
306
|
-
|
|
317
|
+
flush_stats->num_input_records =
|
|
307
318
|
c_iter.NumInputEntryScanned() + num_unfragmented_tombstones;
|
|
308
319
|
}
|
|
309
320
|
if (!s.ok() || empty) {
|
|
@@ -330,6 +341,9 @@ Status BuildTable(
|
|
|
330
341
|
}
|
|
331
342
|
|
|
332
343
|
if (s.ok() && !empty) {
|
|
344
|
+
if (flush_stats) {
|
|
345
|
+
flush_stats->bytes_written_pre_comp = builder->PreCompressionSize();
|
|
346
|
+
}
|
|
333
347
|
uint64_t file_size = builder->FileSize();
|
|
334
348
|
meta->fd.file_size = file_size;
|
|
335
349
|
meta->tail_size = builder->GetTailSize();
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#include <utility>
|
|
11
11
|
#include <vector>
|
|
12
12
|
|
|
13
|
+
#include "db/internal_stats.h"
|
|
13
14
|
#include "db/range_tombstone_fragmenter.h"
|
|
14
15
|
#include "db/seqno_to_time_mapping.h"
|
|
15
16
|
#include "db/table_properties_collector.h"
|
|
@@ -34,7 +35,6 @@ class SnapshotChecker;
|
|
|
34
35
|
class TableCache;
|
|
35
36
|
class TableBuilder;
|
|
36
37
|
class WritableFileWriter;
|
|
37
|
-
class InternalStats;
|
|
38
38
|
class BlobFileCompletionCallback;
|
|
39
39
|
|
|
40
40
|
// Convenience function for NewTableBuilder on the embedded table_factory.
|
|
@@ -49,6 +49,7 @@ TableBuilder* NewTableBuilder(const TableBuilderOptions& tboptions,
|
|
|
49
49
|
//
|
|
50
50
|
// @param column_family_name Name of the column family that is also identified
|
|
51
51
|
// by column_family_id, or empty string if unknown.
|
|
52
|
+
// @param flush_stats treat flush as level 0 compaction in internal stats
|
|
52
53
|
Status BuildTable(
|
|
53
54
|
const std::string& dbname, VersionSet* versions,
|
|
54
55
|
const ImmutableDBOptions& db_options, const TableBuilderOptions& tboptions,
|
|
@@ -69,8 +70,8 @@ Status BuildTable(
|
|
|
69
70
|
Env::WriteLifeTimeHint write_hint = Env::WLTH_NOT_SET,
|
|
70
71
|
const std::string* full_history_ts_low = nullptr,
|
|
71
72
|
BlobFileCompletionCallback* blob_callback = nullptr,
|
|
72
|
-
Version* version = nullptr, uint64_t*
|
|
73
|
-
uint64_t*
|
|
74
|
-
|
|
73
|
+
Version* version = nullptr, uint64_t* memtable_payload_bytes = nullptr,
|
|
74
|
+
uint64_t* memtable_garbage_bytes = nullptr,
|
|
75
|
+
InternalStats::CompactionStats* flush_stats = nullptr);
|
|
75
76
|
|
|
76
77
|
} // namespace ROCKSDB_NAMESPACE
|