@nxtedition/rocksdb 8.2.7 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -1
- package/deps/rocksdb/rocksdb/Makefile +22 -19
- package/deps/rocksdb/rocksdb/TARGETS +8 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +157 -61
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +43 -92
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +632 -455
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +244 -149
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +41 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +11 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +216 -17
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +279 -199
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +159 -8
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +28 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +3 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +18 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/builder.cc +32 -7
- package/deps/rocksdb/rocksdb/db/c.cc +169 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +104 -6
- package/deps/rocksdb/rocksdb/db/column_family.cc +98 -47
- package/deps/rocksdb/rocksdb/db/column_family.h +25 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +213 -2
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +93 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +33 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +107 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +25 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +13 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +29 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +24 -31
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +19 -19
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +17 -3
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +15 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +666 -44
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +274 -1
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -19
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +250 -116
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +51 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +354 -96
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +26 -13
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +61 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +8 -87
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +7 -1
- package/deps/rocksdb/rocksdb/db/db_iter.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +39 -29
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +106 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +12 -3
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +279 -166
- package/deps/rocksdb/rocksdb/db/db_test.cc +48 -21
- package/deps/rocksdb/rocksdb/db/db_test2.cc +81 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +40 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +13 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +233 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +16 -0
- package/deps/rocksdb/rocksdb/db/error_handler.h +6 -3
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +101 -11
- package/deps/rocksdb/rocksdb/db/flush_job.h +24 -1
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +88 -11
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
- package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
- package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +52 -13
- package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +44 -10
- package/deps/rocksdb/rocksdb/db/memtable_list.h +32 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +90 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +21 -4
- package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/table_cache.cc +44 -35
- package/deps/rocksdb/rocksdb/db/table_cache.h +6 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
- package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
- package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
- package/deps/rocksdb/rocksdb/db/version_edit.h +48 -6
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
- package/deps/rocksdb/rocksdb/db/version_set.cc +136 -41
- package/deps/rocksdb/rocksdb/db/version_set.h +28 -7
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +25 -15
- package/deps/rocksdb/rocksdb/db/write_batch.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +22 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +32 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +7 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +247 -120
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +13 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +15 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +264 -69
- package/deps/rocksdb/rocksdb/env/env.cc +1 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +78 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +52 -43
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +34 -18
- package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
- package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +724 -79
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +64 -33
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +153 -88
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +70 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +50 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +16 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +55 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +32 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +90 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +85 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +13 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +21 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -1
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +16 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +10 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
- package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +2 -1
- package/deps/rocksdb/rocksdb/options/db_options.cc +7 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
- package/deps/rocksdb/rocksdb/options/options.cc +15 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +6 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +11 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +8 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +27 -12
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
- package/deps/rocksdb/rocksdb/src.mk +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
- package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +115 -42
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +6 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +60 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +62 -44
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +36 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -21
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +195 -55
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +27 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +9 -6
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +11 -11
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -0
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/format.cc +175 -33
- package/deps/rocksdb/rocksdb/table/format.h +63 -10
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +10 -2
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +12 -3
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +26 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
- package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +65 -26
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +8 -5
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
- package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
- package/deps/rocksdb/rocksdb/util/cast_util.h +14 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +29 -7
- package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +110 -32
- package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
- package/deps/rocksdb/rocksdb/util/hash.h +7 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
- package/deps/rocksdb/rocksdb/util/math.h +58 -6
- package/deps/rocksdb/rocksdb/util/math128.h +29 -7
- package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
- package/deps/rocksdb/rocksdb/util/thread_operation.h +8 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +343 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +173 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +447 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +69 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +231 -33
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +40 -23
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +13 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +7 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +41 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +71 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +39 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +14 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +2 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -697,7 +697,7 @@ TEST_F(DBTest, ReadFromPersistedTier) {
|
|
|
697
697
|
|
|
698
698
|
// 3rd round: delete and flush
|
|
699
699
|
ASSERT_OK(db_->Delete(wopt, handles_[1], "foo"));
|
|
700
|
-
Flush(1);
|
|
700
|
+
ASSERT_OK(Flush(1));
|
|
701
701
|
ASSERT_OK(db_->Delete(wopt, handles_[1], "bar"));
|
|
702
702
|
|
|
703
703
|
ASSERT_TRUE(db_->Get(ropt, handles_[1], "foo", &value).IsNotFound());
|
|
@@ -860,7 +860,7 @@ TEST_F(DBTest, DISABLED_VeryLargeValue) {
|
|
|
860
860
|
ASSERT_EQ('w', value[0]);
|
|
861
861
|
|
|
862
862
|
// Compact all files.
|
|
863
|
-
Flush();
|
|
863
|
+
ASSERT_OK(Flush());
|
|
864
864
|
db_->CompactRange(CompactRangeOptions(), nullptr, nullptr);
|
|
865
865
|
|
|
866
866
|
// Check DB is not in read-only state.
|
|
@@ -1300,7 +1300,7 @@ TEST_F(DBTest, MetaDataTest) {
|
|
|
1300
1300
|
options.disable_auto_compactions = true;
|
|
1301
1301
|
|
|
1302
1302
|
int64_t temp_time = 0;
|
|
1303
|
-
options.env->GetCurrentTime(&temp_time);
|
|
1303
|
+
ASSERT_OK(options.env->GetCurrentTime(&temp_time));
|
|
1304
1304
|
uint64_t start_time = static_cast<uint64_t>(temp_time);
|
|
1305
1305
|
|
|
1306
1306
|
DestroyAndReopen(options);
|
|
@@ -1329,7 +1329,7 @@ TEST_F(DBTest, MetaDataTest) {
|
|
|
1329
1329
|
std::vector<std::vector<FileMetaData>> files_by_level;
|
|
1330
1330
|
dbfull()->TEST_GetFilesMetaData(db_->DefaultColumnFamily(), &files_by_level);
|
|
1331
1331
|
|
|
1332
|
-
options.env->GetCurrentTime(&temp_time);
|
|
1332
|
+
ASSERT_OK(options.env->GetCurrentTime(&temp_time));
|
|
1333
1333
|
uint64_t end_time = static_cast<uint64_t>(temp_time);
|
|
1334
1334
|
|
|
1335
1335
|
ColumnFamilyMetaData cf_meta;
|
|
@@ -3097,7 +3097,7 @@ class ModelDB : public DB {
|
|
|
3097
3097
|
const ColumnFamilyOptions& /*options*/,
|
|
3098
3098
|
const std::string& /*column_family_name*/,
|
|
3099
3099
|
const ImportColumnFamilyOptions& /*import_options*/,
|
|
3100
|
-
const ExportImportFilesMetaData
|
|
3100
|
+
const std::vector<const ExportImportFilesMetaData*>& /*metadatas*/,
|
|
3101
3101
|
ColumnFamilyHandle** /*handle*/) override {
|
|
3102
3102
|
return Status::NotSupported("Not implemented.");
|
|
3103
3103
|
}
|
|
@@ -3264,6 +3264,11 @@ class ModelDB : public DB {
|
|
|
3264
3264
|
|
|
3265
3265
|
void DisableManualCompaction() override { return; }
|
|
3266
3266
|
|
|
3267
|
+
virtual Status WaitForCompact(
|
|
3268
|
+
const WaitForCompactOptions& /* wait_for_compact_options */) override {
|
|
3269
|
+
return Status::OK();
|
|
3270
|
+
}
|
|
3271
|
+
|
|
3267
3272
|
using DB::NumberLevels;
|
|
3268
3273
|
int NumberLevels(ColumnFamilyHandle* /*column_family*/) override { return 1; }
|
|
3269
3274
|
|
|
@@ -3643,7 +3648,7 @@ TEST_F(DBTest, BlockBasedTablePrefixHashIndexTest) {
|
|
|
3643
3648
|
ASSERT_OK(Put("kk2", "v2"));
|
|
3644
3649
|
ASSERT_OK(Put("kk", "v3"));
|
|
3645
3650
|
ASSERT_OK(Put("k", "v4"));
|
|
3646
|
-
Flush();
|
|
3651
|
+
ASSERT_OK(Flush());
|
|
3647
3652
|
|
|
3648
3653
|
ASSERT_EQ("v1", Get("kk1"));
|
|
3649
3654
|
ASSERT_EQ("v2", Get("kk2"));
|
|
@@ -4275,8 +4280,8 @@ TEST_F(DBTest, ConcurrentMemtableNotSupported) {
|
|
|
4275
4280
|
options.soft_pending_compaction_bytes_limit = 0;
|
|
4276
4281
|
options.hard_pending_compaction_bytes_limit = 100;
|
|
4277
4282
|
options.create_if_missing = true;
|
|
4278
|
-
|
|
4279
|
-
DestroyDB(dbname_, options);
|
|
4283
|
+
Close();
|
|
4284
|
+
ASSERT_OK(DestroyDB(dbname_, options));
|
|
4280
4285
|
options.memtable_factory.reset(NewHashLinkListRepFactory(4, 0, 3, true, 4));
|
|
4281
4286
|
ASSERT_NOK(TryReopen(options));
|
|
4282
4287
|
|
|
@@ -4617,7 +4622,7 @@ TEST_F(DBTest, GetThreadStatus) {
|
|
|
4617
4622
|
Options options;
|
|
4618
4623
|
options.env = env_;
|
|
4619
4624
|
options.enable_thread_tracking = true;
|
|
4620
|
-
TryReopen(options);
|
|
4625
|
+
ASSERT_OK(TryReopen(options));
|
|
4621
4626
|
|
|
4622
4627
|
std::vector<ThreadStatus> thread_list;
|
|
4623
4628
|
Status s = env_->GetThreadList(&thread_list);
|
|
@@ -4688,7 +4693,7 @@ TEST_F(DBTest, DisableThreadStatus) {
|
|
|
4688
4693
|
Options options;
|
|
4689
4694
|
options.env = env_;
|
|
4690
4695
|
options.enable_thread_tracking = false;
|
|
4691
|
-
TryReopen(options);
|
|
4696
|
+
ASSERT_OK(TryReopen(options));
|
|
4692
4697
|
CreateAndReopenWithCF({"pikachu", "about-to-remove"}, options);
|
|
4693
4698
|
// Verify non of the column family info exists
|
|
4694
4699
|
env_->GetThreadStatusUpdater()->TEST_VerifyColumnFamilyInfoMap(handles_,
|
|
@@ -4897,7 +4902,7 @@ TEST_P(DBTestWithParam, PreShutdownMultipleCompaction) {
|
|
|
4897
4902
|
options.level0_slowdown_writes_trigger = 1 << 10;
|
|
4898
4903
|
options.max_subcompactions = max_subcompactions_;
|
|
4899
4904
|
|
|
4900
|
-
TryReopen(options);
|
|
4905
|
+
ASSERT_OK(TryReopen(options));
|
|
4901
4906
|
Random rnd(301);
|
|
4902
4907
|
|
|
4903
4908
|
std::vector<ThreadStatus> thread_list;
|
|
@@ -4986,7 +4991,7 @@ TEST_P(DBTestWithParam, PreShutdownCompactionMiddle) {
|
|
|
4986
4991
|
options.level0_slowdown_writes_trigger = 1 << 10;
|
|
4987
4992
|
options.max_subcompactions = max_subcompactions_;
|
|
4988
4993
|
|
|
4989
|
-
TryReopen(options);
|
|
4994
|
+
ASSERT_OK(TryReopen(options));
|
|
4990
4995
|
Random rnd(301);
|
|
4991
4996
|
|
|
4992
4997
|
std::vector<ThreadStatus> thread_list;
|
|
@@ -5267,6 +5272,7 @@ TEST_F(DBTest, DynamicCompactionOptions) {
|
|
|
5267
5272
|
const uint64_t k1MB = 1 << 20;
|
|
5268
5273
|
const uint64_t k4KB = 1 << 12;
|
|
5269
5274
|
Options options;
|
|
5275
|
+
options.level_compaction_dynamic_level_bytes = false;
|
|
5270
5276
|
options.env = env_;
|
|
5271
5277
|
options.create_if_missing = true;
|
|
5272
5278
|
options.compression = kNoCompression;
|
|
@@ -6896,16 +6902,16 @@ TEST_F(DBTest, RowCache) {
|
|
|
6896
6902
|
options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
|
|
6897
6903
|
LRUCacheOptions cache_options;
|
|
6898
6904
|
cache_options.capacity = 8192;
|
|
6899
|
-
options.row_cache = cache_options.
|
|
6905
|
+
options.row_cache = cache_options.MakeSharedRowCache();
|
|
6900
6906
|
// BEGIN check that Cache classes as aliases of each other.
|
|
6901
|
-
// Currently,
|
|
6907
|
+
// Currently, RowCache and BlockCache are aliases for Cache.
|
|
6902
6908
|
// This is expected to change (carefully, intentionally)
|
|
6903
|
-
std::shared_ptr<
|
|
6904
|
-
std::shared_ptr<Cache> cache =
|
|
6905
|
-
std::shared_ptr<BlockCache> block_cache =
|
|
6906
|
-
|
|
6909
|
+
std::shared_ptr<RowCache> row_cache = options.row_cache;
|
|
6910
|
+
std::shared_ptr<Cache> cache = row_cache;
|
|
6911
|
+
std::shared_ptr<BlockCache> block_cache = row_cache;
|
|
6912
|
+
row_cache = cache;
|
|
6907
6913
|
block_cache = cache;
|
|
6908
|
-
|
|
6914
|
+
row_cache = block_cache;
|
|
6909
6915
|
cache = block_cache;
|
|
6910
6916
|
// END check that Cache classes as aliases of each other.
|
|
6911
6917
|
DestroyAndReopen(options);
|
|
@@ -6921,6 +6927,27 @@ TEST_F(DBTest, RowCache) {
|
|
|
6921
6927
|
ASSERT_EQ(Get("foo"), "bar");
|
|
6922
6928
|
ASSERT_EQ(TestGetTickerCount(options, ROW_CACHE_HIT), 1);
|
|
6923
6929
|
ASSERT_EQ(TestGetTickerCount(options, ROW_CACHE_MISS), 1);
|
|
6930
|
+
|
|
6931
|
+
// Also test non-OK cache insertion (would be ASAN failure on memory leak)
|
|
6932
|
+
class FailInsertionCache : public CacheWrapper {
|
|
6933
|
+
public:
|
|
6934
|
+
using CacheWrapper::CacheWrapper;
|
|
6935
|
+
const char* Name() const override { return "FailInsertionCache"; }
|
|
6936
|
+
Status Insert(const Slice&, Cache::ObjectPtr, const CacheItemHelper*,
|
|
6937
|
+
size_t, Handle** = nullptr,
|
|
6938
|
+
Priority = Priority::LOW) override {
|
|
6939
|
+
return Status::MemoryLimit();
|
|
6940
|
+
}
|
|
6941
|
+
};
|
|
6942
|
+
options.row_cache = std::make_shared<FailInsertionCache>(options.row_cache);
|
|
6943
|
+
ASSERT_OK(options.statistics->Reset());
|
|
6944
|
+
Reopen(options);
|
|
6945
|
+
|
|
6946
|
+
ASSERT_EQ(Get("foo"), "bar");
|
|
6947
|
+
ASSERT_EQ(TestGetTickerCount(options, ROW_CACHE_MISS), 1);
|
|
6948
|
+
ASSERT_EQ(Get("foo"), "bar");
|
|
6949
|
+
// Test condition requires row cache insertion to fail
|
|
6950
|
+
ASSERT_EQ(TestGetTickerCount(options, ROW_CACHE_MISS), 2);
|
|
6924
6951
|
}
|
|
6925
6952
|
|
|
6926
6953
|
TEST_F(DBTest, PinnableSliceAndRowCache) {
|
|
@@ -7179,14 +7206,14 @@ TEST_F(DBTest, CreationTimeOfOldestFile) {
|
|
|
7179
7206
|
int idx = 0;
|
|
7180
7207
|
|
|
7181
7208
|
int64_t time_1 = 0;
|
|
7182
|
-
env_->GetCurrentTime(&time_1);
|
|
7209
|
+
ASSERT_OK(env_->GetCurrentTime(&time_1));
|
|
7183
7210
|
const uint64_t uint_time_1 = static_cast<uint64_t>(time_1);
|
|
7184
7211
|
|
|
7185
7212
|
// Add 50 hours
|
|
7186
7213
|
env_->MockSleepForSeconds(50 * 60 * 60);
|
|
7187
7214
|
|
|
7188
7215
|
int64_t time_2 = 0;
|
|
7189
|
-
env_->GetCurrentTime(&time_2);
|
|
7216
|
+
ASSERT_OK(env_->GetCurrentTime(&time_2));
|
|
7190
7217
|
const uint64_t uint_time_2 = static_cast<uint64_t>(time_2);
|
|
7191
7218
|
|
|
7192
7219
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
@@ -266,7 +266,7 @@ TEST_F(DBTest2, CacheIndexAndFilterWithDBRestart) {
|
|
|
266
266
|
ASSERT_OK(Put(1, "a", "begin"));
|
|
267
267
|
ASSERT_OK(Put(1, "z", "end"));
|
|
268
268
|
ASSERT_OK(Flush(1));
|
|
269
|
-
TryReopenWithColumnFamilies({"default", "pikachu"}, options);
|
|
269
|
+
ASSERT_OK(TryReopenWithColumnFamilies({"default", "pikachu"}, options));
|
|
270
270
|
|
|
271
271
|
std::string value;
|
|
272
272
|
value = Get(1, "a");
|
|
@@ -357,10 +357,10 @@ TEST_P(DBTestSharedWriteBufferAcrossCFs, SharedWriteBufferAcrossCFs) {
|
|
|
357
357
|
// are newer CFs created.
|
|
358
358
|
flush_listener->expected_flush_reason = FlushReason::kManualFlush;
|
|
359
359
|
ASSERT_OK(Put(3, Key(1), DummyString(1), wo));
|
|
360
|
-
Flush(3);
|
|
360
|
+
ASSERT_OK(Flush(3));
|
|
361
361
|
ASSERT_OK(Put(3, Key(1), DummyString(1), wo));
|
|
362
362
|
ASSERT_OK(Put(0, Key(1), DummyString(1), wo));
|
|
363
|
-
Flush(0);
|
|
363
|
+
ASSERT_OK(Flush(0));
|
|
364
364
|
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "default"),
|
|
365
365
|
static_cast<uint64_t>(1));
|
|
366
366
|
ASSERT_EQ(GetNumberOfSstFilesForColumnFamily(db_, "nikitich"),
|
|
@@ -2063,11 +2063,12 @@ class PinL0IndexAndFilterBlocksTest
|
|
|
2063
2063
|
ASSERT_OK(Flush(1));
|
|
2064
2064
|
// move this table to L1
|
|
2065
2065
|
ASSERT_OK(dbfull()->TEST_CompactRange(0, nullptr, nullptr, handles_[1]));
|
|
2066
|
+
ASSERT_EQ(1, NumTableFilesAtLevel(1, 1));
|
|
2066
2067
|
|
|
2067
2068
|
// reset block cache
|
|
2068
2069
|
table_options.block_cache = NewLRUCache(64 * 1024);
|
|
2069
2070
|
options->table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
2070
|
-
TryReopenWithColumnFamilies({"default", "pikachu"}, *options);
|
|
2071
|
+
ASSERT_OK(TryReopenWithColumnFamilies({"default", "pikachu"}, *options));
|
|
2071
2072
|
// create new table at L0
|
|
2072
2073
|
ASSERT_OK(Put(1, "a2", "begin2"));
|
|
2073
2074
|
ASSERT_OK(Put(1, "z2", "end2"));
|
|
@@ -2187,7 +2188,7 @@ TEST_P(PinL0IndexAndFilterBlocksTest, DisablePrefetchingNonL0IndexAndFilter) {
|
|
|
2187
2188
|
// Reopen database. If max_open_files is set as -1, table readers will be
|
|
2188
2189
|
// preloaded. This will trigger a BlockBasedTable::Open() and prefetch
|
|
2189
2190
|
// L0 index and filter. Level 1's prefetching is disabled in DB::Open()
|
|
2190
|
-
TryReopenWithColumnFamilies({"default", "pikachu"}, options);
|
|
2191
|
+
ASSERT_OK(TryReopenWithColumnFamilies({"default", "pikachu"}, options));
|
|
2191
2192
|
|
|
2192
2193
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
2193
2194
|
|
|
@@ -2220,7 +2221,7 @@ TEST_P(PinL0IndexAndFilterBlocksTest, DisablePrefetchingNonL0IndexAndFilter) {
|
|
|
2220
2221
|
// this should be read from L1
|
|
2221
2222
|
value = Get(1, "a");
|
|
2222
2223
|
if (!disallow_preload_) {
|
|
2223
|
-
// In
|
|
2224
|
+
// In infinite max files case, there's a cache miss in executing Get()
|
|
2224
2225
|
// because index and filter are not prefetched before.
|
|
2225
2226
|
ASSERT_EQ(fm + 2, TestGetTickerCount(options, BLOCK_CACHE_FILTER_MISS));
|
|
2226
2227
|
ASSERT_EQ(fh, TestGetTickerCount(options, BLOCK_CACHE_FILTER_HIT));
|
|
@@ -2248,12 +2249,12 @@ TEST_P(PinL0IndexAndFilterBlocksTest, DisablePrefetchingNonL0IndexAndFilter) {
|
|
|
2248
2249
|
ASSERT_EQ(fm + 3, TestGetTickerCount(options, BLOCK_CACHE_FILTER_MISS));
|
|
2249
2250
|
ASSERT_EQ(fh, TestGetTickerCount(options, BLOCK_CACHE_FILTER_HIT));
|
|
2250
2251
|
ASSERT_EQ(im + 3, TestGetTickerCount(options, BLOCK_CACHE_INDEX_MISS));
|
|
2251
|
-
ASSERT_EQ(ih +
|
|
2252
|
+
ASSERT_EQ(ih + 2, TestGetTickerCount(options, BLOCK_CACHE_INDEX_HIT));
|
|
2252
2253
|
} else {
|
|
2253
2254
|
ASSERT_EQ(fm + 3, TestGetTickerCount(options, BLOCK_CACHE_FILTER_MISS));
|
|
2254
2255
|
ASSERT_EQ(fh + 1, TestGetTickerCount(options, BLOCK_CACHE_FILTER_HIT));
|
|
2255
2256
|
ASSERT_EQ(im + 3, TestGetTickerCount(options, BLOCK_CACHE_INDEX_MISS));
|
|
2256
|
-
ASSERT_EQ(ih +
|
|
2257
|
+
ASSERT_EQ(ih + 3, TestGetTickerCount(options, BLOCK_CACHE_INDEX_HIT));
|
|
2257
2258
|
}
|
|
2258
2259
|
|
|
2259
2260
|
// Bloom and index hit will happen when a Get() happens.
|
|
@@ -2262,12 +2263,12 @@ TEST_P(PinL0IndexAndFilterBlocksTest, DisablePrefetchingNonL0IndexAndFilter) {
|
|
|
2262
2263
|
ASSERT_EQ(fm + 3, TestGetTickerCount(options, BLOCK_CACHE_FILTER_MISS));
|
|
2263
2264
|
ASSERT_EQ(fh + 1, TestGetTickerCount(options, BLOCK_CACHE_FILTER_HIT));
|
|
2264
2265
|
ASSERT_EQ(im + 3, TestGetTickerCount(options, BLOCK_CACHE_INDEX_MISS));
|
|
2265
|
-
ASSERT_EQ(ih +
|
|
2266
|
+
ASSERT_EQ(ih + 3, TestGetTickerCount(options, BLOCK_CACHE_INDEX_HIT));
|
|
2266
2267
|
} else {
|
|
2267
2268
|
ASSERT_EQ(fm + 3, TestGetTickerCount(options, BLOCK_CACHE_FILTER_MISS));
|
|
2268
2269
|
ASSERT_EQ(fh + 2, TestGetTickerCount(options, BLOCK_CACHE_FILTER_HIT));
|
|
2269
2270
|
ASSERT_EQ(im + 3, TestGetTickerCount(options, BLOCK_CACHE_INDEX_MISS));
|
|
2270
|
-
ASSERT_EQ(ih +
|
|
2271
|
+
ASSERT_EQ(ih + 4, TestGetTickerCount(options, BLOCK_CACHE_INDEX_HIT));
|
|
2271
2272
|
}
|
|
2272
2273
|
}
|
|
2273
2274
|
|
|
@@ -3803,7 +3804,7 @@ TEST_F(DBTest2, MemtableOnlyIterator) {
|
|
|
3803
3804
|
ASSERT_EQ(2, count);
|
|
3804
3805
|
delete it;
|
|
3805
3806
|
|
|
3806
|
-
Flush(1);
|
|
3807
|
+
ASSERT_OK(Flush(1));
|
|
3807
3808
|
|
|
3808
3809
|
// After flushing
|
|
3809
3810
|
// point lookups
|
|
@@ -4111,7 +4112,7 @@ TEST_F(DBTest2, LiveFilesOmitObsoleteFiles) {
|
|
|
4111
4112
|
ASSERT_OK(Put("key", "val"));
|
|
4112
4113
|
FlushOptions flush_opts;
|
|
4113
4114
|
flush_opts.wait = false;
|
|
4114
|
-
db_->Flush(flush_opts);
|
|
4115
|
+
ASSERT_OK(db_->Flush(flush_opts));
|
|
4115
4116
|
TEST_SYNC_POINT("DBTest2::LiveFilesOmitObsoleteFiles:FlushTriggered");
|
|
4116
4117
|
|
|
4117
4118
|
ASSERT_OK(db_->DisableFileDeletions());
|
|
@@ -6875,6 +6876,7 @@ TEST_F(DBTest2, LastLevelTemperatureUniversal) {
|
|
|
6875
6876
|
TEST_F(DBTest2, LastLevelStatistics) {
|
|
6876
6877
|
Options options = CurrentOptions();
|
|
6877
6878
|
options.bottommost_temperature = Temperature::kWarm;
|
|
6879
|
+
options.default_temperature = Temperature::kHot;
|
|
6878
6880
|
options.level0_file_num_compaction_trigger = 2;
|
|
6879
6881
|
options.level_compaction_dynamic_level_bytes = true;
|
|
6880
6882
|
options.statistics = CreateDBStatistics();
|
|
@@ -6888,6 +6890,10 @@ TEST_F(DBTest2, LastLevelStatistics) {
|
|
|
6888
6890
|
|
|
6889
6891
|
ASSERT_GT(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_BYTES), 0);
|
|
6890
6892
|
ASSERT_GT(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_COUNT), 0);
|
|
6893
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_BYTES),
|
|
6894
|
+
options.statistics->getTickerCount(HOT_FILE_READ_BYTES));
|
|
6895
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_COUNT),
|
|
6896
|
+
options.statistics->getTickerCount(HOT_FILE_READ_COUNT));
|
|
6891
6897
|
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_BYTES), 0);
|
|
6892
6898
|
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_COUNT), 0);
|
|
6893
6899
|
|
|
@@ -6898,6 +6904,10 @@ TEST_F(DBTest2, LastLevelStatistics) {
|
|
|
6898
6904
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
6899
6905
|
ASSERT_EQ("bar", Get("bar"));
|
|
6900
6906
|
|
|
6907
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_BYTES),
|
|
6908
|
+
options.statistics->getTickerCount(HOT_FILE_READ_BYTES));
|
|
6909
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_COUNT),
|
|
6910
|
+
options.statistics->getTickerCount(HOT_FILE_READ_COUNT));
|
|
6901
6911
|
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_BYTES),
|
|
6902
6912
|
options.statistics->getTickerCount(WARM_FILE_READ_BYTES));
|
|
6903
6913
|
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_COUNT),
|
|
@@ -6918,6 +6928,30 @@ TEST_F(DBTest2, LastLevelStatistics) {
|
|
|
6918
6928
|
pre_bytes);
|
|
6919
6929
|
ASSERT_GT(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_COUNT),
|
|
6920
6930
|
pre_count);
|
|
6931
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_BYTES),
|
|
6932
|
+
options.statistics->getTickerCount(HOT_FILE_READ_BYTES));
|
|
6933
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_COUNT),
|
|
6934
|
+
options.statistics->getTickerCount(HOT_FILE_READ_COUNT));
|
|
6935
|
+
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_BYTES),
|
|
6936
|
+
options.statistics->getTickerCount(WARM_FILE_READ_BYTES));
|
|
6937
|
+
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_COUNT),
|
|
6938
|
+
options.statistics->getTickerCount(WARM_FILE_READ_COUNT));
|
|
6939
|
+
|
|
6940
|
+
// Not a realistic setting to make last level kWarm and default temp kCold.
|
|
6941
|
+
// This is just for testing default temp can be reset on reopen while the
|
|
6942
|
+
// last level temp is consistent across DB reopen because those file's temp
|
|
6943
|
+
// are persisted in manifest.
|
|
6944
|
+
options.default_temperature = Temperature::kCold;
|
|
6945
|
+
ASSERT_OK(options.statistics->Reset());
|
|
6946
|
+
Reopen(options);
|
|
6947
|
+
ASSERT_EQ("bar", Get("bar"));
|
|
6948
|
+
|
|
6949
|
+
ASSERT_EQ(0, options.statistics->getTickerCount(HOT_FILE_READ_BYTES));
|
|
6950
|
+
|
|
6951
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_BYTES),
|
|
6952
|
+
options.statistics->getTickerCount(COLD_FILE_READ_BYTES));
|
|
6953
|
+
ASSERT_EQ(options.statistics->getTickerCount(NON_LAST_LEVEL_READ_COUNT),
|
|
6954
|
+
options.statistics->getTickerCount(COLD_FILE_READ_COUNT));
|
|
6921
6955
|
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_BYTES),
|
|
6922
6956
|
options.statistics->getTickerCount(WARM_FILE_READ_BYTES));
|
|
6923
6957
|
ASSERT_EQ(options.statistics->getTickerCount(LAST_LEVEL_READ_COUNT),
|
|
@@ -7669,6 +7703,41 @@ TEST_F(DBTest2, GetLatestSeqAndTsForKey) {
|
|
|
7669
7703
|
ASSERT_EQ(0, options.statistics->getTickerCount(GET_HIT_L0));
|
|
7670
7704
|
}
|
|
7671
7705
|
|
|
7706
|
+
#if defined(ZSTD_ADVANCED)
|
|
7707
|
+
TEST_F(DBTest2, ZSTDChecksum) {
|
|
7708
|
+
// Verify that corruption during decompression is caught.
|
|
7709
|
+
Options options = CurrentOptions();
|
|
7710
|
+
options.create_if_missing = true;
|
|
7711
|
+
options.compression = kZSTD;
|
|
7712
|
+
options.compression_opts.max_compressed_bytes_per_kb = 1024;
|
|
7713
|
+
options.compression_opts.checksum = true;
|
|
7714
|
+
DestroyAndReopen(options);
|
|
7715
|
+
Random rnd(33);
|
|
7716
|
+
ASSERT_OK(Put(Key(0), rnd.RandomString(4 << 10)));
|
|
7717
|
+
SyncPoint::GetInstance()->SetCallBack(
|
|
7718
|
+
"BlockBasedTableBuilder::WriteBlock:TamperWithCompressedData",
|
|
7719
|
+
[&](void* arg) {
|
|
7720
|
+
std::string* output = static_cast<std::string*>(arg);
|
|
7721
|
+
// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#zstandard-frames
|
|
7722
|
+
// Checksum is the last 4 bytes, corrupting that part in unit test is
|
|
7723
|
+
// more controllable.
|
|
7724
|
+
output->data()[output->size() - 1]++;
|
|
7725
|
+
});
|
|
7726
|
+
SyncPoint::GetInstance()->EnableProcessing();
|
|
7727
|
+
ASSERT_OK(Flush());
|
|
7728
|
+
PinnableSlice val;
|
|
7729
|
+
Status s = Get(Key(0), &val);
|
|
7730
|
+
ASSERT_TRUE(s.IsCorruption());
|
|
7731
|
+
|
|
7732
|
+
// Corruption caught during flush.
|
|
7733
|
+
options.paranoid_file_checks = true;
|
|
7734
|
+
DestroyAndReopen(options);
|
|
7735
|
+
ASSERT_OK(Put(Key(0), rnd.RandomString(4 << 10)));
|
|
7736
|
+
s = Flush();
|
|
7737
|
+
ASSERT_TRUE(s.IsCorruption());
|
|
7738
|
+
}
|
|
7739
|
+
#endif
|
|
7740
|
+
|
|
7672
7741
|
} // namespace ROCKSDB_NAMESPACE
|
|
7673
7742
|
|
|
7674
7743
|
int main(int argc, char** argv) {
|
|
@@ -259,7 +259,7 @@ bool DBTestBase::ChangeFilterOptions() {
|
|
|
259
259
|
|
|
260
260
|
auto options = CurrentOptions();
|
|
261
261
|
options.create_if_missing = true;
|
|
262
|
-
TryReopen(options);
|
|
262
|
+
EXPECT_OK(TryReopen(options));
|
|
263
263
|
return true;
|
|
264
264
|
}
|
|
265
265
|
|
|
@@ -270,34 +270,34 @@ bool DBTestBase::ChangeOptionsForFileIngestionTest() {
|
|
|
270
270
|
Destroy(last_options_);
|
|
271
271
|
auto options = CurrentOptions();
|
|
272
272
|
options.create_if_missing = true;
|
|
273
|
-
TryReopen(options);
|
|
273
|
+
EXPECT_OK(TryReopen(options));
|
|
274
274
|
return true;
|
|
275
275
|
} else if (option_config_ == kUniversalCompaction) {
|
|
276
276
|
option_config_ = kUniversalCompactionMultiLevel;
|
|
277
277
|
Destroy(last_options_);
|
|
278
278
|
auto options = CurrentOptions();
|
|
279
279
|
options.create_if_missing = true;
|
|
280
|
-
TryReopen(options);
|
|
280
|
+
EXPECT_OK(TryReopen(options));
|
|
281
281
|
return true;
|
|
282
282
|
} else if (option_config_ == kUniversalCompactionMultiLevel) {
|
|
283
283
|
option_config_ = kLevelSubcompactions;
|
|
284
284
|
Destroy(last_options_);
|
|
285
285
|
auto options = CurrentOptions();
|
|
286
286
|
assert(options.max_subcompactions > 1);
|
|
287
|
-
TryReopen(options);
|
|
287
|
+
EXPECT_OK(TryReopen(options));
|
|
288
288
|
return true;
|
|
289
289
|
} else if (option_config_ == kLevelSubcompactions) {
|
|
290
290
|
option_config_ = kUniversalSubcompactions;
|
|
291
291
|
Destroy(last_options_);
|
|
292
292
|
auto options = CurrentOptions();
|
|
293
293
|
assert(options.max_subcompactions > 1);
|
|
294
|
-
TryReopen(options);
|
|
294
|
+
EXPECT_OK(TryReopen(options));
|
|
295
295
|
return true;
|
|
296
296
|
} else if (option_config_ == kUniversalSubcompactions) {
|
|
297
297
|
option_config_ = kDirectIO;
|
|
298
298
|
Destroy(last_options_);
|
|
299
299
|
auto options = CurrentOptions();
|
|
300
|
-
TryReopen(options);
|
|
300
|
+
EXPECT_OK(TryReopen(options));
|
|
301
301
|
return true;
|
|
302
302
|
} else {
|
|
303
303
|
return false;
|
|
@@ -324,6 +324,12 @@ Options DBTestBase::GetDefaultOptions() const {
|
|
|
324
324
|
options.max_open_files = 5000;
|
|
325
325
|
options.wal_recovery_mode = WALRecoveryMode::kTolerateCorruptedTailRecords;
|
|
326
326
|
options.compaction_pri = CompactionPri::kByCompensatedSize;
|
|
327
|
+
// The original default value for this option is false,
|
|
328
|
+
// and many unit tests assume this value. It also makes
|
|
329
|
+
// it easier to create desired LSM shape in unit tests.
|
|
330
|
+
// Unit tests for this option sets level_compaction_dynamic_level_bytes=true
|
|
331
|
+
// explicitly.
|
|
332
|
+
options.level_compaction_dynamic_level_bytes = false;
|
|
327
333
|
options.env = env_;
|
|
328
334
|
if (!env_->skip_fsync_) {
|
|
329
335
|
options.track_and_verify_wals_in_manifest = true;
|
|
@@ -569,6 +575,8 @@ Options DBTestBase::GetOptions(
|
|
|
569
575
|
if (set_block_based_table_factory) {
|
|
570
576
|
options.table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
571
577
|
}
|
|
578
|
+
options.level_compaction_dynamic_level_bytes =
|
|
579
|
+
options_override.level_compaction_dynamic_level_bytes;
|
|
572
580
|
options.env = env_;
|
|
573
581
|
options.create_if_missing = true;
|
|
574
582
|
options.fail_if_options_file_error = true;
|
|
@@ -114,6 +114,12 @@ struct OptionsOverride {
|
|
|
114
114
|
|
|
115
115
|
// Used as a bit mask of individual enums in which to skip an XF test point
|
|
116
116
|
int skip_policy = 0;
|
|
117
|
+
|
|
118
|
+
// The default value for this option is changed from false to true.
|
|
119
|
+
// Keeping the default to false for unit tests as old unit tests assume
|
|
120
|
+
// this behavior. Tests for level_compaction_dynamic_level_bytes
|
|
121
|
+
// will set the option to true explicitly.
|
|
122
|
+
bool level_compaction_dynamic_level_bytes = false;
|
|
117
123
|
};
|
|
118
124
|
|
|
119
125
|
} // namespace anon
|
|
@@ -1327,6 +1333,40 @@ class DBTestBase : public testing::Test {
|
|
|
1327
1333
|
// supported
|
|
1328
1334
|
void SetTimeElapseOnlySleepOnReopen(DBOptions* options);
|
|
1329
1335
|
|
|
1336
|
+
void ResetTableProperties(TableProperties* tp) {
|
|
1337
|
+
tp->data_size = 0;
|
|
1338
|
+
tp->index_size = 0;
|
|
1339
|
+
tp->filter_size = 0;
|
|
1340
|
+
tp->raw_key_size = 0;
|
|
1341
|
+
tp->raw_value_size = 0;
|
|
1342
|
+
tp->num_data_blocks = 0;
|
|
1343
|
+
tp->num_entries = 0;
|
|
1344
|
+
tp->num_deletions = 0;
|
|
1345
|
+
tp->num_merge_operands = 0;
|
|
1346
|
+
tp->num_range_deletions = 0;
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
void ParseTablePropertiesString(std::string tp_string, TableProperties* tp) {
|
|
1350
|
+
double dummy_double;
|
|
1351
|
+
std::replace(tp_string.begin(), tp_string.end(), ';', ' ');
|
|
1352
|
+
std::replace(tp_string.begin(), tp_string.end(), '=', ' ');
|
|
1353
|
+
ResetTableProperties(tp);
|
|
1354
|
+
sscanf(tp_string.c_str(),
|
|
1355
|
+
"# data blocks %" SCNu64 " # entries %" SCNu64
|
|
1356
|
+
" # deletions %" SCNu64 " # merge operands %" SCNu64
|
|
1357
|
+
" # range deletions %" SCNu64 " raw key size %" SCNu64
|
|
1358
|
+
" raw average key size %lf "
|
|
1359
|
+
" raw value size %" SCNu64
|
|
1360
|
+
" raw average value size %lf "
|
|
1361
|
+
" data block size %" SCNu64 " index block size (user-key? %" SCNu64
|
|
1362
|
+
", delta-value? %" SCNu64 ") %" SCNu64 " filter block size %" SCNu64,
|
|
1363
|
+
&tp->num_data_blocks, &tp->num_entries, &tp->num_deletions,
|
|
1364
|
+
&tp->num_merge_operands, &tp->num_range_deletions, &tp->raw_key_size,
|
|
1365
|
+
&dummy_double, &tp->raw_value_size, &dummy_double, &tp->data_size,
|
|
1366
|
+
&tp->index_key_is_user_key, &tp->index_value_is_delta_encoded,
|
|
1367
|
+
&tp->index_size, &tp->filter_size);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1330
1370
|
private: // Prone to error on direct use
|
|
1331
1371
|
void MaybeInstallTimeElapseOnlySleep(const DBOptions& options);
|
|
1332
1372
|
|
|
@@ -2145,7 +2145,19 @@ TEST_F(DBTestUniversalCompaction2, PeriodicCompactionDefault) {
|
|
|
2145
2145
|
options.ttl = 60 * 24 * 60 * 60;
|
|
2146
2146
|
options.compaction_filter = nullptr;
|
|
2147
2147
|
Reopen(options);
|
|
2148
|
-
ASSERT_EQ(
|
|
2148
|
+
ASSERT_EQ(30 * 24 * 60 * 60,
|
|
2149
|
+
dbfull()->GetOptions().periodic_compaction_seconds);
|
|
2150
|
+
|
|
2151
|
+
options.periodic_compaction_seconds = 45 * 24 * 60 * 60;
|
|
2152
|
+
options.ttl = 50 * 24 * 60 * 60;
|
|
2153
|
+
Reopen(options);
|
|
2154
|
+
ASSERT_EQ(45 * 24 * 60 * 60,
|
|
2155
|
+
dbfull()->GetOptions().periodic_compaction_seconds);
|
|
2156
|
+
|
|
2157
|
+
options.periodic_compaction_seconds = 0;
|
|
2158
|
+
options.ttl = 50 * 24 * 60 * 60;
|
|
2159
|
+
Reopen(options);
|
|
2160
|
+
ASSERT_EQ(50 * 24 * 60 * 60,
|
|
2149
2161
|
dbfull()->GetOptions().periodic_compaction_seconds);
|
|
2150
2162
|
}
|
|
2151
2163
|
|