@nxtedition/rocksdb 7.1.30 → 7.1.32
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/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#pragma once
|
|
11
11
|
#include <stddef.h>
|
|
12
12
|
#include <stdint.h>
|
|
13
|
+
|
|
13
14
|
#include <string>
|
|
14
15
|
|
|
15
16
|
#include "rocksdb/rocksdb_namespace.h"
|
|
@@ -31,9 +32,7 @@ extern uint32_t Extend(uint32_t init_crc, const char* data, size_t n);
|
|
|
31
32
|
extern uint32_t Crc32cCombine(uint32_t crc1, uint32_t crc2, size_t crc2len);
|
|
32
33
|
|
|
33
34
|
// Return the crc32c of data[0,n-1]
|
|
34
|
-
inline uint32_t Value(const char* data, size_t n) {
|
|
35
|
-
return Extend(0, data, n);
|
|
36
|
-
}
|
|
35
|
+
inline uint32_t Value(const char* data, size_t n) { return Extend(0, data, n); }
|
|
37
36
|
|
|
38
37
|
static const uint32_t kMaskDelta = 0xa282ead8ul;
|
|
39
38
|
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
#define crc32c_u16(crc, v) __crc32ch(crc, v)
|
|
19
19
|
#define crc32c_u32(crc, v) __crc32cw(crc, v)
|
|
20
20
|
#define crc32c_u64(crc, v) __crc32cd(crc, v)
|
|
21
|
+
// clang-format off
|
|
21
22
|
#define PREF4X64L1(buffer, PREF_OFFSET, ITR) \
|
|
22
23
|
__asm__("PRFM PLDL1KEEP, [%x[v],%[c]]" ::[v] "r"(buffer), \
|
|
23
24
|
[c] "I"((PREF_OFFSET) + ((ITR) + 0) * 64)); \
|
|
@@ -27,6 +28,7 @@
|
|
|
27
28
|
[c] "I"((PREF_OFFSET) + ((ITR) + 2) * 64)); \
|
|
28
29
|
__asm__("PRFM PLDL1KEEP, [%x[v],%[c]]" ::[v] "r"(buffer), \
|
|
29
30
|
[c] "I"((PREF_OFFSET) + ((ITR) + 3) * 64));
|
|
31
|
+
// clang-format on
|
|
30
32
|
|
|
31
33
|
#define PREF1KL1(buffer, PREF_OFFSET) \
|
|
32
34
|
PREF4X64L1(buffer, (PREF_OFFSET), 0) \
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
namespace ROCKSDB_NAMESPACE {
|
|
16
16
|
namespace crc32c {
|
|
17
17
|
|
|
18
|
-
class CRC {
|
|
19
|
-
|
|
18
|
+
class CRC {};
|
|
20
19
|
|
|
21
20
|
// Tests for 3-way crc32c algorithm. We need these tests because it uses
|
|
22
21
|
// different lookup tables than the original Fast_CRC32
|
|
@@ -31,42 +30,41 @@ struct ExpectedResult {
|
|
|
31
30
|
|
|
32
31
|
ExpectedResult expectedResults[] = {
|
|
33
32
|
// Zero-byte input
|
|
34
|
-
{
|
|
33
|
+
{0, 0, ~0U},
|
|
35
34
|
// Small aligned inputs to test special cases in SIMD implementations
|
|
36
|
-
{
|
|
37
|
-
{
|
|
38
|
-
{
|
|
39
|
-
{
|
|
40
|
-
{
|
|
41
|
-
{
|
|
42
|
-
{
|
|
35
|
+
{8, 1, 1543413366},
|
|
36
|
+
{8, 2, 523493126},
|
|
37
|
+
{8, 3, 1560427360},
|
|
38
|
+
{8, 4, 3422504776},
|
|
39
|
+
{8, 5, 447841138},
|
|
40
|
+
{8, 6, 3910050499},
|
|
41
|
+
{8, 7, 3346241981},
|
|
43
42
|
// Small unaligned inputs
|
|
44
|
-
{
|
|
45
|
-
{
|
|
46
|
-
{
|
|
47
|
-
{
|
|
48
|
-
{
|
|
49
|
-
{
|
|
50
|
-
{
|
|
43
|
+
{9, 1, 3855826643},
|
|
44
|
+
{10, 2, 560880875},
|
|
45
|
+
{11, 3, 1479707779},
|
|
46
|
+
{12, 4, 2237687071},
|
|
47
|
+
{13, 5, 4063855784},
|
|
48
|
+
{14, 6, 2553454047},
|
|
49
|
+
{15, 7, 1349220140},
|
|
51
50
|
// Larger inputs to test leftover chunks at the end of aligned blocks
|
|
52
|
-
{
|
|
53
|
-
{
|
|
54
|
-
{
|
|
55
|
-
{
|
|
56
|
-
{
|
|
57
|
-
{
|
|
58
|
-
{
|
|
59
|
-
{
|
|
60
|
-
{
|
|
61
|
-
{
|
|
51
|
+
{8, 8, 627613930},
|
|
52
|
+
{8, 9, 2105929409},
|
|
53
|
+
{8, 10, 2447068514},
|
|
54
|
+
{8, 11, 863807079},
|
|
55
|
+
{8, 12, 292050879},
|
|
56
|
+
{8, 13, 1411837737},
|
|
57
|
+
{8, 14, 2614515001},
|
|
58
|
+
{8, 15, 3579076296},
|
|
59
|
+
{8, 16, 2897079161},
|
|
60
|
+
{8, 17, 675168386},
|
|
62
61
|
// // Much larger inputs
|
|
63
|
-
{
|
|
64
|
-
{
|
|
62
|
+
{0, BUFFER_SIZE, 2096790750},
|
|
63
|
+
{1, BUFFER_SIZE / 2, 3854797577},
|
|
65
64
|
|
|
66
65
|
};
|
|
67
66
|
|
|
68
67
|
TEST(CRC, StandardResults) {
|
|
69
|
-
|
|
70
68
|
// Original Fast_CRC32 tests.
|
|
71
69
|
// From rfc3720 section B.4.
|
|
72
70
|
char buf[32];
|
|
@@ -88,18 +86,10 @@ TEST(CRC, StandardResults) {
|
|
|
88
86
|
ASSERT_EQ(0x113fdb5cU, Value(buf, sizeof(buf)));
|
|
89
87
|
|
|
90
88
|
unsigned char data[48] = {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
0x14, 0x00, 0x00, 0x00,
|
|
96
|
-
0x00, 0x00, 0x04, 0x00,
|
|
97
|
-
0x00, 0x00, 0x00, 0x14,
|
|
98
|
-
0x00, 0x00, 0x00, 0x18,
|
|
99
|
-
0x28, 0x00, 0x00, 0x00,
|
|
100
|
-
0x00, 0x00, 0x00, 0x00,
|
|
101
|
-
0x02, 0x00, 0x00, 0x00,
|
|
102
|
-
0x00, 0x00, 0x00, 0x00,
|
|
89
|
+
0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
90
|
+
0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
|
|
91
|
+
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x28, 0x00, 0x00, 0x00,
|
|
92
|
+
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
103
93
|
};
|
|
104
94
|
ASSERT_EQ(0xd9963a56, Value(reinterpret_cast<char*>(data), sizeof(data)));
|
|
105
95
|
|
|
@@ -114,21 +104,17 @@ TEST(CRC, StandardResults) {
|
|
|
114
104
|
for (auto expected : expectedResults) {
|
|
115
105
|
size_t partialLength = expected.length / 2;
|
|
116
106
|
uint32_t partialChecksum = Value(buffer + expected.offset, partialLength);
|
|
117
|
-
uint32_t result =
|
|
118
|
-
buffer + expected.offset + partialLength,
|
|
119
|
-
|
|
107
|
+
uint32_t result =
|
|
108
|
+
Extend(partialChecksum, buffer + expected.offset + partialLength,
|
|
109
|
+
expected.length - partialLength);
|
|
120
110
|
EXPECT_EQ(~expected.crc32c, result);
|
|
121
111
|
}
|
|
122
|
-
|
|
123
112
|
}
|
|
124
113
|
|
|
125
|
-
TEST(CRC, Values) {
|
|
126
|
-
ASSERT_NE(Value("a", 1), Value("foo", 3));
|
|
127
|
-
}
|
|
114
|
+
TEST(CRC, Values) { ASSERT_NE(Value("a", 1), Value("foo", 3)); }
|
|
128
115
|
|
|
129
116
|
TEST(CRC, Extend) {
|
|
130
|
-
ASSERT_EQ(Value("hello world", 11),
|
|
131
|
-
Extend(Value("hello ", 6), "world", 5));
|
|
117
|
+
ASSERT_EQ(Value("hello world", 11), Extend(Value("hello ", 6), "world", 5));
|
|
132
118
|
}
|
|
133
119
|
|
|
134
120
|
TEST(CRC, Mask) {
|
|
@@ -189,15 +175,14 @@ TEST(CRC, Crc32cCombineBigSizeTest) {
|
|
|
189
175
|
|
|
190
176
|
// copied from folly
|
|
191
177
|
const uint64_t FNV_64_HASH_START = 14695981039346656037ULL;
|
|
192
|
-
inline uint64_t fnv64_buf(const void* buf,
|
|
193
|
-
size_t n,
|
|
178
|
+
inline uint64_t fnv64_buf(const void* buf, size_t n,
|
|
194
179
|
uint64_t hash = FNV_64_HASH_START) {
|
|
195
180
|
// forcing signed char, since other platforms can use unsigned
|
|
196
181
|
const signed char* char_buf = reinterpret_cast<const signed char*>(buf);
|
|
197
182
|
|
|
198
183
|
for (size_t i = 0; i < n; ++i) {
|
|
199
184
|
hash += (hash << 1) + (hash << 4) + (hash << 5) + (hash << 7) +
|
|
200
|
-
|
|
185
|
+
(hash << 8) + (hash << 40);
|
|
201
186
|
hash ^= char_buf[i];
|
|
202
187
|
}
|
|
203
188
|
return hash;
|
|
@@ -37,7 +37,8 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
37
37
|
// but sometimes, this might lead to nested blocks of "if (s.ok()) {...}".
|
|
38
38
|
//
|
|
39
39
|
// With the help of Defer, you can centralize the cleanup logic inside the
|
|
40
|
-
// lambda passed to Defer, and you can return immediately on failure when
|
|
40
|
+
// lambda passed to Defer, and you can return immediately on failure when
|
|
41
|
+
// necessary.
|
|
41
42
|
class Defer final {
|
|
42
43
|
public:
|
|
43
44
|
explicit Defer(std::function<void()>&& fn) : fn_(std::move(fn)) {}
|
|
@@ -3,10 +3,11 @@
|
|
|
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 "util/defer.h"
|
|
7
|
+
|
|
6
8
|
#include "port/port.h"
|
|
7
9
|
#include "port/stack_trace.h"
|
|
8
10
|
#include "test_util/testharness.h"
|
|
9
|
-
#include "util/defer.h"
|
|
10
11
|
|
|
11
12
|
namespace ROCKSDB_NAMESPACE {
|
|
12
13
|
|
|
@@ -54,7 +54,8 @@ class DuplicateDetector {
|
|
|
54
54
|
db_->immutable_db_options().info_log,
|
|
55
55
|
"Recovering an entry from the dropped column family %" PRIu32
|
|
56
56
|
". WAL must must have been emptied before dropping the column "
|
|
57
|
-
"family",
|
|
57
|
+
"family",
|
|
58
|
+
cf);
|
|
58
59
|
#ifndef ROCKSDB_LITE
|
|
59
60
|
throw std::runtime_error(
|
|
60
61
|
"Recovering an entry from a dropped column family. "
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
#pragma once
|
|
7
7
|
|
|
8
8
|
#include <array>
|
|
9
|
+
#include <atomic>
|
|
10
|
+
#include <memory>
|
|
9
11
|
#include <string>
|
|
12
|
+
|
|
10
13
|
#include "port/port.h"
|
|
11
14
|
#include "rocksdb/slice.h"
|
|
12
15
|
#include "table/multiget_context.h"
|
|
13
16
|
#include "util/hash.h"
|
|
14
17
|
|
|
15
|
-
#include <atomic>
|
|
16
|
-
#include <memory>
|
|
17
|
-
|
|
18
18
|
namespace ROCKSDB_NAMESPACE {
|
|
19
19
|
|
|
20
20
|
class Slice;
|
|
@@ -314,7 +314,7 @@ TEST_F(DynamicBloomTest, concurrent_with_perf) {
|
|
|
314
314
|
|
|
315
315
|
} // namespace ROCKSDB_NAMESPACE
|
|
316
316
|
|
|
317
|
-
int main(int argc, char**
|
|
317
|
+
int main(int argc, char **argv) {
|
|
318
318
|
ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
|
|
319
319
|
::testing::InitGoogleTest(&argc, argv);
|
|
320
320
|
ParseCommandLineFlags(&argc, &argv, true);
|
|
@@ -3,15 +3,16 @@
|
|
|
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 "rocksdb/status.h"
|
|
7
|
-
#include "rocksdb/env.h"
|
|
8
|
-
|
|
9
6
|
#include <fcntl.h>
|
|
7
|
+
|
|
8
|
+
#include "rocksdb/env.h"
|
|
9
|
+
#include "rocksdb/status.h"
|
|
10
10
|
#ifdef __FreeBSD__
|
|
11
11
|
#include <sys/types.h>
|
|
12
12
|
#include <sys/wait.h>
|
|
13
13
|
#endif
|
|
14
14
|
#include <vector>
|
|
15
|
+
|
|
15
16
|
#include "test_util/testharness.h"
|
|
16
17
|
#include "util/coding.h"
|
|
17
18
|
#include "util/string_util.h"
|
|
@@ -32,23 +33,19 @@ class LockTest : public testing::Test {
|
|
|
32
33
|
|
|
33
34
|
~LockTest() override {}
|
|
34
35
|
|
|
35
|
-
Status LockFile(FileLock** db_lock) {
|
|
36
|
-
return env_->LockFile(file_, db_lock);
|
|
37
|
-
}
|
|
36
|
+
Status LockFile(FileLock** db_lock) { return env_->LockFile(file_, db_lock); }
|
|
38
37
|
|
|
39
|
-
Status UnlockFile(FileLock* db_lock) {
|
|
40
|
-
return env_->UnlockFile(db_lock);
|
|
41
|
-
}
|
|
38
|
+
Status UnlockFile(FileLock* db_lock) { return env_->UnlockFile(db_lock); }
|
|
42
39
|
|
|
43
|
-
bool AssertFileIsLocked(){
|
|
44
|
-
return CheckFileLock(
|
|
40
|
+
bool AssertFileIsLocked() {
|
|
41
|
+
return CheckFileLock(/* lock_expected = */ true);
|
|
45
42
|
}
|
|
46
43
|
|
|
47
|
-
bool AssertFileIsNotLocked(){
|
|
48
|
-
return CheckFileLock(
|
|
44
|
+
bool AssertFileIsNotLocked() {
|
|
45
|
+
return CheckFileLock(/* lock_expected = */ false);
|
|
49
46
|
}
|
|
50
47
|
|
|
51
|
-
bool CheckFileLock(bool lock_expected){
|
|
48
|
+
bool CheckFileLock(bool lock_expected) {
|
|
52
49
|
// We need to fork to check the fcntl lock as we need
|
|
53
50
|
// to open and close the file from a different process
|
|
54
51
|
// to avoid either releasing the lock on close, or not
|
|
@@ -63,13 +60,13 @@ class LockTest : public testing::Test {
|
|
|
63
60
|
#else
|
|
64
61
|
|
|
65
62
|
pid_t pid = fork();
|
|
66
|
-
if (
|
|
63
|
+
if (0 == pid) {
|
|
67
64
|
// child process
|
|
68
65
|
int exit_val = EXIT_FAILURE;
|
|
69
66
|
int fd = open(file_.c_str(), O_RDWR | O_CREAT, 0644);
|
|
70
67
|
if (fd < 0) {
|
|
71
68
|
// could not open file, could not check if it was locked
|
|
72
|
-
fprintf(
|
|
69
|
+
fprintf(stderr, "Open on on file %s failed.\n", file_.c_str());
|
|
73
70
|
exit(exit_val);
|
|
74
71
|
}
|
|
75
72
|
|
|
@@ -78,23 +75,24 @@ class LockTest : public testing::Test {
|
|
|
78
75
|
f.l_type = (F_WRLCK);
|
|
79
76
|
f.l_whence = SEEK_SET;
|
|
80
77
|
f.l_start = 0;
|
|
81
|
-
f.l_len = 0;
|
|
78
|
+
f.l_len = 0; // Lock/unlock entire file
|
|
82
79
|
int value = fcntl(fd, F_SETLK, &f);
|
|
83
|
-
if(
|
|
84
|
-
if(
|
|
80
|
+
if (value == -1) {
|
|
81
|
+
if (lock_expected) {
|
|
85
82
|
exit_val = EXIT_SUCCESS;
|
|
86
83
|
}
|
|
87
84
|
} else {
|
|
88
|
-
if(
|
|
85
|
+
if (!lock_expected) {
|
|
89
86
|
exit_val = EXIT_SUCCESS;
|
|
90
87
|
}
|
|
91
88
|
}
|
|
92
|
-
close(fd);
|
|
89
|
+
close(fd); // lock is released for child process
|
|
93
90
|
exit(exit_val);
|
|
94
91
|
} else if (pid > 0) {
|
|
95
92
|
// parent process
|
|
96
93
|
int status;
|
|
97
|
-
while (-1 == waitpid(pid, &status, 0))
|
|
94
|
+
while (-1 == waitpid(pid, &status, 0))
|
|
95
|
+
;
|
|
98
96
|
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
|
|
99
97
|
// child process exited with non success status
|
|
100
98
|
return false;
|
|
@@ -102,15 +100,13 @@ class LockTest : public testing::Test {
|
|
|
102
100
|
return true;
|
|
103
101
|
}
|
|
104
102
|
} else {
|
|
105
|
-
fprintf(
|
|
103
|
+
fprintf(stderr, "Fork failed\n");
|
|
106
104
|
return false;
|
|
107
105
|
}
|
|
108
106
|
return false;
|
|
109
107
|
|
|
110
108
|
#endif
|
|
111
|
-
|
|
112
109
|
}
|
|
113
|
-
|
|
114
110
|
};
|
|
115
111
|
LockTest* LockTest::current_;
|
|
116
112
|
|
|
@@ -122,7 +118,7 @@ TEST_F(LockTest, LockBySameThread) {
|
|
|
122
118
|
ASSERT_OK(LockFile(&lock1));
|
|
123
119
|
|
|
124
120
|
// check the file is locked
|
|
125
|
-
ASSERT_TRUE(
|
|
121
|
+
ASSERT_TRUE(AssertFileIsLocked());
|
|
126
122
|
|
|
127
123
|
// re-acquire the lock on the same file. This should fail.
|
|
128
124
|
Status s = LockFile(&lock2);
|
|
@@ -134,14 +130,13 @@ TEST_F(LockTest, LockBySameThread) {
|
|
|
134
130
|
#endif
|
|
135
131
|
|
|
136
132
|
// check the file is locked
|
|
137
|
-
ASSERT_TRUE(
|
|
133
|
+
ASSERT_TRUE(AssertFileIsLocked());
|
|
138
134
|
|
|
139
135
|
// release the lock
|
|
140
136
|
ASSERT_OK(UnlockFile(lock1));
|
|
141
137
|
|
|
142
138
|
// check the file is not locked
|
|
143
|
-
ASSERT_TRUE(
|
|
144
|
-
|
|
139
|
+
ASSERT_TRUE(AssertFileIsNotLocked());
|
|
145
140
|
}
|
|
146
141
|
|
|
147
142
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -195,7 +195,7 @@ struct KeyMaker {
|
|
|
195
195
|
len += FastRange32(
|
|
196
196
|
(val_num >> FLAGS_vary_key_size_log2_interval) * 1234567891, 5);
|
|
197
197
|
}
|
|
198
|
-
char *
|
|
198
|
+
char *data = buf_.get() + start;
|
|
199
199
|
// Populate key data such that all data makes it into a key of at
|
|
200
200
|
// least 8 bytes. We also don't want all the within-filter key
|
|
201
201
|
// variance confined to a contiguous 32 bits, because then a 32 bit
|
|
@@ -378,9 +378,9 @@ void FilterBench::Go() {
|
|
|
378
378
|
FLAGS_average_keys_per_filter);
|
|
379
379
|
const uint32_t variance_offset = variance_range / 2;
|
|
380
380
|
|
|
381
|
-
const std::vector<TestMode> &testModes =
|
|
382
|
-
|
|
383
|
-
|
|
381
|
+
const std::vector<TestMode> &testModes = FLAGS_best_case ? bestCaseTestModes
|
|
382
|
+
: FLAGS_quick ? quickTestModes
|
|
383
|
+
: allTestModes;
|
|
384
384
|
|
|
385
385
|
m_queries_ = FLAGS_m_queries;
|
|
386
386
|
double working_mem_size_mb = FLAGS_working_mem_size_mb;
|
|
@@ -547,7 +547,7 @@ TEST(FastRangeGenericTest, Values) {
|
|
|
547
547
|
uint16_t{6234});
|
|
548
548
|
// Not recommended for typical use because for example this could fail on
|
|
549
549
|
// some platforms and pass on others:
|
|
550
|
-
//EXPECT_EQ(FastRangeGeneric(static_cast<unsigned long>(0x80000000),
|
|
550
|
+
// EXPECT_EQ(FastRangeGeneric(static_cast<unsigned long>(0x80000000),
|
|
551
551
|
// uint16_t{12468}),
|
|
552
552
|
// uint16_t{6234});
|
|
553
553
|
}
|
|
@@ -843,7 +843,7 @@ TEST(MathTest, CodingGeneric) {
|
|
|
843
843
|
EXPECT_EQ(std::string("_12"), std::string(out));
|
|
844
844
|
}
|
|
845
845
|
|
|
846
|
-
int main(int argc, char**
|
|
846
|
+
int main(int argc, char **argv) {
|
|
847
847
|
fprintf(stderr, "NPHash64 id: %x\n",
|
|
848
848
|
static_cast<int>(ROCKSDB_NAMESPACE::GetSliceNPHash64("RocksDB")));
|
|
849
849
|
ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#include <algorithm>
|
|
9
9
|
#include <cstdint>
|
|
10
10
|
#include <functional>
|
|
11
|
+
|
|
11
12
|
#include "port/port.h"
|
|
12
13
|
#include "util/autovector.h"
|
|
13
14
|
|
|
@@ -37,11 +38,11 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
37
38
|
// std::priority_queue: the comparison operator is expected to provide the
|
|
38
39
|
// less-than relation, but top() will return the maximum.
|
|
39
40
|
|
|
40
|
-
template<typename T, typename Compare = std::less<T>>
|
|
41
|
+
template <typename T, typename Compare = std::less<T>>
|
|
41
42
|
class BinaryHeap {
|
|
42
43
|
public:
|
|
43
|
-
BinaryHeap() {
|
|
44
|
-
explicit BinaryHeap(Compare cmp) : cmp_(std::move(cmp)) {
|
|
44
|
+
BinaryHeap() {}
|
|
45
|
+
explicit BinaryHeap(Compare cmp) : cmp_(std::move(cmp)) {}
|
|
45
46
|
|
|
46
47
|
void push(const T& value) {
|
|
47
48
|
data_.push_back(value);
|
|
@@ -86,7 +87,7 @@ class BinaryHeap {
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
|
|
89
|
-
void swap(BinaryHeap
|
|
90
|
+
void swap(BinaryHeap& other) {
|
|
90
91
|
std::swap(cmp_, other.cmp_);
|
|
91
92
|
data_.swap(other.data_);
|
|
92
93
|
std::swap(root_cmp_cache_, other.root_cmp_cache_);
|
|
@@ -31,8 +31,7 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
31
31
|
using HeapTestValue = uint64_t;
|
|
32
32
|
using Params = std::tuple<size_t, HeapTestValue, int64_t>;
|
|
33
33
|
|
|
34
|
-
class HeapTest : public ::testing::TestWithParam<Params> {
|
|
35
|
-
};
|
|
34
|
+
class HeapTest : public ::testing::TestWithParam<Params> {};
|
|
36
35
|
|
|
37
36
|
TEST_P(HeapTest, Test) {
|
|
38
37
|
// This test performs the same pseudorandom sequence of operations on a
|
|
@@ -54,15 +53,14 @@ TEST_P(HeapTest, Test) {
|
|
|
54
53
|
std::mt19937 rng(static_cast<unsigned int>(RNG_SEED));
|
|
55
54
|
std::uniform_int_distribution<HeapTestValue> value_dist(0, MAX_VALUE);
|
|
56
55
|
int ndrains = 0;
|
|
57
|
-
bool draining = false;
|
|
56
|
+
bool draining = false; // hit max size, draining until we empty the heap
|
|
58
57
|
size_t size = 0;
|
|
59
58
|
for (int64_t i = 0; i < FLAGS_iters; ++i) {
|
|
60
59
|
if (size == 0) {
|
|
61
60
|
draining = false;
|
|
62
61
|
}
|
|
63
62
|
|
|
64
|
-
if (!draining &&
|
|
65
|
-
(size == 0 || std::bernoulli_distribution(0.4)(rng))) {
|
|
63
|
+
if (!draining && (size == 0 || std::bernoulli_distribution(0.4)(rng))) {
|
|
66
64
|
// insert
|
|
67
65
|
HeapTestValue val = value_dist(rng);
|
|
68
66
|
heap.push(val);
|
|
@@ -104,30 +102,22 @@ TEST_P(HeapTest, Test) {
|
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
// Basic test, MAX_VALUE = 3*MAX_HEAP_SIZE (occasional duplicates)
|
|
107
|
-
INSTANTIATE_TEST_CASE_P(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
);
|
|
105
|
+
INSTANTIATE_TEST_CASE_P(Basic, HeapTest,
|
|
106
|
+
::testing::Values(Params(1000, 3000,
|
|
107
|
+
0x1b575cf05b708945)));
|
|
111
108
|
// Mid-size heap with small values (many duplicates)
|
|
112
|
-
INSTANTIATE_TEST_CASE_P(
|
|
113
|
-
|
|
114
|
-
::testing::Values(Params(100, 10, 0x5ae213f7bd5dccd0))
|
|
115
|
-
);
|
|
109
|
+
INSTANTIATE_TEST_CASE_P(SmallValues, HeapTest,
|
|
110
|
+
::testing::Values(Params(100, 10, 0x5ae213f7bd5dccd0)));
|
|
116
111
|
// Small heap, large value range (no duplicates)
|
|
117
|
-
INSTANTIATE_TEST_CASE_P(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
);
|
|
112
|
+
INSTANTIATE_TEST_CASE_P(SmallHeap, HeapTest,
|
|
113
|
+
::testing::Values(Params(10, ULLONG_MAX,
|
|
114
|
+
0x3e1fa8f4d01707cf)));
|
|
121
115
|
// Two-element heap
|
|
122
|
-
INSTANTIATE_TEST_CASE_P(
|
|
123
|
-
|
|
124
|
-
::testing::Values(Params(2, 5, 0x4b5e13ea988c6abc))
|
|
125
|
-
);
|
|
116
|
+
INSTANTIATE_TEST_CASE_P(TwoElementHeap, HeapTest,
|
|
117
|
+
::testing::Values(Params(2, 5, 0x4b5e13ea988c6abc)));
|
|
126
118
|
// One-element heap
|
|
127
|
-
INSTANTIATE_TEST_CASE_P(
|
|
128
|
-
|
|
129
|
-
::testing::Values(Params(1, 3, 0x176a1019ab0b612e))
|
|
130
|
-
);
|
|
119
|
+
INSTANTIATE_TEST_CASE_P(OneElementHeap, HeapTest,
|
|
120
|
+
::testing::Values(Params(1, 3, 0x176a1019ab0b612e)));
|
|
131
121
|
|
|
132
122
|
} // namespace ROCKSDB_NAMESPACE
|
|
133
123
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
is under the MIT license.
|
|
11
11
|
*/
|
|
12
12
|
#include "murmurhash.h"
|
|
13
|
+
|
|
13
14
|
#include "port/lang.h"
|
|
14
15
|
|
|
15
16
|
#if defined(__x86_64__)
|
|
@@ -28,6 +29,7 @@ __attribute__((__no_sanitize__("alignment")))
|
|
|
28
29
|
__attribute__((__no_sanitize_undefined__))
|
|
29
30
|
#endif
|
|
30
31
|
#endif
|
|
32
|
+
// clang-format off
|
|
31
33
|
uint64_t MurmurHash64A ( const void * key, int len, unsigned int seed )
|
|
32
34
|
{
|
|
33
35
|
const uint64_t m = 0xc6a4a7935bd1e995;
|
|
@@ -70,6 +72,7 @@ uint64_t MurmurHash64A ( const void * key, int len, unsigned int seed )
|
|
|
70
72
|
|
|
71
73
|
return h;
|
|
72
74
|
}
|
|
75
|
+
// clang-format on
|
|
73
76
|
|
|
74
77
|
#elif defined(__i386__)
|
|
75
78
|
|
|
@@ -85,7 +88,7 @@ uint64_t MurmurHash64A ( const void * key, int len, unsigned int seed )
|
|
|
85
88
|
// 1. It will not work incrementally.
|
|
86
89
|
// 2. It will not produce the same results on little-endian and big-endian
|
|
87
90
|
// machines.
|
|
88
|
-
|
|
91
|
+
// clang-format off
|
|
89
92
|
unsigned int MurmurHash2 ( const void * key, int len, unsigned int seed )
|
|
90
93
|
{
|
|
91
94
|
// 'm' and 'r' are mixing constants generated offline.
|
|
@@ -136,6 +139,7 @@ unsigned int MurmurHash2 ( const void * key, int len, unsigned int seed )
|
|
|
136
139
|
|
|
137
140
|
return h;
|
|
138
141
|
}
|
|
142
|
+
// clang-format on
|
|
139
143
|
|
|
140
144
|
#else
|
|
141
145
|
|
|
@@ -143,7 +147,7 @@ unsigned int MurmurHash2 ( const void * key, int len, unsigned int seed )
|
|
|
143
147
|
//
|
|
144
148
|
// Same as MurmurHash2, but endian- and alignment-neutral.
|
|
145
149
|
// Half the speed though, alas.
|
|
146
|
-
|
|
150
|
+
// clang-format off
|
|
147
151
|
unsigned int MurmurHashNeutral2 ( const void * key, int len, unsigned int seed )
|
|
148
152
|
{
|
|
149
153
|
const unsigned int m = 0x5bd1e995;
|
|
@@ -187,5 +191,6 @@ unsigned int MurmurHashNeutral2 ( const void * key, int len, unsigned int seed )
|
|
|
187
191
|
|
|
188
192
|
return h;
|
|
189
193
|
}
|
|
194
|
+
// clang-format on
|
|
190
195
|
|
|
191
196
|
#endif
|
|
@@ -11,23 +11,24 @@
|
|
|
11
11
|
*/
|
|
12
12
|
#pragma once
|
|
13
13
|
#include <stdint.h>
|
|
14
|
+
|
|
14
15
|
#include "rocksdb/slice.h"
|
|
15
16
|
|
|
16
17
|
#if defined(__x86_64__)
|
|
17
18
|
#define MURMUR_HASH MurmurHash64A
|
|
18
|
-
uint64_t MurmurHash64A
|
|
19
|
+
uint64_t MurmurHash64A(const void* key, int len, unsigned int seed);
|
|
19
20
|
#define MurmurHash MurmurHash64A
|
|
20
21
|
using murmur_t = uint64_t;
|
|
21
22
|
|
|
22
23
|
#elif defined(__i386__)
|
|
23
24
|
#define MURMUR_HASH MurmurHash2
|
|
24
|
-
unsigned int MurmurHash2
|
|
25
|
+
unsigned int MurmurHash2(const void* key, int len, unsigned int seed);
|
|
25
26
|
#define MurmurHash MurmurHash2
|
|
26
27
|
using murmur_t = unsigned int;
|
|
27
28
|
|
|
28
29
|
#else
|
|
29
30
|
#define MURMUR_HASH MurmurHashNeutral2
|
|
30
|
-
unsigned int MurmurHashNeutral2
|
|
31
|
+
unsigned int MurmurHashNeutral2(const void* key, int len, unsigned int seed);
|
|
31
32
|
#define MurmurHash MurmurHashNeutral2
|
|
32
33
|
using murmur_t = unsigned int;
|
|
33
34
|
#endif
|