@nxtedition/rocksdb 8.2.8 → 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
|
@@ -81,6 +81,7 @@ class ReduceLevelTest : public testing::Test {
|
|
|
81
81
|
|
|
82
82
|
Status ReduceLevelTest::OpenDB(bool create_if_missing, int num_levels) {
|
|
83
83
|
ROCKSDB_NAMESPACE::Options opt;
|
|
84
|
+
opt.level_compaction_dynamic_level_bytes = false;
|
|
84
85
|
opt.num_levels = num_levels;
|
|
85
86
|
opt.create_if_missing = create_if_missing;
|
|
86
87
|
ROCKSDB_NAMESPACE::Status st =
|
|
@@ -419,6 +419,10 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
|
|
|
419
419
|
filename = std::string(dir_or_file) + "/" + filename;
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
+
if (command == "verify") {
|
|
423
|
+
verify_checksum = true;
|
|
424
|
+
}
|
|
425
|
+
|
|
422
426
|
ROCKSDB_NAMESPACE::SstFileDumper dumper(
|
|
423
427
|
options, filename, Temperature::kUnknown, readahead_size,
|
|
424
428
|
verify_checksum, output_hex, decode_blob_index);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Adding release notes
|
|
2
|
+
--------------------
|
|
3
|
+
|
|
4
|
+
When adding release notes for the next release, add a file to one of these
|
|
5
|
+
directories:
|
|
6
|
+
|
|
7
|
+
unreleased_history/new_features
|
|
8
|
+
unreleased_history/behavior_changes
|
|
9
|
+
unreleased_history/public_api_changes
|
|
10
|
+
unreleased_history/bug_fixes
|
|
11
|
+
|
|
12
|
+
with a unique name that makes sense for your change, preferably using the .md
|
|
13
|
+
extension for syntax highlighting.
|
|
14
|
+
|
|
15
|
+
There is a script to help, as in
|
|
16
|
+
|
|
17
|
+
$ unreleased_history/add.sh unreleased_history/bug_fixes/crash_in_feature.md
|
|
18
|
+
|
|
19
|
+
or simply
|
|
20
|
+
|
|
21
|
+
$ unreleased_history/add.sh
|
|
22
|
+
|
|
23
|
+
will take you through some prompts.
|
|
24
|
+
|
|
25
|
+
The file should usually contain one line of markdown, and "* " is not
|
|
26
|
+
required, as it will automatically be inserted later if not included at the
|
|
27
|
+
start of the first line in the file. Extra newlines or missing trailing
|
|
28
|
+
newlines will also be corrected.
|
|
29
|
+
|
|
30
|
+
The only times release notes should be added directly to HISTORY are if
|
|
31
|
+
* A release is being amended or corrected after it is already "cut" but not
|
|
32
|
+
tagged, which should be rare.
|
|
33
|
+
* A single commit contains a noteworthy change and a patch release version bump
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Ordering of entries
|
|
37
|
+
-------------------
|
|
38
|
+
|
|
39
|
+
Within each group, entries will be included using ls sort order, so important
|
|
40
|
+
entries could start their file name with a small three digit number like
|
|
41
|
+
100pretty_important.md.
|
|
42
|
+
|
|
43
|
+
The ordering of groups such as new_features vs. public_api_changes is
|
|
44
|
+
hard-coded in unreleased_history/release.sh
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
Updating HISTORY.md with release notes
|
|
48
|
+
--------------------------------------
|
|
49
|
+
|
|
50
|
+
The script unreleased_history/release.sh does this. Run the script before
|
|
51
|
+
updating version.h to the next develpment release, so that the script will pick
|
|
52
|
+
up the version being released. You might want to start with
|
|
53
|
+
|
|
54
|
+
$ DRY_RUN=1 unreleased_history/release.sh | less
|
|
55
|
+
|
|
56
|
+
to check for problems and preview the output. Then run
|
|
57
|
+
|
|
58
|
+
$ unreleased_history/release.sh
|
|
59
|
+
|
|
60
|
+
which will git rm some files and modify HISTORY.md. You still need to commit the
|
|
61
|
+
changes, or revert with the command reported in the output.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
Why not update HISTORY.md directly?
|
|
65
|
+
-----------------------------------
|
|
66
|
+
|
|
67
|
+
First, it was common to hit unnecessary merge conflicts when adding entries to
|
|
68
|
+
HISTORY.md, which slowed development. Second, when a PR was opened before a
|
|
69
|
+
release cut and landed after the release cut, it was easy to add the HISTORY
|
|
70
|
+
entry to the wrong version's history. This new setup completely fixes both of
|
|
71
|
+
those issues, with perhaps slighly more initial work to create each entry.
|
|
72
|
+
There is also now an extra step in using `git blame` to map a release note
|
|
73
|
+
to its source code implementation, but that is a relatively rare operation.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
set -o pipefail
|
|
6
|
+
|
|
7
|
+
if [ "$1" ]; then
|
|
8
|
+
# Target file specified on command line
|
|
9
|
+
TARGET="$1"
|
|
10
|
+
else
|
|
11
|
+
# Interactively choose a group and file name
|
|
12
|
+
DIRS="`find unreleased_history/ -mindepth 1 -maxdepth 1 -type d`"
|
|
13
|
+
echo "Choose a group for new release note:"
|
|
14
|
+
echo "$DIRS" | grep -nEo '[^/]+$'
|
|
15
|
+
echo -n "Enter a number: "
|
|
16
|
+
while [ ! "$DIRNUM" ]; do read -r DIRNUM; done
|
|
17
|
+
DIR="$(echo "$DIRS" | head -n "$DIRNUM" | tail -1)"
|
|
18
|
+
echo "Choose a file name for new release note (e.g. improved_whatever.md):"
|
|
19
|
+
while [ ! "$FNAME" ]; do read -re FNAME; done
|
|
20
|
+
# Replace spaces with underscores
|
|
21
|
+
TARGET="$(echo "$DIR/$FNAME" | tr ' ' '_')"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Edit/create the file
|
|
25
|
+
${EDITOR:-nano} "$TARGET"
|
|
26
|
+
# Add to version control (easy to forget!)
|
|
27
|
+
git add "$TARGET"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
if [ ! -d unreleased_history ]; then
|
|
7
|
+
echo "Can't find unreleased_history/ directory"
|
|
8
|
+
exit 1
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
GIT_PATHS="unreleased_history/ HISTORY.md"
|
|
12
|
+
if [ ! "$DRY_RUN" ]; then
|
|
13
|
+
# Check for uncommitted changes
|
|
14
|
+
UNCOMMITTED="$(git diff -- $GIT_PATHS)"
|
|
15
|
+
if [ "$UNCOMMITTED" ]; then
|
|
16
|
+
echo 'Uncommitted changes to files to be modified. Please commit first to'
|
|
17
|
+
echo 'ensure a clean revert path. You can always `git commit -a --amend`'
|
|
18
|
+
echo 'to add more changes to your commit.'
|
|
19
|
+
exit 2
|
|
20
|
+
fi
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Add first part of existing HISTORY file to new version
|
|
24
|
+
awk '{ print } /NOTE/ { exit(0) }' < HISTORY.md > HISTORY.new
|
|
25
|
+
|
|
26
|
+
# And a blank line separator
|
|
27
|
+
echo >> HISTORY.new
|
|
28
|
+
|
|
29
|
+
# Add new version header
|
|
30
|
+
awk '/#define ROCKSDB_MAJOR/ { major = $3 }
|
|
31
|
+
/#define ROCKSDB_MINOR/ { minor = $3 }
|
|
32
|
+
/#define ROCKSDB_PATCH/ { patch = $3 }
|
|
33
|
+
END { printf "## " major "." minor "." patch }' < include/rocksdb/version.h >> HISTORY.new
|
|
34
|
+
echo " (`git log -n1 --date=format:"%m/%d/%Y" --format="%ad"`)" >> HISTORY.new
|
|
35
|
+
|
|
36
|
+
function process_file () {
|
|
37
|
+
# use awk to correct
|
|
38
|
+
# * extra or missing newlines
|
|
39
|
+
# * leading or trailing whitespace
|
|
40
|
+
# * missing '* ' on first line
|
|
41
|
+
awk '/./ { gsub(/^[ \t]+/, ""); gsub(/[ \t]+$/, "");
|
|
42
|
+
if (notfirstline || $1 == "*") print;
|
|
43
|
+
else print "* " $0;
|
|
44
|
+
notfirstline=1; }' < $1 >> HISTORY.new
|
|
45
|
+
echo git rm $1
|
|
46
|
+
if [ ! "$DRY_RUN" ]; then
|
|
47
|
+
git rm $1
|
|
48
|
+
fi
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
PROCESSED_DIRECTORIES=""
|
|
52
|
+
|
|
53
|
+
function process_dir () {
|
|
54
|
+
PROCESSED_DIRECTORIES="$PROCESSED_DIRECTORIES $1"
|
|
55
|
+
# ls will sort the files, including the permanent header file
|
|
56
|
+
FILES="$(ls unreleased_history/$1/)"
|
|
57
|
+
if [ "$FILES" ]; then
|
|
58
|
+
echo "### $2" >> HISTORY.new
|
|
59
|
+
for FILE in $FILES; do
|
|
60
|
+
process_file "unreleased_history/$1/$FILE"
|
|
61
|
+
done
|
|
62
|
+
echo >> HISTORY.new
|
|
63
|
+
echo "Saved entries from $1"
|
|
64
|
+
else
|
|
65
|
+
echo "Nothing new in $1"
|
|
66
|
+
fi
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
# Process dirs and files
|
|
70
|
+
process_dir new_features "New Features"
|
|
71
|
+
process_dir public_api_changes "Public API Changes"
|
|
72
|
+
process_dir behavior_changes "Behavior Changes"
|
|
73
|
+
process_dir bug_fixes "Bug Fixes"
|
|
74
|
+
process_dir performance_improvements "Performance Improvements"
|
|
75
|
+
|
|
76
|
+
# Check for unexpected files or dirs at top level. process_dir/process_file
|
|
77
|
+
# will deal with contents of these directories
|
|
78
|
+
EXPECTED_REGEX="[^/]*[.]sh|README[.]txt|$(echo $PROCESSED_DIRECTORIES | tr ' ' '|')"
|
|
79
|
+
platform=`uname`
|
|
80
|
+
if [ $platform = 'Darwin' ]; then
|
|
81
|
+
UNEXPECTED="$(find -E unreleased_history -mindepth 1 -maxdepth 1 -not -regex "[^/]*/($EXPECTED_REGEX)")"
|
|
82
|
+
else
|
|
83
|
+
UNEXPECTED="$(find unreleased_history/ -mindepth 1 -maxdepth 1 -regextype egrep -not -regex "[^/]*/($EXPECTED_REGEX)")"
|
|
84
|
+
fi
|
|
85
|
+
if [ "$UNEXPECTED" ]; then
|
|
86
|
+
echo "Unexpected files I don't know how to process:"
|
|
87
|
+
echo "$UNEXPECTED"
|
|
88
|
+
rm HISTORY.new
|
|
89
|
+
exit 3
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
# Add rest of existing HISTORY file to new version (collapsing newlines)
|
|
93
|
+
awk '/./ { if (note) pr=1 }
|
|
94
|
+
/NOTE/ { note=1 }
|
|
95
|
+
{ if (pr) print }' < HISTORY.md >> HISTORY.new
|
|
96
|
+
|
|
97
|
+
if [ "$DRY_RUN" ]; then
|
|
98
|
+
echo '==========================================='
|
|
99
|
+
diff -U3 HISTORY.md HISTORY.new || true
|
|
100
|
+
rm HISTORY.new
|
|
101
|
+
else
|
|
102
|
+
mv HISTORY.new HISTORY.md
|
|
103
|
+
echo "Done. Revert command: git checkout HEAD -- $GIT_PATHS"
|
|
104
|
+
fi
|
|
@@ -26,6 +26,11 @@ bool AsyncFileReader::MultiReadAsyncImpl(ReadAwaiter* awaiter) {
|
|
|
26
26
|
FSReadRequest* read_req = static_cast<FSReadRequest*>(cb_arg);
|
|
27
27
|
read_req->status = req.status;
|
|
28
28
|
read_req->result = req.result;
|
|
29
|
+
if (req.fs_scratch != nullptr) {
|
|
30
|
+
// TODO akanksha: Revisit to remove the const in the callback.
|
|
31
|
+
FSReadRequest& req_tmp = const_cast<FSReadRequest&>(req);
|
|
32
|
+
read_req->fs_scratch = std::move(req_tmp.fs_scratch);
|
|
33
|
+
}
|
|
29
34
|
},
|
|
30
35
|
&awaiter->read_reqs_[i], &awaiter->io_handle_[i], &awaiter->del_fn_[i],
|
|
31
36
|
/*aligned_buf=*/nullptr);
|
|
@@ -199,7 +199,7 @@ class FastLocalBloomImpl {
|
|
|
199
199
|
|
|
200
200
|
static inline void AddHash(uint32_t h1, uint32_t h2, uint32_t len_bytes,
|
|
201
201
|
int num_probes, char *data) {
|
|
202
|
-
uint32_t bytes_to_cache_line = FastRange32(len_bytes >> 6
|
|
202
|
+
uint32_t bytes_to_cache_line = FastRange32(h1, len_bytes >> 6) << 6;
|
|
203
203
|
AddHashPrepared(h2, num_probes, data + bytes_to_cache_line);
|
|
204
204
|
}
|
|
205
205
|
|
|
@@ -216,7 +216,7 @@ class FastLocalBloomImpl {
|
|
|
216
216
|
static inline void PrepareHash(uint32_t h1, uint32_t len_bytes,
|
|
217
217
|
const char *data,
|
|
218
218
|
uint32_t /*out*/ *byte_offset) {
|
|
219
|
-
uint32_t bytes_to_cache_line = FastRange32(len_bytes >> 6
|
|
219
|
+
uint32_t bytes_to_cache_line = FastRange32(h1, len_bytes >> 6) << 6;
|
|
220
220
|
PREFETCH(data + bytes_to_cache_line, 0 /* rw */, 1 /* locality */);
|
|
221
221
|
PREFETCH(data + bytes_to_cache_line + 63, 0 /* rw */, 1 /* locality */);
|
|
222
222
|
*byte_offset = bytes_to_cache_line;
|
|
@@ -224,7 +224,7 @@ class FastLocalBloomImpl {
|
|
|
224
224
|
|
|
225
225
|
static inline bool HashMayMatch(uint32_t h1, uint32_t h2, uint32_t len_bytes,
|
|
226
226
|
int num_probes, const char *data) {
|
|
227
|
-
uint32_t bytes_to_cache_line = FastRange32(len_bytes >> 6
|
|
227
|
+
uint32_t bytes_to_cache_line = FastRange32(h1, len_bytes >> 6) << 6;
|
|
228
228
|
return HashMayMatchPrepared(h2, num_probes, data + bytes_to_cache_line);
|
|
229
229
|
}
|
|
230
230
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#pragma once
|
|
7
7
|
|
|
8
|
+
#include <memory>
|
|
8
9
|
#include <type_traits>
|
|
9
10
|
|
|
10
11
|
#include "rocksdb/rocksdb_namespace.h"
|
|
@@ -23,6 +24,19 @@ inline DestClass* static_cast_with_check(SrcClass* x) {
|
|
|
23
24
|
return ret;
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
template <class DestClass, class SrcClass>
|
|
28
|
+
inline std::shared_ptr<DestClass> static_cast_with_check(
|
|
29
|
+
std::shared_ptr<SrcClass>&& x) {
|
|
30
|
+
#if defined(ROCKSDB_USE_RTTI) && !defined(NDEBUG)
|
|
31
|
+
auto orig_raw = x.get();
|
|
32
|
+
#endif
|
|
33
|
+
auto ret = std::static_pointer_cast<DestClass>(std::move(x));
|
|
34
|
+
#if defined(ROCKSDB_USE_RTTI) && !defined(NDEBUG)
|
|
35
|
+
assert(ret.get() == dynamic_cast<DestClass*>(orig_raw));
|
|
36
|
+
#endif
|
|
37
|
+
return ret;
|
|
38
|
+
}
|
|
39
|
+
|
|
26
40
|
// A wrapper around static_cast for lossless conversion between integral
|
|
27
41
|
// types, including enum types. For example, this can be used for converting
|
|
28
42
|
// between signed/unsigned or enum type and underlying type without fear of
|
|
@@ -12,6 +12,7 @@ void CompactionJobStats::Reset() {
|
|
|
12
12
|
elapsed_micros = 0;
|
|
13
13
|
cpu_micros = 0;
|
|
14
14
|
|
|
15
|
+
has_num_input_records = true;
|
|
15
16
|
num_input_records = 0;
|
|
16
17
|
num_blobs_read = 0;
|
|
17
18
|
num_input_files = 0;
|
|
@@ -55,6 +56,7 @@ void CompactionJobStats::Add(const CompactionJobStats& stats) {
|
|
|
55
56
|
elapsed_micros += stats.elapsed_micros;
|
|
56
57
|
cpu_micros += stats.cpu_micros;
|
|
57
58
|
|
|
59
|
+
has_num_input_records &= stats.has_num_input_records;
|
|
58
60
|
num_input_records += stats.num_input_records;
|
|
59
61
|
num_blobs_read += stats.num_blobs_read;
|
|
60
62
|
num_input_files += stats.num_input_files;
|
|
@@ -250,6 +250,12 @@ class ComparatorWithU64TsImpl : public Comparator {
|
|
|
250
250
|
|
|
251
251
|
const char* Name() const override { return kClassName(); }
|
|
252
252
|
|
|
253
|
+
// The comparator that compares the user key without timestamp part is treated
|
|
254
|
+
// as the root comparator.
|
|
255
|
+
const Comparator* GetRootComparator() const override {
|
|
256
|
+
return &cmp_without_ts_;
|
|
257
|
+
}
|
|
258
|
+
|
|
253
259
|
void FindShortSuccessor(std::string*) const override {}
|
|
254
260
|
void FindShortestSeparator(std::string*, const Slice&) const override {}
|
|
255
261
|
int Compare(const Slice& a, const Slice& b) const override {
|
|
@@ -316,24 +322,37 @@ const Comparator* BytewiseComparatorWithU64Ts() {
|
|
|
316
322
|
return &comp_with_u64_ts;
|
|
317
323
|
}
|
|
318
324
|
|
|
325
|
+
const Comparator* ReverseBytewiseComparatorWithU64Ts() {
|
|
326
|
+
STATIC_AVOID_DESTRUCTION(
|
|
327
|
+
ComparatorWithU64TsImpl<ReverseBytewiseComparatorImpl>, comp_with_u64_ts);
|
|
328
|
+
return &comp_with_u64_ts;
|
|
329
|
+
}
|
|
330
|
+
|
|
319
331
|
static int RegisterBuiltinComparators(ObjectLibrary& library,
|
|
320
332
|
const std::string& /*arg*/) {
|
|
321
333
|
library.AddFactory<const Comparator>(
|
|
322
334
|
BytewiseComparatorImpl::kClassName(),
|
|
323
335
|
[](const std::string& /*uri*/,
|
|
324
|
-
std::unique_ptr<const Comparator>* /*guard
|
|
325
|
-
std::string* /*
|
|
336
|
+
std::unique_ptr<const Comparator>* /*guard*/,
|
|
337
|
+
std::string* /*errmsg*/) { return BytewiseComparator(); });
|
|
326
338
|
library.AddFactory<const Comparator>(
|
|
327
339
|
ReverseBytewiseComparatorImpl::kClassName(),
|
|
328
340
|
[](const std::string& /*uri*/,
|
|
329
|
-
std::unique_ptr<const Comparator>* /*guard
|
|
330
|
-
std::string* /*
|
|
341
|
+
std::unique_ptr<const Comparator>* /*guard*/,
|
|
342
|
+
std::string* /*errmsg*/) { return ReverseBytewiseComparator(); });
|
|
331
343
|
library.AddFactory<const Comparator>(
|
|
332
344
|
ComparatorWithU64TsImpl<BytewiseComparatorImpl>::kClassName(),
|
|
333
345
|
[](const std::string& /*uri*/,
|
|
334
|
-
std::unique_ptr<const Comparator>* /*guard
|
|
335
|
-
std::string* /*
|
|
336
|
-
|
|
346
|
+
std::unique_ptr<const Comparator>* /*guard*/,
|
|
347
|
+
std::string* /*errmsg*/) { return BytewiseComparatorWithU64Ts(); });
|
|
348
|
+
library.AddFactory<const Comparator>(
|
|
349
|
+
ComparatorWithU64TsImpl<ReverseBytewiseComparatorImpl>::kClassName(),
|
|
350
|
+
[](const std::string& /*uri*/,
|
|
351
|
+
std::unique_ptr<const Comparator>* /*guard*/,
|
|
352
|
+
std::string* /*errmsg*/) {
|
|
353
|
+
return ReverseBytewiseComparatorWithU64Ts();
|
|
354
|
+
});
|
|
355
|
+
return 4;
|
|
337
356
|
}
|
|
338
357
|
|
|
339
358
|
Status Comparator::CreateFromString(const ConfigOptions& config_options,
|
|
@@ -357,6 +376,9 @@ Status Comparator::CreateFromString(const ConfigOptions& config_options,
|
|
|
357
376
|
} else if (id ==
|
|
358
377
|
ComparatorWithU64TsImpl<BytewiseComparatorImpl>::kClassName()) {
|
|
359
378
|
*result = BytewiseComparatorWithU64Ts();
|
|
379
|
+
} else if (id == ComparatorWithU64TsImpl<
|
|
380
|
+
ReverseBytewiseComparatorImpl>::kClassName()) {
|
|
381
|
+
*result = ReverseBytewiseComparatorWithU64Ts();
|
|
360
382
|
} else if (value.empty()) {
|
|
361
383
|
// No Id and no options. Clear the object
|
|
362
384
|
*result = nullptr;
|
|
@@ -48,7 +48,7 @@ int ZSTDStreamingCompress::Compress(const char* input, size_t input_size,
|
|
|
48
48
|
if (input_size == 0) {
|
|
49
49
|
return 0;
|
|
50
50
|
}
|
|
51
|
-
#ifndef
|
|
51
|
+
#ifndef ZSTD_ADVANCED
|
|
52
52
|
(void)input;
|
|
53
53
|
(void)input_size;
|
|
54
54
|
(void)output;
|
|
@@ -77,7 +77,7 @@ int ZSTDStreamingCompress::Compress(const char* input, size_t input_size,
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
void ZSTDStreamingCompress::Reset() {
|
|
80
|
-
#ifdef
|
|
80
|
+
#ifdef ZSTD_ADVANCED
|
|
81
81
|
ZSTD_CCtx_reset(cctx_, ZSTD_ResetDirective::ZSTD_reset_session_only);
|
|
82
82
|
input_buffer_ = {/*src=*/nullptr, /*size=*/0, /*pos=*/0};
|
|
83
83
|
#endif
|
|
@@ -91,7 +91,7 @@ int ZSTDStreamingUncompress::Uncompress(const char* input, size_t input_size,
|
|
|
91
91
|
if (input_size == 0) {
|
|
92
92
|
return 0;
|
|
93
93
|
}
|
|
94
|
-
#ifdef
|
|
94
|
+
#ifdef ZSTD_ADVANCED
|
|
95
95
|
if (input) {
|
|
96
96
|
// New input
|
|
97
97
|
input_buffer_ = {input, input_size, /*pos=*/0};
|
|
@@ -113,7 +113,7 @@ int ZSTDStreamingUncompress::Uncompress(const char* input, size_t input_size,
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
void ZSTDStreamingUncompress::Reset() {
|
|
116
|
-
#ifdef
|
|
116
|
+
#ifdef ZSTD_ADVANCED
|
|
117
117
|
ZSTD_DCtx_reset(dctx_, ZSTD_ResetDirective::ZSTD_reset_session_only);
|
|
118
118
|
input_buffer_ = {/*src=*/nullptr, /*size=*/0, /*pos=*/0};
|
|
119
119
|
#endif
|