@nxtedition/rocksdb 6.0.1 → 6.0.2
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/BUILDING.md +2 -2
- package/binding.cc +14 -17
- package/deps/rocksdb/build_version.cc +4 -10
- package/deps/rocksdb/rocksdb/CMakeLists.txt +17 -3
- package/deps/rocksdb/rocksdb/Makefile +57 -86
- package/deps/rocksdb/rocksdb/TARGETS +4 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
- package/deps/rocksdb/rocksdb/common.mk +30 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/builder.cc +11 -4
- package/deps/rocksdb/rocksdb/db/c.cc +45 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +25 -2
- package/deps/rocksdb/rocksdb/db/column_family.cc +4 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +25 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +6 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +69 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +21 -21
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +135 -32
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +9 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +12 -12
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +15 -14
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +44 -42
- package/deps/rocksdb/rocksdb/db/db_test2.cc +23 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +95 -17
- package/deps/rocksdb/rocksdb/db/db_test_util.h +48 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +34 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +3 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +18 -4
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
- package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
- package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -4
- package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_set.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_set.h +3 -3
- package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +31 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +359 -275
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
- package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
- package/deps/rocksdb/rocksdb/env/env.cc +0 -60
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
- package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
- package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -1
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +69 -45
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +28 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +2 -8
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +34 -38
- package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
- package/deps/rocksdb/rocksdb/options/db_options.cc +38 -17
- package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +82 -39
- package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +115 -59
- package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
- package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +14 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +85 -41
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +42 -72
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +7 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +6 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -5
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/format.cc +22 -20
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +14 -11
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
- package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
- package/deps/rocksdb/rocksdb/table/unique_id.cc +57 -25
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +34 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +254 -98
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +17 -3
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
- package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
- package/deps/rocksdb/rocksdb/util/compression.h +7 -7
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
- package/deps/rocksdb/rocksdb/util/heap.h +5 -3
- package/deps/rocksdb/rocksdb/util/random.cc +1 -5
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
- package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
- package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +8 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/python.mk +0 -9
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-arm64/node.napi.node +0 -0
|
@@ -454,7 +454,7 @@ TEST_F(DBTestCompactionFilter, CompactionFilterDeletesAll) {
|
|
|
454
454
|
// put some data
|
|
455
455
|
for (int table = 0; table < 4; ++table) {
|
|
456
456
|
for (int i = 0; i < 10 + table; ++i) {
|
|
457
|
-
ASSERT_OK(Put(
|
|
457
|
+
ASSERT_OK(Put(std::to_string(table * 100 + i), "val"));
|
|
458
458
|
}
|
|
459
459
|
ASSERT_OK(Flush());
|
|
460
460
|
}
|
|
@@ -755,7 +755,7 @@ TEST_F(DBTestCompactionFilter, CompactionFilterContextCfId) {
|
|
|
755
755
|
#ifndef ROCKSDB_LITE
|
|
756
756
|
// Compaction filters aplies to all records, regardless snapshots.
|
|
757
757
|
TEST_F(DBTestCompactionFilter, CompactionFilterIgnoreSnapshot) {
|
|
758
|
-
std::string five =
|
|
758
|
+
std::string five = std::to_string(5);
|
|
759
759
|
Options options = CurrentOptions();
|
|
760
760
|
options.compaction_filter_factory = std::make_shared<DeleteISFilterFactory>();
|
|
761
761
|
options.disable_auto_compactions = true;
|
|
@@ -766,7 +766,7 @@ TEST_F(DBTestCompactionFilter, CompactionFilterIgnoreSnapshot) {
|
|
|
766
766
|
const Snapshot* snapshot = nullptr;
|
|
767
767
|
for (int table = 0; table < 4; ++table) {
|
|
768
768
|
for (int i = 0; i < 10; ++i) {
|
|
769
|
-
ASSERT_OK(Put(
|
|
769
|
+
ASSERT_OK(Put(std::to_string(table * 100 + i), "val"));
|
|
770
770
|
}
|
|
771
771
|
ASSERT_OK(Flush());
|
|
772
772
|
|
|
@@ -968,6 +968,71 @@ TEST_F(DBTestCompactionFilter, IgnoreSnapshotsFalseRecovery) {
|
|
|
968
968
|
ASSERT_TRUE(TryReopen(options).IsNotSupported());
|
|
969
969
|
}
|
|
970
970
|
|
|
971
|
+
TEST_F(DBTestCompactionFilter, DropKeyWithSingleDelete) {
|
|
972
|
+
Options options = GetDefaultOptions();
|
|
973
|
+
options.create_if_missing = true;
|
|
974
|
+
|
|
975
|
+
Reopen(options);
|
|
976
|
+
|
|
977
|
+
ASSERT_OK(Put("a", "v0"));
|
|
978
|
+
ASSERT_OK(Put("b", "v0"));
|
|
979
|
+
const Snapshot* snapshot = db_->GetSnapshot();
|
|
980
|
+
|
|
981
|
+
ASSERT_OK(SingleDelete("b"));
|
|
982
|
+
ASSERT_OK(Flush());
|
|
983
|
+
|
|
984
|
+
{
|
|
985
|
+
CompactRangeOptions cro;
|
|
986
|
+
cro.change_level = true;
|
|
987
|
+
cro.target_level = options.num_levels - 1;
|
|
988
|
+
ASSERT_OK(db_->CompactRange(cro, nullptr, nullptr));
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
db_->ReleaseSnapshot(snapshot);
|
|
992
|
+
Close();
|
|
993
|
+
|
|
994
|
+
class DeleteFilterV2 : public CompactionFilter {
|
|
995
|
+
public:
|
|
996
|
+
Decision FilterV2(int /*level*/, const Slice& key, ValueType /*value_type*/,
|
|
997
|
+
const Slice& /*existing_value*/,
|
|
998
|
+
std::string* /*new_value*/,
|
|
999
|
+
std::string* /*skip_until*/) const override {
|
|
1000
|
+
if (key.starts_with("b")) {
|
|
1001
|
+
return Decision::kPurge;
|
|
1002
|
+
}
|
|
1003
|
+
return Decision::kRemove;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
const char* Name() const override { return "DeleteFilterV2"; }
|
|
1007
|
+
} delete_filter_v2;
|
|
1008
|
+
|
|
1009
|
+
options.compaction_filter = &delete_filter_v2;
|
|
1010
|
+
options.level0_file_num_compaction_trigger = 2;
|
|
1011
|
+
Reopen(options);
|
|
1012
|
+
|
|
1013
|
+
ASSERT_OK(Put("b", "v1"));
|
|
1014
|
+
ASSERT_OK(Put("x", "v1"));
|
|
1015
|
+
ASSERT_OK(Flush());
|
|
1016
|
+
|
|
1017
|
+
ASSERT_OK(Put("r", "v1"));
|
|
1018
|
+
ASSERT_OK(Put("z", "v1"));
|
|
1019
|
+
ASSERT_OK(Flush());
|
|
1020
|
+
|
|
1021
|
+
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
1022
|
+
|
|
1023
|
+
Close();
|
|
1024
|
+
|
|
1025
|
+
options.compaction_filter = nullptr;
|
|
1026
|
+
Reopen(options);
|
|
1027
|
+
ASSERT_OK(SingleDelete("b"));
|
|
1028
|
+
ASSERT_OK(Flush());
|
|
1029
|
+
{
|
|
1030
|
+
CompactRangeOptions cro;
|
|
1031
|
+
cro.bottommost_level_compaction = BottommostLevelCompaction::kForce;
|
|
1032
|
+
ASSERT_OK(db_->CompactRange(cro, nullptr, nullptr));
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
|
|
971
1036
|
} // namespace ROCKSDB_NAMESPACE
|
|
972
1037
|
|
|
973
1038
|
int main(int argc, char** argv) {
|
|
@@ -2409,6 +2409,30 @@ TEST_P(DBCompactionTestWithParam, LevelCompactionCFPathUse) {
|
|
|
2409
2409
|
|
|
2410
2410
|
check_getvalues();
|
|
2411
2411
|
|
|
2412
|
+
{ // Also verify GetLiveFilesStorageInfo with db_paths / cf_paths
|
|
2413
|
+
std::vector<LiveFileStorageInfo> new_infos;
|
|
2414
|
+
LiveFilesStorageInfoOptions lfsio;
|
|
2415
|
+
lfsio.wal_size_for_flush = UINT64_MAX; // no flush
|
|
2416
|
+
ASSERT_OK(db_->GetLiveFilesStorageInfo(lfsio, &new_infos));
|
|
2417
|
+
std::unordered_map<std::string, int> live_sst_by_dir;
|
|
2418
|
+
for (auto& info : new_infos) {
|
|
2419
|
+
if (info.file_type == kTableFile) {
|
|
2420
|
+
live_sst_by_dir[info.directory]++;
|
|
2421
|
+
// Verify file on disk (no directory confusion)
|
|
2422
|
+
uint64_t size;
|
|
2423
|
+
ASSERT_OK(env_->GetFileSize(
|
|
2424
|
+
info.directory + "/" + info.relative_filename, &size));
|
|
2425
|
+
ASSERT_EQ(info.size, size);
|
|
2426
|
+
}
|
|
2427
|
+
}
|
|
2428
|
+
ASSERT_EQ(3U * 3U, live_sst_by_dir.size());
|
|
2429
|
+
for (auto& paths : {options.db_paths, cf_opt1.cf_paths, cf_opt2.cf_paths}) {
|
|
2430
|
+
ASSERT_EQ(1, live_sst_by_dir[paths[0].path]);
|
|
2431
|
+
ASSERT_EQ(4, live_sst_by_dir[paths[1].path]);
|
|
2432
|
+
ASSERT_EQ(2, live_sst_by_dir[paths[2].path]);
|
|
2433
|
+
}
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2412
2436
|
ReopenWithColumnFamilies({"default", "one", "two"}, option_vector);
|
|
2413
2437
|
|
|
2414
2438
|
check_getvalues();
|
|
@@ -2793,7 +2817,7 @@ TEST_P(DBCompactionTestWithParam, DISABLED_CompactFilesOnLevelCompaction) {
|
|
|
2793
2817
|
|
|
2794
2818
|
Random rnd(301);
|
|
2795
2819
|
for (int key = 64 * kEntriesPerBuffer; key >= 0; --key) {
|
|
2796
|
-
ASSERT_OK(Put(1,
|
|
2820
|
+
ASSERT_OK(Put(1, std::to_string(key), rnd.RandomString(kTestValueSize)));
|
|
2797
2821
|
}
|
|
2798
2822
|
ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable(handles_[1]));
|
|
2799
2823
|
ASSERT_OK(dbfull()->TEST_WaitForCompact());
|
|
@@ -2825,7 +2849,7 @@ TEST_P(DBCompactionTestWithParam, DISABLED_CompactFilesOnLevelCompaction) {
|
|
|
2825
2849
|
|
|
2826
2850
|
// make sure all key-values are still there.
|
|
2827
2851
|
for (int key = 64 * kEntriesPerBuffer; key >= 0; --key) {
|
|
2828
|
-
ASSERT_NE(Get(1,
|
|
2852
|
+
ASSERT_NE(Get(1, std::to_string(key)), "NOT_FOUND");
|
|
2829
2853
|
}
|
|
2830
2854
|
}
|
|
2831
2855
|
|
|
@@ -4380,7 +4404,8 @@ TEST_F(DBCompactionTest, LevelPeriodicCompactionWithCompactionFilters) {
|
|
|
4380
4404
|
for (CompactionFilterType comp_filter_type :
|
|
4381
4405
|
{kUseCompactionFilter, kUseCompactionFilterFactory}) {
|
|
4382
4406
|
// Assert that periodic compactions are not enabled.
|
|
4383
|
-
ASSERT_EQ(
|
|
4407
|
+
ASSERT_EQ(std::numeric_limits<uint64_t>::max() - 1,
|
|
4408
|
+
options.periodic_compaction_seconds);
|
|
4384
4409
|
|
|
4385
4410
|
if (comp_filter_type == kUseCompactionFilter) {
|
|
4386
4411
|
options.compaction_filter = &test_compaction_filter;
|
|
@@ -4643,9 +4668,9 @@ TEST_F(DBCompactionTest, CompactRangeSkipFlushAfterDelay) {
|
|
|
4643
4668
|
});
|
|
4644
4669
|
|
|
4645
4670
|
TEST_SYNC_POINT("DBCompactionTest::CompactRangeSkipFlushAfterDelay:PreFlush");
|
|
4646
|
-
ASSERT_OK(Put(
|
|
4671
|
+
ASSERT_OK(Put(std::to_string(0), rnd.RandomString(1024)));
|
|
4647
4672
|
ASSERT_OK(dbfull()->Flush(flush_opts));
|
|
4648
|
-
ASSERT_OK(Put(
|
|
4673
|
+
ASSERT_OK(Put(std::to_string(0), rnd.RandomString(1024)));
|
|
4649
4674
|
TEST_SYNC_POINT("DBCompactionTest::CompactRangeSkipFlushAfterDelay:PostFlush");
|
|
4650
4675
|
manual_compaction_thread.join();
|
|
4651
4676
|
|
|
@@ -4654,7 +4679,7 @@ TEST_F(DBCompactionTest, CompactRangeSkipFlushAfterDelay) {
|
|
|
4654
4679
|
std::string num_keys_in_memtable;
|
|
4655
4680
|
ASSERT_TRUE(db_->GetProperty(DB::Properties::kNumEntriesActiveMemTable,
|
|
4656
4681
|
&num_keys_in_memtable));
|
|
4657
|
-
ASSERT_EQ(
|
|
4682
|
+
ASSERT_EQ(std::to_string(1), num_keys_in_memtable);
|
|
4658
4683
|
|
|
4659
4684
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
4660
4685
|
}
|
|
@@ -4803,7 +4828,7 @@ TEST_F(DBCompactionTest, SubcompactionEvent) {
|
|
|
4803
4828
|
for (int i = 0; i < 4; i++) {
|
|
4804
4829
|
for (int j = 0; j < 10; j++) {
|
|
4805
4830
|
int key_id = i * 10 + j;
|
|
4806
|
-
ASSERT_OK(Put(Key(key_id), "value" +
|
|
4831
|
+
ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
|
|
4807
4832
|
}
|
|
4808
4833
|
ASSERT_OK(Flush());
|
|
4809
4834
|
}
|
|
@@ -4813,7 +4838,7 @@ TEST_F(DBCompactionTest, SubcompactionEvent) {
|
|
|
4813
4838
|
for (int i = 0; i < 2; i++) {
|
|
4814
4839
|
for (int j = 0; j < 10; j++) {
|
|
4815
4840
|
int key_id = i * 20 + j * 2;
|
|
4816
|
-
ASSERT_OK(Put(Key(key_id), "value" +
|
|
4841
|
+
ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
|
|
4817
4842
|
}
|
|
4818
4843
|
ASSERT_OK(Flush());
|
|
4819
4844
|
}
|
|
@@ -5805,7 +5830,7 @@ TEST_P(DBCompactionTestWithBottommostParam, SequenceKeysManualCompaction) {
|
|
|
5805
5830
|
}
|
|
5806
5831
|
ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable());
|
|
5807
5832
|
|
|
5808
|
-
ASSERT_EQ(
|
|
5833
|
+
ASSERT_EQ(std::to_string(kSstNum), FilesPerLevel(0));
|
|
5809
5834
|
|
|
5810
5835
|
auto cro = CompactRangeOptions();
|
|
5811
5836
|
cro.bottommost_level_compaction = bottommost_level_compaction_;
|
|
@@ -5818,7 +5843,7 @@ TEST_P(DBCompactionTestWithBottommostParam, SequenceKeysManualCompaction) {
|
|
|
5818
5843
|
ASSERT_EQ("0,1", FilesPerLevel(0));
|
|
5819
5844
|
} else {
|
|
5820
5845
|
// Just trivial move from level 0 -> 1
|
|
5821
|
-
ASSERT_EQ("0," +
|
|
5846
|
+
ASSERT_EQ("0," + std::to_string(kSstNum), FilesPerLevel(0));
|
|
5822
5847
|
}
|
|
5823
5848
|
}
|
|
5824
5849
|
|
|
@@ -7149,7 +7174,7 @@ TEST_F(DBCompactionTest, DisableManualCompactionThreadQueueFull) {
|
|
|
7149
7174
|
ASSERT_OK(Put(Key(2), "value2"));
|
|
7150
7175
|
ASSERT_OK(Flush());
|
|
7151
7176
|
}
|
|
7152
|
-
ASSERT_EQ(
|
|
7177
|
+
ASSERT_EQ(std::to_string(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
|
|
7153
7178
|
|
|
7154
7179
|
db_->DisableManualCompaction();
|
|
7155
7180
|
|
|
@@ -7206,7 +7231,7 @@ TEST_F(DBCompactionTest, DisableManualCompactionThreadQueueFullDBClose) {
|
|
|
7206
7231
|
ASSERT_OK(Put(Key(2), "value2"));
|
|
7207
7232
|
ASSERT_OK(Flush());
|
|
7208
7233
|
}
|
|
7209
|
-
ASSERT_EQ(
|
|
7234
|
+
ASSERT_EQ(std::to_string(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
|
|
7210
7235
|
|
|
7211
7236
|
db_->DisableManualCompaction();
|
|
7212
7237
|
|
|
@@ -7266,7 +7291,7 @@ TEST_F(DBCompactionTest, DBCloseWithManualCompaction) {
|
|
|
7266
7291
|
ASSERT_OK(Put(Key(2), "value2"));
|
|
7267
7292
|
ASSERT_OK(Flush());
|
|
7268
7293
|
}
|
|
7269
|
-
ASSERT_EQ(
|
|
7294
|
+
ASSERT_EQ(std::to_string(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
|
|
7270
7295
|
|
|
7271
7296
|
// Close DB with manual compaction and auto triggered compaction in the queue.
|
|
7272
7297
|
auto s = db_->Close();
|
|
@@ -177,7 +177,7 @@ Status DBImpl::GetLiveFilesStorageInfo(
|
|
|
177
177
|
VectorLogPtr live_wal_files;
|
|
178
178
|
bool flush_memtable = true;
|
|
179
179
|
if (!immutable_db_options_.allow_2pc) {
|
|
180
|
-
if (opts.wal_size_for_flush ==
|
|
180
|
+
if (opts.wal_size_for_flush == std::numeric_limits<uint64_t>::max()) {
|
|
181
181
|
flush_memtable = false;
|
|
182
182
|
} else if (opts.wal_size_for_flush > 0) {
|
|
183
183
|
// If the outstanding log files are small, we skip the flush.
|
|
@@ -2356,7 +2356,7 @@ TEST_P(DBAtomicFlushTest, PrecomputeMinLogNumberToKeepNon2PC) {
|
|
|
2356
2356
|
ASSERT_OK(Flush(cf_ids));
|
|
2357
2357
|
uint64_t log_num_after_flush = dbfull()->TEST_GetCurrentLogNumber();
|
|
2358
2358
|
|
|
2359
|
-
uint64_t min_log_number_to_keep =
|
|
2359
|
+
uint64_t min_log_number_to_keep = std::numeric_limits<uint64_t>::max();
|
|
2360
2360
|
autovector<ColumnFamilyData*> flushed_cfds;
|
|
2361
2361
|
autovector<autovector<VersionEdit*>> flush_edits;
|
|
2362
2362
|
for (size_t i = 0; i != num_cfs; ++i) {
|
|
@@ -567,7 +567,7 @@ Status DBImpl::CloseHelper() {
|
|
|
567
567
|
// flushing by first checking if there is a need for
|
|
568
568
|
// flushing (but need to implement something
|
|
569
569
|
// else than imm()->IsFlushPending() because the output
|
|
570
|
-
// memtables added to imm()
|
|
570
|
+
// memtables added to imm() don't trigger flushes).
|
|
571
571
|
if (immutable_db_options_.experimental_mempurge_threshold > 0.0) {
|
|
572
572
|
Status flush_ret;
|
|
573
573
|
mutex_.Unlock();
|
|
@@ -849,7 +849,8 @@ void DBImpl::PersistStats() {
|
|
|
849
849
|
if (stats_slice_.find(stat.first) != stats_slice_.end()) {
|
|
850
850
|
uint64_t delta = stat.second - stats_slice_[stat.first];
|
|
851
851
|
s = batch.Put(persist_stats_cf_handle_,
|
|
852
|
-
Slice(key, std::min(100, length)),
|
|
852
|
+
Slice(key, std::min(100, length)),
|
|
853
|
+
std::to_string(delta));
|
|
853
854
|
}
|
|
854
855
|
}
|
|
855
856
|
}
|
|
@@ -3355,7 +3356,7 @@ bool DBImpl::GetProperty(ColumnFamilyHandle* column_family,
|
|
|
3355
3356
|
bool ret_value =
|
|
3356
3357
|
GetIntPropertyInternal(cfd, *property_info, false, &int_value);
|
|
3357
3358
|
if (ret_value) {
|
|
3358
|
-
*value =
|
|
3359
|
+
*value = std::to_string(int_value);
|
|
3359
3360
|
}
|
|
3360
3361
|
return ret_value;
|
|
3361
3362
|
} else if (property_info->handle_string) {
|
|
@@ -3990,8 +3991,8 @@ Status DBImpl::CheckConsistency() {
|
|
|
3990
3991
|
} else if (fsize != md.size) {
|
|
3991
3992
|
corruption_messages += "Sst file size mismatch: " + file_path +
|
|
3992
3993
|
". Size recorded in manifest " +
|
|
3993
|
-
|
|
3994
|
-
|
|
3994
|
+
std::to_string(md.size) + ", actual size " +
|
|
3995
|
+
std::to_string(fsize) + "\n";
|
|
3995
3996
|
}
|
|
3996
3997
|
}
|
|
3997
3998
|
}
|
|
@@ -5123,8 +5124,8 @@ Status DBImpl::VerifyChecksumInternal(const ReadOptions& read_options,
|
|
|
5123
5124
|
fmeta->file_checksum_func_name, fname,
|
|
5124
5125
|
read_options);
|
|
5125
5126
|
} else {
|
|
5126
|
-
s = ROCKSDB_NAMESPACE::VerifySstFileChecksum(
|
|
5127
|
-
|
|
5127
|
+
s = ROCKSDB_NAMESPACE::VerifySstFileChecksum(
|
|
5128
|
+
opts, file_options_, read_options, fname, fd.largest_seqno);
|
|
5128
5129
|
}
|
|
5129
5130
|
RecordTick(stats_, VERIFY_CHECKSUM_READ_BYTES,
|
|
5130
5131
|
IOSTATS(bytes_read) - prev_bytes_read);
|
|
@@ -5338,7 +5339,7 @@ Status DBImpl::ReserveFileNumbersBeforeIngestion(
|
|
|
5338
5339
|
|
|
5339
5340
|
Status DBImpl::GetCreationTimeOfOldestFile(uint64_t* creation_time) {
|
|
5340
5341
|
if (mutable_db_options_.max_open_files == -1) {
|
|
5341
|
-
uint64_t oldest_time =
|
|
5342
|
+
uint64_t oldest_time = std::numeric_limits<uint64_t>::max();
|
|
5342
5343
|
for (auto cfd : *versions_->GetColumnFamilySet()) {
|
|
5343
5344
|
if (!cfd->IsDropped()) {
|
|
5344
5345
|
uint64_t ctime;
|
|
@@ -2299,7 +2299,7 @@ class DBImpl : public DB {
|
|
|
2299
2299
|
|
|
2300
2300
|
static const int KEEP_LOG_FILE_NUM = 1000;
|
|
2301
2301
|
// MSVC version 1800 still does not have constexpr for ::max()
|
|
2302
|
-
static const uint64_t kNoTimeOut =
|
|
2302
|
+
static const uint64_t kNoTimeOut = std::numeric_limits<uint64_t>::max();
|
|
2303
2303
|
|
|
2304
2304
|
std::string db_absolute_path_;
|
|
2305
2305
|
|
|
@@ -188,7 +188,7 @@ Status DBImpl::FlushMemTableToOutputFile(
|
|
|
188
188
|
// a memtable without knowing such snapshot(s).
|
|
189
189
|
uint64_t max_memtable_id = needs_to_sync_closed_wals
|
|
190
190
|
? cfd->imm()->GetLatestMemTableID()
|
|
191
|
-
:
|
|
191
|
+
: std::numeric_limits<uint64_t>::max();
|
|
192
192
|
|
|
193
193
|
// If needs_to_sync_closed_wals is false, then the flush job will pick ALL
|
|
194
194
|
// existing memtables of the column family when PickMemTable() is called
|
|
@@ -1041,7 +1041,8 @@ Status DBImpl::CompactRangeInternal(const CompactRangeOptions& options,
|
|
|
1041
1041
|
}
|
|
1042
1042
|
s = RunManualCompaction(cfd, ColumnFamilyData::kCompactAllLevels,
|
|
1043
1043
|
final_output_level, options, begin, end, exclusive,
|
|
1044
|
-
false,
|
|
1044
|
+
false, std::numeric_limits<uint64_t>::max(),
|
|
1045
|
+
trim_ts);
|
|
1045
1046
|
} else {
|
|
1046
1047
|
int first_overlapped_level = kInvalidLevel;
|
|
1047
1048
|
int max_overlapped_level = kInvalidLevel;
|
|
@@ -1078,7 +1079,7 @@ Status DBImpl::CompactRangeInternal(const CompactRangeOptions& options,
|
|
|
1078
1079
|
if (s.ok() && first_overlapped_level != kInvalidLevel) {
|
|
1079
1080
|
// max_file_num_to_ignore can be used to filter out newly created SST
|
|
1080
1081
|
// files, useful for bottom level compaction in a manual compaction
|
|
1081
|
-
uint64_t max_file_num_to_ignore =
|
|
1082
|
+
uint64_t max_file_num_to_ignore = std::numeric_limits<uint64_t>::max();
|
|
1082
1083
|
uint64_t next_file_number = versions_->current_next_file_number();
|
|
1083
1084
|
final_output_level = max_overlapped_level;
|
|
1084
1085
|
int output_level;
|
|
@@ -2013,7 +2014,7 @@ Status DBImpl::FlushMemTable(ColumnFamilyData* cfd,
|
|
|
2013
2014
|
// be created and scheduled, status::OK() will be returned.
|
|
2014
2015
|
s = SwitchMemtable(cfd, &context);
|
|
2015
2016
|
}
|
|
2016
|
-
const uint64_t flush_memtable_id =
|
|
2017
|
+
const uint64_t flush_memtable_id = std::numeric_limits<uint64_t>::max();
|
|
2017
2018
|
if (s.ok()) {
|
|
2018
2019
|
if (cfd->imm()->NumNotFlushed() != 0 || !cfd->mem()->IsEmpty() ||
|
|
2019
2020
|
!cached_recoverable_state_empty_.load()) {
|
|
@@ -118,10 +118,11 @@ Status DBImpl::TEST_CompactRange(int level, const Slice* begin,
|
|
|
118
118
|
cfd->ioptions()->compaction_style == kCompactionStyleFIFO)
|
|
119
119
|
? level
|
|
120
120
|
: level + 1;
|
|
121
|
-
return RunManualCompaction(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
return RunManualCompaction(
|
|
122
|
+
cfd, level, output_level, CompactRangeOptions(), begin, end, true,
|
|
123
|
+
disallow_trivial_move,
|
|
124
|
+
std::numeric_limits<uint64_t>::max() /*max_file_num_to_ignore*/,
|
|
125
|
+
"" /*trim_ts*/);
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
Status DBImpl::TEST_SwitchMemtable(ColumnFamilyData* cfd) {
|
|
@@ -761,7 +761,7 @@ uint64_t PrecomputeMinLogNumberToKeepNon2PC(
|
|
|
761
761
|
assert(!cfds_to_flush.empty());
|
|
762
762
|
assert(cfds_to_flush.size() == edit_lists.size());
|
|
763
763
|
|
|
764
|
-
uint64_t min_log_number_to_keep =
|
|
764
|
+
uint64_t min_log_number_to_keep = std::numeric_limits<uint64_t>::max();
|
|
765
765
|
for (const auto& edit_list : edit_lists) {
|
|
766
766
|
uint64_t log = 0;
|
|
767
767
|
for (const auto& e : edit_list) {
|
|
@@ -773,7 +773,7 @@ uint64_t PrecomputeMinLogNumberToKeepNon2PC(
|
|
|
773
773
|
min_log_number_to_keep = std::min(min_log_number_to_keep, log);
|
|
774
774
|
}
|
|
775
775
|
}
|
|
776
|
-
if (min_log_number_to_keep ==
|
|
776
|
+
if (min_log_number_to_keep == std::numeric_limits<uint64_t>::max()) {
|
|
777
777
|
min_log_number_to_keep = cfds_to_flush[0]->GetLogNumber();
|
|
778
778
|
for (size_t i = 1; i < cfds_to_flush.size(); i++) {
|
|
779
779
|
min_log_number_to_keep =
|
|
@@ -760,11 +760,11 @@ Status DBImpl::PersistentStatsProcessFormatVersion() {
|
|
|
760
760
|
WriteBatch batch;
|
|
761
761
|
if (s.ok()) {
|
|
762
762
|
s = batch.Put(persist_stats_cf_handle_, kFormatVersionKeyString,
|
|
763
|
-
|
|
763
|
+
std::to_string(kStatsCFCurrentFormatVersion));
|
|
764
764
|
}
|
|
765
765
|
if (s.ok()) {
|
|
766
766
|
s = batch.Put(persist_stats_cf_handle_, kCompatibleVersionKeyString,
|
|
767
|
-
|
|
767
|
+
std::to_string(kStatsCFCompatibleFormatVersion));
|
|
768
768
|
}
|
|
769
769
|
if (s.ok()) {
|
|
770
770
|
WriteOptions wo;
|
|
@@ -947,7 +947,6 @@ Status DBImpl::RecoverLogFiles(const std::vector<uint64_t>& wal_numbers,
|
|
|
947
947
|
// Read all the records and add to a memtable
|
|
948
948
|
std::string scratch;
|
|
949
949
|
Slice record;
|
|
950
|
-
WriteBatch batch;
|
|
951
950
|
|
|
952
951
|
TEST_SYNC_POINT_CALLBACK("DBImpl::RecoverLogFiles:BeforeReadWal",
|
|
953
952
|
/*arg=*/nullptr);
|
|
@@ -961,10 +960,15 @@ Status DBImpl::RecoverLogFiles(const std::vector<uint64_t>& wal_numbers,
|
|
|
961
960
|
continue;
|
|
962
961
|
}
|
|
963
962
|
|
|
963
|
+
// We create a new batch and initialize with a valid prot_info_ to store
|
|
964
|
+
// the data checksums
|
|
965
|
+
WriteBatch batch(0, 0, 8, 0);
|
|
966
|
+
|
|
964
967
|
status = WriteBatchInternal::SetContents(&batch, record);
|
|
965
968
|
if (!status.ok()) {
|
|
966
969
|
return status;
|
|
967
970
|
}
|
|
971
|
+
|
|
968
972
|
SequenceNumber sequence = WriteBatchInternal::Sequence(&batch);
|
|
969
973
|
|
|
970
974
|
if (immutable_db_options_.wal_recovery_mode ==
|
|
@@ -1322,6 +1326,7 @@ Status DBImpl::GetLogSizeAndMaybeTruncate(uint64_t wal_number, bool truncate,
|
|
|
1322
1326
|
Status s;
|
|
1323
1327
|
// This gets the appear size of the wals, not including preallocated space.
|
|
1324
1328
|
s = env_->GetFileSize(fname, &log.size);
|
|
1329
|
+
TEST_SYNC_POINT_CALLBACK("DBImpl::GetLogSizeAndMaybeTruncate:0", /*arg=*/&s);
|
|
1325
1330
|
if (s.ok() && truncate) {
|
|
1326
1331
|
std::unique_ptr<FSWritableFile> last_log;
|
|
1327
1332
|
Status truncate_status = fs_->ReopenWritableFile(
|
|
@@ -1821,6 +1826,7 @@ Status DBImpl::Open(const DBOptions& db_options, const std::string& dbname,
|
|
|
1821
1826
|
if (s.ok()) {
|
|
1822
1827
|
// Need to fsync, otherwise it might get lost after a power reset.
|
|
1823
1828
|
s = impl->FlushWAL(false);
|
|
1829
|
+
TEST_SYNC_POINT_CALLBACK("DBImpl::Open::BeforeSyncWAL", /*arg=*/&s);
|
|
1824
1830
|
if (s.ok()) {
|
|
1825
1831
|
s = log_writer->file()->Sync(impl->immutable_db_options_.use_fsync);
|
|
1826
1832
|
}
|
|
@@ -247,15 +247,16 @@ Status DBImplSecondary::RecoverLogFiles(
|
|
|
247
247
|
if (seq_of_batch <= seq) {
|
|
248
248
|
continue;
|
|
249
249
|
}
|
|
250
|
-
auto curr_log_num =
|
|
250
|
+
auto curr_log_num = std::numeric_limits<uint64_t>::max();
|
|
251
251
|
if (cfd_to_current_log_.count(cfd) > 0) {
|
|
252
252
|
curr_log_num = cfd_to_current_log_[cfd];
|
|
253
253
|
}
|
|
254
254
|
// If the active memtable contains records added by replaying an
|
|
255
255
|
// earlier WAL, then we need to seal the memtable, add it to the
|
|
256
256
|
// immutable memtable list and create a new active memtable.
|
|
257
|
-
if (!cfd->mem()->IsEmpty() &&
|
|
258
|
-
|
|
257
|
+
if (!cfd->mem()->IsEmpty() &&
|
|
258
|
+
(curr_log_num == std::numeric_limits<uint64_t>::max() ||
|
|
259
|
+
curr_log_num != log_number)) {
|
|
259
260
|
const MutableCFOptions mutable_cf_options =
|
|
260
261
|
*cfd->GetLatestMutableCFOptions();
|
|
261
262
|
MemTable* new_mem =
|
|
@@ -831,6 +832,8 @@ Status DB::OpenAndCompact(
|
|
|
831
832
|
override_options.table_factory;
|
|
832
833
|
compaction_input.column_family.options.sst_partitioner_factory =
|
|
833
834
|
override_options.sst_partitioner_factory;
|
|
835
|
+
compaction_input.column_family.options.table_properties_collector_factories =
|
|
836
|
+
override_options.table_properties_collector_factories;
|
|
834
837
|
compaction_input.db_options.listeners = override_options.listeners;
|
|
835
838
|
|
|
836
839
|
std::vector<ColumnFamilyDescriptor> column_families;
|
|
@@ -35,10 +35,12 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
|
|
|
35
35
|
Header(options.info_log, "DB SUMMARY\n");
|
|
36
36
|
Header(options.info_log, "DB Session ID: %s\n", session_id.c_str());
|
|
37
37
|
|
|
38
|
+
Status s;
|
|
38
39
|
// Get files in dbname dir
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
s = env->GetChildren(dbname, &files);
|
|
41
|
+
if (!s.ok()) {
|
|
42
|
+
Error(options.info_log, "Error when reading %s dir %s\n", dbname.c_str(),
|
|
43
|
+
s.ToString().c_str());
|
|
42
44
|
}
|
|
43
45
|
std::sort(files.begin(), files.end());
|
|
44
46
|
for (const std::string& file : files) {
|
|
@@ -53,24 +55,27 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
|
|
|
53
55
|
Header(options.info_log, "IDENTITY file: %s\n", file.c_str());
|
|
54
56
|
break;
|
|
55
57
|
case kDescriptorFile:
|
|
56
|
-
|
|
58
|
+
s = env->GetFileSize(dbname + "/" + file, &file_size);
|
|
59
|
+
if (s.ok()) {
|
|
57
60
|
Header(options.info_log,
|
|
58
61
|
"MANIFEST file: %s size: %" PRIu64 " Bytes\n", file.c_str(),
|
|
59
62
|
file_size);
|
|
60
63
|
} else {
|
|
61
|
-
Error(options.info_log,
|
|
62
|
-
dbname.c_str(),
|
|
64
|
+
Error(options.info_log,
|
|
65
|
+
"Error when reading MANIFEST file: %s/%s %s\n", dbname.c_str(),
|
|
66
|
+
file.c_str(), s.ToString().c_str());
|
|
63
67
|
}
|
|
64
68
|
break;
|
|
65
69
|
case kWalFile:
|
|
66
|
-
|
|
70
|
+
s = env->GetFileSize(dbname + "/" + file, &file_size);
|
|
71
|
+
if (s.ok()) {
|
|
67
72
|
wal_info.append(file)
|
|
68
73
|
.append(" size: ")
|
|
69
74
|
.append(std::to_string(file_size))
|
|
70
75
|
.append(" ; ");
|
|
71
76
|
} else {
|
|
72
|
-
Error(options.info_log, "Error when reading LOG file: %s/%s\n",
|
|
73
|
-
dbname.c_str(), file.c_str());
|
|
77
|
+
Error(options.info_log, "Error when reading LOG file: %s/%s %s\n",
|
|
78
|
+
dbname.c_str(), file.c_str(), s.ToString().c_str());
|
|
74
79
|
}
|
|
75
80
|
break;
|
|
76
81
|
case kTableFile:
|
|
@@ -86,10 +91,10 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
|
|
|
86
91
|
// Get sst files in db_path dir
|
|
87
92
|
for (auto& db_path : options.db_paths) {
|
|
88
93
|
if (dbname.compare(db_path.path) != 0) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
s = env->GetChildren(db_path.path, &files);
|
|
95
|
+
if (!s.ok()) {
|
|
96
|
+
Error(options.info_log, "Error when reading %s dir %s\n",
|
|
97
|
+
db_path.path.c_str(), s.ToString().c_str());
|
|
93
98
|
continue;
|
|
94
99
|
}
|
|
95
100
|
std::sort(files.begin(), files.end());
|
|
@@ -111,22 +116,25 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
|
|
|
111
116
|
// Get wal file in wal_dir
|
|
112
117
|
const auto& wal_dir = options.GetWalDir(dbname);
|
|
113
118
|
if (!options.IsWalDirSameAsDBPath(dbname)) {
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
s = env->GetChildren(wal_dir, &files);
|
|
120
|
+
if (!s.ok()) {
|
|
121
|
+
Error(options.info_log, "Error when reading %s dir %s\n", wal_dir.c_str(),
|
|
122
|
+
s.ToString().c_str());
|
|
116
123
|
return;
|
|
117
124
|
}
|
|
118
125
|
wal_info.clear();
|
|
119
126
|
for (const std::string& file : files) {
|
|
120
127
|
if (ParseFileName(file, &number, &type)) {
|
|
121
128
|
if (type == kWalFile) {
|
|
122
|
-
|
|
129
|
+
s = env->GetFileSize(wal_dir + "/" + file, &file_size);
|
|
130
|
+
if (s.ok()) {
|
|
123
131
|
wal_info.append(file)
|
|
124
132
|
.append(" size: ")
|
|
125
133
|
.append(std::to_string(file_size))
|
|
126
134
|
.append(" ; ");
|
|
127
135
|
} else {
|
|
128
|
-
Error(options.info_log, "Error when reading LOG file %s/%s\n",
|
|
129
|
-
wal_dir.c_str(), file.c_str());
|
|
136
|
+
Error(options.info_log, "Error when reading LOG file %s/%s %s\n",
|
|
137
|
+
wal_dir.c_str(), file.c_str(), s.ToString().c_str());
|
|
130
138
|
}
|
|
131
139
|
}
|
|
132
140
|
}
|
|
@@ -414,7 +414,7 @@ TEST_F(DBIteratorStressTest, StressTest) {
|
|
|
414
414
|
a /= 10;
|
|
415
415
|
++len;
|
|
416
416
|
}
|
|
417
|
-
std::string s =
|
|
417
|
+
std::string s = std::to_string(rnd.Next() % static_cast<uint64_t>(max_key));
|
|
418
418
|
s.insert(0, len - (int)s.size(), '0');
|
|
419
419
|
return s;
|
|
420
420
|
};
|
|
@@ -444,12 +444,13 @@ TEST_F(DBIteratorStressTest, StressTest) {
|
|
|
444
444
|
for (double mutation_probability : {0.01, 0.5}) {
|
|
445
445
|
for (double target_hidden_fraction : {0.1, 0.5}) {
|
|
446
446
|
std::string trace_str =
|
|
447
|
-
"entries: " +
|
|
448
|
-
", key_space: " +
|
|
449
|
-
", error_probability: " +
|
|
450
|
-
", mutation_probability: " +
|
|
447
|
+
"entries: " + std::to_string(num_entries) +
|
|
448
|
+
", key_space: " + std::to_string(key_space) +
|
|
449
|
+
", error_probability: " + std::to_string(error_probability) +
|
|
450
|
+
", mutation_probability: " +
|
|
451
|
+
std::to_string(mutation_probability) +
|
|
451
452
|
", target_hidden_fraction: " +
|
|
452
|
-
|
|
453
|
+
std::to_string(target_hidden_fraction);
|
|
453
454
|
SCOPED_TRACE(trace_str);
|
|
454
455
|
if (trace) {
|
|
455
456
|
std::cout << trace_str << std::endl;
|
|
@@ -470,7 +471,7 @@ TEST_F(DBIteratorStressTest, StressTest) {
|
|
|
470
471
|
types[rnd.Next() % (sizeof(types) / sizeof(types[0]))];
|
|
471
472
|
}
|
|
472
473
|
e.sequence = i;
|
|
473
|
-
e.value = "v" +
|
|
474
|
+
e.value = "v" + std::to_string(i);
|
|
474
475
|
ParsedInternalKey internal_key(e.key, e.sequence, e.type);
|
|
475
476
|
AppendInternalKey(&e.ikey, internal_key);
|
|
476
477
|
|