@nxtedition/rocksdb 9.0.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +244 -177
- package/deps/rocksdb/rocksdb/CMakeLists.txt +13 -9
- package/deps/rocksdb/rocksdb/Makefile +15 -6
- package/deps/rocksdb/rocksdb/README.md +29 -0
- package/deps/rocksdb/rocksdb/TARGETS +17 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +74 -15
- package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +16 -4
- package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
- package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2024 -14
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +349 -23
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +126 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +9 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +202 -7
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +31 -14
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -33
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +314 -25
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +29 -4
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -3
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +25 -11
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +8 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +3 -3
- package/deps/rocksdb/rocksdb/db/c.cc +64 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +36 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +23 -15
- package/deps/rocksdb/rocksdb/db/column_family.h +9 -0
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +101 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +36 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +24 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +3 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +42 -18
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +7 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +8 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +61 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +146 -64
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +13 -39
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +29 -7
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +8 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +59 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +186 -2
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +17 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +519 -240
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +104 -43
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +169 -66
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +12 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +85 -53
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -7
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +99 -82
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +4 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +24 -21
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +83 -55
- package/deps/rocksdb/rocksdb/db/db_iter.h +10 -2
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +187 -1
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +134 -30
- package/deps/rocksdb/rocksdb/db/db_test2.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +11 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +5 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +12 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +337 -1
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +51 -34
- package/deps/rocksdb/rocksdb/db/error_handler.h +7 -6
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +58 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +17 -19
- package/deps/rocksdb/rocksdb/db/flush_job.h +3 -3
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +18 -70
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.h +11 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
- package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
- package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +4 -3
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +454 -70
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
- package/deps/rocksdb/rocksdb/db/table_cache.cc +32 -19
- package/deps/rocksdb/rocksdb/db/table_cache.h +12 -6
- package/deps/rocksdb/rocksdb/db/version_edit.h +10 -4
- package/deps/rocksdb/rocksdb/db/version_set.cc +75 -73
- package/deps/rocksdb/rocksdb/db/version_set.h +8 -8
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +22 -11
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +44 -20
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +15 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +108 -58
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +36 -14
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +195 -130
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +12 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +14 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +44 -38
- package/deps/rocksdb/rocksdb/env/env.cc +5 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +1 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +50 -29
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +32 -2
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +513 -30
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +38 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +14 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +42 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +65 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +26 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +37 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +79 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +14 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +53 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +0 -2
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -2
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +6 -0
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +4 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -0
- package/deps/rocksdb/rocksdb/options/db_options.cc +47 -2
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +12 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/options/options_test.cc +6 -1
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/README +10 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -0
- package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
- package/deps/rocksdb/rocksdb/src.mk +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +275 -61
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +96 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +179 -62
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +35 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +14 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +10 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +39 -18
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +10 -8
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +6 -2
- package/deps/rocksdb/rocksdb/table/get_context.cc +52 -89
- package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +12 -0
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +33 -6
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +2 -4
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +26 -43
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +213 -28
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -10
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
- package/deps/rocksdb/rocksdb/util/cast_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +26 -1
- package/deps/rocksdb/rocksdb/util/compression.h +9 -3
- package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
- package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/util/overload.h +23 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
- package/deps/rocksdb/rocksdb/util/status.cc +1 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
- package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -0
- package/deps/rocksdb/rocksdb/util/udt_util.cc +42 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +19 -0
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +14 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
- package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +19 -15
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +9 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +41 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +155 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +81 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +2 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +7 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +3 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +57 -27
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +105 -8
- package/deps/rocksdb/rocksdb.gyp +4 -2
- package/index.js +38 -55
- package/package.json +4 -4
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/util.h +7 -1
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -99,6 +99,8 @@ class ShardedCacheBase : public Cache {
|
|
|
99
99
|
|
|
100
100
|
bool HasStrictCapacityLimit() const override;
|
|
101
101
|
size_t GetCapacity() const override;
|
|
102
|
+
Status GetSecondaryCacheCapacity(size_t& size) const override;
|
|
103
|
+
Status GetSecondaryCachePinnedUsage(size_t& size) const override;
|
|
102
104
|
|
|
103
105
|
using Cache::GetUsage;
|
|
104
106
|
size_t GetUsage(Handle* handle) const override;
|
|
@@ -170,9 +172,12 @@ class ShardedCache : public ShardedCacheBase {
|
|
|
170
172
|
[s_c_l](CacheShard* cs) { cs->SetStrictCapacityLimit(s_c_l); });
|
|
171
173
|
}
|
|
172
174
|
|
|
173
|
-
Status Insert(
|
|
174
|
-
|
|
175
|
-
|
|
175
|
+
Status Insert(
|
|
176
|
+
const Slice& key, ObjectPtr obj, const CacheItemHelper* helper,
|
|
177
|
+
size_t charge, Handle** handle = nullptr,
|
|
178
|
+
Priority priority = Priority::LOW,
|
|
179
|
+
const Slice& /*compressed_value*/ = Slice(),
|
|
180
|
+
CompressionType /*type*/ = CompressionType::kNoCompression) override {
|
|
176
181
|
assert(helper);
|
|
177
182
|
HashVal hash = CacheShard::ComputeHash(key, hash_seed_);
|
|
178
183
|
auto h_out = reinterpret_cast<HandleImpl**>(handle);
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
|
|
6
|
+
#include "cache/tiered_secondary_cache.h"
|
|
7
|
+
|
|
8
|
+
namespace ROCKSDB_NAMESPACE {
|
|
9
|
+
|
|
10
|
+
// Creation callback for use in the lookup path. It calls the upper layer
|
|
11
|
+
// create_cb to create the object, and optionally calls the compressed
|
|
12
|
+
// secondary cache InsertSaved to save the compressed block. If
|
|
13
|
+
// advise_erase is set, it means the primary cache wants the block to be
|
|
14
|
+
// erased in the secondary cache, so we skip calling InsertSaved.
|
|
15
|
+
//
|
|
16
|
+
// For the time being, we assume that all blocks in the nvm tier belong to
|
|
17
|
+
// the primary block cache (i.e CacheTier::kVolatileTier). That can be changed
|
|
18
|
+
// if we implement demotion from the compressed secondary cache to the nvm
|
|
19
|
+
// cache in the future.
|
|
20
|
+
Status TieredSecondaryCache::MaybeInsertAndCreate(
|
|
21
|
+
const Slice& data, CompressionType type, CacheTier source,
|
|
22
|
+
Cache::CreateContext* ctx, MemoryAllocator* allocator,
|
|
23
|
+
Cache::ObjectPtr* out_obj, size_t* out_charge) {
|
|
24
|
+
TieredSecondaryCache::CreateContext* context =
|
|
25
|
+
static_cast<TieredSecondaryCache::CreateContext*>(ctx);
|
|
26
|
+
assert(source == CacheTier::kVolatileTier);
|
|
27
|
+
if (!context->advise_erase && type != kNoCompression) {
|
|
28
|
+
// Attempt to insert into compressed secondary cache
|
|
29
|
+
// TODO: Don't hardcode the source
|
|
30
|
+
context->comp_sec_cache->InsertSaved(*context->key, data, type, source)
|
|
31
|
+
.PermitUncheckedError();
|
|
32
|
+
}
|
|
33
|
+
// Primary cache will accept the object, so call its helper to create
|
|
34
|
+
// the object
|
|
35
|
+
return context->helper->create_cb(data, type, source, context->inner_ctx,
|
|
36
|
+
allocator, out_obj, out_charge);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// The lookup first looks up in the compressed secondary cache. If its a miss,
|
|
40
|
+
// then the nvm cache lookup is called. The cache item helper and create
|
|
41
|
+
// context are wrapped in order to intercept the creation callback to make
|
|
42
|
+
// the decision on promoting to the compressed secondary cache.
|
|
43
|
+
std::unique_ptr<SecondaryCacheResultHandle> TieredSecondaryCache::Lookup(
|
|
44
|
+
const Slice& key, const Cache::CacheItemHelper* helper,
|
|
45
|
+
Cache::CreateContext* create_context, bool wait, bool advise_erase,
|
|
46
|
+
bool& kept_in_sec_cache) {
|
|
47
|
+
bool dummy = false;
|
|
48
|
+
std::unique_ptr<SecondaryCacheResultHandle> result =
|
|
49
|
+
target()->Lookup(key, helper, create_context, wait, advise_erase,
|
|
50
|
+
/*kept_in_sec_cache=*/dummy);
|
|
51
|
+
// We never want the item to spill back into the secondary cache
|
|
52
|
+
kept_in_sec_cache = true;
|
|
53
|
+
if (result) {
|
|
54
|
+
assert(result->IsReady());
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// If wait is true, then we can be a bit more efficient and avoid a memory
|
|
59
|
+
// allocation for the CReateContext.
|
|
60
|
+
const Cache::CacheItemHelper* outer_helper =
|
|
61
|
+
TieredSecondaryCache::GetHelper();
|
|
62
|
+
if (wait) {
|
|
63
|
+
TieredSecondaryCache::CreateContext ctx;
|
|
64
|
+
ctx.key = &key;
|
|
65
|
+
ctx.advise_erase = advise_erase;
|
|
66
|
+
ctx.helper = helper;
|
|
67
|
+
ctx.inner_ctx = create_context;
|
|
68
|
+
ctx.comp_sec_cache = target();
|
|
69
|
+
|
|
70
|
+
return nvm_sec_cache_->Lookup(key, outer_helper, &ctx, wait, advise_erase,
|
|
71
|
+
kept_in_sec_cache);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// If wait is false, i.e its an async lookup, we have to allocate a result
|
|
75
|
+
// handle for tracking purposes. Embed the CreateContext inside the handle
|
|
76
|
+
// so we need only allocate memory once instead of twice.
|
|
77
|
+
std::unique_ptr<ResultHandle> handle(new ResultHandle());
|
|
78
|
+
handle->ctx()->key = &key;
|
|
79
|
+
handle->ctx()->advise_erase = advise_erase;
|
|
80
|
+
handle->ctx()->helper = helper;
|
|
81
|
+
handle->ctx()->inner_ctx = create_context;
|
|
82
|
+
handle->ctx()->comp_sec_cache = target();
|
|
83
|
+
handle->SetInnerHandle(nvm_sec_cache_->Lookup(
|
|
84
|
+
key, outer_helper, handle->ctx(), wait, advise_erase, kept_in_sec_cache));
|
|
85
|
+
if (!handle->inner_handle()) {
|
|
86
|
+
handle.reset();
|
|
87
|
+
} else {
|
|
88
|
+
result.reset(handle.release());
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Call the nvm cache WaitAll to complete the lookups
|
|
95
|
+
void TieredSecondaryCache::WaitAll(
|
|
96
|
+
std::vector<SecondaryCacheResultHandle*> handles) {
|
|
97
|
+
std::vector<SecondaryCacheResultHandle*> nvm_handles;
|
|
98
|
+
std::vector<ResultHandle*> my_handles;
|
|
99
|
+
nvm_handles.reserve(handles.size());
|
|
100
|
+
for (auto handle : handles) {
|
|
101
|
+
// The handle could belong to the compressed secondary cache. Skip if
|
|
102
|
+
// that's the case.
|
|
103
|
+
if (handle->IsReady()) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
ResultHandle* hdl = static_cast<ResultHandle*>(handle);
|
|
107
|
+
nvm_handles.push_back(hdl->inner_handle());
|
|
108
|
+
my_handles.push_back(hdl);
|
|
109
|
+
}
|
|
110
|
+
nvm_sec_cache_->WaitAll(nvm_handles);
|
|
111
|
+
for (auto handle : my_handles) {
|
|
112
|
+
assert(handle->IsReady());
|
|
113
|
+
auto nvm_handle = handle->inner_handle();
|
|
114
|
+
handle->SetSize(nvm_handle->Size());
|
|
115
|
+
handle->SetValue(nvm_handle->Value());
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
|
|
6
|
+
#pragma once
|
|
7
|
+
|
|
8
|
+
#include "rocksdb/cache.h"
|
|
9
|
+
#include "rocksdb/secondary_cache.h"
|
|
10
|
+
|
|
11
|
+
namespace ROCKSDB_NAMESPACE {
|
|
12
|
+
|
|
13
|
+
// A SecondaryCache that implements stacking of a compressed secondary cache
|
|
14
|
+
// and a non-volatile (local flash) cache. It implements an admission
|
|
15
|
+
// policy of warming the bottommost tier (local flash) with compressed
|
|
16
|
+
// blocks from the SST on misses, and on hits in the bottommost tier,
|
|
17
|
+
// promoting to the compressed and/or primary block cache. The admission
|
|
18
|
+
// policies of the primary block cache and compressed secondary cache remain
|
|
19
|
+
// unchanged - promote on second access. There is no demotion ofablocks
|
|
20
|
+
// evicted from a tier. They are just discarded.
|
|
21
|
+
//
|
|
22
|
+
// In order to properly handle compressed blocks directly read from SSTs, and
|
|
23
|
+
// to allow writeback of blocks compressed by the compressed secondary
|
|
24
|
+
// cache in the future, we make use of the compression type and source
|
|
25
|
+
// cache tier arguments in InsertSaved.
|
|
26
|
+
class TieredSecondaryCache : public SecondaryCacheWrapper {
|
|
27
|
+
public:
|
|
28
|
+
TieredSecondaryCache(std::shared_ptr<SecondaryCache> comp_sec_cache,
|
|
29
|
+
std::shared_ptr<SecondaryCache> nvm_sec_cache,
|
|
30
|
+
TieredAdmissionPolicy adm_policy)
|
|
31
|
+
: SecondaryCacheWrapper(comp_sec_cache), nvm_sec_cache_(nvm_sec_cache) {
|
|
32
|
+
#ifndef NDEBUG
|
|
33
|
+
assert(adm_policy == TieredAdmissionPolicy::kAdmPolicyThreeQueue);
|
|
34
|
+
#else
|
|
35
|
+
(void)adm_policy;
|
|
36
|
+
#endif
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
~TieredSecondaryCache() override {}
|
|
40
|
+
|
|
41
|
+
const char* Name() const override { return "TieredSecondaryCache"; }
|
|
42
|
+
|
|
43
|
+
// This is a no-op as we currently don't allow demotion (i.e
|
|
44
|
+
// insertion by the upper layer) of evicted blocks.
|
|
45
|
+
virtual Status Insert(const Slice& /*key*/, Cache::ObjectPtr /*obj*/,
|
|
46
|
+
const Cache::CacheItemHelper* /*helper*/,
|
|
47
|
+
bool /*force_insert*/) override {
|
|
48
|
+
return Status::OK();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Warm up the nvm tier directly
|
|
52
|
+
virtual Status InsertSaved(
|
|
53
|
+
const Slice& key, const Slice& saved,
|
|
54
|
+
CompressionType type = CompressionType::kNoCompression,
|
|
55
|
+
CacheTier source = CacheTier::kVolatileTier) override {
|
|
56
|
+
return nvm_sec_cache_->InsertSaved(key, saved, type, source);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
virtual std::unique_ptr<SecondaryCacheResultHandle> Lookup(
|
|
60
|
+
const Slice& key, const Cache::CacheItemHelper* helper,
|
|
61
|
+
Cache::CreateContext* create_context, bool wait, bool advise_erase,
|
|
62
|
+
bool& kept_in_sec_cache) override;
|
|
63
|
+
|
|
64
|
+
virtual void WaitAll(
|
|
65
|
+
std::vector<SecondaryCacheResultHandle*> handles) override;
|
|
66
|
+
|
|
67
|
+
private:
|
|
68
|
+
struct CreateContext : public Cache::CreateContext {
|
|
69
|
+
const Slice* key;
|
|
70
|
+
bool advise_erase;
|
|
71
|
+
const Cache::CacheItemHelper* helper;
|
|
72
|
+
Cache::CreateContext* inner_ctx;
|
|
73
|
+
std::shared_ptr<SecondaryCacheResultHandle> inner_handle;
|
|
74
|
+
SecondaryCache* comp_sec_cache;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
class ResultHandle : public SecondaryCacheResultHandle {
|
|
78
|
+
public:
|
|
79
|
+
~ResultHandle() override {}
|
|
80
|
+
|
|
81
|
+
bool IsReady() override {
|
|
82
|
+
return !inner_handle_ || inner_handle_->IsReady();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
void Wait() override {
|
|
86
|
+
inner_handle_->Wait();
|
|
87
|
+
Complete();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
size_t Size() override { return size_; }
|
|
91
|
+
|
|
92
|
+
Cache::ObjectPtr Value() override { return value_; }
|
|
93
|
+
|
|
94
|
+
void Complete() {
|
|
95
|
+
assert(IsReady());
|
|
96
|
+
size_ = inner_handle_->Size();
|
|
97
|
+
value_ = inner_handle_->Value();
|
|
98
|
+
inner_handle_.reset();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
void SetInnerHandle(std::unique_ptr<SecondaryCacheResultHandle>&& handle) {
|
|
102
|
+
inner_handle_ = std::move(handle);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
void SetSize(size_t size) { size_ = size; }
|
|
106
|
+
|
|
107
|
+
void SetValue(Cache::ObjectPtr val) { value_ = val; }
|
|
108
|
+
|
|
109
|
+
CreateContext* ctx() { return &ctx_; }
|
|
110
|
+
|
|
111
|
+
SecondaryCacheResultHandle* inner_handle() { return inner_handle_.get(); }
|
|
112
|
+
|
|
113
|
+
private:
|
|
114
|
+
std::unique_ptr<SecondaryCacheResultHandle> inner_handle_;
|
|
115
|
+
CreateContext ctx_;
|
|
116
|
+
size_t size_;
|
|
117
|
+
Cache::ObjectPtr value_;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
static void NoopDelete(Cache::ObjectPtr /*obj*/,
|
|
121
|
+
MemoryAllocator* /*allocator*/) {
|
|
122
|
+
assert(false);
|
|
123
|
+
}
|
|
124
|
+
static size_t ZeroSize(Cache::ObjectPtr /*obj*/) {
|
|
125
|
+
assert(false);
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
static Status NoopSaveTo(Cache::ObjectPtr /*from_obj*/,
|
|
129
|
+
size_t /*from_offset*/, size_t /*length*/,
|
|
130
|
+
char* /*out_buf*/) {
|
|
131
|
+
assert(false);
|
|
132
|
+
return Status::OK();
|
|
133
|
+
}
|
|
134
|
+
static Status MaybeInsertAndCreate(const Slice& data, CompressionType type,
|
|
135
|
+
CacheTier source,
|
|
136
|
+
Cache::CreateContext* ctx,
|
|
137
|
+
MemoryAllocator* allocator,
|
|
138
|
+
Cache::ObjectPtr* out_obj,
|
|
139
|
+
size_t* out_charge);
|
|
140
|
+
|
|
141
|
+
static const Cache::CacheItemHelper* GetHelper() {
|
|
142
|
+
const static Cache::CacheItemHelper basic_helper(CacheEntryRole::kMisc,
|
|
143
|
+
&NoopDelete);
|
|
144
|
+
const static Cache::CacheItemHelper maybe_insert_and_create_helper{
|
|
145
|
+
CacheEntryRole::kMisc, &NoopDelete, &ZeroSize,
|
|
146
|
+
&NoopSaveTo, &MaybeInsertAndCreate, &basic_helper,
|
|
147
|
+
};
|
|
148
|
+
return &maybe_insert_and_create_helper;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
std::shared_ptr<SecondaryCache> comp_sec_cache_;
|
|
152
|
+
std::shared_ptr<SecondaryCache> nvm_sec_cache_;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
} // namespace ROCKSDB_NAMESPACE
|