@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
|
@@ -284,9 +284,9 @@ void PlainTableReader::FillBloom(const std::vector<uint32_t>& prefix_hashes) {
|
|
|
284
284
|
Status PlainTableReader::MmapDataIfNeeded() {
|
|
285
285
|
if (file_info_.is_mmap_mode) {
|
|
286
286
|
// Get mmapped memory.
|
|
287
|
-
return file_info_.file->Read(
|
|
288
|
-
|
|
289
|
-
|
|
287
|
+
return file_info_.file->Read(IOOptions(), 0,
|
|
288
|
+
static_cast<size_t>(file_size_),
|
|
289
|
+
&file_info_.file_data, nullptr, nullptr);
|
|
290
290
|
}
|
|
291
291
|
return Status::OK();
|
|
292
292
|
}
|
|
@@ -109,8 +109,7 @@ Status SstFileDumper::GetTableReader(const std::string& file_path) {
|
|
|
109
109
|
uint64_t prefetch_off = file_size - prefetch_size;
|
|
110
110
|
IOOptions opts;
|
|
111
111
|
s = prefetch_buffer.Prefetch(opts, file_.get(), prefetch_off,
|
|
112
|
-
static_cast<size_t>(prefetch_size)
|
|
113
|
-
Env::IO_TOTAL /* rate_limiter_priority */);
|
|
112
|
+
static_cast<size_t>(prefetch_size));
|
|
114
113
|
|
|
115
114
|
s = ReadFooterFromFile(opts, file_.get(), *fs, &prefetch_buffer, file_size,
|
|
116
115
|
&footer);
|
|
@@ -165,10 +164,19 @@ Status SstFileDumper::NewTableReader(
|
|
|
165
164
|
const ImmutableOptions& /*ioptions*/, const EnvOptions& /*soptions*/,
|
|
166
165
|
const InternalKeyComparator& /*internal_comparator*/, uint64_t file_size,
|
|
167
166
|
std::unique_ptr<TableReader>* /*table_reader*/) {
|
|
167
|
+
// TODO(yuzhangyu): full support in sst_dump for SST files generated when
|
|
168
|
+
// `user_defined_timestamps_persisted` is false.
|
|
168
169
|
auto t_opt = TableReaderOptions(
|
|
169
170
|
ioptions_, moptions_.prefix_extractor, soptions_, internal_comparator_,
|
|
170
171
|
0 /* block_protection_bytes_per_key */, false /* skip_filters */,
|
|
171
|
-
false /* immortal */, true /* force_direct_prefetch
|
|
172
|
+
false /* immortal */, true /* force_direct_prefetch */, -1 /* level */,
|
|
173
|
+
nullptr /* block_cache_tracer */, 0 /* max_file_size_for_l0_meta_pin */,
|
|
174
|
+
"" /* cur_db_session_id */, 0 /* cur_file_num */, {} /* unique_id */,
|
|
175
|
+
0 /* largest_seqno */, 0 /* tail_size */,
|
|
176
|
+
table_properties_ == nullptr
|
|
177
|
+
? true
|
|
178
|
+
: static_cast<bool>(
|
|
179
|
+
table_properties_->user_defined_timestamps_persisted));
|
|
172
180
|
// Allow open file with global sequence number for backward compatibility.
|
|
173
181
|
t_opt.largest_seqno = kMaxSequenceNumber;
|
|
174
182
|
|
|
@@ -187,6 +195,7 @@ Status SstFileDumper::NewTableReader(
|
|
|
187
195
|
}
|
|
188
196
|
|
|
189
197
|
Status SstFileDumper::VerifyChecksum() {
|
|
198
|
+
assert(read_options_.verify_checksums);
|
|
190
199
|
// We could pass specific readahead setting into read options if needed.
|
|
191
200
|
return table_reader_->VerifyChecksum(read_options_,
|
|
192
201
|
TableReaderCaller::kSSTDumpTool);
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "db/db_impl/db_impl.h"
|
|
11
11
|
#include "db/dbformat.h"
|
|
12
|
+
#include "db/wide/wide_column_serialization.h"
|
|
12
13
|
#include "file/writable_file_writer.h"
|
|
13
14
|
#include "rocksdb/file_system.h"
|
|
14
15
|
#include "rocksdb/table.h"
|
|
@@ -81,7 +82,8 @@ struct SstFileWriter::Rep {
|
|
|
81
82
|
|
|
82
83
|
assert(value_type == kTypeValue || value_type == kTypeMerge ||
|
|
83
84
|
value_type == kTypeDeletion ||
|
|
84
|
-
value_type == kTypeDeletionWithTimestamp
|
|
85
|
+
value_type == kTypeDeletionWithTimestamp ||
|
|
86
|
+
value_type == kTypeWideColumnEntity);
|
|
85
87
|
|
|
86
88
|
constexpr SequenceNumber sequence_number = 0;
|
|
87
89
|
|
|
@@ -130,6 +132,24 @@ struct SstFileWriter::Rep {
|
|
|
130
132
|
return AddImpl(user_key_with_ts, value, value_type);
|
|
131
133
|
}
|
|
132
134
|
|
|
135
|
+
Status AddEntity(const Slice& user_key, const WideColumns& columns) {
|
|
136
|
+
WideColumns sorted_columns(columns);
|
|
137
|
+
std::sort(sorted_columns.begin(), sorted_columns.end(),
|
|
138
|
+
[](const WideColumn& lhs, const WideColumn& rhs) {
|
|
139
|
+
return lhs.name().compare(rhs.name()) < 0;
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
std::string entity;
|
|
143
|
+
const Status s = WideColumnSerialization::Serialize(sorted_columns, entity);
|
|
144
|
+
if (!s.ok()) {
|
|
145
|
+
return s;
|
|
146
|
+
}
|
|
147
|
+
if (entity.size() > size_t{std::numeric_limits<uint32_t>::max()}) {
|
|
148
|
+
return Status::InvalidArgument("wide column entity is too large");
|
|
149
|
+
}
|
|
150
|
+
return Add(user_key, entity, kTypeWideColumnEntity);
|
|
151
|
+
}
|
|
152
|
+
|
|
133
153
|
Status DeleteRangeImpl(const Slice& begin_key, const Slice& end_key) {
|
|
134
154
|
if (!builder) {
|
|
135
155
|
return Status::InvalidArgument("File is not opened");
|
|
@@ -371,6 +391,11 @@ Status SstFileWriter::Put(const Slice& user_key, const Slice& timestamp,
|
|
|
371
391
|
return rep_->Add(user_key, timestamp, value, ValueType::kTypeValue);
|
|
372
392
|
}
|
|
373
393
|
|
|
394
|
+
Status SstFileWriter::PutEntity(const Slice& user_key,
|
|
395
|
+
const WideColumns& columns) {
|
|
396
|
+
return rep_->AddEntity(user_key, columns);
|
|
397
|
+
}
|
|
398
|
+
|
|
374
399
|
Status SstFileWriter::Merge(const Slice& user_key, const Slice& value) {
|
|
375
400
|
return rep_->Add(user_key, value, ValueType::kTypeMerge);
|
|
376
401
|
}
|
|
@@ -43,7 +43,7 @@ struct TableReaderOptions {
|
|
|
43
43
|
size_t _max_file_size_for_l0_meta_pin = 0,
|
|
44
44
|
const std::string& _cur_db_session_id = "", uint64_t _cur_file_num = 0,
|
|
45
45
|
UniqueId64x2 _unique_id = {}, SequenceNumber _largest_seqno = 0,
|
|
46
|
-
uint64_t _tail_size = 0)
|
|
46
|
+
uint64_t _tail_size = 0, bool _user_defined_timestamps_persisted = true)
|
|
47
47
|
: ioptions(_ioptions),
|
|
48
48
|
prefix_extractor(_prefix_extractor),
|
|
49
49
|
env_options(_env_options),
|
|
@@ -59,7 +59,8 @@ struct TableReaderOptions {
|
|
|
59
59
|
cur_file_num(_cur_file_num),
|
|
60
60
|
unique_id(_unique_id),
|
|
61
61
|
block_protection_bytes_per_key(_block_protection_bytes_per_key),
|
|
62
|
-
tail_size(_tail_size)
|
|
62
|
+
tail_size(_tail_size),
|
|
63
|
+
user_defined_timestamps_persisted(_user_defined_timestamps_persisted) {}
|
|
63
64
|
|
|
64
65
|
const ImmutableOptions& ioptions;
|
|
65
66
|
const std::shared_ptr<const SliceTransform>& prefix_extractor;
|
|
@@ -93,6 +94,9 @@ struct TableReaderOptions {
|
|
|
93
94
|
uint8_t block_protection_bytes_per_key;
|
|
94
95
|
|
|
95
96
|
uint64_t tail_size;
|
|
97
|
+
|
|
98
|
+
// Whether the key in the table contains user-defined timestamps.
|
|
99
|
+
bool user_defined_timestamps_persisted;
|
|
96
100
|
};
|
|
97
101
|
|
|
98
102
|
struct TableBuilderOptions {
|
|
@@ -109,6 +109,10 @@ std::string TableProperties::ToString(const std::string& prop_delim,
|
|
|
109
109
|
AppendProperty(result, "comparator name",
|
|
110
110
|
comparator_name.empty() ? std::string("N/A") : comparator_name,
|
|
111
111
|
prop_delim, kv_delim);
|
|
112
|
+
AppendProperty(result, "user defined timestamps persisted",
|
|
113
|
+
user_defined_timestamps_persisted ? std::string("true")
|
|
114
|
+
: std::string("false"),
|
|
115
|
+
prop_delim, kv_delim);
|
|
112
116
|
|
|
113
117
|
AppendProperty(
|
|
114
118
|
result, "merge operator name",
|
|
@@ -305,6 +309,8 @@ const std::string TablePropertiesNames::kSequenceNumberTimeMapping =
|
|
|
305
309
|
"rocksdb.seqno.time.map";
|
|
306
310
|
const std::string TablePropertiesNames::kTailStartOffset =
|
|
307
311
|
"rocksdb.tail.start.offset";
|
|
312
|
+
const std::string TablePropertiesNames::kUserDefinedTimestampsPersisted =
|
|
313
|
+
"rocksdb.user.defined.timestamps.persisted";
|
|
308
314
|
|
|
309
315
|
#ifndef NDEBUG
|
|
310
316
|
// WARNING: TEST_SetRandomTableProperties assumes the following layout of
|
|
@@ -1330,7 +1330,7 @@ class FileChecksumTestHelper {
|
|
|
1330
1330
|
uint64_t offset = 0;
|
|
1331
1331
|
Status s;
|
|
1332
1332
|
s = file_reader_->Read(IOOptions(), offset, 2048, &result, scratch.get(),
|
|
1333
|
-
nullptr
|
|
1333
|
+
nullptr);
|
|
1334
1334
|
if (!s.ok()) {
|
|
1335
1335
|
return s;
|
|
1336
1336
|
}
|
|
@@ -1338,8 +1338,7 @@ class FileChecksumTestHelper {
|
|
|
1338
1338
|
file_checksum_generator->Update(scratch.get(), result.size());
|
|
1339
1339
|
offset += static_cast<uint64_t>(result.size());
|
|
1340
1340
|
s = file_reader_->Read(IOOptions(), offset, 2048, &result, scratch.get(),
|
|
1341
|
-
nullptr
|
|
1342
|
-
Env::IO_TOTAL /* rate_limiter_priority */);
|
|
1341
|
+
nullptr);
|
|
1343
1342
|
if (!s.ok()) {
|
|
1344
1343
|
return s;
|
|
1345
1344
|
}
|
|
@@ -4472,11 +4471,12 @@ TEST(TableTest, FooterTests) {
|
|
|
4472
4471
|
BlockHandle index(data_size + 5, index_size);
|
|
4473
4472
|
BlockHandle meta_index(data_size + index_size + 2 * 5, metaindex_size);
|
|
4474
4473
|
uint64_t footer_offset = data_size + metaindex_size + index_size + 3 * 5;
|
|
4474
|
+
uint32_t base_context_checksum = 123456789;
|
|
4475
4475
|
{
|
|
4476
4476
|
// legacy block based
|
|
4477
4477
|
FooterBuilder footer;
|
|
4478
|
-
footer.Build(kBlockBasedTableMagicNumber, /* format_version */ 0,
|
|
4479
|
-
|
|
4478
|
+
ASSERT_OK(footer.Build(kBlockBasedTableMagicNumber, /* format_version */ 0,
|
|
4479
|
+
footer_offset, kCRC32c, meta_index, index));
|
|
4480
4480
|
Footer decoded_footer;
|
|
4481
4481
|
ASSERT_OK(decoded_footer.DecodeFrom(footer.GetSlice(), footer_offset));
|
|
4482
4482
|
ASSERT_EQ(decoded_footer.table_magic_number(), kBlockBasedTableMagicNumber);
|
|
@@ -4486,6 +4486,7 @@ TEST(TableTest, FooterTests) {
|
|
|
4486
4486
|
ASSERT_EQ(decoded_footer.index_handle().offset(), index.offset());
|
|
4487
4487
|
ASSERT_EQ(decoded_footer.index_handle().size(), index.size());
|
|
4488
4488
|
ASSERT_EQ(decoded_footer.format_version(), 0U);
|
|
4489
|
+
ASSERT_EQ(decoded_footer.base_context_checksum(), 0U);
|
|
4489
4490
|
ASSERT_EQ(decoded_footer.GetBlockTrailerSize(), 5U);
|
|
4490
4491
|
// Ensure serialized with legacy magic
|
|
4491
4492
|
ASSERT_EQ(
|
|
@@ -4495,9 +4496,11 @@ TEST(TableTest, FooterTests) {
|
|
|
4495
4496
|
// block based, various checksums, various versions
|
|
4496
4497
|
for (auto t : GetSupportedChecksums()) {
|
|
4497
4498
|
for (uint32_t fv = 1; IsSupportedFormatVersion(fv); ++fv) {
|
|
4499
|
+
uint32_t maybe_bcc =
|
|
4500
|
+
FormatVersionUsesContextChecksum(fv) ? base_context_checksum : 0U;
|
|
4498
4501
|
FooterBuilder footer;
|
|
4499
|
-
footer.Build(kBlockBasedTableMagicNumber, fv, footer_offset, t,
|
|
4500
|
-
|
|
4502
|
+
ASSERT_OK(footer.Build(kBlockBasedTableMagicNumber, fv, footer_offset, t,
|
|
4503
|
+
meta_index, index, maybe_bcc));
|
|
4501
4504
|
Footer decoded_footer;
|
|
4502
4505
|
ASSERT_OK(decoded_footer.DecodeFrom(footer.GetSlice(), footer_offset));
|
|
4503
4506
|
ASSERT_EQ(decoded_footer.table_magic_number(),
|
|
@@ -4506,18 +4509,44 @@ TEST(TableTest, FooterTests) {
|
|
|
4506
4509
|
ASSERT_EQ(decoded_footer.metaindex_handle().offset(),
|
|
4507
4510
|
meta_index.offset());
|
|
4508
4511
|
ASSERT_EQ(decoded_footer.metaindex_handle().size(), meta_index.size());
|
|
4509
|
-
|
|
4510
|
-
|
|
4512
|
+
if (FormatVersionUsesIndexHandleInFooter(fv)) {
|
|
4513
|
+
ASSERT_EQ(decoded_footer.index_handle().offset(), index.offset());
|
|
4514
|
+
ASSERT_EQ(decoded_footer.index_handle().size(), index.size());
|
|
4515
|
+
}
|
|
4511
4516
|
ASSERT_EQ(decoded_footer.format_version(), fv);
|
|
4512
4517
|
ASSERT_EQ(decoded_footer.GetBlockTrailerSize(), 5U);
|
|
4518
|
+
|
|
4519
|
+
if (FormatVersionUsesContextChecksum(fv)) {
|
|
4520
|
+
ASSERT_EQ(decoded_footer.base_context_checksum(),
|
|
4521
|
+
base_context_checksum);
|
|
4522
|
+
|
|
4523
|
+
// Bad offset should fail footer checksum
|
|
4524
|
+
decoded_footer = Footer();
|
|
4525
|
+
ASSERT_NOK(
|
|
4526
|
+
decoded_footer.DecodeFrom(footer.GetSlice(), footer_offset - 1));
|
|
4527
|
+
} else {
|
|
4528
|
+
ASSERT_EQ(decoded_footer.base_context_checksum(), 0U);
|
|
4529
|
+
}
|
|
4530
|
+
|
|
4531
|
+
// Too big metaindex size should also fail encoding only in new footer
|
|
4532
|
+
uint64_t big_metaindex_size = 0x100000007U;
|
|
4533
|
+
uint64_t big_footer_offset =
|
|
4534
|
+
data_size + big_metaindex_size + index_size + 3 * 5;
|
|
4535
|
+
BlockHandle big_metaindex =
|
|
4536
|
+
BlockHandle(data_size + index_size + 2 * 5, big_metaindex_size);
|
|
4537
|
+
ASSERT_NE(footer
|
|
4538
|
+
.Build(kBlockBasedTableMagicNumber, fv, big_footer_offset,
|
|
4539
|
+
t, big_metaindex, index, maybe_bcc)
|
|
4540
|
+
.ok(),
|
|
4541
|
+
FormatVersionUsesContextChecksum(fv));
|
|
4513
4542
|
}
|
|
4514
4543
|
}
|
|
4515
4544
|
|
|
4516
4545
|
{
|
|
4517
4546
|
// legacy plain table
|
|
4518
4547
|
FooterBuilder footer;
|
|
4519
|
-
footer.Build(kPlainTableMagicNumber, /* format_version */ 0,
|
|
4520
|
-
|
|
4548
|
+
ASSERT_OK(footer.Build(kPlainTableMagicNumber, /* format_version */ 0,
|
|
4549
|
+
footer_offset, kNoChecksum, meta_index));
|
|
4521
4550
|
Footer decoded_footer;
|
|
4522
4551
|
ASSERT_OK(decoded_footer.DecodeFrom(footer.GetSlice(), footer_offset));
|
|
4523
4552
|
ASSERT_EQ(decoded_footer.table_magic_number(), kPlainTableMagicNumber);
|
|
@@ -4536,8 +4565,8 @@ TEST(TableTest, FooterTests) {
|
|
|
4536
4565
|
{
|
|
4537
4566
|
// xxhash plain table (not currently used)
|
|
4538
4567
|
FooterBuilder footer;
|
|
4539
|
-
footer.Build(kPlainTableMagicNumber, /* format_version */ 1,
|
|
4540
|
-
|
|
4568
|
+
ASSERT_OK(footer.Build(kPlainTableMagicNumber, /* format_version */ 1,
|
|
4569
|
+
footer_offset, kxxHash, meta_index));
|
|
4541
4570
|
Footer decoded_footer;
|
|
4542
4571
|
ASSERT_OK(decoded_footer.DecodeFrom(footer.GetSlice(), footer_offset));
|
|
4543
4572
|
ASSERT_EQ(decoded_footer.table_magic_number(), kPlainTableMagicNumber);
|
|
@@ -5211,9 +5240,13 @@ TEST_P(BlockBasedTableTest, PropertiesMetaBlockLast) {
|
|
|
5211
5240
|
}
|
|
5212
5241
|
}
|
|
5213
5242
|
ASSERT_EQ(kPropertiesBlockName, key_at_max_offset);
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5243
|
+
if (FormatVersionUsesIndexHandleInFooter(footer.format_version())) {
|
|
5244
|
+
// If index handle is stored in footer rather than metaindex block,
|
|
5245
|
+
// need separate logic to verify it comes before properties block.
|
|
5246
|
+
ASSERT_GT(max_offset, footer.index_handle().offset());
|
|
5247
|
+
} else {
|
|
5248
|
+
ASSERT_TRUE(footer.index_handle().IsNull());
|
|
5249
|
+
}
|
|
5217
5250
|
c.ResetTableReader();
|
|
5218
5251
|
}
|
|
5219
5252
|
|
|
@@ -5362,16 +5395,13 @@ TEST_F(BBTTailPrefetchTest, FilePrefetchBufferMinOffset) {
|
|
|
5362
5395
|
IOOptions opts;
|
|
5363
5396
|
buffer.TryReadFromCache(opts, nullptr /* reader */, 500 /* offset */,
|
|
5364
5397
|
10 /* n */, nullptr /* result */,
|
|
5365
|
-
nullptr /* status
|
|
5366
|
-
Env::IO_TOTAL /* rate_limiter_priority */);
|
|
5398
|
+
nullptr /* status */);
|
|
5367
5399
|
buffer.TryReadFromCache(opts, nullptr /* reader */, 480 /* offset */,
|
|
5368
5400
|
10 /* n */, nullptr /* result */,
|
|
5369
|
-
nullptr /* status
|
|
5370
|
-
Env::IO_TOTAL /* rate_limiter_priority */);
|
|
5401
|
+
nullptr /* status */);
|
|
5371
5402
|
buffer.TryReadFromCache(opts, nullptr /* reader */, 490 /* offset */,
|
|
5372
5403
|
10 /* n */, nullptr /* result */,
|
|
5373
|
-
nullptr /* status
|
|
5374
|
-
Env::IO_TOTAL /* rate_limiter_priority */);
|
|
5404
|
+
nullptr /* status */);
|
|
5375
5405
|
ASSERT_EQ(480, buffer.min_offset_read());
|
|
5376
5406
|
}
|
|
5377
5407
|
|
|
@@ -42,12 +42,19 @@ class WithCacheType : public TestCreateContext {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
static constexpr auto kLRU = "lru";
|
|
45
|
-
static constexpr auto
|
|
45
|
+
static constexpr auto kFixedHyperClock = "fixed_hyper_clock";
|
|
46
|
+
static constexpr auto kAutoHyperClock = "auto_hyper_clock";
|
|
46
47
|
|
|
47
48
|
// For options other than capacity
|
|
48
49
|
size_t estimated_value_size_ = 1;
|
|
49
50
|
|
|
50
|
-
virtual const std::string& Type() = 0;
|
|
51
|
+
virtual const std::string& Type() const = 0;
|
|
52
|
+
|
|
53
|
+
static bool IsHyperClock(const std::string& type) {
|
|
54
|
+
return type == kFixedHyperClock || type == kAutoHyperClock;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
bool IsHyperClock() const { return IsHyperClock(Type()); }
|
|
51
58
|
|
|
52
59
|
std::shared_ptr<Cache> NewCache(
|
|
53
60
|
size_t capacity,
|
|
@@ -62,8 +69,11 @@ class WithCacheType : public TestCreateContext {
|
|
|
62
69
|
}
|
|
63
70
|
return lru_opts.MakeSharedCache();
|
|
64
71
|
}
|
|
65
|
-
if (type
|
|
66
|
-
HyperClockCacheOptions hc_opts{
|
|
72
|
+
if (IsHyperClock(type)) {
|
|
73
|
+
HyperClockCacheOptions hc_opts{
|
|
74
|
+
capacity, type == kFixedHyperClock ? estimated_value_size_ : 0};
|
|
75
|
+
hc_opts.min_avg_entry_charge =
|
|
76
|
+
std::max(size_t{1}, estimated_value_size_ / 2);
|
|
67
77
|
hc_opts.hash_seed = 0; // deterministic tests
|
|
68
78
|
if (modify_opts_fn) {
|
|
69
79
|
modify_opts_fn(hc_opts);
|
|
@@ -105,14 +115,16 @@ class WithCacheType : public TestCreateContext {
|
|
|
105
115
|
|
|
106
116
|
class WithCacheTypeParam : public WithCacheType,
|
|
107
117
|
public testing::WithParamInterface<std::string> {
|
|
108
|
-
const std::string& Type() override { return GetParam(); }
|
|
118
|
+
const std::string& Type() const override { return GetParam(); }
|
|
109
119
|
};
|
|
110
120
|
|
|
111
121
|
constexpr auto kLRU = WithCacheType::kLRU;
|
|
112
|
-
constexpr auto
|
|
122
|
+
constexpr auto kFixedHyperClock = WithCacheType::kFixedHyperClock;
|
|
123
|
+
constexpr auto kAutoHyperClock = WithCacheType::kAutoHyperClock;
|
|
113
124
|
|
|
114
125
|
inline auto GetTestingCacheTypes() {
|
|
115
|
-
return testing::Values(std::string(kLRU), std::string(
|
|
126
|
+
return testing::Values(std::string(kLRU), std::string(kFixedHyperClock),
|
|
127
|
+
std::string(kAutoHyperClock));
|
|
116
128
|
}
|
|
117
129
|
|
|
118
130
|
} // namespace secondary_cache_test_util
|
|
@@ -85,7 +85,9 @@ class SyncPoint {
|
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
// call once at the beginning of a test to setup the dependency between
|
|
88
|
-
// sync points
|
|
88
|
+
// sync points. Specifically, execution will not be allowed to proceed past
|
|
89
|
+
// each successor until execution has reached the corresponding predecessor,
|
|
90
|
+
// in any thread.
|
|
89
91
|
void LoadDependency(const std::vector<SyncPointPair>& dependencies);
|
|
90
92
|
|
|
91
93
|
// call once at the beginning of a test to setup the dependency between
|
|
@@ -39,7 +39,10 @@ namespace test {
|
|
|
39
39
|
|
|
40
40
|
const uint32_t kDefaultFormatVersion = BlockBasedTableOptions().format_version;
|
|
41
41
|
const std::set<uint32_t> kFooterFormatVersionsToTest{
|
|
42
|
+
// Non-legacy, before big footer changes
|
|
42
43
|
5U,
|
|
44
|
+
// After big footer changes
|
|
45
|
+
6U,
|
|
43
46
|
// In case any interesting future changes
|
|
44
47
|
kDefaultFormatVersion,
|
|
45
48
|
kLatestFormatVersion,
|
|
@@ -72,6 +75,22 @@ std::string RandomKey(Random* rnd, int len, RandomKeyType type) {
|
|
|
72
75
|
return result;
|
|
73
76
|
}
|
|
74
77
|
|
|
78
|
+
const std::vector<UserDefinedTimestampTestMode>& GetUDTTestModes() {
|
|
79
|
+
static std::vector<UserDefinedTimestampTestMode> udt_test_modes = {
|
|
80
|
+
UserDefinedTimestampTestMode::kStripUserDefinedTimestamp,
|
|
81
|
+
UserDefinedTimestampTestMode::kNormal,
|
|
82
|
+
UserDefinedTimestampTestMode::kNone};
|
|
83
|
+
return udt_test_modes;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
bool IsUDTEnabled(const UserDefinedTimestampTestMode& test_mode) {
|
|
87
|
+
return test_mode != UserDefinedTimestampTestMode::kNone;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
bool ShouldPersistUDT(const UserDefinedTimestampTestMode& test_mode) {
|
|
91
|
+
return test_mode != UserDefinedTimestampTestMode::kStripUserDefinedTimestamp;
|
|
92
|
+
}
|
|
93
|
+
|
|
75
94
|
extern Slice CompressibleString(Random* rnd, double compressed_fraction,
|
|
76
95
|
int len, std::string* dst) {
|
|
77
96
|
int raw = static_cast<int>(len * compressed_fraction);
|
|
@@ -134,6 +153,16 @@ const Comparator* BytewiseComparatorWithU64TsWrapper() {
|
|
|
134
153
|
return user_comparator;
|
|
135
154
|
}
|
|
136
155
|
|
|
156
|
+
const Comparator* ReverseBytewiseComparatorWithU64TsWrapper() {
|
|
157
|
+
ConfigOptions config_options;
|
|
158
|
+
const Comparator* user_comparator = nullptr;
|
|
159
|
+
Status s = Comparator::CreateFromString(
|
|
160
|
+
config_options, "rocksdb.ReverseBytewiseComparator.u64ts",
|
|
161
|
+
&user_comparator);
|
|
162
|
+
s.PermitUncheckedError();
|
|
163
|
+
return user_comparator;
|
|
164
|
+
}
|
|
165
|
+
|
|
137
166
|
void CorruptKeyType(InternalKey* ikey) {
|
|
138
167
|
std::string keystr = ikey->Encode().ToString();
|
|
139
168
|
keystr[keystr.size() - 8] = kTypeLogData;
|
|
@@ -52,6 +52,22 @@ enum RandomKeyType : char { RANDOM, LARGEST, SMALLEST, MIDDLE };
|
|
|
52
52
|
extern std::string RandomKey(Random* rnd, int len,
|
|
53
53
|
RandomKeyType type = RandomKeyType::RANDOM);
|
|
54
54
|
|
|
55
|
+
enum class UserDefinedTimestampTestMode {
|
|
56
|
+
// Test does not enable user-defined timestamp feature.
|
|
57
|
+
kNone,
|
|
58
|
+
// Test enables user-defined timestamp feature. Write/read with min timestamps
|
|
59
|
+
kNormal,
|
|
60
|
+
// Test enables user-defined timestamp feature. Write/read with min timestamps
|
|
61
|
+
// Set `persist_user_defined_timestamps` to false.
|
|
62
|
+
kStripUserDefinedTimestamp,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
extern const std::vector<UserDefinedTimestampTestMode>& GetUDTTestModes();
|
|
66
|
+
|
|
67
|
+
extern bool IsUDTEnabled(const UserDefinedTimestampTestMode& test_mode);
|
|
68
|
+
|
|
69
|
+
extern bool ShouldPersistUDT(const UserDefinedTimestampTestMode& test_mode);
|
|
70
|
+
|
|
55
71
|
// Store in *dst a string of length "len" that will compress to
|
|
56
72
|
// "N*compressed_fraction" bytes and return a Slice that references
|
|
57
73
|
// the generated data.
|
|
@@ -116,6 +132,9 @@ extern const Comparator* Uint64Comparator();
|
|
|
116
132
|
// A wrapper api for getting the ComparatorWithU64Ts<BytewiseComparator>
|
|
117
133
|
extern const Comparator* BytewiseComparatorWithU64TsWrapper();
|
|
118
134
|
|
|
135
|
+
// A wrapper api for getting the ComparatorWithU64Ts<ReverseBytewiseComparator>
|
|
136
|
+
extern const Comparator* ReverseBytewiseComparatorWithU64TsWrapper();
|
|
137
|
+
|
|
119
138
|
class StringSink : public FSWritableFile {
|
|
120
139
|
public:
|
|
121
140
|
std::string contents_;
|
|
@@ -602,6 +602,12 @@ DEFINE_uint32(
|
|
|
602
602
|
"compress_format_version == 2 -- decompressed size is included"
|
|
603
603
|
" in the block header in varint32 format.");
|
|
604
604
|
|
|
605
|
+
DEFINE_bool(use_tiered_volatile_cache, false,
|
|
606
|
+
"If use_compressed_secondary_cache is true and "
|
|
607
|
+
"use_tiered_volatile_cache is true, then allocate a tiered cache "
|
|
608
|
+
"that distributes cache reservations proportionally over both "
|
|
609
|
+
"the caches.");
|
|
610
|
+
|
|
605
611
|
DEFINE_int64(simcache_size, -1,
|
|
606
612
|
"Number of bytes to use as a simcache of "
|
|
607
613
|
"uncompressed data. Nagative value disables simcache.");
|
|
@@ -2828,7 +2834,7 @@ class Benchmark {
|
|
|
2828
2834
|
std::string input_str(len, 'y');
|
|
2829
2835
|
std::string compressed;
|
|
2830
2836
|
CompressionOptions opts;
|
|
2831
|
-
CompressionContext context(FLAGS_compression_type_e);
|
|
2837
|
+
CompressionContext context(FLAGS_compression_type_e, opts);
|
|
2832
2838
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
2833
2839
|
FLAGS_compression_type_e,
|
|
2834
2840
|
FLAGS_sample_for_compression);
|
|
@@ -3009,19 +3015,54 @@ class Benchmark {
|
|
|
3009
3015
|
}
|
|
3010
3016
|
|
|
3011
3017
|
static std::shared_ptr<Cache> NewCache(int64_t capacity) {
|
|
3018
|
+
CompressedSecondaryCacheOptions secondary_cache_opts;
|
|
3019
|
+
bool use_tiered_cache = false;
|
|
3012
3020
|
if (capacity <= 0) {
|
|
3013
3021
|
return nullptr;
|
|
3014
3022
|
}
|
|
3023
|
+
if (FLAGS_use_compressed_secondary_cache) {
|
|
3024
|
+
secondary_cache_opts.capacity = FLAGS_compressed_secondary_cache_size;
|
|
3025
|
+
secondary_cache_opts.num_shard_bits =
|
|
3026
|
+
FLAGS_compressed_secondary_cache_numshardbits;
|
|
3027
|
+
secondary_cache_opts.high_pri_pool_ratio =
|
|
3028
|
+
FLAGS_compressed_secondary_cache_high_pri_pool_ratio;
|
|
3029
|
+
secondary_cache_opts.low_pri_pool_ratio =
|
|
3030
|
+
FLAGS_compressed_secondary_cache_low_pri_pool_ratio;
|
|
3031
|
+
secondary_cache_opts.compression_type =
|
|
3032
|
+
FLAGS_compressed_secondary_cache_compression_type_e;
|
|
3033
|
+
secondary_cache_opts.compress_format_version =
|
|
3034
|
+
FLAGS_compressed_secondary_cache_compress_format_version;
|
|
3035
|
+
if (FLAGS_use_tiered_volatile_cache) {
|
|
3036
|
+
use_tiered_cache = true;
|
|
3037
|
+
}
|
|
3038
|
+
}
|
|
3015
3039
|
if (FLAGS_cache_type == "clock_cache") {
|
|
3016
3040
|
fprintf(stderr, "Old clock cache implementation has been removed.\n");
|
|
3017
3041
|
exit(1);
|
|
3018
|
-
} else if (FLAGS_cache_type
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3042
|
+
} else if (EndsWith(FLAGS_cache_type, "hyper_clock_cache")) {
|
|
3043
|
+
size_t estimated_entry_charge;
|
|
3044
|
+
if (FLAGS_cache_type == "fixed_hyper_clock_cache" ||
|
|
3045
|
+
FLAGS_cache_type == "hyper_clock_cache") {
|
|
3046
|
+
estimated_entry_charge = FLAGS_block_size;
|
|
3047
|
+
} else if (FLAGS_cache_type == "auto_hyper_clock_cache") {
|
|
3048
|
+
estimated_entry_charge = 0;
|
|
3049
|
+
} else {
|
|
3050
|
+
fprintf(stderr, "Cache type not supported.");
|
|
3051
|
+
exit(1);
|
|
3052
|
+
}
|
|
3053
|
+
HyperClockCacheOptions opts(FLAGS_cache_size, estimated_entry_charge,
|
|
3054
|
+
FLAGS_cache_numshardbits);
|
|
3055
|
+
opts.hash_seed = GetCacheHashSeed();
|
|
3056
|
+
if (use_tiered_cache) {
|
|
3057
|
+
TieredVolatileCacheOptions tiered_opts;
|
|
3058
|
+
opts.capacity += secondary_cache_opts.capacity;
|
|
3059
|
+
tiered_opts.cache_type = PrimaryCacheType::kCacheTypeHCC;
|
|
3060
|
+
tiered_opts.cache_opts = &opts;
|
|
3061
|
+
tiered_opts.comp_cache_opts = secondary_cache_opts;
|
|
3062
|
+
return NewTieredVolatileCache(tiered_opts);
|
|
3063
|
+
} else {
|
|
3064
|
+
return opts.MakeSharedCache();
|
|
3065
|
+
}
|
|
3025
3066
|
} else if (FLAGS_cache_type == "lru_cache") {
|
|
3026
3067
|
LRUCacheOptions opts(
|
|
3027
3068
|
static_cast<size_t>(capacity), FLAGS_cache_numshardbits,
|
|
@@ -3040,26 +3081,21 @@ class Benchmark {
|
|
|
3040
3081
|
exit(1);
|
|
3041
3082
|
}
|
|
3042
3083
|
opts.secondary_cache = secondary_cache;
|
|
3043
|
-
}
|
|
3044
|
-
|
|
3045
|
-
if (FLAGS_use_compressed_secondary_cache) {
|
|
3046
|
-
CompressedSecondaryCacheOptions secondary_cache_opts;
|
|
3047
|
-
secondary_cache_opts.capacity = FLAGS_compressed_secondary_cache_size;
|
|
3048
|
-
secondary_cache_opts.num_shard_bits =
|
|
3049
|
-
FLAGS_compressed_secondary_cache_numshardbits;
|
|
3050
|
-
secondary_cache_opts.high_pri_pool_ratio =
|
|
3051
|
-
FLAGS_compressed_secondary_cache_high_pri_pool_ratio;
|
|
3052
|
-
secondary_cache_opts.low_pri_pool_ratio =
|
|
3053
|
-
FLAGS_compressed_secondary_cache_low_pri_pool_ratio;
|
|
3054
|
-
secondary_cache_opts.compression_type =
|
|
3055
|
-
FLAGS_compressed_secondary_cache_compression_type_e;
|
|
3056
|
-
secondary_cache_opts.compress_format_version =
|
|
3057
|
-
FLAGS_compressed_secondary_cache_compress_format_version;
|
|
3084
|
+
} else if (FLAGS_use_compressed_secondary_cache && !use_tiered_cache) {
|
|
3058
3085
|
opts.secondary_cache =
|
|
3059
3086
|
NewCompressedSecondaryCache(secondary_cache_opts);
|
|
3060
3087
|
}
|
|
3061
3088
|
|
|
3062
|
-
|
|
3089
|
+
if (use_tiered_cache) {
|
|
3090
|
+
TieredVolatileCacheOptions tiered_opts;
|
|
3091
|
+
opts.capacity += secondary_cache_opts.capacity;
|
|
3092
|
+
tiered_opts.cache_type = PrimaryCacheType::kCacheTypeLRU;
|
|
3093
|
+
tiered_opts.cache_opts = &opts;
|
|
3094
|
+
tiered_opts.comp_cache_opts = secondary_cache_opts;
|
|
3095
|
+
return NewTieredVolatileCache(tiered_opts);
|
|
3096
|
+
} else {
|
|
3097
|
+
return opts.MakeSharedCache();
|
|
3098
|
+
}
|
|
3063
3099
|
} else {
|
|
3064
3100
|
fprintf(stderr, "Cache type not supported.");
|
|
3065
3101
|
exit(1);
|
|
@@ -3966,7 +4002,8 @@ class Benchmark {
|
|
|
3966
4002
|
bool ok = true;
|
|
3967
4003
|
std::string compressed;
|
|
3968
4004
|
CompressionOptions opts;
|
|
3969
|
-
|
|
4005
|
+
opts.level = FLAGS_compression_level;
|
|
4006
|
+
CompressionContext context(FLAGS_compression_type_e, opts);
|
|
3970
4007
|
CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(),
|
|
3971
4008
|
FLAGS_compression_type_e,
|
|
3972
4009
|
FLAGS_sample_for_compression);
|
|
@@ -3995,8 +4032,10 @@ class Benchmark {
|
|
|
3995
4032
|
Slice input = gen.Generate(FLAGS_block_size);
|
|
3996
4033
|
std::string compressed;
|
|
3997
4034
|
|
|
3998
|
-
CompressionContext compression_ctx(FLAGS_compression_type_e);
|
|
3999
4035
|
CompressionOptions compression_opts;
|
|
4036
|
+
compression_opts.level = FLAGS_compression_level;
|
|
4037
|
+
CompressionContext compression_ctx(FLAGS_compression_type_e,
|
|
4038
|
+
compression_opts);
|
|
4000
4039
|
CompressionInfo compression_info(
|
|
4001
4040
|
compression_opts, compression_ctx, CompressionDict::GetEmptyDict(),
|
|
4002
4041
|
FLAGS_compression_type_e, FLAGS_sample_for_compression);
|
|
@@ -1310,7 +1310,8 @@ void DBLoaderCommand::DoCommand() {
|
|
|
1310
1310
|
namespace {
|
|
1311
1311
|
|
|
1312
1312
|
void DumpManifestFile(Options options, std::string file, bool verbose, bool hex,
|
|
1313
|
-
bool json
|
|
1313
|
+
bool json,
|
|
1314
|
+
const std::vector<ColumnFamilyDescriptor>& cf_descs) {
|
|
1314
1315
|
EnvOptions sopt;
|
|
1315
1316
|
std::string dbname("dummy");
|
|
1316
1317
|
std::shared_ptr<Cache> tc(NewLRUCache(options.max_open_files - 10,
|
|
@@ -1326,7 +1327,7 @@ void DumpManifestFile(Options options, std::string file, bool verbose, bool hex,
|
|
|
1326
1327
|
VersionSet versions(dbname, &immutable_db_options, sopt, tc.get(), &wb, &wc,
|
|
1327
1328
|
/*block_cache_tracer=*/nullptr, /*io_tracer=*/nullptr,
|
|
1328
1329
|
/*db_id*/ "", /*db_session_id*/ "");
|
|
1329
|
-
Status s = versions.DumpManifest(options, file, verbose, hex, json);
|
|
1330
|
+
Status s = versions.DumpManifest(options, file, verbose, hex, json, cf_descs);
|
|
1330
1331
|
if (!s.ok()) {
|
|
1331
1332
|
fprintf(stderr, "Error in processing file %s %s\n", file.c_str(),
|
|
1332
1333
|
s.ToString().c_str());
|
|
@@ -1438,7 +1439,8 @@ void ManifestDumpCommand::DoCommand() {
|
|
|
1438
1439
|
fprintf(stdout, "Processing Manifest file %s\n", manifestfile.c_str());
|
|
1439
1440
|
}
|
|
1440
1441
|
|
|
1441
|
-
DumpManifestFile(options_, manifestfile, verbose_, is_key_hex_, json_
|
|
1442
|
+
DumpManifestFile(options_, manifestfile, verbose_, is_key_hex_, json_,
|
|
1443
|
+
column_families_);
|
|
1442
1444
|
|
|
1443
1445
|
if (verbose_) {
|
|
1444
1446
|
fprintf(stdout, "Processing Manifest file %s done\n", manifestfile.c_str());
|
|
@@ -2046,7 +2048,7 @@ void DBDumperCommand::DoCommand() {
|
|
|
2046
2048
|
break;
|
|
2047
2049
|
case kDescriptorFile:
|
|
2048
2050
|
DumpManifestFile(options_, path_, /* verbose_ */ false, is_key_hex_,
|
|
2049
|
-
/* json_ */ false);
|
|
2051
|
+
/* json_ */ false, column_families_);
|
|
2050
2052
|
break;
|
|
2051
2053
|
case kBlobFile:
|
|
2052
2054
|
DumpBlobFile(path_, is_key_hex_, is_value_hex_,
|
|
@@ -3706,7 +3708,8 @@ void DBFileDumperCommand::DoCommand() {
|
|
|
3706
3708
|
manifest_filepath = NormalizePath(manifest_filepath);
|
|
3707
3709
|
|
|
3708
3710
|
std::cout << manifest_filepath << std::endl;
|
|
3709
|
-
DumpManifestFile(options_, manifest_filepath, false, false, false
|
|
3711
|
+
DumpManifestFile(options_, manifest_filepath, false, false, false,
|
|
3712
|
+
column_families_);
|
|
3710
3713
|
std::cout << std::endl;
|
|
3711
3714
|
|
|
3712
3715
|
std::vector<ColumnFamilyMetaData> column_families;
|
|
@@ -93,6 +93,7 @@ void LDBCommandRunner::PrintHelp(const LDBOptions& ldb_options,
|
|
|
93
93
|
BatchPutCommand::Help(ret);
|
|
94
94
|
ScanCommand::Help(ret);
|
|
95
95
|
DeleteCommand::Help(ret);
|
|
96
|
+
SingleDeleteCommand::Help(ret);
|
|
96
97
|
DeleteRangeCommand::Help(ret);
|
|
97
98
|
DBQuerierCommand::Help(ret);
|
|
98
99
|
ApproxSizeCommand::Help(ret);
|