@nxtedition/rocksdb 6.0.0-alpha.0 → 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 +10 -0
- package/binding.cc +14 -17
- package/binding.gyp +2 -2
- 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 +40 -31
- package/package.json +2 -2
- 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
|
@@ -164,12 +164,12 @@ TEST_F(FlushJobTest, Empty) {
|
|
|
164
164
|
SnapshotChecker* snapshot_checker = nullptr; // not relavant
|
|
165
165
|
FlushJob flush_job(
|
|
166
166
|
dbname_, versions_->GetColumnFamilySet()->GetDefault(), db_options_,
|
|
167
|
-
*cfd->GetLatestMutableCFOptions(),
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
Env::Priority::USER, nullptr /*IOTracer*/);
|
|
167
|
+
*cfd->GetLatestMutableCFOptions(),
|
|
168
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, env_options_,
|
|
169
|
+
versions_.get(), &mutex_, &shutting_down_, {}, kMaxSequenceNumber,
|
|
170
|
+
snapshot_checker, &job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
171
|
+
nullptr, &event_logger, false, true /* sync_output_directory */,
|
|
172
|
+
true /* write_manifest */, Env::Priority::USER, nullptr /*IOTracer*/);
|
|
173
173
|
{
|
|
174
174
|
InstrumentedMutexLock l(&mutex_);
|
|
175
175
|
flush_job.PickMemTable();
|
|
@@ -191,7 +191,7 @@ TEST_F(FlushJobTest, NonEmpty) {
|
|
|
191
191
|
// range-delete "9995" -> "9999" at seqno 10000
|
|
192
192
|
// blob references with seqnos 10001..10006
|
|
193
193
|
for (int i = 1; i < 10000; ++i) {
|
|
194
|
-
std::string key(
|
|
194
|
+
std::string key(std::to_string((i + 1000) % 10000));
|
|
195
195
|
std::string value("value" + key);
|
|
196
196
|
ASSERT_OK(new_mem->Add(SequenceNumber(i), kTypeValue, key, value,
|
|
197
197
|
nullptr /* kv_prot_info */));
|
|
@@ -214,7 +214,7 @@ TEST_F(FlushJobTest, NonEmpty) {
|
|
|
214
214
|
constexpr std::array<uint64_t, 6> blob_file_numbers{{
|
|
215
215
|
kInvalidBlobFileNumber, 5, 103, 17, 102, 101}};
|
|
216
216
|
for (size_t i = 0; i < blob_file_numbers.size(); ++i) {
|
|
217
|
-
std::string key(
|
|
217
|
+
std::string key(std::to_string(i + 10001));
|
|
218
218
|
std::string blob_index;
|
|
219
219
|
if (i == 0) {
|
|
220
220
|
BlobIndex::EncodeInlinedTTL(&blob_index, /* expiration */ 1234567890ULL,
|
|
@@ -248,11 +248,12 @@ TEST_F(FlushJobTest, NonEmpty) {
|
|
|
248
248
|
SnapshotChecker* snapshot_checker = nullptr; // not relavant
|
|
249
249
|
FlushJob flush_job(
|
|
250
250
|
dbname_, versions_->GetColumnFamilySet()->GetDefault(), db_options_,
|
|
251
|
-
*cfd->GetLatestMutableCFOptions(),
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
nullptr,
|
|
255
|
-
|
|
251
|
+
*cfd->GetLatestMutableCFOptions(),
|
|
252
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, env_options_,
|
|
253
|
+
versions_.get(), &mutex_, &shutting_down_, {}, kMaxSequenceNumber,
|
|
254
|
+
snapshot_checker, &job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
255
|
+
db_options_.statistics.get(), &event_logger, true,
|
|
256
|
+
true /* sync_output_directory */, true /* write_manifest */,
|
|
256
257
|
Env::Priority::USER, nullptr /*IOTracer*/);
|
|
257
258
|
|
|
258
259
|
HistogramData hist;
|
|
@@ -264,7 +265,7 @@ TEST_F(FlushJobTest, NonEmpty) {
|
|
|
264
265
|
db_options_.statistics->histogramData(FLUSH_TIME, &hist);
|
|
265
266
|
ASSERT_GT(hist.average, 0.0);
|
|
266
267
|
|
|
267
|
-
ASSERT_EQ(
|
|
268
|
+
ASSERT_EQ(std::to_string(0), file_meta.smallest.user_key().ToString());
|
|
268
269
|
ASSERT_EQ("9999a", file_meta.largest.user_key().ToString());
|
|
269
270
|
ASSERT_EQ(1, file_meta.fd.smallest_seqno);
|
|
270
271
|
ASSERT_EQ(10006, file_meta.fd.largest_seqno);
|
|
@@ -290,7 +291,7 @@ TEST_F(FlushJobTest, FlushMemTablesSingleColumnFamily) {
|
|
|
290
291
|
memtable_ids.push_back(mem->GetID());
|
|
291
292
|
|
|
292
293
|
for (size_t j = 0; j < num_keys_per_table; ++j) {
|
|
293
|
-
std::string key(
|
|
294
|
+
std::string key(std::to_string(j + i * num_keys_per_table));
|
|
294
295
|
std::string value("value" + key);
|
|
295
296
|
ASSERT_OK(mem->Add(SequenceNumber(j + i * num_keys_per_table), kTypeValue,
|
|
296
297
|
key, value, nullptr /* kv_prot_info */));
|
|
@@ -325,7 +326,7 @@ TEST_F(FlushJobTest, FlushMemTablesSingleColumnFamily) {
|
|
|
325
326
|
db_options_.statistics->histogramData(FLUSH_TIME, &hist);
|
|
326
327
|
ASSERT_GT(hist.average, 0.0);
|
|
327
328
|
|
|
328
|
-
ASSERT_EQ(
|
|
329
|
+
ASSERT_EQ(std::to_string(0), file_meta.smallest.user_key().ToString());
|
|
329
330
|
ASSERT_EQ("99", file_meta.largest.user_key().ToString());
|
|
330
331
|
ASSERT_EQ(0, file_meta.fd.smallest_seqno);
|
|
331
332
|
ASSERT_EQ(SequenceNumber(num_mems_to_flush * num_keys_per_table - 1),
|
|
@@ -363,7 +364,7 @@ TEST_F(FlushJobTest, FlushMemtablesMultipleColumnFamilies) {
|
|
|
363
364
|
mem->Ref();
|
|
364
365
|
|
|
365
366
|
for (size_t j = 0; j != num_keys_per_memtable; ++j) {
|
|
366
|
-
std::string key(
|
|
367
|
+
std::string key(std::to_string(j + i * num_keys_per_memtable));
|
|
367
368
|
std::string value("value" + key);
|
|
368
369
|
ASSERT_OK(mem->Add(curr_seqno++, kTypeValue, key, value,
|
|
369
370
|
nullptr /* kv_prot_info */));
|
|
@@ -438,7 +439,7 @@ TEST_F(FlushJobTest, FlushMemtablesMultipleColumnFamilies) {
|
|
|
438
439
|
ASSERT_GT(hist.average, 0.0);
|
|
439
440
|
k = 0;
|
|
440
441
|
for (const auto& file_meta : file_metas) {
|
|
441
|
-
ASSERT_EQ(
|
|
442
|
+
ASSERT_EQ(std::to_string(0), file_meta.smallest.user_key().ToString());
|
|
442
443
|
ASSERT_EQ("999", file_meta.largest.user_key()
|
|
443
444
|
.ToString()); // max key by bytewise comparator
|
|
444
445
|
ASSERT_EQ(smallest_seqs[k], file_meta.fd.smallest_seqno);
|
|
@@ -479,7 +480,7 @@ TEST_F(FlushJobTest, Snapshots) {
|
|
|
479
480
|
SequenceNumber current_seqno = 0;
|
|
480
481
|
auto inserted_keys = mock::MakeMockFile();
|
|
481
482
|
for (int i = 1; i < keys; ++i) {
|
|
482
|
-
std::string key(
|
|
483
|
+
std::string key(std::to_string(i));
|
|
483
484
|
int insertions = rnd.Uniform(max_inserts_per_keys);
|
|
484
485
|
for (int j = 0; j < insertions; ++j) {
|
|
485
486
|
std::string value(rnd.HumanReadableString(10));
|
|
@@ -509,11 +510,12 @@ TEST_F(FlushJobTest, Snapshots) {
|
|
|
509
510
|
SnapshotChecker* snapshot_checker = nullptr; // not relavant
|
|
510
511
|
FlushJob flush_job(
|
|
511
512
|
dbname_, versions_->GetColumnFamilySet()->GetDefault(), db_options_,
|
|
512
|
-
*cfd->GetLatestMutableCFOptions(),
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
nullptr,
|
|
516
|
-
|
|
513
|
+
*cfd->GetLatestMutableCFOptions(),
|
|
514
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, env_options_,
|
|
515
|
+
versions_.get(), &mutex_, &shutting_down_, snapshots, kMaxSequenceNumber,
|
|
516
|
+
snapshot_checker, &job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
517
|
+
db_options_.statistics.get(), &event_logger, true,
|
|
518
|
+
true /* sync_output_directory */, true /* write_manifest */,
|
|
517
519
|
Env::Priority::USER, nullptr /*IOTracer*/);
|
|
518
520
|
mutex_.Lock();
|
|
519
521
|
flush_job.PickMemTable();
|
|
@@ -526,6 +528,72 @@ TEST_F(FlushJobTest, Snapshots) {
|
|
|
526
528
|
job_context.Clean();
|
|
527
529
|
}
|
|
528
530
|
|
|
531
|
+
TEST_F(FlushJobTest, GetRateLimiterPriorityForWrite) {
|
|
532
|
+
// Prepare a FlushJob that flush MemTables of Single Column Family.
|
|
533
|
+
const size_t num_mems = 2;
|
|
534
|
+
const size_t num_mems_to_flush = 1;
|
|
535
|
+
const size_t num_keys_per_table = 100;
|
|
536
|
+
JobContext job_context(0);
|
|
537
|
+
ColumnFamilyData* cfd = versions_->GetColumnFamilySet()->GetDefault();
|
|
538
|
+
std::vector<uint64_t> memtable_ids;
|
|
539
|
+
std::vector<MemTable*> new_mems;
|
|
540
|
+
for (size_t i = 0; i != num_mems; ++i) {
|
|
541
|
+
MemTable* mem = cfd->ConstructNewMemtable(*cfd->GetLatestMutableCFOptions(),
|
|
542
|
+
kMaxSequenceNumber);
|
|
543
|
+
mem->SetID(i);
|
|
544
|
+
mem->Ref();
|
|
545
|
+
new_mems.emplace_back(mem);
|
|
546
|
+
memtable_ids.push_back(mem->GetID());
|
|
547
|
+
|
|
548
|
+
for (size_t j = 0; j < num_keys_per_table; ++j) {
|
|
549
|
+
std::string key(std::to_string(j + i * num_keys_per_table));
|
|
550
|
+
std::string value("value" + key);
|
|
551
|
+
ASSERT_OK(mem->Add(SequenceNumber(j + i * num_keys_per_table), kTypeValue,
|
|
552
|
+
key, value, nullptr /* kv_prot_info */));
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
autovector<MemTable*> to_delete;
|
|
557
|
+
for (auto mem : new_mems) {
|
|
558
|
+
cfd->imm()->Add(mem, &to_delete);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
EventLogger event_logger(db_options_.info_log.get());
|
|
562
|
+
SnapshotChecker* snapshot_checker = nullptr; // not relavant
|
|
563
|
+
|
|
564
|
+
assert(memtable_ids.size() == num_mems);
|
|
565
|
+
uint64_t smallest_memtable_id = memtable_ids.front();
|
|
566
|
+
uint64_t flush_memtable_id = smallest_memtable_id + num_mems_to_flush - 1;
|
|
567
|
+
FlushJob flush_job(
|
|
568
|
+
dbname_, versions_->GetColumnFamilySet()->GetDefault(), db_options_,
|
|
569
|
+
*cfd->GetLatestMutableCFOptions(), flush_memtable_id, env_options_,
|
|
570
|
+
versions_.get(), &mutex_, &shutting_down_, {}, kMaxSequenceNumber,
|
|
571
|
+
snapshot_checker, &job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
572
|
+
db_options_.statistics.get(), &event_logger, true,
|
|
573
|
+
true /* sync_output_directory */, true /* write_manifest */,
|
|
574
|
+
Env::Priority::USER, nullptr /*IOTracer*/);
|
|
575
|
+
|
|
576
|
+
// When the state from WriteController is normal.
|
|
577
|
+
ASSERT_EQ(flush_job.GetRateLimiterPriorityForWrite(), Env::IO_HIGH);
|
|
578
|
+
|
|
579
|
+
WriteController* write_controller =
|
|
580
|
+
flush_job.versions_->GetColumnFamilySet()->write_controller();
|
|
581
|
+
|
|
582
|
+
{
|
|
583
|
+
// When the state from WriteController is Delayed.
|
|
584
|
+
std::unique_ptr<WriteControllerToken> delay_token =
|
|
585
|
+
write_controller->GetDelayToken(1000000);
|
|
586
|
+
ASSERT_EQ(flush_job.GetRateLimiterPriorityForWrite(), Env::IO_USER);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
{
|
|
590
|
+
// When the state from WriteController is Stopped.
|
|
591
|
+
std::unique_ptr<WriteControllerToken> stop_token =
|
|
592
|
+
write_controller->GetStopToken();
|
|
593
|
+
ASSERT_EQ(flush_job.GetRateLimiterPriorityForWrite(), Env::IO_USER);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
529
597
|
class FlushJobTimestampTest : public FlushJobTestBase {
|
|
530
598
|
public:
|
|
531
599
|
FlushJobTimestampTest()
|
|
@@ -577,9 +645,9 @@ TEST_F(FlushJobTimestampTest, AllKeysExpired) {
|
|
|
577
645
|
PutFixed64(&full_history_ts_low, std::numeric_limits<uint64_t>::max());
|
|
578
646
|
FlushJob flush_job(
|
|
579
647
|
dbname_, cfd, db_options_, *cfd->GetLatestMutableCFOptions(),
|
|
580
|
-
|
|
581
|
-
&mutex_, &shutting_down_, snapshots, kMaxSequenceNumber,
|
|
582
|
-
&job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
648
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, env_options_,
|
|
649
|
+
versions_.get(), &mutex_, &shutting_down_, snapshots, kMaxSequenceNumber,
|
|
650
|
+
snapshot_checker, &job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
583
651
|
db_options_.statistics.get(), &event_logger, true,
|
|
584
652
|
true /* sync_output_directory */, true /* write_manifest */,
|
|
585
653
|
Env::Priority::USER, nullptr /*IOTracer*/, /*db_id=*/"",
|
|
@@ -628,9 +696,9 @@ TEST_F(FlushJobTimestampTest, NoKeyExpired) {
|
|
|
628
696
|
PutFixed64(&full_history_ts_low, 0);
|
|
629
697
|
FlushJob flush_job(
|
|
630
698
|
dbname_, cfd, db_options_, *cfd->GetLatestMutableCFOptions(),
|
|
631
|
-
|
|
632
|
-
&mutex_, &shutting_down_, snapshots, kMaxSequenceNumber,
|
|
633
|
-
&job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
699
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, env_options_,
|
|
700
|
+
versions_.get(), &mutex_, &shutting_down_, snapshots, kMaxSequenceNumber,
|
|
701
|
+
snapshot_checker, &job_context, nullptr, nullptr, nullptr, kNoCompression,
|
|
634
702
|
db_options_.statistics.get(), &event_logger, true,
|
|
635
703
|
true /* sync_output_directory */, true /* write_manifest */,
|
|
636
704
|
Env::Priority::USER, nullptr /*IOTracer*/, /*db_id=*/"",
|
|
@@ -604,7 +604,7 @@ bool ForwardIterator::PrepareValue() {
|
|
|
604
604
|
Status ForwardIterator::GetProperty(std::string prop_name, std::string* prop) {
|
|
605
605
|
assert(prop != nullptr);
|
|
606
606
|
if (prop_name == "rocksdb.iterator.super-version-number") {
|
|
607
|
-
*prop =
|
|
607
|
+
*prop = std::to_string(sv_->version_number);
|
|
608
608
|
return Status::OK();
|
|
609
609
|
}
|
|
610
610
|
return Status::InvalidArgument();
|
|
@@ -97,6 +97,9 @@ Status ImportColumnFamilyJob::Prepare(uint64_t next_file_number,
|
|
|
97
97
|
if (status.IsNotSupported()) {
|
|
98
98
|
// Original file is on a different FS, use copy instead of hard linking
|
|
99
99
|
hardlink_files = false;
|
|
100
|
+
ROCKS_LOG_INFO(db_options_.info_log,
|
|
101
|
+
"Try to link file %s but it's not supported : %s",
|
|
102
|
+
f.internal_file_path.c_str(), status.ToString().c_str());
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
if (!hardlink_files) {
|
|
@@ -704,20 +704,19 @@ void InternalStats::CacheEntryRoleStats::ToMap(
|
|
|
704
704
|
auto& v = *values;
|
|
705
705
|
v[BlockCacheEntryStatsMapKeys::CacheId()] = cache_id;
|
|
706
706
|
v[BlockCacheEntryStatsMapKeys::CacheCapacityBytes()] =
|
|
707
|
-
|
|
707
|
+
std::to_string(cache_capacity);
|
|
708
708
|
v[BlockCacheEntryStatsMapKeys::LastCollectionDurationSeconds()] =
|
|
709
|
-
|
|
709
|
+
std::to_string(GetLastDurationMicros() / 1000000.0);
|
|
710
710
|
v[BlockCacheEntryStatsMapKeys::LastCollectionAgeSeconds()] =
|
|
711
|
-
|
|
712
|
-
1000000U);
|
|
711
|
+
std::to_string((clock->NowMicros() - last_end_time_micros_) / 1000000U);
|
|
713
712
|
for (size_t i = 0; i < kNumCacheEntryRoles; ++i) {
|
|
714
713
|
auto role = static_cast<CacheEntryRole>(i);
|
|
715
714
|
v[BlockCacheEntryStatsMapKeys::EntryCount(role)] =
|
|
716
|
-
|
|
715
|
+
std::to_string(entry_counts[i]);
|
|
717
716
|
v[BlockCacheEntryStatsMapKeys::UsedBytes(role)] =
|
|
718
|
-
|
|
717
|
+
std::to_string(total_charges[i]);
|
|
719
718
|
v[BlockCacheEntryStatsMapKeys::UsedPercent(role)] =
|
|
720
|
-
|
|
719
|
+
std::to_string(100.0 * total_charges[i] / cache_capacity);
|
|
721
720
|
}
|
|
722
721
|
}
|
|
723
722
|
|
|
@@ -763,7 +762,7 @@ bool InternalStats::HandleLiveSstFilesSizeAtTemperature(std::string* value,
|
|
|
763
762
|
}
|
|
764
763
|
}
|
|
765
764
|
|
|
766
|
-
*value =
|
|
765
|
+
*value = std::to_string(size);
|
|
767
766
|
return true;
|
|
768
767
|
}
|
|
769
768
|
|
|
@@ -919,7 +918,7 @@ bool InternalStats::HandleCompressionRatioAtLevelPrefix(std::string* value,
|
|
|
919
918
|
if (!ok || level >= static_cast<uint64_t>(number_levels_)) {
|
|
920
919
|
return false;
|
|
921
920
|
}
|
|
922
|
-
*value =
|
|
921
|
+
*value = std::to_string(
|
|
923
922
|
vstorage->GetEstimatedCompressionRatioAtLevel(static_cast<int>(level)));
|
|
924
923
|
return true;
|
|
925
924
|
}
|
|
@@ -1006,7 +1005,7 @@ static std::map<std::string, std::string> MapUint64ValuesToString(
|
|
|
1006
1005
|
const std::map<std::string, uint64_t>& from) {
|
|
1007
1006
|
std::map<std::string, std::string> to;
|
|
1008
1007
|
for (const auto& e : from) {
|
|
1009
|
-
to[e.first] =
|
|
1008
|
+
to[e.first] = std::to_string(e.second);
|
|
1010
1009
|
}
|
|
1011
1010
|
return to;
|
|
1012
1011
|
}
|
|
@@ -1500,7 +1499,7 @@ void InternalStats::DumpCFMapStats(
|
|
|
1500
1499
|
DumpCFMapStats(vstorage, &levels_stats, &compaction_stats_sum);
|
|
1501
1500
|
for (auto const& level_ent : levels_stats) {
|
|
1502
1501
|
auto level_str =
|
|
1503
|
-
level_ent.first == -1 ? "Sum" : "L" +
|
|
1502
|
+
level_ent.first == -1 ? "Sum" : "L" + std::to_string(level_ent.first);
|
|
1504
1503
|
for (auto const& stat_ent : level_ent.second) {
|
|
1505
1504
|
auto stat_type = stat_ent.first;
|
|
1506
1505
|
auto key_str =
|
|
@@ -1651,7 +1650,8 @@ void InternalStats::DumpCFStatsNoFileHistogram(std::string* value) {
|
|
|
1651
1650
|
DumpCFMapStats(vstorage, &levels_stats, &compaction_stats_sum);
|
|
1652
1651
|
for (int l = 0; l < number_levels_; ++l) {
|
|
1653
1652
|
if (levels_stats.find(l) != levels_stats.end()) {
|
|
1654
|
-
PrintLevelStats(buf, sizeof(buf), "L" +
|
|
1653
|
+
PrintLevelStats(buf, sizeof(buf), "L" + std::to_string(l),
|
|
1654
|
+
levels_stats[l]);
|
|
1655
1655
|
value->append(buf);
|
|
1656
1656
|
}
|
|
1657
1657
|
}
|
|
@@ -436,10 +436,10 @@ TEST_F(EventListenerTest, MultiDBMultiListeners) {
|
|
|
436
436
|
std::vector<std::vector<ColumnFamilyHandle *>> vec_handles;
|
|
437
437
|
|
|
438
438
|
for (int d = 0; d < kNumDBs; ++d) {
|
|
439
|
-
ASSERT_OK(DestroyDB(dbname_ +
|
|
439
|
+
ASSERT_OK(DestroyDB(dbname_ + std::to_string(d), options));
|
|
440
440
|
DB* db;
|
|
441
441
|
std::vector<ColumnFamilyHandle*> handles;
|
|
442
|
-
ASSERT_OK(DB::Open(options, dbname_ +
|
|
442
|
+
ASSERT_OK(DB::Open(options, dbname_ + std::to_string(d), &db));
|
|
443
443
|
for (size_t c = 0; c < cf_names.size(); ++c) {
|
|
444
444
|
ColumnFamilyHandle* handle;
|
|
445
445
|
ASSERT_OK(db->CreateColumnFamily(cf_opts, cf_names[c], &handle));
|
|
@@ -527,7 +527,8 @@ TEST_F(EventListenerTest, DisableBGCompaction) {
|
|
|
527
527
|
// keep writing until writes are forced to stop.
|
|
528
528
|
for (int i = 0; static_cast<int>(cf_meta.file_count) < kSlowdownTrigger * 10;
|
|
529
529
|
++i) {
|
|
530
|
-
ASSERT_OK(
|
|
530
|
+
ASSERT_OK(
|
|
531
|
+
Put(1, std::to_string(i), std::string(10000, 'x'), WriteOptions()));
|
|
531
532
|
FlushOptions fo;
|
|
532
533
|
fo.allow_write_stall = true;
|
|
533
534
|
ASSERT_OK(db_->Flush(fo, handles_[1]));
|
|
@@ -140,8 +140,8 @@ size_t MemTable::ApproximateMemoryUsage() {
|
|
|
140
140
|
for (size_t usage : usages) {
|
|
141
141
|
// If usage + total_usage >= kMaxSizet, return kMaxSizet.
|
|
142
142
|
// the following variation is to avoid numeric overflow.
|
|
143
|
-
if (usage >=
|
|
144
|
-
return
|
|
143
|
+
if (usage >= std::numeric_limits<size_t>::max() - total_usage) {
|
|
144
|
+
return std::numeric_limits<size_t>::max();
|
|
145
145
|
}
|
|
146
146
|
total_usage += usage;
|
|
147
147
|
}
|
|
@@ -315,7 +315,7 @@ class MemTableList {
|
|
|
315
315
|
// PickMemtablesToFlush() is called.
|
|
316
316
|
void FlushRequested() {
|
|
317
317
|
flush_requested_ = true;
|
|
318
|
-
// If there are some memtables stored in imm() that
|
|
318
|
+
// If there are some memtables stored in imm() that don't trigger
|
|
319
319
|
// flush (eg: mempurge output memtable), then update imm_flush_needed.
|
|
320
320
|
// Note: if race condition and imm_flush_needed is set to true
|
|
321
321
|
// when there is num_flush_not_started_==0, then there is no
|
|
@@ -209,7 +209,8 @@ TEST_F(MemTableListTest, Empty) {
|
|
|
209
209
|
ASSERT_FALSE(list.IsFlushPending());
|
|
210
210
|
|
|
211
211
|
autovector<MemTable*> mems;
|
|
212
|
-
list.PickMemtablesToFlush(
|
|
212
|
+
list.PickMemtablesToFlush(
|
|
213
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &mems);
|
|
213
214
|
ASSERT_EQ(0, mems.size());
|
|
214
215
|
|
|
215
216
|
autovector<MemTable*> to_delete;
|
|
@@ -418,7 +419,8 @@ TEST_F(MemTableListTest, GetFromHistoryTest) {
|
|
|
418
419
|
// Flush this memtable from the list.
|
|
419
420
|
// (It will then be a part of the memtable history).
|
|
420
421
|
autovector<MemTable*> to_flush;
|
|
421
|
-
list.PickMemtablesToFlush(
|
|
422
|
+
list.PickMemtablesToFlush(
|
|
423
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
422
424
|
ASSERT_EQ(1, to_flush.size());
|
|
423
425
|
|
|
424
426
|
MutableCFOptions mutable_cf_options(options);
|
|
@@ -472,7 +474,8 @@ TEST_F(MemTableListTest, GetFromHistoryTest) {
|
|
|
472
474
|
ASSERT_EQ(0, to_delete.size());
|
|
473
475
|
|
|
474
476
|
to_flush.clear();
|
|
475
|
-
list.PickMemtablesToFlush(
|
|
477
|
+
list.PickMemtablesToFlush(
|
|
478
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
476
479
|
ASSERT_EQ(1, to_flush.size());
|
|
477
480
|
|
|
478
481
|
// Flush second memtable
|
|
@@ -575,15 +578,15 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
575
578
|
std::string value;
|
|
576
579
|
MergeContext merge_context;
|
|
577
580
|
|
|
578
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "key1",
|
|
581
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "key1", std::to_string(i),
|
|
579
582
|
nullptr /* kv_prot_info */));
|
|
580
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyN" +
|
|
583
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyN" + std::to_string(i), "valueN",
|
|
581
584
|
nullptr /* kv_prot_info */));
|
|
582
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyX" +
|
|
585
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyX" + std::to_string(i), "value",
|
|
583
586
|
nullptr /* kv_prot_info */));
|
|
584
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyM" +
|
|
587
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyM" + std::to_string(i), "valueM",
|
|
585
588
|
nullptr /* kv_prot_info */));
|
|
586
|
-
ASSERT_OK(mem->Add(++seq, kTypeDeletion, "keyX" +
|
|
589
|
+
ASSERT_OK(mem->Add(++seq, kTypeDeletion, "keyX" + std::to_string(i), "",
|
|
587
590
|
nullptr /* kv_prot_info */));
|
|
588
591
|
|
|
589
592
|
tables.push_back(mem);
|
|
@@ -593,7 +596,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
593
596
|
ASSERT_FALSE(list.IsFlushPending());
|
|
594
597
|
ASSERT_FALSE(list.imm_flush_needed.load(std::memory_order_acquire));
|
|
595
598
|
autovector<MemTable*> to_flush;
|
|
596
|
-
list.PickMemtablesToFlush(
|
|
599
|
+
list.PickMemtablesToFlush(
|
|
600
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
597
601
|
ASSERT_EQ(0, to_flush.size());
|
|
598
602
|
|
|
599
603
|
// Request a flush even though there is nothing to flush
|
|
@@ -602,7 +606,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
602
606
|
ASSERT_FALSE(list.imm_flush_needed.load(std::memory_order_acquire));
|
|
603
607
|
|
|
604
608
|
// Attempt to 'flush' to clear request for flush
|
|
605
|
-
list.PickMemtablesToFlush(
|
|
609
|
+
list.PickMemtablesToFlush(
|
|
610
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
606
611
|
ASSERT_EQ(0, to_flush.size());
|
|
607
612
|
ASSERT_FALSE(list.IsFlushPending());
|
|
608
613
|
ASSERT_FALSE(list.imm_flush_needed.load(std::memory_order_acquire));
|
|
@@ -626,7 +631,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
626
631
|
ASSERT_TRUE(list.imm_flush_needed.load(std::memory_order_acquire));
|
|
627
632
|
|
|
628
633
|
// Pick tables to flush
|
|
629
|
-
list.PickMemtablesToFlush(
|
|
634
|
+
list.PickMemtablesToFlush(
|
|
635
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
630
636
|
ASSERT_EQ(2, to_flush.size());
|
|
631
637
|
ASSERT_EQ(2, list.NumNotFlushed());
|
|
632
638
|
ASSERT_FALSE(list.IsFlushPending());
|
|
@@ -647,7 +653,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
647
653
|
ASSERT_EQ(0, to_delete.size());
|
|
648
654
|
|
|
649
655
|
// Pick tables to flush
|
|
650
|
-
list.PickMemtablesToFlush(
|
|
656
|
+
list.PickMemtablesToFlush(
|
|
657
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
651
658
|
ASSERT_EQ(3, to_flush.size());
|
|
652
659
|
ASSERT_EQ(3, list.NumNotFlushed());
|
|
653
660
|
ASSERT_FALSE(list.IsFlushPending());
|
|
@@ -655,7 +662,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
655
662
|
|
|
656
663
|
// Pick tables to flush again
|
|
657
664
|
autovector<MemTable*> to_flush2;
|
|
658
|
-
list.PickMemtablesToFlush(
|
|
665
|
+
list.PickMemtablesToFlush(
|
|
666
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush2);
|
|
659
667
|
ASSERT_EQ(0, to_flush2.size());
|
|
660
668
|
ASSERT_EQ(3, list.NumNotFlushed());
|
|
661
669
|
ASSERT_FALSE(list.IsFlushPending());
|
|
@@ -673,7 +681,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
673
681
|
ASSERT_TRUE(list.imm_flush_needed.load(std::memory_order_acquire));
|
|
674
682
|
|
|
675
683
|
// Pick tables to flush again
|
|
676
|
-
list.PickMemtablesToFlush(
|
|
684
|
+
list.PickMemtablesToFlush(
|
|
685
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush2);
|
|
677
686
|
ASSERT_EQ(1, to_flush2.size());
|
|
678
687
|
ASSERT_EQ(4, list.NumNotFlushed());
|
|
679
688
|
ASSERT_FALSE(list.IsFlushPending());
|
|
@@ -694,7 +703,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
694
703
|
ASSERT_EQ(0, to_delete.size());
|
|
695
704
|
|
|
696
705
|
// Pick tables to flush
|
|
697
|
-
list.PickMemtablesToFlush(
|
|
706
|
+
list.PickMemtablesToFlush(
|
|
707
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush);
|
|
698
708
|
// Should pick 4 of 5 since 1 table has been picked in to_flush2
|
|
699
709
|
ASSERT_EQ(4, to_flush.size());
|
|
700
710
|
ASSERT_EQ(5, list.NumNotFlushed());
|
|
@@ -703,7 +713,8 @@ TEST_F(MemTableListTest, FlushPendingTest) {
|
|
|
703
713
|
|
|
704
714
|
// Pick tables to flush again
|
|
705
715
|
autovector<MemTable*> to_flush3;
|
|
706
|
-
list.PickMemtablesToFlush(
|
|
716
|
+
list.PickMemtablesToFlush(
|
|
717
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */, &to_flush3);
|
|
707
718
|
ASSERT_EQ(0, to_flush3.size()); // nothing not in progress of being flushed
|
|
708
719
|
ASSERT_EQ(5, list.NumNotFlushed());
|
|
709
720
|
ASSERT_FALSE(list.IsFlushPending());
|
|
@@ -849,15 +860,15 @@ TEST_F(MemTableListTest, AtomicFlusTest) {
|
|
|
849
860
|
|
|
850
861
|
std::string value;
|
|
851
862
|
|
|
852
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "key1",
|
|
863
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "key1", std::to_string(i),
|
|
853
864
|
nullptr /* kv_prot_info */));
|
|
854
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyN" +
|
|
865
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyN" + std::to_string(i),
|
|
866
|
+
"valueN", nullptr /* kv_prot_info */));
|
|
867
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyX" + std::to_string(i), "value",
|
|
855
868
|
nullptr /* kv_prot_info */));
|
|
856
|
-
ASSERT_OK(mem->Add(++seq, kTypeValue, "
|
|
857
|
-
nullptr /* kv_prot_info */));
|
|
858
|
-
ASSERT_OK(mem->Add(++seq,
|
|
859
|
-
nullptr /* kv_prot_info */));
|
|
860
|
-
ASSERT_OK(mem->Add(++seq, kTypeDeletion, "keyX" + ToString(i), "",
|
|
869
|
+
ASSERT_OK(mem->Add(++seq, kTypeValue, "keyM" + std::to_string(i),
|
|
870
|
+
"valueM", nullptr /* kv_prot_info */));
|
|
871
|
+
ASSERT_OK(mem->Add(++seq, kTypeDeletion, "keyX" + std::to_string(i), "",
|
|
861
872
|
nullptr /* kv_prot_info */));
|
|
862
873
|
|
|
863
874
|
elem.push_back(mem);
|
|
@@ -872,8 +883,9 @@ TEST_F(MemTableListTest, AtomicFlusTest) {
|
|
|
872
883
|
auto* list = lists[i];
|
|
873
884
|
ASSERT_FALSE(list->IsFlushPending());
|
|
874
885
|
ASSERT_FALSE(list->imm_flush_needed.load(std::memory_order_acquire));
|
|
875
|
-
list->PickMemtablesToFlush(
|
|
876
|
-
|
|
886
|
+
list->PickMemtablesToFlush(
|
|
887
|
+
std::numeric_limits<uint64_t>::max() /* memtable_id */,
|
|
888
|
+
&flush_candidates[i]);
|
|
877
889
|
ASSERT_EQ(0, flush_candidates[i].size());
|
|
878
890
|
}
|
|
879
891
|
// Request flush even though there is nothing to flush
|
|
@@ -41,7 +41,7 @@ class ObsoleteFilesTest : public DBTestBase {
|
|
|
41
41
|
WriteOptions options;
|
|
42
42
|
options.sync = false;
|
|
43
43
|
for (int i = startkey; i < (numkeys + startkey) ; i++) {
|
|
44
|
-
std::string temp =
|
|
44
|
+
std::string temp = std::to_string(i);
|
|
45
45
|
Slice key(temp);
|
|
46
46
|
Slice value(temp);
|
|
47
47
|
ASSERT_OK(db_->Put(options, key, value));
|
|
@@ -75,21 +75,21 @@ TEST_F(PerfContextTest, SeekIntoDeletion) {
|
|
|
75
75
|
ReadOptions read_options;
|
|
76
76
|
|
|
77
77
|
for (int i = 0; i < FLAGS_total_keys; ++i) {
|
|
78
|
-
std::string key = "k" +
|
|
79
|
-
std::string value = "v" +
|
|
78
|
+
std::string key = "k" + std::to_string(i);
|
|
79
|
+
std::string value = "v" + std::to_string(i);
|
|
80
80
|
|
|
81
81
|
ASSERT_OK(db->Put(write_options, key, value));
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
for (int i = 0; i < FLAGS_total_keys -1 ; ++i) {
|
|
85
|
-
std::string key = "k" +
|
|
85
|
+
std::string key = "k" + std::to_string(i);
|
|
86
86
|
ASSERT_OK(db->Delete(write_options, key));
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
HistogramImpl hist_get;
|
|
90
90
|
HistogramImpl hist_get_time;
|
|
91
91
|
for (int i = 0; i < FLAGS_total_keys - 1; ++i) {
|
|
92
|
-
std::string key = "k" +
|
|
92
|
+
std::string key = "k" + std::to_string(i);
|
|
93
93
|
std::string value;
|
|
94
94
|
|
|
95
95
|
get_perf_context()->Reset();
|
|
@@ -130,7 +130,7 @@ TEST_F(PerfContextTest, SeekIntoDeletion) {
|
|
|
130
130
|
HistogramImpl hist_seek;
|
|
131
131
|
for (int i = 0; i < FLAGS_total_keys; ++i) {
|
|
132
132
|
std::unique_ptr<Iterator> iter(db->NewIterator(read_options));
|
|
133
|
-
std::string key = "k" +
|
|
133
|
+
std::string key = "k" + std::to_string(i);
|
|
134
134
|
|
|
135
135
|
get_perf_context()->Reset();
|
|
136
136
|
StopWatchNano timer(SystemClock::Default().get(), true);
|
|
@@ -265,8 +265,8 @@ void ProfileQueries(bool enabled_time = false) {
|
|
|
265
265
|
continue;
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
-
std::string key = "k" +
|
|
269
|
-
std::string value = "v" +
|
|
268
|
+
std::string key = "k" + std::to_string(i);
|
|
269
|
+
std::string value = "v" + std::to_string(i);
|
|
270
270
|
|
|
271
271
|
std::vector<std::string> values;
|
|
272
272
|
|
|
@@ -297,8 +297,8 @@ void ProfileQueries(bool enabled_time = false) {
|
|
|
297
297
|
if (i == kFlushFlag) {
|
|
298
298
|
continue;
|
|
299
299
|
}
|
|
300
|
-
std::string key = "k" +
|
|
301
|
-
std::string expected_value = "v" +
|
|
300
|
+
std::string key = "k" + std::to_string(i);
|
|
301
|
+
std::string expected_value = "v" + std::to_string(i);
|
|
302
302
|
std::string value;
|
|
303
303
|
|
|
304
304
|
std::vector<Slice> multiget_keys = {Slice(key)};
|
|
@@ -415,8 +415,8 @@ void ProfileQueries(bool enabled_time = false) {
|
|
|
415
415
|
if (i == kFlushFlag) {
|
|
416
416
|
continue;
|
|
417
417
|
}
|
|
418
|
-
std::string key = "k" +
|
|
419
|
-
std::string expected_value = "v" +
|
|
418
|
+
std::string key = "k" + std::to_string(i);
|
|
419
|
+
std::string expected_value = "v" + std::to_string(i);
|
|
420
420
|
std::string value;
|
|
421
421
|
|
|
422
422
|
std::vector<Slice> multiget_keys = {Slice(key)};
|
|
@@ -543,8 +543,8 @@ TEST_F(PerfContextTest, SeekKeyComparison) {
|
|
|
543
543
|
SetPerfLevel(kEnableTime);
|
|
544
544
|
StopWatchNano timer(SystemClock::Default().get());
|
|
545
545
|
for (const int i : keys) {
|
|
546
|
-
std::string key = "k" +
|
|
547
|
-
std::string value = "v" +
|
|
546
|
+
std::string key = "k" + std::to_string(i);
|
|
547
|
+
std::string value = "v" + std::to_string(i);
|
|
548
548
|
|
|
549
549
|
get_perf_context()->Reset();
|
|
550
550
|
timer.Start();
|
|
@@ -565,8 +565,8 @@ TEST_F(PerfContextTest, SeekKeyComparison) {
|
|
|
565
565
|
HistogramImpl hist_next;
|
|
566
566
|
|
|
567
567
|
for (int i = 0; i < FLAGS_total_keys; ++i) {
|
|
568
|
-
std::string key = "k" +
|
|
569
|
-
std::string value = "v" +
|
|
568
|
+
std::string key = "k" + std::to_string(i);
|
|
569
|
+
std::string value = "v" + std::to_string(i);
|
|
570
570
|
|
|
571
571
|
std::unique_ptr<Iterator> iter(db->NewIterator(read_options));
|
|
572
572
|
get_perf_context()->Reset();
|
|
@@ -841,7 +841,7 @@ TEST_F(PerfContextTest, CPUTimer) {
|
|
|
841
841
|
|
|
842
842
|
std::string max_str = "0";
|
|
843
843
|
for (int i = 0; i < FLAGS_total_keys; ++i) {
|
|
844
|
-
std::string i_str =
|
|
844
|
+
std::string i_str = std::to_string(i);
|
|
845
845
|
std::string key = "k" + i_str;
|
|
846
846
|
std::string value = "v" + i_str;
|
|
847
847
|
max_str = max_str > i_str ? max_str : i_str;
|
|
@@ -935,9 +935,9 @@ TEST_F(PerfContextTest, CPUTimer) {
|
|
|
935
935
|
get_perf_context()->Reset();
|
|
936
936
|
auto count = get_perf_context()->iter_seek_cpu_nanos;
|
|
937
937
|
for (int i = 0; i < FLAGS_total_keys; ++i) {
|
|
938
|
-
iter->Seek("k" +
|
|
938
|
+
iter->Seek("k" + std::to_string(i));
|
|
939
939
|
ASSERT_TRUE(iter->Valid());
|
|
940
|
-
ASSERT_EQ("v" +
|
|
940
|
+
ASSERT_EQ("v" + std::to_string(i), iter->value().ToString());
|
|
941
941
|
auto next_count = get_perf_context()->iter_seek_cpu_nanos;
|
|
942
942
|
ASSERT_GT(next_count, count);
|
|
943
943
|
count = next_count;
|