@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
|
@@ -79,7 +79,8 @@ class SecondaryCache : public Customizable {
|
|
|
79
79
|
// and writes it to this cache tier. OK may be returned even if the insertion
|
|
80
80
|
// is not made.
|
|
81
81
|
virtual Status Insert(const Slice& key, Cache::ObjectPtr obj,
|
|
82
|
-
const Cache::CacheItemHelper* helper
|
|
82
|
+
const Cache::CacheItemHelper* helper,
|
|
83
|
+
bool force_insert) = 0;
|
|
83
84
|
|
|
84
85
|
// Insert a value from its saved/persistable data (typically uncompressed
|
|
85
86
|
// block), as if generated by SaveToCallback/SizeCallback. This can be used
|
|
@@ -134,6 +135,17 @@ class SecondaryCache : public Customizable {
|
|
|
134
135
|
virtual Status GetCapacity(size_t& /* capacity */) {
|
|
135
136
|
return Status::NotSupported();
|
|
136
137
|
}
|
|
138
|
+
|
|
139
|
+
// Temporarily decrease the cache capacity in RAM by the specified amount.
|
|
140
|
+
// The caller should call Inflate() to restore the cache capacity. This is
|
|
141
|
+
// intended to be lighter weight than SetCapacity(). The latter evenly
|
|
142
|
+
// distributes the new capacity across all shards and is meant for large
|
|
143
|
+
// changes in capacity, whereas the former is meant for relatively small
|
|
144
|
+
// changes and may be uneven by lowering capacity in a single shard.
|
|
145
|
+
virtual Status Deflate(size_t /*decrease*/) { return Status::NotSupported(); }
|
|
146
|
+
|
|
147
|
+
// Restore the capacity reduced by a prior call to Deflate().
|
|
148
|
+
virtual Status Inflate(size_t /*increase*/) { return Status::NotSupported(); }
|
|
137
149
|
};
|
|
138
150
|
|
|
139
151
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -93,7 +93,8 @@ class SstFileManager {
|
|
|
93
93
|
//
|
|
94
94
|
// @param env: Pointer to Env object, please see "rocksdb/env.h".
|
|
95
95
|
// @param fs: Pointer to FileSystem object (rocksdb/file_system.h"
|
|
96
|
-
// @param info_log: If not nullptr, info_log will be used to log
|
|
96
|
+
// @param info_log: If not nullptr, info_log will be used to log messages of
|
|
97
|
+
// INFO, WARN or ERROR level with respect to info_log's info level.
|
|
97
98
|
//
|
|
98
99
|
// == Deletion rate limiting specific arguments ==
|
|
99
100
|
// @param trash_dir: Deprecated, this argument have no effect
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
#include "rocksdb/options.h"
|
|
14
14
|
#include "rocksdb/table_properties.h"
|
|
15
15
|
#include "rocksdb/types.h"
|
|
16
|
+
#include "rocksdb/wide_columns.h"
|
|
16
17
|
|
|
17
18
|
#if defined(__GNUC__) || defined(__clang__)
|
|
18
19
|
#define ROCKSDB_DEPRECATED_FUNC __attribute__((__deprecated__))
|
|
@@ -127,6 +128,10 @@ class SstFileWriter {
|
|
|
127
128
|
// REQUIRES: timestamp's size is equal to what is expected by the comparator.
|
|
128
129
|
Status Put(const Slice& user_key, const Slice& timestamp, const Slice& value);
|
|
129
130
|
|
|
131
|
+
// Add a PutEntity (key with the wide-column entity defined by "columns") to
|
|
132
|
+
// the currently opened file
|
|
133
|
+
Status PutEntity(const Slice& user_key, const WideColumns& columns);
|
|
134
|
+
|
|
130
135
|
// Add a Merge key with value to currently opened file
|
|
131
136
|
// REQUIRES: user_key is after any previously added point (Put/Merge/Delete)
|
|
132
137
|
// key according to the comparator.
|
|
@@ -186,4 +191,3 @@ class SstFileWriter {
|
|
|
186
191
|
std::unique_ptr<Rep> rep_;
|
|
187
192
|
};
|
|
188
193
|
} // namespace ROCKSDB_NAMESPACE
|
|
189
|
-
|
|
@@ -353,14 +353,22 @@ enum Tickers : uint32_t {
|
|
|
353
353
|
// # of files marked as trash by sst file manager and will be deleted
|
|
354
354
|
// later by background thread.
|
|
355
355
|
FILES_MARKED_TRASH,
|
|
356
|
-
// # of files deleted
|
|
356
|
+
// # of trash files deleted by the background thread from the trash queue.
|
|
357
|
+
FILES_DELETED_FROM_TRASH_QUEUE,
|
|
358
|
+
// # of files deleted immediately by sst file manager through delete
|
|
359
|
+
// scheduler.
|
|
357
360
|
FILES_DELETED_IMMEDIATELY,
|
|
358
361
|
|
|
359
362
|
// The counters for error handler, not that, bg_io_error is the subset of
|
|
360
|
-
// bg_error and bg_retryable_io_error is the subset of bg_io_error
|
|
363
|
+
// bg_error and bg_retryable_io_error is the subset of bg_io_error.
|
|
364
|
+
// The misspelled versions are deprecated and only kept for compatibility.
|
|
365
|
+
// TODO: remove the misspelled tickers in the next major release.
|
|
361
366
|
ERROR_HANDLER_BG_ERROR_COUNT,
|
|
367
|
+
ERROR_HANDLER_BG_ERROR_COUNT_MISSPELLED,
|
|
362
368
|
ERROR_HANDLER_BG_IO_ERROR_COUNT,
|
|
369
|
+
ERROR_HANDLER_BG_IO_ERROR_COUNT_MISSPELLED,
|
|
363
370
|
ERROR_HANDLER_BG_RETRYABLE_IO_ERROR_COUNT,
|
|
371
|
+
ERROR_HANDLER_BG_RETRYABLE_IO_ERROR_COUNT_MISSPELLED,
|
|
364
372
|
ERROR_HANDLER_AUTORESUME_COUNT,
|
|
365
373
|
ERROR_HANDLER_AUTORESUME_RETRY_TOTAL_COUNT,
|
|
366
374
|
ERROR_HANDLER_AUTORESUME_SUCCESS_COUNT,
|
|
@@ -503,6 +511,10 @@ enum Tickers : uint32_t {
|
|
|
503
511
|
// compressed SST blocks from storage.
|
|
504
512
|
BYTES_DECOMPRESSED_TO,
|
|
505
513
|
|
|
514
|
+
// Number of times readahead is trimmed during scans when
|
|
515
|
+
// ReadOptions.auto_readahead_size is set.
|
|
516
|
+
READAHEAD_TRIMMED,
|
|
517
|
+
|
|
506
518
|
TICKER_ENUM_MAX
|
|
507
519
|
};
|
|
508
520
|
|
|
@@ -547,6 +559,13 @@ enum Histograms : uint32_t {
|
|
|
547
559
|
FILE_READ_FLUSH_MICROS,
|
|
548
560
|
FILE_READ_COMPACTION_MICROS,
|
|
549
561
|
FILE_READ_DB_OPEN_MICROS,
|
|
562
|
+
// The following `FILE_READ_*` require stats level greater than
|
|
563
|
+
// `StatsLevel::kExceptDetailedTimers`
|
|
564
|
+
FILE_READ_GET_MICROS,
|
|
565
|
+
FILE_READ_MULTIGET_MICROS,
|
|
566
|
+
FILE_READ_DB_ITERATOR_MICROS,
|
|
567
|
+
FILE_READ_VERIFY_DB_CHECKSUM_MICROS,
|
|
568
|
+
FILE_READ_VERIFY_FILE_CHECKSUMS_MICROS,
|
|
550
569
|
|
|
551
570
|
// The number of subcompactions actually scheduled during a compaction
|
|
552
571
|
NUM_SUBCOMPACTIONS_SCHEDULED,
|
|
@@ -47,7 +47,10 @@ struct EnvOptions;
|
|
|
47
47
|
|
|
48
48
|
// Types of checksums to use for checking integrity of logical blocks within
|
|
49
49
|
// files. All checksums currently use 32 bits of checking power (1 in 4B
|
|
50
|
-
// chance of failing to detect random corruption).
|
|
50
|
+
// chance of failing to detect random corruption). Traditionally, the actual
|
|
51
|
+
// checking power can be far from ideal if the corruption is due to misplaced
|
|
52
|
+
// data (e.g. physical blocks out of order in a file, or from another file),
|
|
53
|
+
// which is fixed in format_version=6 (see below).
|
|
51
54
|
enum ChecksumType : char {
|
|
52
55
|
kNoChecksum = 0x0,
|
|
53
56
|
kCRC32c = 0x1,
|
|
@@ -512,6 +515,9 @@ struct BlockBasedTableOptions {
|
|
|
512
515
|
// 5 -- Can be read by RocksDB's versions since 6.6.0. Full and partitioned
|
|
513
516
|
// filters use a generally faster and more accurate Bloom filter
|
|
514
517
|
// implementation, with a different schema.
|
|
518
|
+
// 6 -- Modified the file footer and checksum matching so that SST data
|
|
519
|
+
// misplaced within or between files is as likely to fail checksum
|
|
520
|
+
// verification as random corruption. Also checksum-protects SST footer.
|
|
515
521
|
uint32_t format_version = 5;
|
|
516
522
|
|
|
517
523
|
// Store index blocks on disk in compressed format. Changing this option to
|
|
@@ -71,6 +71,7 @@ struct TablePropertiesNames {
|
|
|
71
71
|
static const std::string kFastCompressionEstimatedDataSize;
|
|
72
72
|
static const std::string kSequenceNumberTimeMapping;
|
|
73
73
|
static const std::string kTailStartOffset;
|
|
74
|
+
static const std::string kUserDefinedTimestampsPersisted;
|
|
74
75
|
};
|
|
75
76
|
|
|
76
77
|
// `TablePropertiesCollector` provides the mechanism for users to collect
|
|
@@ -244,6 +245,11 @@ struct TableProperties {
|
|
|
244
245
|
// "Tail" refers to all blocks after data blocks till the end of the SST file
|
|
245
246
|
uint64_t tail_start_offset = 0;
|
|
246
247
|
|
|
248
|
+
// Value of the `AdvancedColumnFamilyOptions.persist_user_defined_timestamps`
|
|
249
|
+
// when the file is created. Default to be true, only when this flag is false,
|
|
250
|
+
// it's explicitly written to meta properties block.
|
|
251
|
+
uint64_t user_defined_timestamps_persisted = 1;
|
|
252
|
+
|
|
247
253
|
// DB identity
|
|
248
254
|
// db_id is an identifier generated the first time the DB is created
|
|
249
255
|
// If DB identity is unset or unassigned, `db_id` will be an empty string.
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#pragma once
|
|
7
7
|
|
|
8
|
+
#include <memory>
|
|
8
9
|
#include <string>
|
|
9
10
|
#include <vector>
|
|
10
11
|
|
|
@@ -43,11 +44,42 @@ enum class OccValidationPolicy {
|
|
|
43
44
|
kValidateParallel = 1
|
|
44
45
|
};
|
|
45
46
|
|
|
47
|
+
class OccLockBuckets {
|
|
48
|
+
public:
|
|
49
|
+
// Most details in internal derived class.
|
|
50
|
+
// Users should not derive from this class.
|
|
51
|
+
virtual ~OccLockBuckets() {}
|
|
52
|
+
|
|
53
|
+
virtual size_t ApproximateMemoryUsage() const = 0;
|
|
54
|
+
|
|
55
|
+
private:
|
|
56
|
+
friend class OccLockBucketsImplBase;
|
|
57
|
+
OccLockBuckets() {}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// An object for sharing a pool of locks across DB instances.
|
|
61
|
+
//
|
|
62
|
+
// Making the locks cache-aligned avoids potential false sharing, at the
|
|
63
|
+
// potential cost of extra memory. The implementation has historically
|
|
64
|
+
// used cache_aligned = false.
|
|
65
|
+
std::shared_ptr<OccLockBuckets> MakeSharedOccLockBuckets(
|
|
66
|
+
size_t bucket_count, bool cache_aligned = false);
|
|
67
|
+
|
|
46
68
|
struct OptimisticTransactionDBOptions {
|
|
47
69
|
OccValidationPolicy validate_policy = OccValidationPolicy::kValidateParallel;
|
|
48
70
|
|
|
49
|
-
//
|
|
71
|
+
// Number of striped/bucketed mutex locks for validating transactions.
|
|
72
|
+
// Used on only if validate_policy == OccValidationPolicy::kValidateParallel
|
|
73
|
+
// and shared_lock_buckets (below) is empty. Larger number potentially
|
|
74
|
+
// reduces contention but uses more memory.
|
|
50
75
|
uint32_t occ_lock_buckets = (1 << 20);
|
|
76
|
+
|
|
77
|
+
// A pool of mutex locks for validating transactions. Can be shared among
|
|
78
|
+
// DBs. Ignored if validate_policy != OccValidationPolicy::kValidateParallel.
|
|
79
|
+
// If empty and validate_policy == OccValidationPolicy::kValidateParallel,
|
|
80
|
+
// an OccLockBuckets will be created using the count in occ_lock_buckets.
|
|
81
|
+
// See MakeSharedOccLockBuckets()
|
|
82
|
+
std::shared_ptr<OccLockBuckets> shared_lock_buckets;
|
|
51
83
|
};
|
|
52
84
|
|
|
53
85
|
// Range deletions (including those in `WriteBatch`es passed to `Write()`) are
|
|
@@ -95,4 +127,3 @@ class OptimisticTransactionDB : public StackableDB {
|
|
|
95
127
|
};
|
|
96
128
|
|
|
97
129
|
} // namespace ROCKSDB_NAMESPACE
|
|
98
|
-
|
|
@@ -178,6 +178,15 @@ class StackableDB : public DB {
|
|
|
178
178
|
import_options, metadata, handle);
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
+
virtual Status CreateColumnFamilyWithImport(
|
|
182
|
+
const ColumnFamilyOptions& options, const std::string& column_family_name,
|
|
183
|
+
const ImportColumnFamilyOptions& import_options,
|
|
184
|
+
const std::vector<const ExportImportFilesMetaData*>& metadatas,
|
|
185
|
+
ColumnFamilyHandle** handle) override {
|
|
186
|
+
return db_->CreateColumnFamilyWithImport(options, column_family_name,
|
|
187
|
+
import_options, metadatas, handle);
|
|
188
|
+
}
|
|
189
|
+
|
|
181
190
|
using DB::ClipColumnFamily;
|
|
182
191
|
virtual Status ClipColumnFamily(ColumnFamilyHandle* column_family,
|
|
183
192
|
const Slice& begin_key,
|
|
@@ -347,6 +356,11 @@ class StackableDB : public DB {
|
|
|
347
356
|
return db_->DisableManualCompaction();
|
|
348
357
|
}
|
|
349
358
|
|
|
359
|
+
virtual Status WaitForCompact(
|
|
360
|
+
const WaitForCompactOptions& wait_for_compact_options) override {
|
|
361
|
+
return db_->WaitForCompact(wait_for_compact_options);
|
|
362
|
+
}
|
|
363
|
+
|
|
350
364
|
using DB::NumberLevels;
|
|
351
365
|
virtual int NumberLevels(ColumnFamilyHandle* column_family) override {
|
|
352
366
|
return db_->NumberLevels(column_family);
|
|
@@ -227,7 +227,8 @@ class Transaction {
|
|
|
227
227
|
// Status::Busy() may be returned if the transaction could not guarantee
|
|
228
228
|
// that there are no write conflicts. Status::TryAgain() may be returned
|
|
229
229
|
// if the memtable history size is not large enough
|
|
230
|
-
//
|
|
230
|
+
// (see max_write_buffer_size_to_maintain). In either case, a Rollback()
|
|
231
|
+
// or new transaction is required to expect a different result.
|
|
231
232
|
//
|
|
232
233
|
// If this transaction was created by a TransactionDB(), Status::Expired()
|
|
233
234
|
// may be returned if this transaction has lived for longer than
|
|
@@ -259,6 +260,7 @@ class Transaction {
|
|
|
259
260
|
std::shared_ptr<const Snapshot>* snapshot = nullptr);
|
|
260
261
|
|
|
261
262
|
// Discard all batched writes in this transaction.
|
|
263
|
+
// FIXME: what happens if this isn't called before destruction?
|
|
262
264
|
virtual Status Rollback() = 0;
|
|
263
265
|
|
|
264
266
|
// Records the state of the transaction for future calls to
|
|
@@ -333,8 +335,22 @@ class Transaction {
|
|
|
333
335
|
const size_t num_keys, const Slice* keys,
|
|
334
336
|
PinnableSlice* values, Status* statuses,
|
|
335
337
|
const bool /*sorted_input*/ = false) {
|
|
338
|
+
if (options.io_activity != Env::IOActivity::kUnknown &&
|
|
339
|
+
options.io_activity != Env::IOActivity::kMultiGet) {
|
|
340
|
+
Status s = Status::InvalidArgument(
|
|
341
|
+
"Can only call MultiGet with `ReadOptions::io_activity` is "
|
|
342
|
+
"`Env::IOActivity::kUnknown` or `Env::IOActivity::kMultiGet`");
|
|
343
|
+
|
|
344
|
+
for (size_t i = 0; i < num_keys; ++i) {
|
|
345
|
+
if (statuses[i].ok()) {
|
|
346
|
+
statuses[i] = s;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
|
|
336
352
|
for (size_t i = 0; i < num_keys; ++i) {
|
|
337
|
-
statuses[i] =
|
|
353
|
+
statuses[i] = GetImpl(options, column_family, keys[i], &values[i]);
|
|
338
354
|
}
|
|
339
355
|
}
|
|
340
356
|
|
|
@@ -671,6 +687,21 @@ class Transaction {
|
|
|
671
687
|
id_ = id;
|
|
672
688
|
}
|
|
673
689
|
|
|
690
|
+
virtual Status GetImpl(const ReadOptions& /* options */,
|
|
691
|
+
ColumnFamilyHandle* /* column_family */,
|
|
692
|
+
const Slice& /* key */, std::string* /* value */) {
|
|
693
|
+
return Status::NotSupported("Not implemented");
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
virtual Status GetImpl(const ReadOptions& options,
|
|
697
|
+
ColumnFamilyHandle* column_family, const Slice& key,
|
|
698
|
+
PinnableSlice* pinnable_val) {
|
|
699
|
+
assert(pinnable_val != nullptr);
|
|
700
|
+
auto s = GetImpl(options, column_family, key, pinnable_val->GetSelf());
|
|
701
|
+
pinnable_val->PinSelf();
|
|
702
|
+
return s;
|
|
703
|
+
}
|
|
704
|
+
|
|
674
705
|
virtual uint64_t GetLastLogNumber() const { return log_number_; }
|
|
675
706
|
|
|
676
707
|
private:
|
|
@@ -189,9 +189,6 @@ class WriteBatchWithIndex : public WriteBatchBase {
|
|
|
189
189
|
// Will create a new Iterator that will use WBWIIterator as a delta and
|
|
190
190
|
// base_iterator as base.
|
|
191
191
|
//
|
|
192
|
-
// This function is only supported if the WriteBatchWithIndex was
|
|
193
|
-
// constructed with overwrite_key=true.
|
|
194
|
-
//
|
|
195
192
|
// The returned iterator should be deleted by the caller.
|
|
196
193
|
// The base_iterator is now 'owned' by the returned iterator. Deleting the
|
|
197
194
|
// returned iterator will also delete the base_iterator.
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
// NOTE: in 'main' development branch, this should be the *next*
|
|
13
13
|
// minor or major version number planned for release.
|
|
14
14
|
#define ROCKSDB_MAJOR 8
|
|
15
|
-
#define ROCKSDB_MINOR
|
|
16
|
-
#define ROCKSDB_PATCH
|
|
15
|
+
#define ROCKSDB_MINOR 6
|
|
16
|
+
#define ROCKSDB_PATCH 7
|
|
17
17
|
|
|
18
18
|
// Do not use these. We made the mistake of declaring macros starting with
|
|
19
19
|
// double underscore. Now we have to live with our choice. We'll deprecate these
|
|
@@ -356,6 +356,9 @@ class WriteBatch : public WriteBatchBase {
|
|
|
356
356
|
// Retrieve the serialized version of this batch.
|
|
357
357
|
const std::string& Data() const { return rep_; }
|
|
358
358
|
|
|
359
|
+
// Release the serialized data and clear this batch.
|
|
360
|
+
std::string Release();
|
|
361
|
+
|
|
359
362
|
// Retrieve data size of the batch.
|
|
360
363
|
size_t GetDataSize() const { return rep_.size(); }
|
|
361
364
|
|
|
@@ -219,21 +219,28 @@ size_t PopMinorPageFaultCount() {
|
|
|
219
219
|
|
|
220
220
|
TEST(MmapTest, AllocateLazyZeroed) {
|
|
221
221
|
// Doesn't have to be page aligned
|
|
222
|
-
constexpr size_t len = 1234567;
|
|
223
|
-
|
|
224
|
-
|
|
222
|
+
constexpr size_t len = 1234567; // in bytes
|
|
223
|
+
constexpr size_t count = len / 8; // in uint64_t objects
|
|
224
|
+
// Implicit conversion move
|
|
225
|
+
TypedMemMapping<uint64_t> pre_arr = MemMapping::AllocateLazyZeroed(len);
|
|
226
|
+
// Move from same type
|
|
227
|
+
TypedMemMapping<uint64_t> arr = std::move(pre_arr);
|
|
225
228
|
|
|
226
|
-
|
|
227
|
-
|
|
229
|
+
ASSERT_NE(arr.Get(), nullptr);
|
|
230
|
+
ASSERT_EQ(arr.Get(), &arr[0]);
|
|
231
|
+
ASSERT_EQ(arr.Get(), arr.MemMapping::Get());
|
|
232
|
+
|
|
233
|
+
ASSERT_EQ(arr.Length(), len);
|
|
234
|
+
ASSERT_EQ(arr.Count(), count);
|
|
228
235
|
|
|
229
236
|
// Start counting page faults
|
|
230
237
|
PopMinorPageFaultCount();
|
|
231
238
|
|
|
232
239
|
// Access half of the allocation
|
|
233
240
|
size_t i = 0;
|
|
234
|
-
for (; i <
|
|
241
|
+
for (; i < count / 2; ++i) {
|
|
235
242
|
ASSERT_EQ(arr[i], 0);
|
|
236
|
-
arr[i] =
|
|
243
|
+
arr[i] = i;
|
|
237
244
|
}
|
|
238
245
|
|
|
239
246
|
// Appropriate page faults (maybe more)
|
|
@@ -241,9 +248,9 @@ TEST(MmapTest, AllocateLazyZeroed) {
|
|
|
241
248
|
ASSERT_GE(faults, len / 2 / port::kPageSize);
|
|
242
249
|
|
|
243
250
|
// Access rest of the allocation
|
|
244
|
-
for (; i <
|
|
251
|
+
for (; i < count; ++i) {
|
|
245
252
|
ASSERT_EQ(arr[i], 0);
|
|
246
|
-
arr[i] =
|
|
253
|
+
arr[i] = i;
|
|
247
254
|
}
|
|
248
255
|
|
|
249
256
|
// Appropriate page faults (maybe more)
|
|
@@ -251,8 +258,8 @@ TEST(MmapTest, AllocateLazyZeroed) {
|
|
|
251
258
|
ASSERT_GE(faults, len / 2 / port::kPageSize);
|
|
252
259
|
|
|
253
260
|
// Verify data
|
|
254
|
-
for (i = 0; i <
|
|
255
|
-
ASSERT_EQ(arr[i],
|
|
261
|
+
for (i = 0; i < count; ++i) {
|
|
262
|
+
ASSERT_EQ(arr[i], i);
|
|
256
263
|
}
|
|
257
264
|
}
|
|
258
265
|
|
|
@@ -124,7 +124,8 @@ uint32_t JemallocNodumpAllocator::GetArenaIndex() const {
|
|
|
124
124
|
// to make Random thread-safe and prevent cacheline bouncing. Whether this is
|
|
125
125
|
// worthwhile is still an open question.
|
|
126
126
|
thread_local Random tl_random(next_seed.fetch_add(1));
|
|
127
|
-
return arena_indexes_[FastRange32(
|
|
127
|
+
return arena_indexes_[FastRange32(
|
|
128
|
+
tl_random.Next(), static_cast<uint32_t>(arena_indexes_.size()))];
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
Status JemallocNodumpAllocator::InitializeArenas() {
|