@nxtedition/rocksdb 6.0.1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILDING.md +2 -2
- package/binding.cc +14 -17
- package/deps/rocksdb/build_version.cc +4 -10
- package/deps/rocksdb/rocksdb/CMakeLists.txt +17 -3
- package/deps/rocksdb/rocksdb/Makefile +57 -86
- package/deps/rocksdb/rocksdb/TARGETS +4 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
- package/deps/rocksdb/rocksdb/common.mk +30 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/builder.cc +11 -4
- package/deps/rocksdb/rocksdb/db/c.cc +45 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +25 -2
- package/deps/rocksdb/rocksdb/db/column_family.cc +4 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +25 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +6 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +69 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +21 -21
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +135 -32
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +9 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +12 -12
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +15 -14
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +44 -42
- package/deps/rocksdb/rocksdb/db/db_test2.cc +23 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +95 -17
- package/deps/rocksdb/rocksdb/db/db_test_util.h +48 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +34 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +3 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +18 -4
- package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
- package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
- package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -4
- package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_set.cc +2 -2
- package/deps/rocksdb/rocksdb/db/version_set.h +3 -3
- package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +31 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +359 -275
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
- package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
- package/deps/rocksdb/rocksdb/env/env.cc +0 -60
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
- package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
- package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -1
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +69 -45
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +28 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +2 -8
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +34 -38
- package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
- package/deps/rocksdb/rocksdb/options/db_options.cc +38 -17
- package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +82 -39
- package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +115 -59
- package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
- package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
- package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +14 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +85 -41
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +42 -72
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +7 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +6 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -5
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/format.cc +22 -20
- package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +14 -11
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
- package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
- package/deps/rocksdb/rocksdb/table/unique_id.cc +57 -25
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +34 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +254 -98
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +17 -3
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
- package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
- package/deps/rocksdb/rocksdb/util/compression.h +7 -7
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
- package/deps/rocksdb/rocksdb/util/heap.h +5 -3
- package/deps/rocksdb/rocksdb/util/random.cc +1 -5
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
- package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
- package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
- package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +8 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/python.mk +0 -9
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-arm64/node.napi.node +0 -0
package/BUILDING.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# LINUX
|
|
2
2
|
|
|
3
3
|
- Run `./configure` in `deps/liburing`.
|
|
4
|
-
-
|
|
5
|
-
- Put headers at `/usr/lib/x86_64-linux-gnu/include`.
|
|
4
|
+
- Clone and build zstd with `CFLAGS="-O3 -fPIC" make -C lib libzstd.a` and copy `libzstd.a` to `/usr/lib/x86_64-linux-gnu/libzstd_pic.a`.
|
|
5
|
+
- Put zstd headers at `/usr/lib/x86_64-linux-gnu/include`.
|
|
6
6
|
|
|
7
7
|
# OSX
|
|
8
8
|
|
package/binding.cc
CHANGED
|
@@ -200,16 +200,7 @@ static void Finalize(napi_env env, void* data, void* hint) {
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
napi_status Convert(napi_env env,
|
|
204
|
-
if (asBuffer) {
|
|
205
|
-
auto ptr = new std::string(std::move(s));
|
|
206
|
-
return napi_create_external_buffer(env, ptr->size(), ptr->data(), Finalize<std::string>, ptr, &result);
|
|
207
|
-
} else {
|
|
208
|
-
return napi_create_string_utf8(env, s.data(), s.size(), &result);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
napi_status Convert(napi_env env, rocksdb::PinnableSlice s, bool asBuffer, napi_value& result) {
|
|
203
|
+
napi_status Convert(napi_env env, rocksdb::PinnableSlice&& s, bool asBuffer, napi_value& result) {
|
|
213
204
|
if (asBuffer) {
|
|
214
205
|
auto ptr = new rocksdb::PinnableSlice(std::move(s));
|
|
215
206
|
return napi_create_external_buffer(env, ptr->size(), const_cast<char*>(ptr->data()),
|
|
@@ -735,7 +726,7 @@ struct GetWorker final : public Worker {
|
|
|
735
726
|
options.fill_cache = fillCache_;
|
|
736
727
|
options.snapshot = snapshot_.get();
|
|
737
728
|
|
|
738
|
-
auto status = database.db_->Get(options, key_, &value_);
|
|
729
|
+
auto status = database.db_->Get(options, database.db_->DefaultColumnFamily(), key_, &value_);
|
|
739
730
|
|
|
740
731
|
key_.clear();
|
|
741
732
|
snapshot_ = nullptr;
|
|
@@ -757,7 +748,7 @@ struct GetWorker final : public Worker {
|
|
|
757
748
|
|
|
758
749
|
private:
|
|
759
750
|
std::string key_;
|
|
760
|
-
|
|
751
|
+
rocksdb::PinnableSlice value_;
|
|
761
752
|
const bool asBuffer_;
|
|
762
753
|
const bool fillCache_;
|
|
763
754
|
std::shared_ptr<const rocksdb::Snapshot> snapshot_;
|
|
@@ -1080,18 +1071,24 @@ struct NextWorker final : public Worker {
|
|
|
1080
1071
|
if (iterator_->keys_ && iterator_->values_) {
|
|
1081
1072
|
auto k = iterator_->CurrentKey();
|
|
1082
1073
|
auto v = iterator_->CurrentValue();
|
|
1083
|
-
cache_.
|
|
1084
|
-
cache_.
|
|
1074
|
+
cache_.push_back({});
|
|
1075
|
+
cache_.back().PinSelf(k);
|
|
1076
|
+
cache_.push_back({});
|
|
1077
|
+
cache_.back().PinSelf(v);
|
|
1085
1078
|
bytesRead += k.size() + v.size();
|
|
1086
1079
|
} else if (iterator_->keys_) {
|
|
1087
1080
|
auto k = iterator_->CurrentKey();
|
|
1088
|
-
cache_.emplace_back(k.data(), k.size());
|
|
1089
1081
|
cache_.push_back({});
|
|
1082
|
+
cache_.back().PinSelf(k);
|
|
1083
|
+
cache_.push_back({});
|
|
1084
|
+
// no value
|
|
1090
1085
|
bytesRead += k.size();
|
|
1091
1086
|
} else if (iterator_->values_) {
|
|
1092
1087
|
auto v = iterator_->CurrentValue();
|
|
1093
1088
|
cache_.push_back({});
|
|
1094
|
-
|
|
1089
|
+
// no key
|
|
1090
|
+
cache_.push_back({});
|
|
1091
|
+
cache_.back().PinSelf(v);
|
|
1095
1092
|
bytesRead += v.size();
|
|
1096
1093
|
}
|
|
1097
1094
|
|
|
@@ -1130,7 +1127,7 @@ struct NextWorker final : public Worker {
|
|
|
1130
1127
|
}
|
|
1131
1128
|
|
|
1132
1129
|
private:
|
|
1133
|
-
std::vector<
|
|
1130
|
+
std::vector<rocksdb::PinnableSlice> cache_;
|
|
1134
1131
|
Iterator* iterator_ = nullptr;
|
|
1135
1132
|
uint32_t size_ = 0;
|
|
1136
1133
|
bool finished_ = false;
|
|
@@ -12,12 +12,7 @@ static const std::string rocksdb_build_git_sha = "rocksdb_build_git_sha:None";
|
|
|
12
12
|
static const std::string rocksdb_build_git_tag = "rocksdb_build_git_tag:None";
|
|
13
13
|
static const std::string rocksdb_build_date = "rocksdb_build_date:None";
|
|
14
14
|
|
|
15
|
-
#ifndef ROCKSDB_LITE
|
|
16
|
-
extern "C" {
|
|
17
|
-
} // extern "C"
|
|
18
|
-
|
|
19
15
|
std::unordered_map<std::string, ROCKSDB_NAMESPACE::RegistrarFunc> ROCKSDB_NAMESPACE::ObjectRegistry::builtins_ = {};
|
|
20
|
-
#endif //ROCKSDB_LITE
|
|
21
16
|
|
|
22
17
|
namespace ROCKSDB_NAMESPACE {
|
|
23
18
|
static void AddProperty(std::unordered_map<std::string, std::string> *props, const std::string& name) {
|
|
@@ -31,7 +26,7 @@ static void AddProperty(std::unordered_map<std::string, std::string> *props, con
|
|
|
31
26
|
}
|
|
32
27
|
}
|
|
33
28
|
}
|
|
34
|
-
|
|
29
|
+
|
|
35
30
|
static std::unordered_map<std::string, std::string>* LoadPropertiesSet() {
|
|
36
31
|
auto * properties = new std::unordered_map<std::string, std::string>();
|
|
37
32
|
AddProperty(properties, rocksdb_build_git_sha);
|
|
@@ -46,14 +41,14 @@ const std::unordered_map<std::string, std::string>& GetRocksBuildProperties() {
|
|
|
46
41
|
}
|
|
47
42
|
|
|
48
43
|
std::string GetRocksVersionAsString(bool with_patch) {
|
|
49
|
-
std::string version =
|
|
44
|
+
std::string version = std::to_string(ROCKSDB_MAJOR) + "." + std::to_string(ROCKSDB_MINOR);
|
|
50
45
|
if (with_patch) {
|
|
51
|
-
return version + "." +
|
|
46
|
+
return version + "." + std::to_string(ROCKSDB_PATCH);
|
|
52
47
|
} else {
|
|
53
48
|
return version;
|
|
54
49
|
}
|
|
55
50
|
}
|
|
56
|
-
|
|
51
|
+
|
|
57
52
|
std::string GetRocksBuildInfoAsString(const std::string& program, bool verbose) {
|
|
58
53
|
std::string info = program + " (RocksDB) " + GetRocksVersionAsString(true);
|
|
59
54
|
if (verbose) {
|
|
@@ -67,4 +62,3 @@ std::string GetRocksBuildInfoAsString(const std::string& program, bool verbose)
|
|
|
67
62
|
return info;
|
|
68
63
|
}
|
|
69
64
|
} // namespace ROCKSDB_NAMESPACE
|
|
70
|
-
|
|
@@ -40,6 +40,8 @@ include(GoogleTest)
|
|
|
40
40
|
get_rocksdb_version(rocksdb_VERSION)
|
|
41
41
|
project(rocksdb
|
|
42
42
|
VERSION ${rocksdb_VERSION}
|
|
43
|
+
DESCRIPTION "An embeddable persistent key-value store for fast storage"
|
|
44
|
+
HOMEPAGE_URL https://rocksdb.org/
|
|
43
45
|
LANGUAGES CXX C ASM)
|
|
44
46
|
|
|
45
47
|
if(POLICY CMP0042)
|
|
@@ -335,9 +337,6 @@ endif()
|
|
|
335
337
|
# Reset the required flags
|
|
336
338
|
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
|
|
337
339
|
|
|
338
|
-
# thread_local is part of C++11 and later (TODO: clean up this define)
|
|
339
|
-
add_definitions(-DROCKSDB_SUPPORT_THREAD_LOCAL)
|
|
340
|
-
|
|
341
340
|
option(WITH_IOSTATS_CONTEXT "Enable IO stats context" ON)
|
|
342
341
|
if (NOT WITH_IOSTATS_CONTEXT)
|
|
343
342
|
add_definitions(-DNIOSTATS_CONTEXT)
|
|
@@ -596,6 +595,7 @@ set(SOURCES
|
|
|
596
595
|
cache/cache_reservation_manager.cc
|
|
597
596
|
cache/clock_cache.cc
|
|
598
597
|
cache/compressed_secondary_cache.cc
|
|
598
|
+
cache/fast_lru_cache.cc
|
|
599
599
|
cache/lru_cache.cc
|
|
600
600
|
cache/sharded_cache.cc
|
|
601
601
|
db/arena_wrapped_db_iter.cc
|
|
@@ -796,6 +796,7 @@ set(SOURCES
|
|
|
796
796
|
trace_replay/trace_record_result.cc
|
|
797
797
|
trace_replay/trace_record.cc
|
|
798
798
|
trace_replay/trace_replay.cc
|
|
799
|
+
util/cleanable.cc
|
|
799
800
|
util/coding.cc
|
|
800
801
|
util/compaction_job_stats_impl.cc
|
|
801
802
|
util/comparator.cc
|
|
@@ -1119,6 +1120,12 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
|
|
|
1119
1120
|
COMPATIBILITY SameMajorVersion
|
|
1120
1121
|
)
|
|
1121
1122
|
|
|
1123
|
+
configure_file(
|
|
1124
|
+
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
|
|
1125
|
+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
|
|
1126
|
+
@ONLY
|
|
1127
|
+
)
|
|
1128
|
+
|
|
1122
1129
|
install(DIRECTORY include/rocksdb COMPONENT devel DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
|
1123
1130
|
|
|
1124
1131
|
install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination})
|
|
@@ -1157,6 +1164,13 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
|
|
|
1157
1164
|
COMPONENT devel
|
|
1158
1165
|
DESTINATION ${package_config_destination}
|
|
1159
1166
|
)
|
|
1167
|
+
|
|
1168
|
+
install(
|
|
1169
|
+
FILES
|
|
1170
|
+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
|
|
1171
|
+
COMPONENT devel
|
|
1172
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
1173
|
+
)
|
|
1160
1174
|
endif()
|
|
1161
1175
|
|
|
1162
1176
|
option(WITH_ALL_TESTS "Build all test, rather than a small subset" ON)
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
BASH_EXISTS := $(shell which bash)
|
|
10
10
|
SHELL := $(shell which bash)
|
|
11
|
-
include
|
|
11
|
+
include common.mk
|
|
12
12
|
|
|
13
13
|
CLEAN_FILES = # deliberately empty, so we can append below.
|
|
14
14
|
CFLAGS += ${EXTRA_CFLAGS}
|
|
@@ -340,6 +340,8 @@ endif
|
|
|
340
340
|
# ASAN doesn't work well with jemalloc. If we're compiling with ASAN, we should use regular malloc.
|
|
341
341
|
ifdef COMPILE_WITH_ASAN
|
|
342
342
|
DISABLE_JEMALLOC=1
|
|
343
|
+
ASAN_OPTIONS?=detect_stack_use_after_return=1
|
|
344
|
+
export ASAN_OPTIONS
|
|
343
345
|
EXEC_LDFLAGS += -fsanitize=address
|
|
344
346
|
PLATFORM_CCFLAGS += -fsanitize=address
|
|
345
347
|
PLATFORM_CXXFLAGS += -fsanitize=address
|
|
@@ -596,9 +598,6 @@ am__v_CCH_1 =
|
|
|
596
598
|
check-headers: $(HEADER_OK_FILES)
|
|
597
599
|
|
|
598
600
|
# options_settable_test doesn't pass with UBSAN as we use hack in the test
|
|
599
|
-
ifdef COMPILE_WITH_UBSAN
|
|
600
|
-
TESTS := $(shell echo $(TESTS) | sed 's/\boptions_settable_test\b//g')
|
|
601
|
-
endif
|
|
602
601
|
ifdef ASSERT_STATUS_CHECKED
|
|
603
602
|
# TODO: finish fixing all tests to pass this check
|
|
604
603
|
TESTS_FAILING_ASC = \
|
|
@@ -633,7 +632,6 @@ TESTS_PLATFORM_DEPENDENT := \
|
|
|
633
632
|
db_basic_test \
|
|
634
633
|
db_blob_basic_test \
|
|
635
634
|
db_encryption_test \
|
|
636
|
-
db_test2 \
|
|
637
635
|
external_sst_file_basic_test \
|
|
638
636
|
auto_roll_logger_test \
|
|
639
637
|
bloom_test \
|
|
@@ -655,7 +653,6 @@ TESTS_PLATFORM_DEPENDENT := \
|
|
|
655
653
|
rate_limiter_test \
|
|
656
654
|
perf_context_test \
|
|
657
655
|
iostats_context_test \
|
|
658
|
-
db_wal_test \
|
|
659
656
|
|
|
660
657
|
# Sort ROCKSDBTESTS_SUBSET for filtering, except db_test is special (expensive)
|
|
661
658
|
# so is placed first (out-of-order)
|
|
@@ -796,17 +793,10 @@ $(SHARED4): $(LIB_OBJECTS)
|
|
|
796
793
|
$(AM_V_CCLD) $(CXX) $(PLATFORM_SHARED_LDFLAGS)$(SHARED3) $(LIB_OBJECTS) $(LDFLAGS) -o $@
|
|
797
794
|
endif # PLATFORM_SHARED_EXT
|
|
798
795
|
|
|
799
|
-
.PHONY:
|
|
800
|
-
release tags tags0 valgrind_check
|
|
801
|
-
|
|
802
|
-
analyze tools tools_lib check-headers checkout_folly
|
|
803
|
-
blackbox_crash_test_with_atomic_flush whitebox_crash_test_with_atomic_flush \
|
|
804
|
-
blackbox_crash_test_with_txn whitebox_crash_test_with_txn \
|
|
805
|
-
blackbox_crash_test_with_best_efforts_recovery \
|
|
806
|
-
blackbox_crash_test_with_ts whitebox_crash_test_with_ts \
|
|
807
|
-
blackbox_crash_test_with_multiops_wc_txn \
|
|
808
|
-
blackbox_crash_test_with_multiops_wp_txn
|
|
809
|
-
|
|
796
|
+
.PHONY: check clean coverage ldb_tests package dbg gen-pc build_size \
|
|
797
|
+
release tags tags0 valgrind_check format static_lib shared_lib all \
|
|
798
|
+
rocksdbjavastatic rocksdbjava install install-static install-shared \
|
|
799
|
+
uninstall analyze tools tools_lib check-headers checkout_folly
|
|
810
800
|
|
|
811
801
|
all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(TESTS)
|
|
812
802
|
|
|
@@ -843,18 +833,6 @@ coverage: clean
|
|
|
843
833
|
# Delete intermediate files
|
|
844
834
|
$(FIND) . -type f \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f {} \;
|
|
845
835
|
|
|
846
|
-
ifneq (,$(filter check parallel_check,$(MAKECMDGOALS)),)
|
|
847
|
-
# Use /dev/shm if it has the sticky bit set (otherwise, /tmp),
|
|
848
|
-
# and create a randomly-named rocksdb.XXXX directory therein.
|
|
849
|
-
# We'll use that directory in the "make check" rules.
|
|
850
|
-
ifeq ($(TMPD),)
|
|
851
|
-
TMPDIR := $(shell echo $${TMPDIR:-/tmp})
|
|
852
|
-
TMPD := $(shell f=/dev/shm; test -k $$f || f=$(TMPDIR); \
|
|
853
|
-
perl -le 'use File::Temp "tempdir";' \
|
|
854
|
-
-e 'print tempdir("'$$f'/rocksdb.XXXX", CLEANUP => 0)')
|
|
855
|
-
endif
|
|
856
|
-
endif
|
|
857
|
-
|
|
858
836
|
# Run all tests in parallel, accumulating per-test logs in t/log-*.
|
|
859
837
|
#
|
|
860
838
|
# Each t/run-* file is a tiny generated bourne shell script that invokes one of
|
|
@@ -894,7 +872,7 @@ $(parallel_tests):
|
|
|
894
872
|
TEST_SCRIPT=t/run-$$TEST_BINARY-$${TEST_NAME//\//-}; \
|
|
895
873
|
printf '%s\n' \
|
|
896
874
|
'#!/bin/sh' \
|
|
897
|
-
"d=\$(
|
|
875
|
+
"d=\$(TEST_TMPDIR)$$TEST_SCRIPT" \
|
|
898
876
|
'mkdir -p $$d' \
|
|
899
877
|
"TEST_TMPDIR=\$$d $(DRIVER) ./$$TEST_BINARY --gtest_filter=$$TEST_NAME" \
|
|
900
878
|
> $$TEST_SCRIPT; \
|
|
@@ -954,7 +932,6 @@ endif
|
|
|
954
932
|
|
|
955
933
|
.PHONY: check_0
|
|
956
934
|
check_0:
|
|
957
|
-
$(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
|
|
958
935
|
printf '%s\n' '' \
|
|
959
936
|
'To monitor subtest <duration,pass/fail,name>,' \
|
|
960
937
|
' run "make watch-log" in a separate window' ''; \
|
|
@@ -965,7 +942,8 @@ check_0:
|
|
|
965
942
|
| $(prioritize_long_running_tests) \
|
|
966
943
|
| grep -E '$(tests-regexp)' \
|
|
967
944
|
| grep -E -v '$(EXCLUDE_TESTS_REGEX)' \
|
|
968
|
-
| build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu
|
|
945
|
+
| build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
|
|
946
|
+
--tmpdir=$(TEST_TMPDIR) '{} $(parallel_redir)' ; \
|
|
969
947
|
parallel_retcode=$$? ; \
|
|
970
948
|
awk '{ if ($$7 != 0 || $$8 != 0) { if ($$7 == "Exitval") { h = $$0; } else { if (!f) print h; print; f = 1 } } } END { if(f) exit 1; }' < LOG ; \
|
|
971
949
|
awk_retcode=$$?; \
|
|
@@ -976,7 +954,6 @@ valgrind-exclude-regexp = InlineSkipTest.ConcurrentInsert|TransactionStressTest.
|
|
|
976
954
|
.PHONY: valgrind_check_0
|
|
977
955
|
valgrind_check_0: test_log_prefix := valgrind_
|
|
978
956
|
valgrind_check_0:
|
|
979
|
-
$(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
|
|
980
957
|
printf '%s\n' '' \
|
|
981
958
|
'To monitor subtest <duration,pass/fail,name>,' \
|
|
982
959
|
' run "make watch-log" in a separate window' ''; \
|
|
@@ -988,10 +965,11 @@ valgrind_check_0:
|
|
|
988
965
|
| grep -E '$(tests-regexp)' \
|
|
989
966
|
| grep -E -v '$(valgrind-exclude-regexp)' \
|
|
990
967
|
| build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
|
|
991
|
-
|
|
968
|
+
--tmpdir=$(TEST_TMPDIR) \
|
|
969
|
+
'(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
|
|
992
970
|
$(parallel_redir)' \
|
|
993
971
|
|
|
994
|
-
CLEAN_FILES += t LOG $(
|
|
972
|
+
CLEAN_FILES += t LOG $(TEST_TMPDIR)
|
|
995
973
|
|
|
996
974
|
# When running parallel "make check", you can monitor its progress
|
|
997
975
|
# from another window.
|
|
@@ -1014,12 +992,12 @@ check: all
|
|
|
1014
992
|
&& (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
|
|
1015
993
|
grep -q 'GNU Parallel'; \
|
|
1016
994
|
then \
|
|
1017
|
-
$(MAKE) T="$$t"
|
|
995
|
+
$(MAKE) T="$$t" check_0; \
|
|
1018
996
|
else \
|
|
1019
997
|
for t in $(TESTS); do \
|
|
1020
998
|
echo "===== Running $$t (`date`)"; ./$$t || exit 1; done; \
|
|
1021
999
|
fi
|
|
1022
|
-
rm -rf $(
|
|
1000
|
+
rm -rf $(TEST_TMPDIR)
|
|
1023
1001
|
ifneq ($(PLATFORM), OS_AIX)
|
|
1024
1002
|
$(PYTHON) tools/check_all_python.py
|
|
1025
1003
|
ifeq ($(filter -DROCKSDB_LITE,$(OPT)),)
|
|
@@ -1046,31 +1024,31 @@ ldb_tests: ldb
|
|
|
1046
1024
|
include crash_test.mk
|
|
1047
1025
|
|
|
1048
1026
|
asan_check: clean
|
|
1049
|
-
|
|
1027
|
+
COMPILE_WITH_ASAN=1 $(MAKE) check -j32
|
|
1050
1028
|
$(MAKE) clean
|
|
1051
1029
|
|
|
1052
1030
|
asan_crash_test: clean
|
|
1053
|
-
|
|
1031
|
+
COMPILE_WITH_ASAN=1 $(MAKE) crash_test
|
|
1054
1032
|
$(MAKE) clean
|
|
1055
1033
|
|
|
1056
1034
|
whitebox_asan_crash_test: clean
|
|
1057
|
-
|
|
1035
|
+
COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
|
|
1058
1036
|
$(MAKE) clean
|
|
1059
1037
|
|
|
1060
1038
|
blackbox_asan_crash_test: clean
|
|
1061
|
-
|
|
1039
|
+
COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
|
|
1062
1040
|
$(MAKE) clean
|
|
1063
1041
|
|
|
1064
1042
|
asan_crash_test_with_atomic_flush: clean
|
|
1065
|
-
|
|
1043
|
+
COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_atomic_flush
|
|
1066
1044
|
$(MAKE) clean
|
|
1067
1045
|
|
|
1068
1046
|
asan_crash_test_with_txn: clean
|
|
1069
|
-
|
|
1047
|
+
COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
|
|
1070
1048
|
$(MAKE) clean
|
|
1071
1049
|
|
|
1072
1050
|
asan_crash_test_with_best_efforts_recovery: clean
|
|
1073
|
-
|
|
1051
|
+
COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_best_efforts_recovery
|
|
1074
1052
|
$(MAKE) clean
|
|
1075
1053
|
|
|
1076
1054
|
ubsan_check: clean
|
|
@@ -1116,11 +1094,11 @@ valgrind_test_some:
|
|
|
1116
1094
|
valgrind_check: $(TESTS)
|
|
1117
1095
|
$(MAKE) DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" gen_parallel_tests
|
|
1118
1096
|
$(AM_V_GEN)if test "$(J)" != 1 \
|
|
1119
|
-
&& (build_tools/gnu_parallel --gnu --help 2>/dev/null) |
|
|
1097
|
+
&& (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
|
|
1120
1098
|
grep -q 'GNU Parallel'; \
|
|
1121
1099
|
then \
|
|
1122
|
-
|
|
1123
|
-
|
|
1100
|
+
$(MAKE) \
|
|
1101
|
+
DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" valgrind_check_0; \
|
|
1124
1102
|
else \
|
|
1125
1103
|
for t in $(filter-out %skiplist_test options_settable_test,$(TESTS)); do \
|
|
1126
1104
|
$(VALGRIND_VER) $(VALGRIND_OPTS) ./$$t; \
|
|
@@ -1140,27 +1118,6 @@ valgrind_check_some: $(ROCKSDBTESTS_SUBSET)
|
|
|
1140
1118
|
fi; \
|
|
1141
1119
|
done
|
|
1142
1120
|
|
|
1143
|
-
ifneq ($(PAR_TEST),)
|
|
1144
|
-
parloop:
|
|
1145
|
-
ret_bad=0; \
|
|
1146
|
-
for t in $(PAR_TEST); do \
|
|
1147
|
-
echo "===== Running $$t in parallel $(NUM_PAR) (`date`)";\
|
|
1148
|
-
if [ $(db_test) -eq 1 ]; then \
|
|
1149
|
-
seq $(J) | v="$$t" build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{}; export TEST_TMPDIR=$$s;' \
|
|
1150
|
-
'timeout 2m ./db_test --gtest_filter=$$v >> $$s/log-{} 2>1'; \
|
|
1151
|
-
else\
|
|
1152
|
-
seq $(J) | v="./$$t" build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{};' \
|
|
1153
|
-
'export TEST_TMPDIR=$$s; timeout 10m $$v >> $$s/log-{} 2>1'; \
|
|
1154
|
-
fi; \
|
|
1155
|
-
ret_code=$$?; \
|
|
1156
|
-
if [ $$ret_code -ne 0 ]; then \
|
|
1157
|
-
ret_bad=$$ret_code; \
|
|
1158
|
-
echo $$t exited with $$ret_code; \
|
|
1159
|
-
fi; \
|
|
1160
|
-
done; \
|
|
1161
|
-
exit $$ret_bad;
|
|
1162
|
-
endif
|
|
1163
|
-
|
|
1164
1121
|
test_names = \
|
|
1165
1122
|
./db_test --gtest_list_tests \
|
|
1166
1123
|
| perl -n \
|
|
@@ -1168,24 +1125,6 @@ test_names = \
|
|
|
1168
1125
|
-e '/^(\s*)(\S+)/; !$$1 and do {$$p=$$2; break};' \
|
|
1169
1126
|
-e 'print qq! $$p$$2!'
|
|
1170
1127
|
|
|
1171
|
-
parallel_check: $(TESTS)
|
|
1172
|
-
$(AM_V_GEN)if test "$(J)" > 1 \
|
|
1173
|
-
&& (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
|
|
1174
|
-
grep -q 'GNU Parallel'; \
|
|
1175
|
-
then \
|
|
1176
|
-
echo Running in parallel $(J); \
|
|
1177
|
-
else \
|
|
1178
|
-
echo "Need to have GNU Parallel and J > 1"; exit 1; \
|
|
1179
|
-
fi; \
|
|
1180
|
-
ret_bad=0; \
|
|
1181
|
-
echo $(J);\
|
|
1182
|
-
echo Test Dir: $(TMPD); \
|
|
1183
|
-
seq $(J) | build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{}; rm -rf $$s; mkdir $$s'; \
|
|
1184
|
-
$(MAKE) PAR_TEST="$(shell $(test_names))" TMPD=$(TMPD) \
|
|
1185
|
-
J=$(J) db_test=1 parloop; \
|
|
1186
|
-
$(MAKE) PAR_TEST="$(filter-out db_test, $(TESTS))" \
|
|
1187
|
-
TMPD=$(TMPD) J=$(J) db_test=0 parloop;
|
|
1188
|
-
|
|
1189
1128
|
analyze: clean
|
|
1190
1129
|
USE_CLANG=1 $(MAKE) analyze_incremental
|
|
1191
1130
|
|
|
@@ -2405,6 +2344,38 @@ checkout_folly:
|
|
|
2405
2344
|
@# NOTE: this hack is not needed if using FBCODE compiler config
|
|
2406
2345
|
perl -pi -e 's/^(#include <boost)/\/\/$$1/' third-party/folly/folly/functional/Invoke.h
|
|
2407
2346
|
|
|
2347
|
+
# ---------------------------------------------------------------------------
|
|
2348
|
+
# Build size testing
|
|
2349
|
+
# ---------------------------------------------------------------------------
|
|
2350
|
+
|
|
2351
|
+
REPORT_BUILD_STATISTIC?=echo STATISTIC:
|
|
2352
|
+
|
|
2353
|
+
build_size:
|
|
2354
|
+
# === normal build, static ===
|
|
2355
|
+
$(MAKE) clean
|
|
2356
|
+
$(MAKE) static_lib
|
|
2357
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib $$(stat --printf="%s" librocksdb.a)
|
|
2358
|
+
strip librocksdb.a
|
|
2359
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_stripped $$(stat --printf="%s" librocksdb.a)
|
|
2360
|
+
# === normal build, shared ===
|
|
2361
|
+
$(MAKE) clean
|
|
2362
|
+
$(MAKE) shared_lib
|
|
2363
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib $$(stat --printf="%s" `readlink -f librocksdb.so`)
|
|
2364
|
+
strip `readlink -f librocksdb.so`
|
|
2365
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_stripped $$(stat --printf="%s" `readlink -f librocksdb.so`)
|
|
2366
|
+
# === lite build, static ===
|
|
2367
|
+
$(MAKE) clean
|
|
2368
|
+
$(MAKE) LITE=1 static_lib
|
|
2369
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_lite $$(stat --printf="%s" librocksdb.a)
|
|
2370
|
+
strip librocksdb.a
|
|
2371
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_lite_stripped $$(stat --printf="%s" librocksdb.a)
|
|
2372
|
+
# === lite build, shared ===
|
|
2373
|
+
$(MAKE) clean
|
|
2374
|
+
$(MAKE) LITE=1 shared_lib
|
|
2375
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_lite $$(stat --printf="%s" `readlink -f librocksdb.so`)
|
|
2376
|
+
strip `readlink -f librocksdb.so`
|
|
2377
|
+
$(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_lite_stripped $$(stat --printf="%s" `readlink -f librocksdb.so`)
|
|
2378
|
+
|
|
2408
2379
|
# ---------------------------------------------------------------------------
|
|
2409
2380
|
# Platform-specific compilation
|
|
2410
2381
|
# ---------------------------------------------------------------------------
|
|
@@ -15,6 +15,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
15
15
|
"cache/cache_reservation_manager.cc",
|
|
16
16
|
"cache/clock_cache.cc",
|
|
17
17
|
"cache/compressed_secondary_cache.cc",
|
|
18
|
+
"cache/fast_lru_cache.cc",
|
|
18
19
|
"cache/lru_cache.cc",
|
|
19
20
|
"cache/sharded_cache.cc",
|
|
20
21
|
"db/arena_wrapped_db_iter.cc",
|
|
@@ -224,6 +225,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
224
225
|
"trace_replay/trace_record_result.cc",
|
|
225
226
|
"trace_replay/trace_replay.cc",
|
|
226
227
|
"util/build_version.cc",
|
|
228
|
+
"util/cleanable.cc",
|
|
227
229
|
"util/coding.cc",
|
|
228
230
|
"util/compaction_job_stats_impl.cc",
|
|
229
231
|
"util/comparator.cc",
|
|
@@ -334,6 +336,7 @@ cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
|
|
|
334
336
|
"cache/cache_reservation_manager.cc",
|
|
335
337
|
"cache/clock_cache.cc",
|
|
336
338
|
"cache/compressed_secondary_cache.cc",
|
|
339
|
+
"cache/fast_lru_cache.cc",
|
|
337
340
|
"cache/lru_cache.cc",
|
|
338
341
|
"cache/sharded_cache.cc",
|
|
339
342
|
"db/arena_wrapped_db_iter.cc",
|
|
@@ -543,6 +546,7 @@ cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
|
|
|
543
546
|
"trace_replay/trace_record_result.cc",
|
|
544
547
|
"trace_replay/trace_replay.cc",
|
|
545
548
|
"util/build_version.cc",
|
|
549
|
+
"util/cleanable.cc",
|
|
546
550
|
"util/coding.cc",
|
|
547
551
|
"util/compaction_job_stats_impl.cc",
|
|
548
552
|
"util/comparator.cc",
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
#include <iostream>
|
|
15
15
|
#include <string>
|
|
16
16
|
#include <vector>
|
|
17
|
+
|
|
17
18
|
#include "cache/clock_cache.h"
|
|
19
|
+
#include "cache/fast_lru_cache.h"
|
|
18
20
|
#include "cache/lru_cache.h"
|
|
19
21
|
#include "test_util/testharness.h"
|
|
20
22
|
#include "util/coding.h"
|
|
@@ -39,6 +41,7 @@ static int DecodeValue(void* v) {
|
|
|
39
41
|
|
|
40
42
|
const std::string kLRU = "lru";
|
|
41
43
|
const std::string kClock = "clock";
|
|
44
|
+
const std::string kFast = "fast";
|
|
42
45
|
|
|
43
46
|
void dumbDeleter(const Slice& /*key*/, void* /*value*/) {}
|
|
44
47
|
|
|
@@ -83,6 +86,9 @@ class CacheTest : public testing::TestWithParam<std::string> {
|
|
|
83
86
|
if (type == kClock) {
|
|
84
87
|
return NewClockCache(capacity);
|
|
85
88
|
}
|
|
89
|
+
if (type == kFast) {
|
|
90
|
+
return NewFastLRUCache(capacity);
|
|
91
|
+
}
|
|
86
92
|
return nullptr;
|
|
87
93
|
}
|
|
88
94
|
|
|
@@ -103,6 +109,10 @@ class CacheTest : public testing::TestWithParam<std::string> {
|
|
|
103
109
|
return NewClockCache(capacity, num_shard_bits, strict_capacity_limit,
|
|
104
110
|
charge_policy);
|
|
105
111
|
}
|
|
112
|
+
if (type == kFast) {
|
|
113
|
+
return NewFastLRUCache(capacity, num_shard_bits, strict_capacity_limit,
|
|
114
|
+
charge_policy);
|
|
115
|
+
}
|
|
106
116
|
return nullptr;
|
|
107
117
|
}
|
|
108
118
|
|
|
@@ -183,7 +193,7 @@ TEST_P(CacheTest, UsageTest) {
|
|
|
183
193
|
|
|
184
194
|
// make sure the cache will be overloaded
|
|
185
195
|
for (uint64_t i = 1; i < kCapacity; ++i) {
|
|
186
|
-
auto key =
|
|
196
|
+
auto key = std::to_string(i);
|
|
187
197
|
ASSERT_OK(cache->Insert(key, reinterpret_cast<void*>(value), key.size() + 5,
|
|
188
198
|
dumbDeleter));
|
|
189
199
|
ASSERT_OK(precise_cache->Insert(key, reinterpret_cast<void*>(value),
|
|
@@ -255,7 +265,7 @@ TEST_P(CacheTest, PinnedUsageTest) {
|
|
|
255
265
|
|
|
256
266
|
// check that overloading the cache does not change the pinned usage
|
|
257
267
|
for (uint64_t i = 1; i < 2 * kCapacity; ++i) {
|
|
258
|
-
auto key =
|
|
268
|
+
auto key = std::to_string(i);
|
|
259
269
|
ASSERT_OK(cache->Insert(key, reinterpret_cast<void*>(value), key.size() + 5,
|
|
260
270
|
dumbDeleter));
|
|
261
271
|
ASSERT_OK(precise_cache->Insert(key, reinterpret_cast<void*>(value),
|
|
@@ -575,7 +585,7 @@ TEST_P(CacheTest, SetCapacity) {
|
|
|
575
585
|
std::vector<Cache::Handle*> handles(10);
|
|
576
586
|
// Insert 5 entries, but not releasing.
|
|
577
587
|
for (size_t i = 0; i < 5; i++) {
|
|
578
|
-
std::string key =
|
|
588
|
+
std::string key = std::to_string(i + 1);
|
|
579
589
|
Status s = cache->Insert(key, new Value(i + 1), 1, &deleter, &handles[i]);
|
|
580
590
|
ASSERT_TRUE(s.ok());
|
|
581
591
|
}
|
|
@@ -590,7 +600,7 @@ TEST_P(CacheTest, SetCapacity) {
|
|
|
590
600
|
// then decrease capacity to 7, final capacity should be 7
|
|
591
601
|
// and usage should be 7
|
|
592
602
|
for (size_t i = 5; i < 10; i++) {
|
|
593
|
-
std::string key =
|
|
603
|
+
std::string key = std::to_string(i + 1);
|
|
594
604
|
Status s = cache->Insert(key, new Value(i + 1), 1, &deleter, &handles[i]);
|
|
595
605
|
ASSERT_TRUE(s.ok());
|
|
596
606
|
}
|
|
@@ -621,7 +631,7 @@ TEST_P(LRUCacheTest, SetStrictCapacityLimit) {
|
|
|
621
631
|
std::vector<Cache::Handle*> handles(10);
|
|
622
632
|
Status s;
|
|
623
633
|
for (size_t i = 0; i < 10; i++) {
|
|
624
|
-
std::string key =
|
|
634
|
+
std::string key = std::to_string(i + 1);
|
|
625
635
|
s = cache->Insert(key, new Value(i + 1), 1, &deleter, &handles[i]);
|
|
626
636
|
ASSERT_OK(s);
|
|
627
637
|
ASSERT_NE(nullptr, handles[i]);
|
|
@@ -645,7 +655,7 @@ TEST_P(LRUCacheTest, SetStrictCapacityLimit) {
|
|
|
645
655
|
// test3: init with flag being true.
|
|
646
656
|
std::shared_ptr<Cache> cache2 = NewCache(5, 0, true);
|
|
647
657
|
for (size_t i = 0; i < 5; i++) {
|
|
648
|
-
std::string key =
|
|
658
|
+
std::string key = std::to_string(i + 1);
|
|
649
659
|
s = cache2->Insert(key, new Value(i + 1), 1, &deleter, &handles[i]);
|
|
650
660
|
ASSERT_OK(s);
|
|
651
661
|
ASSERT_NE(nullptr, handles[i]);
|
|
@@ -675,14 +685,14 @@ TEST_P(CacheTest, OverCapacity) {
|
|
|
675
685
|
|
|
676
686
|
// Insert n+1 entries, but not releasing.
|
|
677
687
|
for (size_t i = 0; i < n + 1; i++) {
|
|
678
|
-
std::string key =
|
|
688
|
+
std::string key = std::to_string(i + 1);
|
|
679
689
|
Status s = cache->Insert(key, new Value(i + 1), 1, &deleter, &handles[i]);
|
|
680
690
|
ASSERT_TRUE(s.ok());
|
|
681
691
|
}
|
|
682
692
|
|
|
683
693
|
// Guess what's in the cache now?
|
|
684
694
|
for (size_t i = 0; i < n + 1; i++) {
|
|
685
|
-
std::string key =
|
|
695
|
+
std::string key = std::to_string(i + 1);
|
|
686
696
|
auto h = cache->Lookup(key);
|
|
687
697
|
ASSERT_TRUE(h != nullptr);
|
|
688
698
|
if (h) cache->Release(h);
|
|
@@ -703,7 +713,7 @@ TEST_P(CacheTest, OverCapacity) {
|
|
|
703
713
|
// This is consistent with the LRU policy since the element 0
|
|
704
714
|
// was released first
|
|
705
715
|
for (size_t i = 0; i < n + 1; i++) {
|
|
706
|
-
std::string key =
|
|
716
|
+
std::string key = std::to_string(i + 1);
|
|
707
717
|
auto h = cache->Lookup(key);
|
|
708
718
|
if (h) {
|
|
709
719
|
ASSERT_NE(i, 0U);
|
|
@@ -744,9 +754,9 @@ TEST_P(CacheTest, ApplyToAllEntriesTest) {
|
|
|
744
754
|
std::vector<std::string> callback_state;
|
|
745
755
|
const auto callback = [&](const Slice& key, void* value, size_t charge,
|
|
746
756
|
Cache::DeleterFn deleter) {
|
|
747
|
-
callback_state.push_back(
|
|
748
|
-
|
|
749
|
-
|
|
757
|
+
callback_state.push_back(std::to_string(DecodeKey(key)) + "," +
|
|
758
|
+
std::to_string(DecodeValue(value)) + "," +
|
|
759
|
+
std::to_string(charge));
|
|
750
760
|
assert(deleter == &CacheTest::Deleter);
|
|
751
761
|
};
|
|
752
762
|
|
|
@@ -755,8 +765,8 @@ TEST_P(CacheTest, ApplyToAllEntriesTest) {
|
|
|
755
765
|
|
|
756
766
|
for (int i = 0; i < 10; ++i) {
|
|
757
767
|
Insert(i, i * 2, i + 1);
|
|
758
|
-
inserted.push_back(
|
|
759
|
-
|
|
768
|
+
inserted.push_back(std::to_string(i) + "," + std::to_string(i * 2) + "," +
|
|
769
|
+
std::to_string(i + 1));
|
|
760
770
|
}
|
|
761
771
|
cache_->ApplyToAllEntries(callback, /*opts*/ {});
|
|
762
772
|
|
|
@@ -838,11 +848,13 @@ TEST_P(CacheTest, GetChargeAndDeleter) {
|
|
|
838
848
|
std::shared_ptr<Cache> (*new_clock_cache_func)(
|
|
839
849
|
size_t, int, bool, CacheMetadataChargePolicy) = NewClockCache;
|
|
840
850
|
INSTANTIATE_TEST_CASE_P(CacheTestInstance, CacheTest,
|
|
841
|
-
testing::Values(kLRU, kClock));
|
|
851
|
+
testing::Values(kLRU, kClock, kFast));
|
|
842
852
|
#else
|
|
843
|
-
INSTANTIATE_TEST_CASE_P(CacheTestInstance, CacheTest,
|
|
853
|
+
INSTANTIATE_TEST_CASE_P(CacheTestInstance, CacheTest,
|
|
854
|
+
testing::Values(kLRU, kFast));
|
|
844
855
|
#endif // SUPPORT_CLOCK_CACHE
|
|
845
|
-
INSTANTIATE_TEST_CASE_P(CacheTestInstance, LRUCacheTest,
|
|
856
|
+
INSTANTIATE_TEST_CASE_P(CacheTestInstance, LRUCacheTest,
|
|
857
|
+
testing::Values(kLRU, kFast));
|
|
846
858
|
|
|
847
859
|
} // namespace ROCKSDB_NAMESPACE
|
|
848
860
|
|