@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
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
#include "db/db_test_util.h"
|
|
7
7
|
#include "port/stack_trace.h"
|
|
8
|
+
#include "rocksdb/merge_operator.h"
|
|
8
9
|
#include "rocksdb/perf_context.h"
|
|
9
10
|
#include "rocksdb/utilities/debug.h"
|
|
10
11
|
#include "table/block_based/block_builder.h"
|
|
11
12
|
#include "test_util/sync_point.h"
|
|
12
|
-
#include "rocksdb/merge_operator.h"
|
|
13
13
|
#include "utilities/fault_injection_env.h"
|
|
14
14
|
#include "utilities/merge_operators.h"
|
|
15
15
|
#include "utilities/merge_operators/sortlist.h"
|
|
@@ -120,8 +120,11 @@ TEST_F(DBMergeOperandTest, FlushedMergeOperandReadAfterFreeBug) {
|
|
|
120
120
|
|
|
121
121
|
TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
|
|
122
122
|
Options options = CurrentOptions();
|
|
123
|
+
|
|
124
|
+
int limit = 2;
|
|
123
125
|
// Use only the latest two merge operands.
|
|
124
|
-
options.merge_operator =
|
|
126
|
+
options.merge_operator =
|
|
127
|
+
std::make_shared<LimitedStringAppendMergeOp>(limit, ',');
|
|
125
128
|
Reopen(options);
|
|
126
129
|
int num_records = 4;
|
|
127
130
|
int number_of_operands = 0;
|
|
@@ -263,6 +266,7 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
|
|
|
263
266
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
264
267
|
"k3.2", values.data(), &merge_operands_info,
|
|
265
268
|
&number_of_operands));
|
|
269
|
+
ASSERT_EQ(number_of_operands, 2);
|
|
266
270
|
ASSERT_EQ(values[0], "cd");
|
|
267
271
|
ASSERT_EQ(values[1], "de");
|
|
268
272
|
|
|
@@ -280,6 +284,7 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
|
|
|
280
284
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
281
285
|
"k4", values.data(), &merge_operands_info,
|
|
282
286
|
&number_of_operands));
|
|
287
|
+
ASSERT_EQ(number_of_operands, 4);
|
|
283
288
|
ASSERT_EQ(values[0], "ba");
|
|
284
289
|
ASSERT_EQ(values[1], "cb");
|
|
285
290
|
ASSERT_EQ(values[2], "dc");
|
|
@@ -299,9 +304,26 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
|
|
|
299
304
|
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
300
305
|
"k5", values.data(), &merge_operands_info,
|
|
301
306
|
&number_of_operands));
|
|
307
|
+
ASSERT_EQ(number_of_operands, 4);
|
|
302
308
|
ASSERT_EQ(values[0], "remember");
|
|
303
309
|
ASSERT_EQ(values[1], "i");
|
|
304
310
|
ASSERT_EQ(values[2], "am");
|
|
311
|
+
ASSERT_EQ(values[3], "rocks");
|
|
312
|
+
|
|
313
|
+
// GetMergeOperands() in ReadOnly DB
|
|
314
|
+
ASSERT_OK(Merge("k6", "better"));
|
|
315
|
+
ASSERT_OK(Merge("k6", "call"));
|
|
316
|
+
ASSERT_OK(Merge("k6", "saul"));
|
|
317
|
+
|
|
318
|
+
ASSERT_OK(ReadOnlyReopen(options));
|
|
319
|
+
std::vector<PinnableSlice> readonly_values(num_records);
|
|
320
|
+
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
321
|
+
"k6", readonly_values.data(),
|
|
322
|
+
&merge_operands_info, &number_of_operands));
|
|
323
|
+
ASSERT_EQ(number_of_operands, 3);
|
|
324
|
+
ASSERT_EQ(readonly_values[0], "better");
|
|
325
|
+
ASSERT_EQ(readonly_values[1], "call");
|
|
326
|
+
ASSERT_EQ(readonly_values[2], "saul");
|
|
305
327
|
}
|
|
306
328
|
|
|
307
329
|
TEST_F(DBMergeOperandTest, BlobDBGetMergeOperandsBasic) {
|
|
@@ -577,6 +599,42 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBaseDeletionInImmMem) {
|
|
|
577
599
|
}
|
|
578
600
|
}
|
|
579
601
|
|
|
602
|
+
TEST_F(DBMergeOperandTest, GetMergeOperandCallbackStopAtImm) {
|
|
603
|
+
Options options = CurrentOptions();
|
|
604
|
+
options.max_write_buffer_number = 10;
|
|
605
|
+
options.merge_operator = MergeOperators::CreateStringAppendOperator();
|
|
606
|
+
DestroyAndReopen(options);
|
|
607
|
+
|
|
608
|
+
Random rnd(301);
|
|
609
|
+
ASSERT_OK(db_->PauseBackgroundWork());
|
|
610
|
+
ASSERT_OK(Merge("key", "v1"));
|
|
611
|
+
ASSERT_OK(dbfull()->TEST_SwitchMemtable());
|
|
612
|
+
// Keep this merge in an immutable memtable
|
|
613
|
+
uint64_t num_imm = 0;
|
|
614
|
+
ASSERT_TRUE(
|
|
615
|
+
db_->GetIntProperty(DB::Properties::kNumImmutableMemTable, &num_imm));
|
|
616
|
+
ASSERT_EQ(num_imm, 1);
|
|
617
|
+
ASSERT_OK(Merge("key", "v2"));
|
|
618
|
+
|
|
619
|
+
std::vector<PinnableSlice> merge_operands(2);
|
|
620
|
+
GetMergeOperandsOptions merge_operands_info;
|
|
621
|
+
merge_operands_info.expected_max_number_of_operands = 2;
|
|
622
|
+
int num_fetched = 0;
|
|
623
|
+
merge_operands_info.continue_cb = [&num_fetched](Slice /* value */) {
|
|
624
|
+
num_fetched++;
|
|
625
|
+
// Stop in the first immutable memtable.
|
|
626
|
+
return num_fetched < 2;
|
|
627
|
+
};
|
|
628
|
+
int num_merge_operands = 0;
|
|
629
|
+
ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
|
|
630
|
+
"key", merge_operands.data(),
|
|
631
|
+
&merge_operands_info, &num_merge_operands));
|
|
632
|
+
ASSERT_EQ(2, num_merge_operands);
|
|
633
|
+
ASSERT_EQ(2, num_fetched);
|
|
634
|
+
|
|
635
|
+
ASSERT_EQ("v1", merge_operands[0]);
|
|
636
|
+
ASSERT_EQ("v2", merge_operands[1]);
|
|
637
|
+
}
|
|
580
638
|
} // namespace ROCKSDB_NAMESPACE
|
|
581
639
|
|
|
582
640
|
int main(int argc, char** argv) {
|
|
@@ -120,6 +120,10 @@ TEST_F(DBMergeOperatorTest, LimitMergeOperands) {
|
|
|
120
120
|
ASSERT_OK(Merge("k3", "de"));
|
|
121
121
|
ASSERT_OK(db_->Get(ReadOptions(), "k3", &value));
|
|
122
122
|
ASSERT_EQ(value, "cd,de");
|
|
123
|
+
// Tests that merge operands reach exact limit at memtable.
|
|
124
|
+
ASSERT_OK(Merge("k3", "fg"));
|
|
125
|
+
ASSERT_OK(db_->Get(ReadOptions(), "k3", &value));
|
|
126
|
+
ASSERT_EQ(value, "de,fg");
|
|
123
127
|
|
|
124
128
|
// All K4 values are in different levels
|
|
125
129
|
ASSERT_OK(Merge("k4", "ab"));
|
|
@@ -967,7 +971,7 @@ TEST_F(DBMergeOperatorTest, MaxSuccessiveMergesBaseValues) {
|
|
|
967
971
|
|
|
968
972
|
// No base value
|
|
969
973
|
{
|
|
970
|
-
|
|
974
|
+
const std::string key = "key1";
|
|
971
975
|
|
|
972
976
|
ASSERT_OK(db_->Merge(WriteOptions(), db_->DefaultColumnFamily(), key, foo));
|
|
973
977
|
ASSERT_OK(db_->Merge(WriteOptions(), db_->DefaultColumnFamily(), key, bar));
|
|
@@ -990,7 +994,7 @@ TEST_F(DBMergeOperatorTest, MaxSuccessiveMergesBaseValues) {
|
|
|
990
994
|
|
|
991
995
|
// Plain base value
|
|
992
996
|
{
|
|
993
|
-
|
|
997
|
+
const std::string key = "key2";
|
|
994
998
|
|
|
995
999
|
ASSERT_OK(db_->Put(WriteOptions(), db_->DefaultColumnFamily(), key, foo));
|
|
996
1000
|
ASSERT_OK(db_->Merge(WriteOptions(), db_->DefaultColumnFamily(), key, bar));
|
|
@@ -1015,7 +1019,7 @@ TEST_F(DBMergeOperatorTest, MaxSuccessiveMergesBaseValues) {
|
|
|
1015
1019
|
|
|
1016
1020
|
// Wide-column base value
|
|
1017
1021
|
{
|
|
1018
|
-
|
|
1022
|
+
const std::string key = "key3";
|
|
1019
1023
|
const WideColumns columns{{kDefaultWideColumnName, foo}, {bar, baz}};
|
|
1020
1024
|
|
|
1021
1025
|
ASSERT_OK(db_->PutEntity(WriteOptions(), db_->DefaultColumnFamily(), key,
|
|
@@ -70,7 +70,8 @@ class DBOptionsTest : public DBTestBase {
|
|
|
70
70
|
options.env = env_;
|
|
71
71
|
ImmutableDBOptions db_options(options);
|
|
72
72
|
test::RandomInitCFOptions(&options, options, rnd);
|
|
73
|
-
auto sanitized_options =
|
|
73
|
+
auto sanitized_options =
|
|
74
|
+
SanitizeCfOptions(db_options, /*read_only*/ false, options);
|
|
74
75
|
auto opt_map = GetMutableCFOptionsMap(sanitized_options);
|
|
75
76
|
delete options.compaction_filter;
|
|
76
77
|
return opt_map;
|
|
@@ -321,31 +322,26 @@ TEST_F(DBOptionsTest, SetWithCustomMemTableFactory) {
|
|
|
321
322
|
}
|
|
322
323
|
Options options;
|
|
323
324
|
options.create_if_missing = true;
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
DummySkipListFactory::kClassName());
|
|
345
|
-
|
|
346
|
-
ASSERT_OK(dbfull()->DropColumnFamily(test));
|
|
347
|
-
delete test;
|
|
348
|
-
}
|
|
325
|
+
options.env = env_;
|
|
326
|
+
options.disable_auto_compactions = false;
|
|
327
|
+
|
|
328
|
+
options.memtable_factory.reset(new DummySkipListFactory());
|
|
329
|
+
Reopen(options);
|
|
330
|
+
|
|
331
|
+
ColumnFamilyHandle* cfh = dbfull()->DefaultColumnFamily();
|
|
332
|
+
ASSERT_OK(dbfull()->SetOptions(cfh, {{"disable_auto_compactions", "true"}}));
|
|
333
|
+
ColumnFamilyDescriptor cfd;
|
|
334
|
+
ASSERT_OK(cfh->GetDescriptor(&cfd));
|
|
335
|
+
ASSERT_STREQ(cfd.options.memtable_factory->Name(),
|
|
336
|
+
DummySkipListFactory::kClassName());
|
|
337
|
+
ColumnFamilyHandle* test = nullptr;
|
|
338
|
+
ASSERT_OK(dbfull()->CreateColumnFamily(options, "test", &test));
|
|
339
|
+
ASSERT_OK(test->GetDescriptor(&cfd));
|
|
340
|
+
ASSERT_STREQ(cfd.options.memtable_factory->Name(),
|
|
341
|
+
DummySkipListFactory::kClassName());
|
|
342
|
+
|
|
343
|
+
ASSERT_OK(dbfull()->DropColumnFamily(test));
|
|
344
|
+
delete test;
|
|
349
345
|
}
|
|
350
346
|
|
|
351
347
|
TEST_F(DBOptionsTest, SetBytesPerSync) {
|
|
@@ -1451,7 +1447,6 @@ TEST_F(DBOptionsTest, ChangeCompression) {
|
|
|
1451
1447
|
SyncPoint::GetInstance()->DisableProcessing();
|
|
1452
1448
|
}
|
|
1453
1449
|
|
|
1454
|
-
|
|
1455
1450
|
TEST_F(DBOptionsTest, BottommostCompressionOptsWithFallbackType) {
|
|
1456
1451
|
// Verify the bottommost compression options still take effect even when the
|
|
1457
1452
|
// bottommost compression type is left at its default value. Verify for both
|
|
@@ -1596,6 +1591,69 @@ TEST_F(DBOptionsTest, TempOptionsFailTest) {
|
|
|
1596
1591
|
ASSERT_FALSE(found_temp_file);
|
|
1597
1592
|
}
|
|
1598
1593
|
|
|
1594
|
+
TEST_F(DBOptionsTest, SetOptionsNoManifestWrite) {
|
|
1595
|
+
ASSERT_OK(Put("x", "x"));
|
|
1596
|
+
ASSERT_OK(Flush());
|
|
1597
|
+
|
|
1598
|
+
// In addition to checking manifest file, we want to ensure that SetOptions
|
|
1599
|
+
// is essentially atomic, without releasing the DB mutex between applying
|
|
1600
|
+
// the options to the cfd and installing new Version and SuperVersion. We
|
|
1601
|
+
// probabilistically verify that by attempting to catch an inconsistency.
|
|
1602
|
+
auto* const cfd =
|
|
1603
|
+
static_cast<ColumnFamilyHandleImpl*>(db_->DefaultColumnFamily())->cfd();
|
|
1604
|
+
SyncPoint::GetInstance()->DisableProcessing();
|
|
1605
|
+
SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
1606
|
+
std::optional<std::thread> t;
|
|
1607
|
+
SyncPoint::GetInstance()->SetCallBack(
|
|
1608
|
+
"VersionSet::LogAndApply:WakeUpAndNotDone", [&](void* arg) {
|
|
1609
|
+
auto* mu = static_cast<InstrumentedMutex*>(arg);
|
|
1610
|
+
// Option not yet modified
|
|
1611
|
+
ASSERT_FALSE(cfd->GetLatestMutableCFOptions().disable_auto_compactions);
|
|
1612
|
+
ASSERT_FALSE(
|
|
1613
|
+
cfd->current()->GetMutableCFOptions().disable_auto_compactions);
|
|
1614
|
+
ASSERT_FALSE(
|
|
1615
|
+
cfd->GetCurrentMutableCFOptions().disable_auto_compactions);
|
|
1616
|
+
t = std::thread([mu, cfd]() {
|
|
1617
|
+
InstrumentedMutexLock l(mu);
|
|
1618
|
+
// Assuming above correctness, we can only acquire the mutex after
|
|
1619
|
+
// options fully installed.
|
|
1620
|
+
ASSERT_TRUE(
|
|
1621
|
+
cfd->GetLatestMutableCFOptions().disable_auto_compactions);
|
|
1622
|
+
ASSERT_TRUE(
|
|
1623
|
+
cfd->current()->GetMutableCFOptions().disable_auto_compactions);
|
|
1624
|
+
ASSERT_TRUE(
|
|
1625
|
+
cfd->GetCurrentMutableCFOptions().disable_auto_compactions);
|
|
1626
|
+
});
|
|
1627
|
+
});
|
|
1628
|
+
SyncPoint::GetInstance()->EnableProcessing();
|
|
1629
|
+
|
|
1630
|
+
// Baseline manifest file info
|
|
1631
|
+
std::vector<std::string> live_files;
|
|
1632
|
+
uint64_t orig_manifest_file_size;
|
|
1633
|
+
ASSERT_OK(dbfull()->GetLiveFiles(live_files, &orig_manifest_file_size));
|
|
1634
|
+
uint64_t orig_manifest_file_num = dbfull()->TEST_Current_Manifest_FileNo();
|
|
1635
|
+
|
|
1636
|
+
// Although this test mostly concerns SetOptions, we also include SetDBOptions
|
|
1637
|
+
// just for the added scope
|
|
1638
|
+
ASSERT_OK(db_->SetDBOptions({{"max_open_files", "100"}}));
|
|
1639
|
+
ASSERT_OK(db_->SetOptions({{"disable_auto_compactions", "true"}}));
|
|
1640
|
+
|
|
1641
|
+
// Verify that our above check was activated and completed
|
|
1642
|
+
ASSERT_TRUE(t.has_value());
|
|
1643
|
+
t->join();
|
|
1644
|
+
SyncPoint::GetInstance()->DisableProcessing();
|
|
1645
|
+
SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
1646
|
+
|
|
1647
|
+
// Verify manifest was not written to
|
|
1648
|
+
uint64_t new_manifest_file_size;
|
|
1649
|
+
ASSERT_OK(dbfull()->GetLiveFiles(live_files, &new_manifest_file_size));
|
|
1650
|
+
uint64_t new_manifest_file_num = dbfull()->TEST_Current_Manifest_FileNo();
|
|
1651
|
+
ASSERT_EQ(orig_manifest_file_num, new_manifest_file_num);
|
|
1652
|
+
ASSERT_EQ(orig_manifest_file_size, new_manifest_file_size);
|
|
1653
|
+
|
|
1654
|
+
ASSERT_EQ(Get("x"), "x");
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1599
1657
|
} // namespace ROCKSDB_NAMESPACE
|
|
1600
1658
|
|
|
1601
1659
|
int main(int argc, char** argv) {
|
|
@@ -377,6 +377,8 @@ TEST_F(DBPropertiesTest, AggregatedTableProperties) {
|
|
|
377
377
|
NewBloomFilterPolicy(kBloomBitsPerKey, false));
|
|
378
378
|
table_options.block_size = 1024;
|
|
379
379
|
options.table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
380
|
+
// The checks assume kTableCount number of files
|
|
381
|
+
options.disable_auto_compactions = true;
|
|
380
382
|
|
|
381
383
|
DestroyAndReopen(options);
|
|
382
384
|
|
|
@@ -567,7 +569,7 @@ TEST_F(DBPropertiesTest, AggregatedTablePropertiesAtLevel) {
|
|
|
567
569
|
options.target_file_size_base = 8192;
|
|
568
570
|
options.max_bytes_for_level_base = 10000;
|
|
569
571
|
options.max_bytes_for_level_multiplier = 2;
|
|
570
|
-
//
|
|
572
|
+
// The checks assume kTableCount number of files
|
|
571
573
|
options.disable_auto_compactions = true;
|
|
572
574
|
options.merge_operator.reset(new TestPutOperator());
|
|
573
575
|
|
|
@@ -226,7 +226,6 @@ TEST_P(DBRateLimiterOnReadTest, Iterator) {
|
|
|
226
226
|
ASSERT_EQ(expected, options_.rate_limiter->GetTotalRequests(Env::IO_USER));
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
|
|
230
229
|
TEST_P(DBRateLimiterOnReadTest, VerifyChecksum) {
|
|
231
230
|
if (use_direct_io_ && !IsDirectIOSupported()) {
|
|
232
231
|
return;
|
|
@@ -271,7 +270,6 @@ TEST_P(DBRateLimiterOnReadTest, VerifyFileChecksums) {
|
|
|
271
270
|
ASSERT_EQ(expected, options_.rate_limiter->GetTotalRequests(Env::IO_USER));
|
|
272
271
|
}
|
|
273
272
|
|
|
274
|
-
|
|
275
273
|
class DBRateLimiterOnWriteTest : public DBTestBase {
|
|
276
274
|
public:
|
|
277
275
|
explicit DBRateLimiterOnWriteTest()
|
|
@@ -14,10 +14,9 @@
|
|
|
14
14
|
#include "rocksdb/utilities/transaction_db.h"
|
|
15
15
|
#include "test_util/sync_point.h"
|
|
16
16
|
#include "test_util/testutil.h"
|
|
17
|
-
#include "utilities/
|
|
17
|
+
#include "utilities/merge_operators/string_append/stringappend2.h"
|
|
18
18
|
|
|
19
19
|
namespace ROCKSDB_NAMESPACE {
|
|
20
|
-
|
|
21
20
|
class DBSecondaryTestBase : public DBBasicTestWithTimestampBase {
|
|
22
21
|
public:
|
|
23
22
|
explicit DBSecondaryTestBase(const std::string& dbname)
|
|
@@ -161,6 +160,7 @@ TEST_F(DBSecondaryTest, NonExistingDb) {
|
|
|
161
160
|
TEST_F(DBSecondaryTest, ReopenAsSecondary) {
|
|
162
161
|
Options options;
|
|
163
162
|
options.env = env_;
|
|
163
|
+
options.preserve_internal_time_seconds = 300;
|
|
164
164
|
Reopen(options);
|
|
165
165
|
ASSERT_OK(Put("foo", "foo_value"));
|
|
166
166
|
ASSERT_OK(Put("bar", "bar_value"));
|
|
@@ -331,6 +331,43 @@ TEST_F(DBSecondaryTest, InternalCompactionMultiLevels) {
|
|
|
331
331
|
// cfh, input1, &result));
|
|
332
332
|
}
|
|
333
333
|
|
|
334
|
+
TEST_F(DBSecondaryTest, GetMergeOperands) {
|
|
335
|
+
Options options;
|
|
336
|
+
options.merge_operator = MergeOperators::CreateStringAppendOperator();
|
|
337
|
+
options.env = env_;
|
|
338
|
+
Reopen(options);
|
|
339
|
+
|
|
340
|
+
ASSERT_OK(Merge("k1", "v1"));
|
|
341
|
+
ASSERT_OK(Merge("k1", "v2"));
|
|
342
|
+
ASSERT_OK(Merge("k1", "v3"));
|
|
343
|
+
ASSERT_OK(Merge("k1", "v4"));
|
|
344
|
+
|
|
345
|
+
options.max_open_files = -1;
|
|
346
|
+
OpenSecondary(options);
|
|
347
|
+
|
|
348
|
+
ASSERT_OK(db_secondary_->TryCatchUpWithPrimary());
|
|
349
|
+
|
|
350
|
+
int num_records = 4;
|
|
351
|
+
int number_of_operands = 0;
|
|
352
|
+
std::vector<PinnableSlice> values(num_records);
|
|
353
|
+
GetMergeOperandsOptions merge_operands_info;
|
|
354
|
+
merge_operands_info.expected_max_number_of_operands = num_records;
|
|
355
|
+
|
|
356
|
+
auto cfh = db_secondary_->DefaultColumnFamily();
|
|
357
|
+
|
|
358
|
+
const Status s = db_secondary_->GetMergeOperands(
|
|
359
|
+
ReadOptions(), cfh, "k1", values.data(), &merge_operands_info,
|
|
360
|
+
&number_of_operands);
|
|
361
|
+
ASSERT_NOK(s);
|
|
362
|
+
ASSERT_TRUE(s.IsMergeInProgress());
|
|
363
|
+
|
|
364
|
+
ASSERT_EQ(number_of_operands, 4);
|
|
365
|
+
ASSERT_EQ(values[0].ToString(), "v1");
|
|
366
|
+
ASSERT_EQ(values[1].ToString(), "v2");
|
|
367
|
+
ASSERT_EQ(values[2].ToString(), "v3");
|
|
368
|
+
ASSERT_EQ(values[3].ToString(), "v4");
|
|
369
|
+
}
|
|
370
|
+
|
|
334
371
|
TEST_F(DBSecondaryTest, InternalCompactionCompactedFiles) {
|
|
335
372
|
Options options;
|
|
336
373
|
options.env = env_;
|
|
@@ -471,6 +508,81 @@ TEST_F(DBSecondaryTest, OpenAsSecondary) {
|
|
|
471
508
|
verify_db_func("new_foo_value", "new_bar_value");
|
|
472
509
|
}
|
|
473
510
|
|
|
511
|
+
TEST_F(DBSecondaryTest, OptionsOverrideTest) {
|
|
512
|
+
Options options;
|
|
513
|
+
options.env = env_;
|
|
514
|
+
options.preserve_internal_time_seconds = 300;
|
|
515
|
+
options.compaction_readahead_size = 200;
|
|
516
|
+
options.blob_compaction_readahead_size = 100;
|
|
517
|
+
Reopen(options);
|
|
518
|
+
|
|
519
|
+
for (int i = 0; i < 3; ++i) {
|
|
520
|
+
ASSERT_OK(Put("foo", "foo_value" + std::to_string(i)));
|
|
521
|
+
ASSERT_OK(Put("bar", "bar_value" + std::to_string(i)));
|
|
522
|
+
ASSERT_OK(Flush());
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
CompactionServiceInput input;
|
|
526
|
+
|
|
527
|
+
ColumnFamilyMetaData meta;
|
|
528
|
+
db_->GetColumnFamilyMetaData(&meta);
|
|
529
|
+
for (auto& file : meta.levels[0].files) {
|
|
530
|
+
ASSERT_EQ(0, meta.levels[0].level);
|
|
531
|
+
input.input_files.push_back(file.name);
|
|
532
|
+
}
|
|
533
|
+
ASSERT_EQ(input.input_files.size(), 3);
|
|
534
|
+
|
|
535
|
+
input.output_level = 1;
|
|
536
|
+
input.options_file_number = dbfull()->GetVersionSet()->options_file_number();
|
|
537
|
+
input.cf_name = kDefaultColumnFamilyName;
|
|
538
|
+
ASSERT_OK(db_->GetDbIdentity(input.db_id));
|
|
539
|
+
|
|
540
|
+
ASSERT_EQ(db_->GetOptions().compaction_readahead_size, 200);
|
|
541
|
+
ASSERT_EQ(db_->GetOptions().blob_compaction_readahead_size, 100);
|
|
542
|
+
|
|
543
|
+
Close();
|
|
544
|
+
|
|
545
|
+
std::string compaction_input_binary;
|
|
546
|
+
ASSERT_OK(input.Write(&compaction_input_binary));
|
|
547
|
+
std::string compaction_result_binary;
|
|
548
|
+
|
|
549
|
+
CompactionServiceOptionsOverride override_options;
|
|
550
|
+
override_options.env = env_;
|
|
551
|
+
override_options.table_factory.reset(
|
|
552
|
+
NewBlockBasedTableFactory(BlockBasedTableOptions()));
|
|
553
|
+
|
|
554
|
+
ASSERT_OK(
|
|
555
|
+
StringToMap("compaction_readahead_size=8388608;"
|
|
556
|
+
"blob_compaction_readahead_size=4194304;"
|
|
557
|
+
"some_invalid_option=ignore_me;"
|
|
558
|
+
"env=this_should_not_fail;"
|
|
559
|
+
"max_open_files=100;", // this should be always overriden as
|
|
560
|
+
// -1 in remote compaction
|
|
561
|
+
&override_options.options_map));
|
|
562
|
+
|
|
563
|
+
bool verified = false;
|
|
564
|
+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
565
|
+
"DBImplSecondary::OpenAndCompact::AfterOpenAsSecondary:0",
|
|
566
|
+
[&](void* arg) {
|
|
567
|
+
auto secondary_db = static_cast<DB*>(arg);
|
|
568
|
+
auto secondary_db_options = secondary_db->GetOptions();
|
|
569
|
+
// DBOption
|
|
570
|
+
ASSERT_EQ(secondary_db_options.compaction_readahead_size, 8388608);
|
|
571
|
+
ASSERT_EQ(secondary_db_options.max_open_files, -1);
|
|
572
|
+
// CFOption
|
|
573
|
+
ASSERT_EQ(secondary_db_options.blob_compaction_readahead_size, 4194304);
|
|
574
|
+
verified = true;
|
|
575
|
+
});
|
|
576
|
+
SyncPoint::GetInstance()->EnableProcessing();
|
|
577
|
+
|
|
578
|
+
ASSERT_OK(DB::OpenAndCompact(OpenAndCompactOptions(), dbname_,
|
|
579
|
+
secondary_path_, compaction_input_binary,
|
|
580
|
+
&compaction_result_binary, override_options));
|
|
581
|
+
SyncPoint::GetInstance()->DisableProcessing();
|
|
582
|
+
SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
583
|
+
ASSERT_TRUE(verified);
|
|
584
|
+
}
|
|
585
|
+
|
|
474
586
|
namespace {
|
|
475
587
|
class TraceFileEnv : public EnvWrapper {
|
|
476
588
|
public:
|
|
@@ -198,7 +198,6 @@ TEST_F(DBStatisticsTest, ExcludeTickers) {
|
|
|
198
198
|
ASSERT_GT(options.statistics->getTickerCount(BYTES_READ), 0);
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
-
|
|
202
201
|
TEST_F(DBStatisticsTest, VerifyChecksumReadStat) {
|
|
203
202
|
Options options = CurrentOptions();
|
|
204
203
|
options.file_checksum_gen_factory = GetFileChecksumGenCrc32cFactory();
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
#include "util/atomic.h"
|
|
26
26
|
#include "util/random.h"
|
|
27
27
|
|
|
28
|
-
|
|
29
28
|
namespace ROCKSDB_NAMESPACE {
|
|
30
29
|
|
|
31
30
|
// A helper function that ensures the table properties returned in
|
|
@@ -230,6 +229,56 @@ TEST_F(DBTablePropertiesTest, CreateOnDeletionCollectorFactory) {
|
|
|
230
229
|
ASSERT_EQ(0.5, del_factory->GetDeletionRatio());
|
|
231
230
|
}
|
|
232
231
|
|
|
232
|
+
TEST_F(DBTablePropertiesTest, GetPropertiesOfTablesByLevelTest) {
|
|
233
|
+
Random rnd(202);
|
|
234
|
+
Options options;
|
|
235
|
+
options.level_compaction_dynamic_level_bytes = false;
|
|
236
|
+
options.create_if_missing = true;
|
|
237
|
+
options.write_buffer_size = 4096;
|
|
238
|
+
options.max_write_buffer_number = 2;
|
|
239
|
+
options.level0_file_num_compaction_trigger = 2;
|
|
240
|
+
options.level0_slowdown_writes_trigger = 2;
|
|
241
|
+
options.level0_stop_writes_trigger = 2;
|
|
242
|
+
options.target_file_size_base = 2048;
|
|
243
|
+
options.max_bytes_for_level_base = 40960;
|
|
244
|
+
options.max_bytes_for_level_multiplier = 4;
|
|
245
|
+
options.hard_pending_compaction_bytes_limit = 16 * 1024;
|
|
246
|
+
options.num_levels = 8;
|
|
247
|
+
options.env = env_;
|
|
248
|
+
|
|
249
|
+
DestroyAndReopen(options);
|
|
250
|
+
|
|
251
|
+
// build a decent LSM
|
|
252
|
+
for (int i = 0; i < 10000; i++) {
|
|
253
|
+
EXPECT_OK(Put(test::RandomKey(&rnd, 5), rnd.RandomString(102)));
|
|
254
|
+
}
|
|
255
|
+
ASSERT_OK(Flush());
|
|
256
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
257
|
+
if (NumTableFilesAtLevel(0) == 0) {
|
|
258
|
+
EXPECT_OK(Put(test::RandomKey(&rnd, 5), rnd.RandomString(102)));
|
|
259
|
+
ASSERT_OK(Flush());
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
ASSERT_OK(db_->PauseBackgroundWork());
|
|
263
|
+
|
|
264
|
+
// Ensure that we have at least L0, L1 and L2
|
|
265
|
+
ASSERT_GT(NumTableFilesAtLevel(0), 0);
|
|
266
|
+
ASSERT_GT(NumTableFilesAtLevel(1), 0);
|
|
267
|
+
ASSERT_GT(NumTableFilesAtLevel(2), 0);
|
|
268
|
+
ColumnFamilyMetaData cf_meta;
|
|
269
|
+
db_->GetColumnFamilyMetaData(&cf_meta);
|
|
270
|
+
std::vector<std::unique_ptr<TablePropertiesCollection>> levels_props;
|
|
271
|
+
ASSERT_OK(db_->GetPropertiesOfTablesByLevel(db_->DefaultColumnFamily(),
|
|
272
|
+
&levels_props));
|
|
273
|
+
for (int i = 0; i < 8; i++) {
|
|
274
|
+
const std::unique_ptr<TablePropertiesCollection>& level_props =
|
|
275
|
+
levels_props[i];
|
|
276
|
+
ASSERT_EQ(level_props->size(), cf_meta.levels[i].files.size());
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
Close();
|
|
280
|
+
}
|
|
281
|
+
|
|
233
282
|
// Test params:
|
|
234
283
|
// 1) whether to enable user-defined timestamps
|
|
235
284
|
class DBTablePropertiesInRangeTest : public DBTestBase,
|
|
@@ -293,7 +342,7 @@ class DBTablePropertiesInRangeTest : public DBTestBase,
|
|
|
293
342
|
keys.reserve(range_size * 2);
|
|
294
343
|
for (auto& r : ranges) {
|
|
295
344
|
auto [start, limit] = MaybeAddTimestampsToRange(
|
|
296
|
-
|
|
345
|
+
r.start, r.limit, ts_sz, &keys.emplace_back(), &keys.emplace_back(),
|
|
297
346
|
/*exclusive_end=*/false);
|
|
298
347
|
EXPECT_TRUE(start.has_value());
|
|
299
348
|
EXPECT_TRUE(limit.has_value());
|
|
@@ -744,7 +793,6 @@ INSTANTIATE_TEST_CASE_P(DBTablePropertiesTest, DBTablePropertiesTest,
|
|
|
744
793
|
|
|
745
794
|
} // namespace ROCKSDB_NAMESPACE
|
|
746
795
|
|
|
747
|
-
|
|
748
796
|
int main(int argc, char** argv) {
|
|
749
797
|
ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
|
|
750
798
|
::testing::InitGoogleTest(&argc, argv);
|