@nxtedition/rocksdb 7.1.29 → 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/binding.cc +34 -0
- 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/index.js +4 -0
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @author Deon Nicholas (dnicholas@fb.com)
|
|
12
12
|
* Copyright 2013 Facebook, Inc.
|
|
13
|
-
*/
|
|
13
|
+
*/
|
|
14
14
|
|
|
15
15
|
#include "utilities/merge_operators/string_append/stringappend.h"
|
|
16
16
|
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
#include "utilities/merge_operators.h"
|
|
28
28
|
#include "utilities/merge_operators/string_append/stringappend2.h"
|
|
29
29
|
|
|
30
|
-
|
|
31
30
|
namespace ROCKSDB_NAMESPACE {
|
|
32
31
|
|
|
33
32
|
// Path to the database on file system
|
|
@@ -73,18 +72,15 @@ std::shared_ptr<DB> OpenTtlDb(const std::string& delim) {
|
|
|
73
72
|
/// Supports Append(list, string) and Get(list)
|
|
74
73
|
class StringLists {
|
|
75
74
|
public:
|
|
76
|
-
|
|
77
|
-
//Constructor: specifies the rocksdb db
|
|
75
|
+
// Constructor: specifies the rocksdb db
|
|
78
76
|
/* implicit */
|
|
79
77
|
StringLists(std::shared_ptr<DB> db)
|
|
80
|
-
: db_(db),
|
|
81
|
-
merge_option_(),
|
|
82
|
-
get_option_() {
|
|
78
|
+
: db_(db), merge_option_(), get_option_() {
|
|
83
79
|
assert(db);
|
|
84
80
|
}
|
|
85
81
|
|
|
86
82
|
// Append string val onto the list defined by key; return true on success
|
|
87
|
-
bool Append(const std::string& key, const std::string& val){
|
|
83
|
+
bool Append(const std::string& key, const std::string& val) {
|
|
88
84
|
Slice valSlice(val.data(), val.size());
|
|
89
85
|
auto s = db_->Merge(merge_option_, key, valSlice);
|
|
90
86
|
|
|
@@ -97,8 +93,8 @@ class StringLists {
|
|
|
97
93
|
}
|
|
98
94
|
|
|
99
95
|
// Returns the list of strings associated with key (or "" if does not exist)
|
|
100
|
-
bool Get(const std::string& key, std::string* const result){
|
|
101
|
-
assert(result != nullptr);
|
|
96
|
+
bool Get(const std::string& key, std::string* const result) {
|
|
97
|
+
assert(result != nullptr); // we should have a place to store the result
|
|
102
98
|
auto s = db_->Get(get_option_, key, result);
|
|
103
99
|
|
|
104
100
|
if (s.ok()) {
|
|
@@ -106,10 +102,10 @@ class StringLists {
|
|
|
106
102
|
}
|
|
107
103
|
|
|
108
104
|
// Either key does not exist, or there is some error.
|
|
109
|
-
*result = "";
|
|
105
|
+
*result = ""; // Always return empty string (just for convention)
|
|
110
106
|
|
|
111
|
-
//NotFound is okay; just return empty (similar to std::map)
|
|
112
|
-
//But network or db errors, etc, should fail the test (or at least yell)
|
|
107
|
+
// NotFound is okay; just return empty (similar to std::map)
|
|
108
|
+
// But network or db errors, etc, should fail the test (or at least yell)
|
|
113
109
|
if (!s.IsNotFound()) {
|
|
114
110
|
std::cerr << "ERROR " << s.ToString() << std::endl;
|
|
115
111
|
}
|
|
@@ -118,15 +114,12 @@ class StringLists {
|
|
|
118
114
|
return false;
|
|
119
115
|
}
|
|
120
116
|
|
|
121
|
-
|
|
122
117
|
private:
|
|
123
118
|
std::shared_ptr<DB> db_;
|
|
124
119
|
WriteOptions merge_option_;
|
|
125
120
|
ReadOptions get_option_;
|
|
126
|
-
|
|
127
121
|
};
|
|
128
122
|
|
|
129
|
-
|
|
130
123
|
// The class for unit-testing
|
|
131
124
|
class StringAppendOperatorTest : public testing::Test,
|
|
132
125
|
public ::testing::WithParamInterface<bool> {
|
|
@@ -153,14 +146,13 @@ class StringAppendOperatorTest : public testing::Test,
|
|
|
153
146
|
|
|
154
147
|
// Allows user to open databases with different configurations.
|
|
155
148
|
// e.g.: Can open a DB or a TtlDB, etc.
|
|
156
|
-
static void SetOpenDbFunction(OpenFuncPtr func) {
|
|
157
|
-
OpenDb = func;
|
|
158
|
-
}
|
|
149
|
+
static void SetOpenDbFunction(OpenFuncPtr func) { OpenDb = func; }
|
|
159
150
|
|
|
160
151
|
protected:
|
|
161
152
|
static OpenFuncPtr OpenDb;
|
|
162
153
|
};
|
|
163
|
-
StringAppendOperatorTest::OpenFuncPtr StringAppendOperatorTest::OpenDb =
|
|
154
|
+
StringAppendOperatorTest::OpenFuncPtr StringAppendOperatorTest::OpenDb =
|
|
155
|
+
nullptr;
|
|
164
156
|
|
|
165
157
|
// THE TEST CASES BEGIN HERE
|
|
166
158
|
|
|
@@ -206,7 +198,6 @@ TEST_P(StringAppendOperatorTest, IteratorTest) {
|
|
|
206
198
|
}
|
|
207
199
|
}
|
|
208
200
|
|
|
209
|
-
|
|
210
201
|
// Should release the snapshot and be aware of the new stuff now
|
|
211
202
|
it.reset(db_->NewIterator(ReadOptions()));
|
|
212
203
|
first = true;
|
|
@@ -236,7 +227,7 @@ TEST_P(StringAppendOperatorTest, IteratorTest) {
|
|
|
236
227
|
it.reset(db_->NewIterator(ReadOptions()));
|
|
237
228
|
first = true;
|
|
238
229
|
std::string k3("k3");
|
|
239
|
-
for(it->Seek(k2); it->Valid(); it->Next()) {
|
|
230
|
+
for (it->Seek(k2); it->Valid(); it->Next()) {
|
|
240
231
|
res = it->value().ToString();
|
|
241
232
|
if (first) {
|
|
242
233
|
ASSERT_EQ(res, "a1,a2,a3,a4");
|
|
@@ -245,7 +236,7 @@ TEST_P(StringAppendOperatorTest, IteratorTest) {
|
|
|
245
236
|
ASSERT_EQ(res, "g1");
|
|
246
237
|
}
|
|
247
238
|
}
|
|
248
|
-
for(it->Seek(k3); it->Valid(); it->Next()) {
|
|
239
|
+
for (it->Seek(k3); it->Valid(); it->Next()) {
|
|
249
240
|
res = it->value().ToString();
|
|
250
241
|
if (first) {
|
|
251
242
|
// should not be hit
|
|
@@ -353,7 +344,7 @@ TEST_P(StringAppendOperatorTest, VariousKeys) {
|
|
|
353
344
|
sb = slists.Get("b", &b);
|
|
354
345
|
sc = slists.Get("c", &c);
|
|
355
346
|
|
|
356
|
-
ASSERT_TRUE(sa && sb && sc);
|
|
347
|
+
ASSERT_TRUE(sa && sb && sc); // All three keys should have been found
|
|
357
348
|
|
|
358
349
|
ASSERT_EQ(a, "x\nt\nr");
|
|
359
350
|
ASSERT_EQ(b, "y\n2");
|
|
@@ -367,22 +358,23 @@ TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
|
|
|
367
358
|
|
|
368
359
|
// Generate a list of random keys and values
|
|
369
360
|
const int kWordCount = 15;
|
|
370
|
-
std::string words[] = {"sdasd",
|
|
371
|
-
"dsuha",
|
|
372
|
-
"
|
|
361
|
+
std::string words[] = {"sdasd", "triejf", "fnjsdfn", "dfjisdfsf",
|
|
362
|
+
"342839", "dsuha", "mabuais", "sadajsid",
|
|
363
|
+
"jf9834hf", "2d9j89", "dj9823jd", "a",
|
|
364
|
+
"dk02ed2dh", "$(jd4h984$(*", "mabz"};
|
|
373
365
|
const int kKeyCount = 6;
|
|
374
|
-
std::string keys[] = {"dhaiusdhu", "denidw", "daisda",
|
|
375
|
-
"shzassdianmd"};
|
|
366
|
+
std::string keys[] = {"dhaiusdhu", "denidw", "daisda",
|
|
367
|
+
"keykey", "muki", "shzassdianmd"};
|
|
376
368
|
|
|
377
369
|
// Will store a local copy of all data in order to verify correctness
|
|
378
370
|
std::map<std::string, std::string> parallel_copy;
|
|
379
371
|
|
|
380
372
|
// Generate a bunch of random queries (Append and Get)!
|
|
381
|
-
enum query_t
|
|
382
|
-
Random randomGen(1337);
|
|
373
|
+
enum query_t { APPEND_OP, GET_OP, NUM_OPS };
|
|
374
|
+
Random randomGen(1337); // deterministic seed; always get same results!
|
|
383
375
|
|
|
384
376
|
const int kNumQueries = 30;
|
|
385
|
-
for (int q=0; q<kNumQueries; ++q) {
|
|
377
|
+
for (int q = 0; q < kNumQueries; ++q) {
|
|
386
378
|
// Generate a random query (Append or Get) and random parameters
|
|
387
379
|
query_t query = (query_t)randomGen.Uniform((int)NUM_OPS);
|
|
388
380
|
std::string key = keys[randomGen.Uniform((int)kKeyCount)];
|
|
@@ -390,9 +382,8 @@ TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
|
|
|
390
382
|
|
|
391
383
|
// Apply the query and any checks.
|
|
392
384
|
if (query == APPEND_OP) {
|
|
393
|
-
|
|
394
385
|
// Apply the rocksdb test-harness Append defined above
|
|
395
|
-
slists.Append(key, word); //apply the rocksdb append
|
|
386
|
+
slists.Append(key, word); // apply the rocksdb append
|
|
396
387
|
|
|
397
388
|
// Apply the similar "Append" to the parallel copy
|
|
398
389
|
if (parallel_copy[key].size() > 0) {
|
|
@@ -407,7 +398,6 @@ TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
|
|
|
407
398
|
slists.Get(key, &res);
|
|
408
399
|
ASSERT_EQ(res, parallel_copy[key]);
|
|
409
400
|
}
|
|
410
|
-
|
|
411
401
|
}
|
|
412
402
|
}
|
|
413
403
|
|
|
@@ -417,32 +407,32 @@ TEST_P(StringAppendOperatorTest, BIGRandomMixGetAppend) {
|
|
|
417
407
|
|
|
418
408
|
// Generate a list of random keys and values
|
|
419
409
|
const int kWordCount = 15;
|
|
420
|
-
std::string words[] = {"sdasd",
|
|
421
|
-
"dsuha",
|
|
422
|
-
"
|
|
410
|
+
std::string words[] = {"sdasd", "triejf", "fnjsdfn", "dfjisdfsf",
|
|
411
|
+
"342839", "dsuha", "mabuais", "sadajsid",
|
|
412
|
+
"jf9834hf", "2d9j89", "dj9823jd", "a",
|
|
413
|
+
"dk02ed2dh", "$(jd4h984$(*", "mabz"};
|
|
423
414
|
const int kKeyCount = 6;
|
|
424
|
-
std::string keys[] = {"dhaiusdhu", "denidw", "daisda",
|
|
425
|
-
"shzassdianmd"};
|
|
415
|
+
std::string keys[] = {"dhaiusdhu", "denidw", "daisda",
|
|
416
|
+
"keykey", "muki", "shzassdianmd"};
|
|
426
417
|
|
|
427
418
|
// Will store a local copy of all data in order to verify correctness
|
|
428
419
|
std::map<std::string, std::string> parallel_copy;
|
|
429
420
|
|
|
430
421
|
// Generate a bunch of random queries (Append and Get)!
|
|
431
|
-
enum query_t
|
|
432
|
-
Random randomGen(9138204);
|
|
422
|
+
enum query_t { APPEND_OP, GET_OP, NUM_OPS };
|
|
423
|
+
Random randomGen(9138204); // deterministic seed
|
|
433
424
|
|
|
434
425
|
const int kNumQueries = 1000;
|
|
435
|
-
for (int q=0; q<kNumQueries; ++q) {
|
|
426
|
+
for (int q = 0; q < kNumQueries; ++q) {
|
|
436
427
|
// Generate a random query (Append or Get) and random parameters
|
|
437
428
|
query_t query = (query_t)randomGen.Uniform((int)NUM_OPS);
|
|
438
429
|
std::string key = keys[randomGen.Uniform((int)kKeyCount)];
|
|
439
430
|
std::string word = words[randomGen.Uniform((int)kWordCount)];
|
|
440
431
|
|
|
441
|
-
//Apply the query and any checks.
|
|
432
|
+
// Apply the query and any checks.
|
|
442
433
|
if (query == APPEND_OP) {
|
|
443
|
-
|
|
444
434
|
// Apply the rocksdb test-harness Append defined above
|
|
445
|
-
slists.Append(key, word); //apply the rocksdb append
|
|
435
|
+
slists.Append(key, word); // apply the rocksdb append
|
|
446
436
|
|
|
447
437
|
// Apply the similar "Append" to the parallel copy
|
|
448
438
|
if (parallel_copy[key].size() > 0) {
|
|
@@ -457,7 +447,6 @@ TEST_P(StringAppendOperatorTest, BIGRandomMixGetAppend) {
|
|
|
457
447
|
slists.Get(key, &res);
|
|
458
448
|
ASSERT_EQ(res, parallel_copy[key]);
|
|
459
449
|
}
|
|
460
|
-
|
|
461
450
|
}
|
|
462
451
|
}
|
|
463
452
|
|
|
@@ -578,7 +567,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
|
|
|
578
567
|
ASSERT_TRUE(slists.Get("a", &a));
|
|
579
568
|
ASSERT_EQ(a, "x\nt\nr");
|
|
580
569
|
|
|
581
|
-
//Append, Compact, Get
|
|
570
|
+
// Append, Compact, Get
|
|
582
571
|
slists.Append("c", "bbnagnagsx");
|
|
583
572
|
slists.Append("a", "sa");
|
|
584
573
|
slists.Append("b", "df");
|
|
@@ -629,8 +618,8 @@ TEST_P(StringAppendOperatorTest, SimpleTestNullDelimiter) {
|
|
|
629
618
|
ASSERT_TRUE(slists.Get("k1", &res));
|
|
630
619
|
|
|
631
620
|
// Construct the desired string. Default constructor doesn't like '\0' chars.
|
|
632
|
-
std::string checker("v1,v2,v3");
|
|
633
|
-
checker[2] = '\0';
|
|
621
|
+
std::string checker("v1,v2,v3"); // Verify that the string is right size.
|
|
622
|
+
checker[2] = '\0'; // Use null delimiter instead of comma.
|
|
634
623
|
checker[5] = '\0';
|
|
635
624
|
ASSERT_EQ(checker.size(), 8); // Verify it is still the correct size
|
|
636
625
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
#include "util/coding.h"
|
|
13
13
|
#include "utilities/merge_operators.h"
|
|
14
14
|
|
|
15
|
-
namespace {
|
|
15
|
+
namespace { // anonymous namespace
|
|
16
16
|
|
|
17
17
|
using ROCKSDB_NAMESPACE::AssociativeMergeOperator;
|
|
18
18
|
using ROCKSDB_NAMESPACE::InfoLogLevel;
|
|
@@ -27,7 +27,7 @@ class UInt64AddOperator : public AssociativeMergeOperator {
|
|
|
27
27
|
const Slice& value, std::string* new_value,
|
|
28
28
|
Logger* logger) const override {
|
|
29
29
|
uint64_t orig_value = 0;
|
|
30
|
-
if (existing_value){
|
|
30
|
+
if (existing_value) {
|
|
31
31
|
orig_value = DecodeInteger(*existing_value, logger);
|
|
32
32
|
}
|
|
33
33
|
uint64_t operand = DecodeInteger(value, logger);
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
// (found in the LICENSE.Apache file in the root directory).
|
|
5
5
|
//
|
|
6
6
|
#pragma once
|
|
7
|
-
#include "rocksdb/merge_operator.h"
|
|
8
|
-
|
|
9
7
|
#include <stdio.h>
|
|
10
8
|
|
|
11
9
|
#include <memory>
|
|
12
10
|
#include <string>
|
|
13
11
|
|
|
12
|
+
#include "rocksdb/merge_operator.h"
|
|
13
|
+
|
|
14
14
|
namespace ROCKSDB_NAMESPACE {
|
|
15
15
|
|
|
16
16
|
class MergeOperators {
|
|
@@ -19,7 +19,8 @@ class MergeOperators {
|
|
|
19
19
|
static std::shared_ptr<MergeOperator> CreateDeprecatedPutOperator();
|
|
20
20
|
static std::shared_ptr<MergeOperator> CreateUInt64AddOperator();
|
|
21
21
|
static std::shared_ptr<MergeOperator> CreateStringAppendOperator();
|
|
22
|
-
static std::shared_ptr<MergeOperator> CreateStringAppendOperator(
|
|
22
|
+
static std::shared_ptr<MergeOperator> CreateStringAppendOperator(
|
|
23
|
+
char delim_char);
|
|
23
24
|
static std::shared_ptr<MergeOperator> CreateStringAppendOperator(
|
|
24
25
|
const std::string& delim);
|
|
25
26
|
static std::shared_ptr<MergeOperator> CreateStringAppendTESTOperator();
|
|
@@ -57,8 +57,8 @@ Status LoadOptionsFromFile(const ConfigOptions& config_options,
|
|
|
57
57
|
return Status::OK();
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
Status GetLatestOptionsFileName(const std::string& dbpath,
|
|
61
|
-
|
|
60
|
+
Status GetLatestOptionsFileName(const std::string& dbpath, Env* env,
|
|
61
|
+
std::string* options_file_name) {
|
|
62
62
|
Status s;
|
|
63
63
|
std::string latest_file_name;
|
|
64
64
|
uint64_t latest_time_stamp = 0;
|
|
@@ -132,7 +132,7 @@ Status BlockCacheTier::Close() {
|
|
|
132
132
|
return Status::OK();
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
template<class T>
|
|
135
|
+
template <class T>
|
|
136
136
|
void Add(std::map<std::string, double>* stats, const std::string& key,
|
|
137
137
|
const T& t) {
|
|
138
138
|
stats->insert({key, static_cast<double>(t)});
|
|
@@ -148,8 +148,7 @@ PersistentCache::StatsType BlockCacheTier::Stats() {
|
|
|
148
148
|
stats_.bytes_read_.Average());
|
|
149
149
|
Add(&stats, "persistentcache.blockcachetier.insert_dropped",
|
|
150
150
|
stats_.insert_dropped_);
|
|
151
|
-
Add(&stats, "persistentcache.blockcachetier.cache_hits",
|
|
152
|
-
stats_.cache_hits_);
|
|
151
|
+
Add(&stats, "persistentcache.blockcachetier.cache_hits", stats_.cache_hits_);
|
|
153
152
|
Add(&stats, "persistentcache.blockcachetier.cache_misses",
|
|
154
153
|
stats_.cache_misses_);
|
|
155
154
|
Add(&stats, "persistentcache.blockcachetier.cache_errors",
|
|
@@ -326,10 +325,9 @@ Status BlockCacheTier::NewCacheFile() {
|
|
|
326
325
|
TEST_SYNC_POINT_CALLBACK("BlockCacheTier::NewCacheFile:DeleteDir",
|
|
327
326
|
(void*)(GetCachePath().c_str()));
|
|
328
327
|
|
|
329
|
-
std::unique_ptr<WriteableCacheFile> f(
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
opt_.cache_file_size, opt_.log));
|
|
328
|
+
std::unique_ptr<WriteableCacheFile> f(new WriteableCacheFile(
|
|
329
|
+
opt_.env, &buffer_allocator_, &writer_, GetCachePath(), writer_cache_id_,
|
|
330
|
+
opt_.cache_file_size, opt_.log));
|
|
333
331
|
|
|
334
332
|
bool status = f->Create(opt_.enable_direct_writes, opt_.enable_direct_reads);
|
|
335
333
|
if (!status) {
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
#ifndef ROCKSDB_LITE
|
|
8
8
|
|
|
9
|
-
#ifndef
|
|
9
|
+
#ifndef OS_WIN
|
|
10
10
|
#include <unistd.h>
|
|
11
|
-
#endif
|
|
11
|
+
#endif // ! OS_WIN
|
|
12
12
|
|
|
13
13
|
#include <atomic>
|
|
14
14
|
#include <list>
|
|
@@ -45,7 +45,8 @@ class BlockCacheTier : public PersistentCacheTier {
|
|
|
45
45
|
: opt_(opt),
|
|
46
46
|
insert_ops_(static_cast<size_t>(opt_.max_write_pipeline_backlog_size)),
|
|
47
47
|
buffer_allocator_(opt.write_buffer_size, opt.write_buffer_count()),
|
|
48
|
-
writer_(this, opt_.writer_qdepth,
|
|
48
|
+
writer_(this, opt_.writer_qdepth,
|
|
49
|
+
static_cast<size_t>(opt_.writer_dispatch_size)) {
|
|
49
50
|
Info(opt_.log, "Initializing allocator. size=%d B count=%" ROCKSDB_PRIszt,
|
|
50
51
|
opt_.write_buffer_size, opt_.write_buffer_count());
|
|
51
52
|
}
|
|
@@ -147,7 +148,7 @@ class BlockCacheTier : public PersistentCacheTier {
|
|
|
147
148
|
ThreadedWriter writer_; // Writer threads
|
|
148
149
|
BlockCacheTierMetadata metadata_; // Cache meta data manager
|
|
149
150
|
std::atomic<uint64_t> size_{0}; // Size of the cache
|
|
150
|
-
Statistics stats_;
|
|
151
|
+
Statistics stats_; // Statistics
|
|
151
152
|
};
|
|
152
153
|
|
|
153
154
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -68,8 +68,7 @@ Status BlockCacheFile::Delete(uint64_t* size) {
|
|
|
68
68
|
// <-- 4 --><-- 4 --><-- 4 --><-- 4 --><-- key size --><-- v-size -->
|
|
69
69
|
//
|
|
70
70
|
struct CacheRecordHeader {
|
|
71
|
-
CacheRecordHeader()
|
|
72
|
-
: magic_(0), crc_(0), key_size_(0), val_size_(0) {}
|
|
71
|
+
CacheRecordHeader() : magic_(0), crc_(0), key_size_(0), val_size_(0) {}
|
|
73
72
|
CacheRecordHeader(const uint32_t magic, const uint32_t key_size,
|
|
74
73
|
const uint32_t val_size)
|
|
75
74
|
: magic_(magic), crc_(0), key_size_(key_size), val_size_(val_size) {}
|
|
@@ -12,19 +12,16 @@
|
|
|
12
12
|
#include <vector>
|
|
13
13
|
|
|
14
14
|
#include "file/random_access_file_reader.h"
|
|
15
|
-
|
|
15
|
+
#include "port/port.h"
|
|
16
16
|
#include "rocksdb/comparator.h"
|
|
17
17
|
#include "rocksdb/env.h"
|
|
18
|
-
|
|
18
|
+
#include "util/crc32c.h"
|
|
19
|
+
#include "util/mutexlock.h"
|
|
19
20
|
#include "utilities/persistent_cache/block_cache_tier_file_buffer.h"
|
|
20
21
|
#include "utilities/persistent_cache/lrulist.h"
|
|
21
22
|
#include "utilities/persistent_cache/persistent_cache_tier.h"
|
|
22
23
|
#include "utilities/persistent_cache/persistent_cache_util.h"
|
|
23
24
|
|
|
24
|
-
#include "port/port.h"
|
|
25
|
-
#include "util/crc32c.h"
|
|
26
|
-
#include "util/mutexlock.h"
|
|
27
|
-
|
|
28
25
|
// The io code path of persistent cache uses pipelined architecture
|
|
29
26
|
//
|
|
30
27
|
// client -> In Queue <-- BlockCacheTier --> Out Queue <-- Writer <--> Kernel
|
|
@@ -32,8 +32,8 @@ BlockCacheFile* BlockCacheTierMetadata::Evict() {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
void BlockCacheTierMetadata::Clear() {
|
|
35
|
-
cache_file_index_.Clear([](BlockCacheFile* arg){ delete arg; });
|
|
36
|
-
block_index_.Clear([](BlockInfo* arg){ delete arg; });
|
|
35
|
+
cache_file_index_.Clear([](BlockCacheFile* arg) { delete arg; });
|
|
36
|
+
block_index_.Clear([](BlockInfo* arg) { delete arg; });
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
BlockInfo* BlockCacheTierMetadata::Insert(const Slice& key, const LBA& lba) {
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
4
|
// (found in the LICENSE.Apache file in the root directory).
|
|
5
5
|
//
|
|
6
|
+
#include "utilities/persistent_cache/hash_table.h"
|
|
7
|
+
|
|
6
8
|
#include <stdlib.h>
|
|
9
|
+
|
|
7
10
|
#include <iostream>
|
|
8
11
|
#include <set>
|
|
9
12
|
#include <string>
|
|
@@ -12,7 +15,6 @@
|
|
|
12
15
|
#include "memory/arena.h"
|
|
13
16
|
#include "test_util/testharness.h"
|
|
14
17
|
#include "util/random.h"
|
|
15
|
-
#include "utilities/persistent_cache/hash_table.h"
|
|
16
18
|
#include "utilities/persistent_cache/hash_table_evictable.h"
|
|
17
19
|
|
|
18
20
|
#ifndef ROCKSDB_LITE
|
|
@@ -234,7 +234,7 @@ class CacheTierBenchmark {
|
|
|
234
234
|
fprintf(stderr, "%s\n", status.ToString().c_str());
|
|
235
235
|
}
|
|
236
236
|
assert(status.ok());
|
|
237
|
-
assert(size == (size_t)
|
|
237
|
+
assert(size == (size_t)FLAGS_iosize);
|
|
238
238
|
|
|
239
239
|
// adjust stats
|
|
240
240
|
const size_t elapsed_micro = timer.ElapsedNanos() / 1000;
|
|
@@ -84,7 +84,8 @@ std::unique_ptr<PersistentCacheTier> NewBlockCache(
|
|
|
84
84
|
Env* env, const std::string& path,
|
|
85
85
|
const uint64_t max_size = std::numeric_limits<uint64_t>::max(),
|
|
86
86
|
const bool enable_direct_writes = false) {
|
|
87
|
-
const uint32_t max_file_size =
|
|
87
|
+
const uint32_t max_file_size =
|
|
88
|
+
static_cast<uint32_t>(12 * 1024 * 1024 * kStressFactor);
|
|
88
89
|
auto log = std::make_shared<ConsoleLogger>();
|
|
89
90
|
PersistentCacheConfig opt(env, path, max_size, log);
|
|
90
91
|
opt.cache_file_size = max_file_size;
|
|
@@ -101,7 +102,8 @@ std::unique_ptr<PersistentTieredCache> NewTieredCache(
|
|
|
101
102
|
Env* env, const std::string& path, const uint64_t max_volatile_cache_size,
|
|
102
103
|
const uint64_t max_block_cache_size =
|
|
103
104
|
std::numeric_limits<uint64_t>::max()) {
|
|
104
|
-
const uint32_t max_file_size =
|
|
105
|
+
const uint32_t max_file_size =
|
|
106
|
+
static_cast<uint32_t>(12 * 1024 * 1024 * kStressFactor);
|
|
105
107
|
auto log = std::make_shared<ConsoleLogger>();
|
|
106
108
|
auto opt = PersistentCacheConfig(env, path, max_block_cache_size, log);
|
|
107
109
|
opt.cache_file_size = max_file_size;
|
|
@@ -126,13 +128,13 @@ PersistentCacheTierTest::PersistentCacheTierTest()
|
|
|
126
128
|
TEST_F(PersistentCacheTierTest, DISABLED_BlockCacheInsertWithFileCreateError) {
|
|
127
129
|
cache_ = NewBlockCache(Env::Default(), path_,
|
|
128
130
|
/*size=*/std::numeric_limits<uint64_t>::max(),
|
|
129
|
-
/*direct_writes=*/
|
|
131
|
+
/*direct_writes=*/false);
|
|
130
132
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
|
|
131
133
|
"BlockCacheTier::NewCacheFile:DeleteDir", OnDeleteDir);
|
|
132
134
|
|
|
133
|
-
RunNegativeInsertTest(/*nthreads=*/
|
|
135
|
+
RunNegativeInsertTest(/*nthreads=*/1,
|
|
134
136
|
/*max_keys*/
|
|
135
|
-
|
|
137
|
+
static_cast<size_t>(10 * 1024 * kStressFactor));
|
|
136
138
|
|
|
137
139
|
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearAllCallBacks();
|
|
138
140
|
}
|
|
@@ -171,7 +173,8 @@ TEST_F(PersistentCacheTierTest, DISABLED_VolatileCacheInsertWithEviction) {
|
|
|
171
173
|
for (auto nthreads : {1, 5}) {
|
|
172
174
|
for (auto max_keys : {1 * 1024 * 1024 * kStressFactor}) {
|
|
173
175
|
cache_ = std::make_shared<VolatileCacheTier>(
|
|
174
|
-
/*compressed=*/true,
|
|
176
|
+
/*compressed=*/true,
|
|
177
|
+
/*size=*/static_cast<size_t>(1 * 1024 * 1024 * kStressFactor));
|
|
175
178
|
RunInsertTestWithEviction(nthreads, static_cast<size_t>(max_keys));
|
|
176
179
|
}
|
|
177
180
|
}
|
|
@@ -197,8 +200,9 @@ TEST_F(PersistentCacheTierTest, DISABLED_BlockCacheInsert) {
|
|
|
197
200
|
TEST_F(PersistentCacheTierTest, DISABLED_BlockCacheInsertWithEviction) {
|
|
198
201
|
for (auto nthreads : {1, 5}) {
|
|
199
202
|
for (auto max_keys : {1 * 1024 * 1024 * kStressFactor}) {
|
|
200
|
-
cache_ = NewBlockCache(
|
|
201
|
-
|
|
203
|
+
cache_ = NewBlockCache(
|
|
204
|
+
Env::Default(), path_,
|
|
205
|
+
/*max_size=*/static_cast<size_t>(200 * 1024 * 1024 * kStressFactor));
|
|
202
206
|
RunInsertTestWithEviction(nthreads, static_cast<size_t>(max_keys));
|
|
203
207
|
}
|
|
204
208
|
}
|
|
@@ -210,8 +214,9 @@ TEST_F(PersistentCacheTierTest, DISABLED_TieredCacheInsert) {
|
|
|
210
214
|
for (auto nthreads : {1, 5}) {
|
|
211
215
|
for (auto max_keys :
|
|
212
216
|
{10 * 1024 * kStressFactor, 1 * 1024 * 1024 * kStressFactor}) {
|
|
213
|
-
cache_ = NewTieredCache(
|
|
214
|
-
|
|
217
|
+
cache_ = NewTieredCache(
|
|
218
|
+
Env::Default(), path_,
|
|
219
|
+
/*memory_size=*/static_cast<size_t>(1 * 1024 * 1024 * kStressFactor));
|
|
215
220
|
RunInsertTest(nthreads, static_cast<size_t>(max_keys));
|
|
216
221
|
}
|
|
217
222
|
}
|
|
@@ -226,7 +231,8 @@ TEST_F(PersistentCacheTierTest, DISABLED_TieredCacheInsertWithEviction) {
|
|
|
226
231
|
cache_ = NewTieredCache(
|
|
227
232
|
Env::Default(), path_,
|
|
228
233
|
/*memory_size=*/static_cast<size_t>(1 * 1024 * 1024 * kStressFactor),
|
|
229
|
-
/*block_cache_size*/
|
|
234
|
+
/*block_cache_size*/
|
|
235
|
+
static_cast<size_t>(200 * 1024 * 1024 * kStressFactor));
|
|
230
236
|
RunInsertTestWithEviction(nthreads, static_cast<size_t>(max_keys));
|
|
231
237
|
}
|
|
232
238
|
}
|
|
@@ -291,14 +297,13 @@ PersistentCacheDBTest::PersistentCacheDBTest()
|
|
|
291
297
|
void PersistentCacheDBTest::RunTest(
|
|
292
298
|
const std::function<std::shared_ptr<PersistentCacheTier>(bool)>& new_pcache,
|
|
293
299
|
const size_t max_keys = 100 * 1024, const size_t max_usecase = 5) {
|
|
294
|
-
|
|
295
300
|
// number of insertion interations
|
|
296
301
|
int num_iter = static_cast<int>(max_keys * kStressFactor);
|
|
297
302
|
|
|
298
303
|
for (size_t iter = 0; iter < max_usecase; iter++) {
|
|
299
304
|
Options options;
|
|
300
305
|
options.write_buffer_size =
|
|
301
|
-
|
|
306
|
+
static_cast<size_t>(64 * 1024 * kStressFactor); // small write buffer
|
|
302
307
|
options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
|
|
303
308
|
options = CurrentOptions(options);
|
|
304
309
|
|
package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h
CHANGED
|
@@ -41,9 +41,7 @@ class CompactOnDeletionCollector : public TablePropertiesCollector {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
// EXPERIMENTAL Return whether the output file should be further compacted
|
|
44
|
-
virtual bool NeedCompact() const override {
|
|
45
|
-
return need_compaction_;
|
|
46
|
-
}
|
|
44
|
+
virtual bool NeedCompact() const override { return need_compaction_; }
|
|
47
45
|
|
|
48
46
|
static const int kNumBuckets = 128;
|
|
49
47
|
|
|
@@ -80,10 +80,10 @@ TEST(CompactOnDeletionCollector, DeletionRatio) {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
TEST(CompactOnDeletionCollector, SlidingWindow) {
|
|
83
|
-
const int kWindowSizes[] =
|
|
84
|
-
|
|
85
|
-
const int kDeletionTriggers[] =
|
|
86
|
-
|
|
83
|
+
const int kWindowSizes[] = {1000, 10000, 10000, 127, 128, 129,
|
|
84
|
+
255, 256, 257, 2, 10000};
|
|
85
|
+
const int kDeletionTriggers[] = {500, 9500, 4323, 47, 61, 128,
|
|
86
|
+
250, 250, 250, 2, 2};
|
|
87
87
|
TablePropertiesCollectorFactory::Context context;
|
|
88
88
|
context.column_family_id =
|
|
89
89
|
TablePropertiesCollectorFactory::Context::kUnknownColumnFamily;
|
|
@@ -134,13 +134,13 @@ TEST(CompactOnDeletionCollector, SlidingWindow) {
|
|
|
134
134
|
collector->AddUserKey("hello", "rocksdb", kEntryPut, 0, 0));
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
if (collector->NeedCompact() !=
|
|
138
|
-
(deletions >= kNumDeletionTrigger) &&
|
|
137
|
+
if (collector->NeedCompact() != (deletions >= kNumDeletionTrigger) &&
|
|
139
138
|
std::abs(deletions - kNumDeletionTrigger) > kBias) {
|
|
140
|
-
fprintf(stderr,
|
|
139
|
+
fprintf(stderr,
|
|
140
|
+
"[Error] collector->NeedCompact() != (%d >= %d)"
|
|
141
141
|
" with kWindowSize = %d and kNumDeletionTrigger = %d\n",
|
|
142
|
-
deletions, kNumDeletionTrigger,
|
|
143
|
-
|
|
142
|
+
deletions, kNumDeletionTrigger, kWindowSize,
|
|
143
|
+
kNumDeletionTrigger);
|
|
144
144
|
ASSERT_TRUE(false);
|
|
145
145
|
}
|
|
146
146
|
ASSERT_OK(collector->Finish(nullptr));
|
|
@@ -182,11 +182,11 @@ TEST(CompactOnDeletionCollector, SlidingWindow) {
|
|
|
182
182
|
}
|
|
183
183
|
if (collector->NeedCompact() != (deletions >= kNumDeletionTrigger) &&
|
|
184
184
|
std::abs(deletions - kNumDeletionTrigger) > kBias) {
|
|
185
|
-
fprintf(stderr,
|
|
185
|
+
fprintf(stderr,
|
|
186
|
+
"[Error] collector->NeedCompact() %d != (%d >= %d)"
|
|
186
187
|
" with kWindowSize = %d, kNumDeletionTrigger = %d\n",
|
|
187
|
-
collector->NeedCompact(),
|
|
188
|
-
|
|
189
|
-
kNumDeletionTrigger);
|
|
188
|
+
collector->NeedCompact(), deletions, kNumDeletionTrigger,
|
|
189
|
+
kWindowSize, kNumDeletionTrigger);
|
|
190
190
|
ASSERT_TRUE(false);
|
|
191
191
|
}
|
|
192
192
|
ASSERT_OK(collector->Finish(nullptr));
|
|
@@ -218,7 +218,8 @@ TEST(CompactOnDeletionCollector, SlidingWindow) {
|
|
|
218
218
|
}
|
|
219
219
|
if (collector->NeedCompact() &&
|
|
220
220
|
std::abs(kDeletionsPerSection - kNumDeletionTrigger) > kBias) {
|
|
221
|
-
fprintf(stderr,
|
|
221
|
+
fprintf(stderr,
|
|
222
|
+
"[Error] collector->NeedCompact() != false"
|
|
222
223
|
" with kWindowSize = %d and kNumDeletionTrigger = %d\n",
|
|
223
224
|
kWindowSize, kNumDeletionTrigger);
|
|
224
225
|
ASSERT_TRUE(false);
|