@nxtedition/rocksdb 7.1.30 → 7.1.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deps/rocksdb/rocksdb/CMakeLists.txt +2 -2
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +15 -23
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +0 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +4 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -1
- package/deps/rocksdb/rocksdb/crash_test.mk +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +15 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +78 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +32 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +8 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +47 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +105 -166
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +46 -15
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +47 -26
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +17 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +11 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +12 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +337 -103
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +43 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +524 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +164 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +5 -7
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +11 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_test2.cc +1 -1
- package/deps/rocksdb/rocksdb/db/memtable.cc +16 -23
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +30 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.h +9 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +29 -9
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +10 -7
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +12 -8
- package/deps/rocksdb/rocksdb/db/version_set.cc +11 -6
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +59 -53
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +3 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +1 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +0 -2
- package/deps/rocksdb/rocksdb/env/env.cc +16 -19
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +20 -20
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +62 -60
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_test.cc +179 -176
- package/deps/rocksdb/rocksdb/env/file_system.cc +3 -4
- package/deps/rocksdb/rocksdb/env/io_posix.cc +3 -2
- package/deps/rocksdb/rocksdb/env/io_posix.h +1 -2
- package/deps/rocksdb/rocksdb/env/mock_env.h +1 -0
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +4 -4
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +6 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +2 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +6 -7
- package/deps/rocksdb/rocksdb/file/file_util.cc +1 -1
- package/deps/rocksdb/rocksdb/file/filename.cc +16 -17
- package/deps/rocksdb/rocksdb/file/filename.h +4 -5
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +492 -496
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +1 -3
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +1 -0
- package/deps/rocksdb/rocksdb/file/read_write_util.h +1 -0
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +6 -8
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/block_cache_trace_writer.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +166 -167
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +12 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +0 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +1 -1
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +3 -3
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +3 -7
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +20 -23
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -0
- package/deps/rocksdb/rocksdb/logging/event_logger.cc +1 -3
- package/deps/rocksdb/rocksdb/logging/event_logger.h +4 -5
- package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +2 -1
- package/deps/rocksdb/rocksdb/logging/log_buffer.cc +2 -3
- package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -2
- package/deps/rocksdb/rocksdb/logging/logging.h +3 -3
- package/deps/rocksdb/rocksdb/memory/allocator.h +1 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +2 -0
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -0
- package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +17 -20
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +13 -15
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +11 -10
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +3 -3
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +30 -28
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +4 -6
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +73 -70
- package/deps/rocksdb/rocksdb/memtable/stl_wrappers.h +1 -1
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +21 -23
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +24 -38
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +10 -17
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +19 -19
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +22 -30
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +4 -6
- package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +4 -12
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +2 -3
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_test.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +12 -14
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +2 -3
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -3
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +1 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +7 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +12 -22
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +7 -10
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/port/lang.h +3 -1
- package/deps/rocksdb/rocksdb/port/likely.h +2 -2
- package/deps/rocksdb/rocksdb/port/mmap.h +2 -2
- package/deps/rocksdb/rocksdb/port/port_dirent.h +2 -2
- package/deps/rocksdb/rocksdb/port/port_posix.cc +32 -27
- package/deps/rocksdb/rocksdb/port/port_posix.h +31 -30
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +1 -1
- package/deps/rocksdb/rocksdb/port/sys_time.h +1 -1
- package/deps/rocksdb/rocksdb/port/win/io_win.h +6 -7
- package/deps/rocksdb/rocksdb/port/win/port_win.h +12 -20
- package/deps/rocksdb/rocksdb/port/win/win_jemalloc.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -5
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -4
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +30 -49
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +5 -5
- package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +51 -62
- package/deps/rocksdb/rocksdb/port/win/xpress_win.h +2 -2
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +4 -3
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +28 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -3
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +1 -0
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -6
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +1 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -6
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +90 -80
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +5 -4
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +63 -69
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +58 -57
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +3 -3
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +35 -30
- package/deps/rocksdb/rocksdb/table/get_context.cc +16 -10
- package/deps/rocksdb/rocksdb/table/iter_heap.h +2 -0
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +1 -3
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +31 -16
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +6 -6
- package/deps/rocksdb/rocksdb/table/multiget_context.h +5 -6
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +1 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.cc +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +7 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +3 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +2 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +4 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +2 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +10 -21
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +14 -12
- package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +2 -5
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -3
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +0 -6
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +0 -33
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -6
- package/deps/rocksdb/rocksdb/table/table_properties.cc +24 -37
- package/deps/rocksdb/rocksdb/table/table_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +9 -8
- package/deps/rocksdb/rocksdb/table/table_test.cc +77 -82
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +8 -18
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +2 -2
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +13 -18
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +1 -2
- package/deps/rocksdb/rocksdb/test_util/testutil.h +6 -7
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +3 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +1 -1
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -7
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +3 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +296 -314
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +6 -6
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +57 -64
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +6 -5
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +1 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +10 -10
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +6 -3
- package/deps/rocksdb/rocksdb/util/aligned_buffer.h +12 -31
- package/deps/rocksdb/rocksdb/util/autovector.h +3 -6
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +12 -12
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +8 -12
- package/deps/rocksdb/rocksdb/util/coding.cc +1 -0
- package/deps/rocksdb/rocksdb/util/coding.h +17 -15
- package/deps/rocksdb/rocksdb/util/coding_test.cc +14 -15
- package/deps/rocksdb/rocksdb/util/comparator.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +6 -3
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.cc +5 -8
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +202 -297
- package/deps/rocksdb/rocksdb/util/crc32c.h +2 -3
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +2 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +39 -54
- package/deps/rocksdb/rocksdb/util/defer.h +2 -1
- package/deps/rocksdb/rocksdb/util/defer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +2 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.cc +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +24 -29
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +4 -4
- package/deps/rocksdb/rocksdb/util/hash_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/heap.h +5 -4
- package/deps/rocksdb/rocksdb/util/heap_test.cc +15 -25
- package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
- package/deps/rocksdb/rocksdb/util/murmurhash.cc +7 -2
- package/deps/rocksdb/rocksdb/util/murmurhash.h +4 -3
- package/deps/rocksdb/rocksdb/util/mutexlock.h +5 -11
- package/deps/rocksdb/rocksdb/util/random.cc +1 -0
- package/deps/rocksdb/rocksdb/util/random.h +2 -4
- package/deps/rocksdb/rocksdb/util/random_test.cc +2 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +4 -3
- package/deps/rocksdb/rocksdb/util/slice.cc +1 -1
- package/deps/rocksdb/rocksdb/util/slice_test.cc +1 -2
- package/deps/rocksdb/rocksdb/util/status.cc +2 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +64 -76
- package/deps/rocksdb/rocksdb/util/thread_local.cc +18 -32
- package/deps/rocksdb/rocksdb/util/thread_local.h +2 -3
- package/deps/rocksdb/rocksdb/util/thread_operation.h +34 -43
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +54 -73
- package/deps/rocksdb/rocksdb/util/threadpool_imp.h +18 -18
- package/deps/rocksdb/rocksdb/util/timer.h +4 -9
- package/deps/rocksdb/rocksdb/util/timer_queue.h +1 -0
- package/deps/rocksdb/rocksdb/util/timer_queue_test.cc +1 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +1 -2
- package/deps/rocksdb/rocksdb/util/xxhash.h +7 -4
- package/deps/rocksdb/rocksdb/util/xxph3.h +3 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +16 -24
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +106 -104
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +6 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +11 -15
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +12 -12
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +56 -55
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +91 -74
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +17 -34
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +21 -45
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +74 -97
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +17 -18
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +19 -19
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +19 -18
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +7 -10
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +10 -15
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +9 -13
- package/deps/rocksdb/rocksdb/utilities/leveldb_options/leveldb_options.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.cc +7 -9
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +4 -5
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +2 -4
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +39 -50
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +4 -3
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +5 -7
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +5 -4
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +3 -6
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +18 -13
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +1 -3
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +15 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +14 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +4 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +5 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +2 -6
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +80 -79
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +9 -17
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -91,7 +91,8 @@ extern "C" bool RocksDbIOUringEnable() { return true; }
|
|
|
91
91
|
std::unique_ptr<char, Deleter> NewAligned(const size_t size, const char ch) {
|
|
92
92
|
char* ptr = nullptr;
|
|
93
93
|
#ifdef OS_WIN
|
|
94
|
-
if (nullptr ==
|
|
94
|
+
if (nullptr ==
|
|
95
|
+
(ptr = reinterpret_cast<char*>(_aligned_malloc(size, kPageSize)))) {
|
|
95
96
|
return std::unique_ptr<char, Deleter>(nullptr, Deleter(_aligned_free));
|
|
96
97
|
}
|
|
97
98
|
std::unique_ptr<char, Deleter> uptr(ptr, Deleter(_aligned_free));
|
|
@@ -183,8 +184,7 @@ TEST_F(EnvPosixTest, AreFilesSame) {
|
|
|
183
184
|
std::string same_file_link_name = same_file_name + "_link";
|
|
184
185
|
|
|
185
186
|
std::unique_ptr<WritableFile> same_file;
|
|
186
|
-
ASSERT_OK(env->NewWritableFile(same_file_name,
|
|
187
|
-
&same_file, soptions));
|
|
187
|
+
ASSERT_OK(env->NewWritableFile(same_file_name, &same_file, soptions));
|
|
188
188
|
same_file->Append("random_data");
|
|
189
189
|
ASSERT_OK(same_file->Flush());
|
|
190
190
|
same_file.reset();
|
|
@@ -681,7 +681,7 @@ TEST_P(EnvPosixTestWithParam, TwoPools) {
|
|
|
681
681
|
}
|
|
682
682
|
|
|
683
683
|
TEST_P(EnvPosixTestWithParam, DecreaseNumBgThreads) {
|
|
684
|
-
constexpr int kWaitMicros = 60000000;
|
|
684
|
+
constexpr int kWaitMicros = 60000000; // 1min
|
|
685
685
|
|
|
686
686
|
std::vector<test::SleepingBackgroundTask> tasks(10);
|
|
687
687
|
|
|
@@ -988,7 +988,6 @@ bool IsUniqueIDValid(const std::string& s) {
|
|
|
988
988
|
const size_t MAX_ID_SIZE = 100;
|
|
989
989
|
char temp_id[MAX_ID_SIZE];
|
|
990
990
|
|
|
991
|
-
|
|
992
991
|
} // namespace
|
|
993
992
|
|
|
994
993
|
// Determine whether we can use the FS_IOC_GETVERSION ioctl
|
|
@@ -1030,12 +1029,12 @@ class IoctlFriendlyTmpdir {
|
|
|
1030
1029
|
explicit IoctlFriendlyTmpdir() {
|
|
1031
1030
|
char dir_buf[100];
|
|
1032
1031
|
|
|
1033
|
-
const char
|
|
1034
|
-
const char
|
|
1032
|
+
const char* fmt = "%s/rocksdb.XXXXXX";
|
|
1033
|
+
const char* tmp = getenv("TEST_IOCTL_FRIENDLY_TMPDIR");
|
|
1035
1034
|
|
|
1036
1035
|
#ifdef OS_WIN
|
|
1037
1036
|
#define rmdir _rmdir
|
|
1038
|
-
if(tmp == nullptr) {
|
|
1037
|
+
if (tmp == nullptr) {
|
|
1039
1038
|
tmp = getenv("TMP");
|
|
1040
1039
|
}
|
|
1041
1040
|
|
|
@@ -1066,8 +1065,10 @@ class IoctlFriendlyTmpdir {
|
|
|
1066
1065
|
// Diagnose ioctl-related failure only if this is the
|
|
1067
1066
|
// directory specified via that envvar.
|
|
1068
1067
|
if (tmp && tmp == d) {
|
|
1069
|
-
fprintf(stderr,
|
|
1070
|
-
"
|
|
1068
|
+
fprintf(stderr,
|
|
1069
|
+
"TEST_IOCTL_FRIENDLY_TMPDIR-specified directory is "
|
|
1070
|
+
"not suitable: %s\n",
|
|
1071
|
+
d.c_str());
|
|
1071
1072
|
}
|
|
1072
1073
|
rmdir(dir_buf); // ignore failure
|
|
1073
1074
|
}
|
|
@@ -1087,19 +1088,16 @@ class IoctlFriendlyTmpdir {
|
|
|
1087
1088
|
return;
|
|
1088
1089
|
}
|
|
1089
1090
|
|
|
1090
|
-
fprintf(stderr,
|
|
1091
|
+
fprintf(stderr,
|
|
1092
|
+
"failed to find an ioctl-friendly temporary directory;"
|
|
1091
1093
|
" specify one via the TEST_IOCTL_FRIENDLY_TMPDIR envvar\n");
|
|
1092
1094
|
std::abort();
|
|
1093
1095
|
#endif
|
|
1094
1096
|
}
|
|
1095
1097
|
|
|
1096
|
-
~IoctlFriendlyTmpdir() {
|
|
1097
|
-
rmdir(dir_.c_str());
|
|
1098
|
-
}
|
|
1098
|
+
~IoctlFriendlyTmpdir() { rmdir(dir_.c_str()); }
|
|
1099
1099
|
|
|
1100
|
-
const std::string& name() const {
|
|
1101
|
-
return dir_;
|
|
1102
|
-
}
|
|
1100
|
+
const std::string& name() const { return dir_; }
|
|
1103
1101
|
|
|
1104
1102
|
bool is_supported() const { return is_supported_; }
|
|
1105
1103
|
|
|
@@ -1273,7 +1271,7 @@ TEST_P(EnvPosixTestWithParam, AllocateTest) {
|
|
|
1273
1271
|
|
|
1274
1272
|
// Returns true if any of the strings in ss are the prefix of another string.
|
|
1275
1273
|
bool HasPrefix(const std::unordered_set<std::string>& ss) {
|
|
1276
|
-
for (const std::string& s: ss) {
|
|
1274
|
+
for (const std::string& s : ss) {
|
|
1277
1275
|
if (s.empty()) {
|
|
1278
1276
|
return true;
|
|
1279
1277
|
}
|
|
@@ -1506,19 +1504,23 @@ TEST_F(EnvPosixTest, MultiReadNonAlignedLargeNum) {
|
|
|
1506
1504
|
for (int i = 0; i < num_reads; i++) {
|
|
1507
1505
|
int rnd_off;
|
|
1508
1506
|
// No repeat offsets.
|
|
1509
|
-
while (start_offsets.find(rnd_off = rnd.Uniform(81920)) !=
|
|
1507
|
+
while (start_offsets.find(rnd_off = rnd.Uniform(81920)) !=
|
|
1508
|
+
start_offsets.end()) {
|
|
1509
|
+
}
|
|
1510
1510
|
start_offsets.insert(rnd_off);
|
|
1511
1511
|
}
|
|
1512
1512
|
std::vector<size_t> offsets;
|
|
1513
1513
|
std::vector<size_t> lens;
|
|
1514
1514
|
// std::set already sorted the offsets.
|
|
1515
|
-
for (int so: start_offsets) {
|
|
1515
|
+
for (int so : start_offsets) {
|
|
1516
1516
|
offsets.push_back(so);
|
|
1517
1517
|
}
|
|
1518
1518
|
for (size_t i = 0; i + 1 < offsets.size(); i++) {
|
|
1519
|
-
lens.push_back(static_cast<size_t>(
|
|
1519
|
+
lens.push_back(static_cast<size_t>(
|
|
1520
|
+
rnd.Uniform(static_cast<int>(offsets[i + 1] - offsets[i])) + 1));
|
|
1520
1521
|
}
|
|
1521
|
-
lens.push_back(static_cast<size_t>(
|
|
1522
|
+
lens.push_back(static_cast<size_t>(
|
|
1523
|
+
rnd.Uniform(static_cast<int>(kTotalSize - offsets.back())) + 1));
|
|
1522
1524
|
ASSERT_EQ(num_reads, lens.size());
|
|
1523
1525
|
|
|
1524
1526
|
// Create requests
|
|
@@ -1540,8 +1542,9 @@ TEST_F(EnvPosixTest, MultiReadNonAlignedLargeNum) {
|
|
|
1540
1542
|
// Validate results
|
|
1541
1543
|
for (int i = 0; i < num_reads; ++i) {
|
|
1542
1544
|
ASSERT_OK(reqs[i].status);
|
|
1543
|
-
ASSERT_EQ(
|
|
1544
|
-
|
|
1545
|
+
ASSERT_EQ(
|
|
1546
|
+
Slice(expected_data.data() + offsets[i], lens[i]).ToString(true),
|
|
1547
|
+
reqs[i].result.ToString(true));
|
|
1545
1548
|
}
|
|
1546
1549
|
|
|
1547
1550
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
|
|
@@ -1754,57 +1757,60 @@ TEST_P(EnvPosixTestWithParam, InvalidateCache) {
|
|
|
1754
1757
|
// Create file.
|
|
1755
1758
|
{
|
|
1756
1759
|
std::unique_ptr<WritableFile> wfile;
|
|
1757
|
-
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) &&
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1760
|
+
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
|
|
1761
|
+
!defined(OS_AIX)
|
|
1762
|
+
if (soptions.use_direct_writes) {
|
|
1763
|
+
soptions.use_direct_writes = false;
|
|
1764
|
+
}
|
|
1761
1765
|
#endif
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
+
ASSERT_OK(env_->NewWritableFile(fname, &wfile, soptions));
|
|
1767
|
+
ASSERT_OK(wfile->Append(slice));
|
|
1768
|
+
ASSERT_OK(wfile->InvalidateCache(0, 0));
|
|
1769
|
+
ASSERT_OK(wfile->Close());
|
|
1766
1770
|
}
|
|
1767
1771
|
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) &&
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
#endif
|
|
1778
|
-
ASSERT_OK(env_->NewRandomAccessFile(fname, &file, soptions));
|
|
1779
|
-
ASSERT_OK(file->Read(0, kSectorSize, &result, scratch.get()));
|
|
1780
|
-
ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
|
|
1781
|
-
ASSERT_OK(file->InvalidateCache(0, 11));
|
|
1782
|
-
ASSERT_OK(file->InvalidateCache(0, 0));
|
|
1772
|
+
// Random Read
|
|
1773
|
+
{
|
|
1774
|
+
std::unique_ptr<RandomAccessFile> file;
|
|
1775
|
+
auto scratch = NewAligned(kSectorSize, 0);
|
|
1776
|
+
Slice result;
|
|
1777
|
+
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
|
|
1778
|
+
!defined(OS_AIX)
|
|
1779
|
+
if (soptions.use_direct_reads) {
|
|
1780
|
+
soptions.use_direct_reads = false;
|
|
1783
1781
|
}
|
|
1782
|
+
#endif
|
|
1783
|
+
ASSERT_OK(env_->NewRandomAccessFile(fname, &file, soptions));
|
|
1784
|
+
ASSERT_OK(file->Read(0, kSectorSize, &result, scratch.get()));
|
|
1785
|
+
ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
|
|
1786
|
+
ASSERT_OK(file->InvalidateCache(0, 11));
|
|
1787
|
+
ASSERT_OK(file->InvalidateCache(0, 0));
|
|
1788
|
+
}
|
|
1784
1789
|
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) &&
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1790
|
+
// Sequential Read
|
|
1791
|
+
{
|
|
1792
|
+
std::unique_ptr<SequentialFile> file;
|
|
1793
|
+
auto scratch = NewAligned(kSectorSize, 0);
|
|
1794
|
+
Slice result;
|
|
1795
|
+
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
|
|
1796
|
+
!defined(OS_AIX)
|
|
1797
|
+
if (soptions.use_direct_reads) {
|
|
1798
|
+
soptions.use_direct_reads = false;
|
|
1799
|
+
}
|
|
1794
1800
|
#endif
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
}
|
|
1801
|
-
ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
|
|
1802
|
-
ASSERT_OK(file->InvalidateCache(0, 11));
|
|
1803
|
-
ASSERT_OK(file->InvalidateCache(0, 0));
|
|
1801
|
+
ASSERT_OK(env_->NewSequentialFile(fname, &file, soptions));
|
|
1802
|
+
if (file->use_direct_io()) {
|
|
1803
|
+
ASSERT_OK(file->PositionedRead(0, kSectorSize, &result, scratch.get()));
|
|
1804
|
+
} else {
|
|
1805
|
+
ASSERT_OK(file->Read(kSectorSize, &result, scratch.get()));
|
|
1804
1806
|
}
|
|
1805
|
-
|
|
1806
|
-
ASSERT_OK(
|
|
1807
|
-
|
|
1807
|
+
ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
|
|
1808
|
+
ASSERT_OK(file->InvalidateCache(0, 11));
|
|
1809
|
+
ASSERT_OK(file->InvalidateCache(0, 0));
|
|
1810
|
+
}
|
|
1811
|
+
// Delete the file
|
|
1812
|
+
ASSERT_OK(env_->DeleteFile(fname));
|
|
1813
|
+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
|
|
1808
1814
|
}
|
|
1809
1815
|
#endif // OS_LINUX || OS_WIN
|
|
1810
1816
|
|
|
@@ -1931,52 +1937,53 @@ TEST_P(EnvPosixTestWithParam, Preallocation) {
|
|
|
1931
1937
|
std::unique_ptr<WritableFile> srcfile;
|
|
1932
1938
|
EnvOptions soptions;
|
|
1933
1939
|
soptions.use_direct_reads = soptions.use_direct_writes = direct_io_;
|
|
1934
|
-
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) &&
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1940
|
+
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
|
|
1941
|
+
!defined(OS_AIX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
|
|
1942
|
+
if (soptions.use_direct_writes) {
|
|
1943
|
+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
1944
|
+
"NewWritableFile:O_DIRECT", [&](void* arg) {
|
|
1945
|
+
int* val = static_cast<int*>(arg);
|
|
1946
|
+
*val &= ~O_DIRECT;
|
|
1947
|
+
});
|
|
1948
|
+
}
|
|
1942
1949
|
#endif
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1950
|
+
ASSERT_OK(env_->NewWritableFile(src, &srcfile, soptions));
|
|
1951
|
+
srcfile->SetPreallocationBlockSize(1024 * 1024);
|
|
1952
|
+
|
|
1953
|
+
// No writes should mean no preallocation
|
|
1954
|
+
size_t block_size, last_allocated_block;
|
|
1955
|
+
srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
|
|
1956
|
+
ASSERT_EQ(last_allocated_block, 0UL);
|
|
1957
|
+
|
|
1958
|
+
// Small write should preallocate one block
|
|
1959
|
+
size_t kStrSize = 4096;
|
|
1960
|
+
auto data = NewAligned(kStrSize, 'A');
|
|
1961
|
+
Slice str(data.get(), kStrSize);
|
|
1962
|
+
srcfile->PrepareWrite(srcfile->GetFileSize(), kStrSize);
|
|
1963
|
+
ASSERT_OK(srcfile->Append(str));
|
|
1964
|
+
srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
|
|
1965
|
+
ASSERT_EQ(last_allocated_block, 1UL);
|
|
1966
|
+
|
|
1967
|
+
// Write an entire preallocation block, make sure we increased by two.
|
|
1968
|
+
{
|
|
1969
|
+
auto buf_ptr = NewAligned(block_size, ' ');
|
|
1970
|
+
Slice buf(buf_ptr.get(), block_size);
|
|
1971
|
+
srcfile->PrepareWrite(srcfile->GetFileSize(), block_size);
|
|
1972
|
+
ASSERT_OK(srcfile->Append(buf));
|
|
1957
1973
|
srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
|
|
1958
|
-
ASSERT_EQ(last_allocated_block,
|
|
1959
|
-
|
|
1960
|
-
// Write an entire preallocation block, make sure we increased by two.
|
|
1961
|
-
{
|
|
1962
|
-
auto buf_ptr = NewAligned(block_size, ' ');
|
|
1963
|
-
Slice buf(buf_ptr.get(), block_size);
|
|
1964
|
-
srcfile->PrepareWrite(srcfile->GetFileSize(), block_size);
|
|
1965
|
-
ASSERT_OK(srcfile->Append(buf));
|
|
1966
|
-
srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
|
|
1967
|
-
ASSERT_EQ(last_allocated_block, 2UL);
|
|
1968
|
-
}
|
|
1974
|
+
ASSERT_EQ(last_allocated_block, 2UL);
|
|
1975
|
+
}
|
|
1969
1976
|
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1977
|
+
// Write five more blocks at once, ensure we're where we need to be.
|
|
1978
|
+
{
|
|
1979
|
+
auto buf_ptr = NewAligned(block_size * 5, ' ');
|
|
1980
|
+
Slice buf = Slice(buf_ptr.get(), block_size * 5);
|
|
1981
|
+
srcfile->PrepareWrite(srcfile->GetFileSize(), buf.size());
|
|
1982
|
+
ASSERT_OK(srcfile->Append(buf));
|
|
1983
|
+
srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
|
|
1984
|
+
ASSERT_EQ(last_allocated_block, 7UL);
|
|
1985
|
+
}
|
|
1986
|
+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
|
|
1980
1987
|
}
|
|
1981
1988
|
|
|
1982
1989
|
// Test that the two ways to get children file attributes (in bulk or
|
|
@@ -1993,53 +2000,50 @@ TEST_P(EnvPosixTestWithParam, ConsistentChildrenAttributes) {
|
|
|
1993
2000
|
for (int i = 0; i < kNumChildren; ++i) {
|
|
1994
2001
|
const std::string path = test_base_dir + "/testfile_" + std::to_string(i);
|
|
1995
2002
|
std::unique_ptr<WritableFile> file;
|
|
1996
|
-
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) &&
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2003
|
+
#if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
|
|
2004
|
+
!defined(OS_AIX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
|
|
2005
|
+
if (soptions.use_direct_writes) {
|
|
2006
|
+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
2007
|
+
"NewWritableFile:O_DIRECT", [&](void* arg) {
|
|
2008
|
+
int* val = static_cast<int*>(arg);
|
|
2009
|
+
*val &= ~O_DIRECT;
|
|
2010
|
+
});
|
|
2011
|
+
}
|
|
2004
2012
|
#endif
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2013
|
+
ASSERT_OK(env_->NewWritableFile(path, &file, soptions));
|
|
2014
|
+
auto buf_ptr = NewAligned(data.size(), 'T');
|
|
2015
|
+
Slice buf(buf_ptr.get(), data.size());
|
|
2016
|
+
ASSERT_OK(file->Append(buf));
|
|
2017
|
+
data.append(std::string(4096, 'T'));
|
|
2010
2018
|
}
|
|
2011
2019
|
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2020
|
+
std::vector<Env::FileAttributes> file_attrs;
|
|
2021
|
+
ASSERT_OK(env_->GetChildrenFileAttributes(test_base_dir, &file_attrs));
|
|
2022
|
+
for (int i = 0; i < kNumChildren; ++i) {
|
|
2023
|
+
const std::string name = "testfile_" + std::to_string(i);
|
|
2024
|
+
const std::string path = test_base_dir + "/" + name;
|
|
2017
2025
|
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2026
|
+
auto file_attrs_iter = std::find_if(
|
|
2027
|
+
file_attrs.begin(), file_attrs.end(),
|
|
2028
|
+
[&name](const Env::FileAttributes& fm) { return fm.name == name; });
|
|
2029
|
+
ASSERT_TRUE(file_attrs_iter != file_attrs.end());
|
|
2030
|
+
uint64_t size;
|
|
2031
|
+
ASSERT_OK(env_->GetFileSize(path, &size));
|
|
2032
|
+
ASSERT_EQ(size, 4096 * i);
|
|
2033
|
+
ASSERT_EQ(size, file_attrs_iter->size_bytes);
|
|
2034
|
+
}
|
|
2035
|
+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
|
|
2028
2036
|
}
|
|
2029
2037
|
|
|
2030
2038
|
// Test that all WritableFileWrapper forwards all calls to WritableFile.
|
|
2031
2039
|
TEST_P(EnvPosixTestWithParam, WritableFileWrapper) {
|
|
2032
2040
|
class Base : public WritableFile {
|
|
2033
2041
|
public:
|
|
2034
|
-
mutable int
|
|
2042
|
+
mutable int* step_;
|
|
2035
2043
|
|
|
2036
|
-
void inc(int x) const {
|
|
2037
|
-
EXPECT_EQ(x, (*step_)++);
|
|
2038
|
-
}
|
|
2044
|
+
void inc(int x) const { EXPECT_EQ(x, (*step_)++); }
|
|
2039
2045
|
|
|
2040
|
-
explicit Base(int* step) : step_(step) {
|
|
2041
|
-
inc(0);
|
|
2042
|
-
}
|
|
2046
|
+
explicit Base(int* step) : step_(step) { inc(0); }
|
|
2043
2047
|
|
|
2044
2048
|
Status Append(const Slice& /*data*/) override {
|
|
2045
2049
|
inc(1);
|
|
@@ -2372,32 +2376,31 @@ TEST_P(EnvPosixTestWithParam, PosixRandomRWFileRandomized) {
|
|
|
2372
2376
|
}
|
|
2373
2377
|
|
|
2374
2378
|
class TestEnv : public EnvWrapper {
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
s.PermitUncheckedError();
|
|
2387
|
-
}
|
|
2379
|
+
public:
|
|
2380
|
+
explicit TestEnv() : EnvWrapper(Env::Default()), close_count(0) {}
|
|
2381
|
+
const char* Name() const override { return "TestEnv"; }
|
|
2382
|
+
class TestLogger : public Logger {
|
|
2383
|
+
public:
|
|
2384
|
+
using Logger::Logv;
|
|
2385
|
+
explicit TestLogger(TestEnv* env_ptr) : Logger() { env = env_ptr; }
|
|
2386
|
+
~TestLogger() override {
|
|
2387
|
+
if (!closed_) {
|
|
2388
|
+
Status s = CloseHelper();
|
|
2389
|
+
s.PermitUncheckedError();
|
|
2388
2390
|
}
|
|
2389
|
-
|
|
2391
|
+
}
|
|
2392
|
+
void Logv(const char* /*format*/, va_list /*ap*/) override {}
|
|
2390
2393
|
|
|
2391
|
-
|
|
2392
|
-
|
|
2394
|
+
protected:
|
|
2395
|
+
Status CloseImpl() override { return CloseHelper(); }
|
|
2393
2396
|
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2397
|
+
private:
|
|
2398
|
+
Status CloseHelper() {
|
|
2399
|
+
env->CloseCountInc();
|
|
2400
|
+
return Status::OK();
|
|
2401
|
+
}
|
|
2402
|
+
TestEnv* env;
|
|
2403
|
+
};
|
|
2401
2404
|
|
|
2402
2405
|
void CloseCountInc() { close_count++; }
|
|
2403
2406
|
|
|
@@ -2504,7 +2507,8 @@ class EnvFSTestWithParam
|
|
|
2504
2507
|
env_ptr_ = NewCompositeEnv(fs_);
|
|
2505
2508
|
}
|
|
2506
2509
|
if (env_non_null && !env_default && fs_default) {
|
|
2507
|
-
env_ptr_ =
|
|
2510
|
+
env_ptr_ =
|
|
2511
|
+
std::unique_ptr<Env>(new FaultInjectionTestEnv(Env::Default()));
|
|
2508
2512
|
fs_.reset();
|
|
2509
2513
|
}
|
|
2510
2514
|
if (env_non_null && !env_default && !fs_default) {
|
|
@@ -2572,17 +2576,16 @@ TEST_P(EnvFSTestWithParam, OptionsTest) {
|
|
|
2572
2576
|
// 1. True means Options::env is non-null, false means null
|
|
2573
2577
|
// 2. True means use Env::Default, false means custom
|
|
2574
2578
|
// 3. True means use FileSystem::Default, false means custom
|
|
2575
|
-
INSTANTIATE_TEST_CASE_P(
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
::testing::Bool()));
|
|
2579
|
+
INSTANTIATE_TEST_CASE_P(EnvFSTest, EnvFSTestWithParam,
|
|
2580
|
+
::testing::Combine(::testing::Bool(), ::testing::Bool(),
|
|
2581
|
+
::testing::Bool()));
|
|
2579
2582
|
// This test ensures that default Env and those allocated by
|
|
2580
2583
|
// NewCompositeEnv() all share the same threadpool
|
|
2581
2584
|
TEST_F(EnvTest, MultipleCompositeEnv) {
|
|
2582
2585
|
std::shared_ptr<FaultInjectionTestFS> fs1 =
|
|
2583
|
-
|
|
2586
|
+
std::make_shared<FaultInjectionTestFS>(FileSystem::Default());
|
|
2584
2587
|
std::shared_ptr<FaultInjectionTestFS> fs2 =
|
|
2585
|
-
|
|
2588
|
+
std::make_shared<FaultInjectionTestFS>(FileSystem::Default());
|
|
2586
2589
|
std::unique_ptr<Env> env1 = NewCompositeEnv(fs1);
|
|
2587
2590
|
std::unique_ptr<Env> env2 = NewCompositeEnv(fs2);
|
|
2588
2591
|
Env::Default()->SetBackgroundThreads(8, Env::HIGH);
|
|
@@ -136,7 +136,7 @@ IOStatus FileSystem::NewLogger(const std::string& fname,
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
FileOptions FileSystem::OptimizeForLogRead(
|
|
139
|
-
|
|
139
|
+
const FileOptions& file_options) const {
|
|
140
140
|
FileOptions optimized_file_options(file_options);
|
|
141
141
|
optimized_file_options.use_direct_reads = false;
|
|
142
142
|
return optimized_file_options;
|
|
@@ -150,7 +150,7 @@ FileOptions FileSystem::OptimizeForManifestRead(
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
FileOptions FileSystem::OptimizeForLogWrite(const FileOptions& file_options,
|
|
153
|
-
|
|
153
|
+
const DBOptions& db_options) const {
|
|
154
154
|
FileOptions optimized_file_options(file_options);
|
|
155
155
|
optimized_file_options.bytes_per_sync = db_options.wal_bytes_per_sync;
|
|
156
156
|
optimized_file_options.writable_file_max_buffer_size =
|
|
@@ -220,8 +220,7 @@ IOStatus ReadFileToString(FileSystem* fs, const std::string& fname,
|
|
|
220
220
|
char* space = new char[kBufferSize];
|
|
221
221
|
while (true) {
|
|
222
222
|
Slice fragment;
|
|
223
|
-
s = file->Read(kBufferSize, IOOptions(), &fragment, space,
|
|
224
|
-
nullptr);
|
|
223
|
+
s = file->Read(kBufferSize, IOOptions(), &fragment, space, nullptr);
|
|
225
224
|
if (!s.ok()) {
|
|
226
225
|
break;
|
|
227
226
|
}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
#ifdef ROCKSDB_LIB_IO_POSIX
|
|
11
11
|
#include "env/io_posix.h"
|
|
12
|
+
|
|
12
13
|
#include <errno.h>
|
|
13
14
|
#include <fcntl.h>
|
|
15
|
+
|
|
14
16
|
#include <algorithm>
|
|
15
17
|
#if defined(OS_LINUX)
|
|
16
18
|
#include <linux/fs.h>
|
|
@@ -601,8 +603,7 @@ IOStatus PosixRandomAccessFile::Read(uint64_t offset, size_t n,
|
|
|
601
603
|
return s;
|
|
602
604
|
}
|
|
603
605
|
|
|
604
|
-
IOStatus PosixRandomAccessFile::MultiRead(FSReadRequest* reqs,
|
|
605
|
-
size_t num_reqs,
|
|
606
|
+
IOStatus PosixRandomAccessFile::MultiRead(FSReadRequest* reqs, size_t num_reqs,
|
|
606
607
|
const IOOptions& options,
|
|
607
608
|
IODebugContext* dbg) {
|
|
608
609
|
if (use_direct_io()) {
|
|
@@ -284,8 +284,7 @@ class PosixRandomAccessFile : public FSRandomAccessFile {
|
|
|
284
284
|
|
|
285
285
|
public:
|
|
286
286
|
PosixRandomAccessFile(const std::string& fname, int fd,
|
|
287
|
-
size_t logical_block_size,
|
|
288
|
-
const EnvOptions& options
|
|
287
|
+
size_t logical_block_size, const EnvOptions& options
|
|
289
288
|
#if defined(ROCKSDB_IOURING_PRESENT)
|
|
290
289
|
,
|
|
291
290
|
ThreadLocalPtr* thread_local_io_urings
|
|
@@ -135,6 +135,7 @@ class MockEnv : public CompositeEnvWrapper {
|
|
|
135
135
|
const char* Name() const override { return kClassName(); }
|
|
136
136
|
|
|
137
137
|
Status CorruptBuffer(const std::string& fname);
|
|
138
|
+
|
|
138
139
|
private:
|
|
139
140
|
MockEnv(Env* env, const std::shared_ptr<FileSystem>& fs,
|
|
140
141
|
const std::shared_ptr<SystemClock>& clock);
|
|
@@ -51,14 +51,14 @@ TEST_F(MockEnvTest, Corrupt) {
|
|
|
51
51
|
ASSERT_OK(writable_file->Append(kCorrupted));
|
|
52
52
|
ASSERT_TRUE(writable_file->GetFileSize() == kGood.size() + kCorrupted.size());
|
|
53
53
|
result.clear();
|
|
54
|
-
ASSERT_OK(
|
|
55
|
-
|
|
54
|
+
ASSERT_OK(
|
|
55
|
+
rand_file->Read(kGood.size(), kCorrupted.size(), &result, &(scratch[0])));
|
|
56
56
|
ASSERT_EQ(result.compare(kCorrupted), 0);
|
|
57
57
|
// Corrupted
|
|
58
58
|
ASSERT_OK(dynamic_cast<MockEnv*>(env_)->CorruptBuffer(kFileName));
|
|
59
59
|
result.clear();
|
|
60
|
-
ASSERT_OK(
|
|
61
|
-
|
|
60
|
+
ASSERT_OK(
|
|
61
|
+
rand_file->Read(kGood.size(), kCorrupted.size(), &result, &(scratch[0])));
|
|
62
62
|
ASSERT_NE(result.compare(kCorrupted), 0);
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -61,9 +61,10 @@ DeleteScheduler::~DeleteScheduler() {
|
|
|
61
61
|
Status DeleteScheduler::DeleteFile(const std::string& file_path,
|
|
62
62
|
const std::string& dir_to_sync,
|
|
63
63
|
const bool force_bg) {
|
|
64
|
-
if (rate_bytes_per_sec_.load() <= 0 ||
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
if (rate_bytes_per_sec_.load() <= 0 ||
|
|
65
|
+
(!force_bg &&
|
|
66
|
+
total_trash_size_.load() >
|
|
67
|
+
sst_file_manager_->GetTotalSize() * max_trash_db_ratio_.load())) {
|
|
67
68
|
// Rate limiting is disabled or trash size makes up more than
|
|
68
69
|
// max_trash_db_ratio_ (default 25%) of the total DB size
|
|
69
70
|
TEST_SYNC_POINT("DeleteScheduler::DeleteFile");
|
|
@@ -318,8 +319,8 @@ Status DeleteScheduler::DeleteTrashFile(const std::string& path_in_trash,
|
|
|
318
319
|
if (my_status.ok()) {
|
|
319
320
|
if (num_hard_links == 1) {
|
|
320
321
|
std::unique_ptr<FSWritableFile> wf;
|
|
321
|
-
my_status = fs_->ReopenWritableFile(path_in_trash, FileOptions(),
|
|
322
|
-
|
|
322
|
+
my_status = fs_->ReopenWritableFile(path_in_trash, FileOptions(), &wf,
|
|
323
|
+
nullptr);
|
|
323
324
|
if (my_status.ok()) {
|
|
324
325
|
my_status = wf->Truncate(file_size - bytes_max_delete_chunk_,
|
|
325
326
|
IOOptions(), nullptr);
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
#include "monitoring/instrumented_mutex.h"
|
|
16
16
|
#include "port/port.h"
|
|
17
|
-
|
|
18
17
|
#include "rocksdb/status.h"
|
|
19
18
|
|
|
20
19
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -54,7 +53,7 @@ class DeleteScheduler {
|
|
|
54
53
|
// set, it forces the file to always be deleted in the background thread,
|
|
55
54
|
// except when rate limiting is disabled
|
|
56
55
|
Status DeleteFile(const std::string& fname, const std::string& dir_to_sync,
|
|
57
|
-
|
|
56
|
+
const bool force_bg = false);
|
|
58
57
|
|
|
59
58
|
// Wait for all files being deleteing in the background to finish or for
|
|
60
59
|
// destructor to be called.
|
|
@@ -67,9 +66,7 @@ class DeleteScheduler {
|
|
|
67
66
|
uint64_t GetTotalTrashSize() { return total_trash_size_.load(); }
|
|
68
67
|
|
|
69
68
|
// Return trash/DB size ratio where new files will be deleted immediately
|
|
70
|
-
double GetMaxTrashDBRatio() {
|
|
71
|
-
return max_trash_db_ratio_.load();
|
|
72
|
-
}
|
|
69
|
+
double GetMaxTrashDBRatio() { return max_trash_db_ratio_.load(); }
|
|
73
70
|
|
|
74
71
|
// Update trash/DB size ratio where new files will be deleted immediately
|
|
75
72
|
void SetMaxTrashDBRatio(double r) {
|