@nxtedition/rocksdb 8.2.8 → 9.0.1
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 +0 -21
- package/deps/rocksdb/rocksdb/CMakeLists.txt +20 -10
- package/deps/rocksdb/rocksdb/Makefile +37 -25
- package/deps/rocksdb/rocksdb/README.md +29 -0
- package/deps/rocksdb/rocksdb/TARGETS +25 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +229 -74
- 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 +58 -95
- 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 +2683 -496
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +580 -159
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +145 -42
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +20 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +391 -17
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +309 -212
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -32
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +439 -12
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +44 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +11 -1
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +16 -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/crash_test.mk +14 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +28 -12
- 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_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +20 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -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 +35 -10
- package/deps/rocksdb/rocksdb/db/c.cc +233 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +140 -6
- package/deps/rocksdb/rocksdb/db/column_family.cc +110 -51
- package/deps/rocksdb/rocksdb/db/column_family.h +34 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +314 -7
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +106 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +47 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +10 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +148 -60
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +22 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +33 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +14 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +90 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +170 -95
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +32 -58
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +46 -10
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +13 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +74 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +850 -44
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +275 -1
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +52 -19
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +733 -320
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +155 -66
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +516 -155
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +8 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +17 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +100 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +95 -50
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +136 -79
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +6 -95
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +31 -22
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +85 -57
- package/deps/rocksdb/rocksdb/db/db_iter.h +11 -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_operand_test.cc +4 -11
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +193 -7
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +294 -26
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +364 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +13 -3
- 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_statistics_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +282 -167
- package/deps/rocksdb/rocksdb/db/db_test.cc +180 -49
- package/deps/rocksdb/rocksdb/db/db_test2.cc +84 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +25 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.h +45 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +14 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +245 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +480 -1
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +67 -34
- package/deps/rocksdb/rocksdb/db/error_handler.h +13 -9
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +144 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +105 -17
- package/deps/rocksdb/rocksdb/db/flush_job.h +27 -4
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -12
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
- package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
- package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +70 -83
- package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +45 -11
- package/deps/rocksdb/rocksdb/db/memtable_list.h +43 -2
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +91 -5
- 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 +5 -2
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -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 +25 -7
- package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +459 -74
- 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 +76 -54
- package/deps/rocksdb/rocksdb/db/table_cache.h +18 -12
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
- package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
- package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
- package/deps/rocksdb/rocksdb/db/version_edit.h +58 -10
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
- package/deps/rocksdb/rocksdb/db/version_set.cc +207 -110
- package/deps/rocksdb/rocksdb/db/version_set.h +36 -15
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -26
- 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 +55 -20
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
- 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 +37 -13
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +110 -58
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +68 -17
- 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 +8 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +429 -237
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +13 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +21 -14
- 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/expected_value.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +29 -38
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +302 -101
- package/deps/rocksdb/rocksdb/env/env.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +79 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +100 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +64 -18
- package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
- package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1225 -97
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +72 -33
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +40 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +163 -91
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +112 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +108 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +42 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +92 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +34 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +91 -13
- 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 +7 -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 +130 -22
- 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 +92 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +37 -2
- 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.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +20 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +7 -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/optimistic_transaction_db.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +42 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
- 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 +3 -2
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +4 -3
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +22 -1
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
- package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +6 -1
- package/deps/rocksdb/rocksdb/options/db_options.cc +54 -2
- package/deps/rocksdb/rocksdb/options/db_options.h +4 -0
- package/deps/rocksdb/rocksdb/options/options.cc +15 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +18 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +14 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -1
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/README +10 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +20 -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 +32 -12
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
- package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
- package/deps/rocksdb/rocksdb/src.mk +10 -1
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
- package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +116 -43
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +9 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +321 -49
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +98 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +233 -98
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +58 -23
- 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 +52 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
- 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 +50 -18
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +20 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +232 -71
- 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/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +36 -19
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +11 -7
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +14 -13
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +9 -2
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/format.cc +175 -33
- package/deps/rocksdb/rocksdb/table/format.h +63 -10
- 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 +22 -2
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +45 -9
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +24 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
- package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
- 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/test_util/secondary_cache_test_util.h +19 -7
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +87 -65
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +221 -33
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -11
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
- package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
- package/deps/rocksdb/rocksdb/util/cast_util.h +24 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +55 -8
- package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +119 -35
- package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
- package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
- package/deps/rocksdb/rocksdb/util/hash.h +7 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
- package/deps/rocksdb/rocksdb/util/math.h +58 -6
- package/deps/rocksdb/rocksdb/util/math128.h +29 -7
- package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
- 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/single_thread_executor.h +1 -0
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
- package/deps/rocksdb/rocksdb/util/status.cc +1 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
- 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 +10 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +385 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +192 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +461 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
- package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +71 -26
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +20 -16
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +7 -1
- 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 +12 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +272 -33
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +195 -23
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +19 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +88 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +43 -17
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +73 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +41 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +15 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +59 -28
- 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 +111 -14
- package/deps/rocksdb/rocksdb.gyp +6 -2
- package/index.js +0 -8
- 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/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
|
@@ -70,18 +70,11 @@ const Cache::CacheItemHelper kDumbHelper{
|
|
|
70
70
|
CacheEntryRole::kMisc,
|
|
71
71
|
[](Cache::ObjectPtr /*value*/, MemoryAllocator* /*alloc*/) {}};
|
|
72
72
|
|
|
73
|
-
const Cache::CacheItemHelper
|
|
73
|
+
const Cache::CacheItemHelper kInvokeOnDeleteHelper{
|
|
74
74
|
CacheEntryRole::kMisc,
|
|
75
75
|
[](Cache::ObjectPtr value, MemoryAllocator* /*alloc*/) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}};
|
|
79
|
-
|
|
80
|
-
const Cache::CacheItemHelper kEraseOnDeleteHelper2{
|
|
81
|
-
CacheEntryRole::kMisc,
|
|
82
|
-
[](Cache::ObjectPtr value, MemoryAllocator* /*alloc*/) {
|
|
83
|
-
Cache* cache = static_cast<Cache*>(value);
|
|
84
|
-
cache->Erase(EncodeKey16Bytes(1234));
|
|
76
|
+
auto& fn = *static_cast<std::function<void()>*>(value);
|
|
77
|
+
fn();
|
|
85
78
|
}};
|
|
86
79
|
} // anonymous namespace
|
|
87
80
|
|
|
@@ -120,8 +113,7 @@ class CacheTest : public testing::Test,
|
|
|
120
113
|
// Currently, HyperClockCache requires keys to be 16B long, whereas
|
|
121
114
|
// LRUCache doesn't, so the encoding depends on the cache type.
|
|
122
115
|
std::string EncodeKey(int k) {
|
|
123
|
-
|
|
124
|
-
if (type == kHyperClock) {
|
|
116
|
+
if (IsHyperClock()) {
|
|
125
117
|
return EncodeKey16Bytes(k);
|
|
126
118
|
} else {
|
|
127
119
|
return EncodeKey32Bits(k);
|
|
@@ -129,8 +121,7 @@ class CacheTest : public testing::Test,
|
|
|
129
121
|
}
|
|
130
122
|
|
|
131
123
|
int DecodeKey(const Slice& k) {
|
|
132
|
-
|
|
133
|
-
if (type == kHyperClock) {
|
|
124
|
+
if (IsHyperClock()) {
|
|
134
125
|
return DecodeKey16Bytes(k);
|
|
135
126
|
} else {
|
|
136
127
|
return DecodeKey32Bits(k);
|
|
@@ -182,15 +173,13 @@ std::string CacheTest::type_;
|
|
|
182
173
|
class LRUCacheTest : public CacheTest {};
|
|
183
174
|
|
|
184
175
|
TEST_P(CacheTest, UsageTest) {
|
|
185
|
-
auto type = GetParam();
|
|
186
|
-
|
|
187
176
|
// cache is std::shared_ptr and will be automatically cleaned up.
|
|
188
177
|
const size_t kCapacity = 100000;
|
|
189
|
-
auto cache = NewCache(kCapacity,
|
|
178
|
+
auto cache = NewCache(kCapacity, 6, false, kDontChargeCacheMetadata);
|
|
190
179
|
auto precise_cache = NewCache(kCapacity, 0, false, kFullChargeCacheMetadata);
|
|
191
180
|
ASSERT_EQ(0, cache->GetUsage());
|
|
192
181
|
size_t baseline_meta_usage = precise_cache->GetUsage();
|
|
193
|
-
if (
|
|
182
|
+
if (!IsHyperClock()) {
|
|
194
183
|
ASSERT_EQ(0, baseline_meta_usage);
|
|
195
184
|
}
|
|
196
185
|
|
|
@@ -198,20 +187,19 @@ TEST_P(CacheTest, UsageTest) {
|
|
|
198
187
|
char value[10] = "abcdef";
|
|
199
188
|
// make sure everything will be cached
|
|
200
189
|
for (int i = 1; i < 100; ++i) {
|
|
201
|
-
std::string key;
|
|
202
|
-
if (type == kLRU) {
|
|
203
|
-
key = std::string(i, 'a');
|
|
204
|
-
} else {
|
|
205
|
-
key = EncodeKey(i);
|
|
206
|
-
}
|
|
190
|
+
std::string key = EncodeKey(i);
|
|
207
191
|
auto kv_size = key.size() + 5;
|
|
208
192
|
ASSERT_OK(cache->Insert(key, value, &kDumbHelper, kv_size));
|
|
209
193
|
ASSERT_OK(precise_cache->Insert(key, value, &kDumbHelper, kv_size));
|
|
210
194
|
usage += kv_size;
|
|
211
195
|
ASSERT_EQ(usage, cache->GetUsage());
|
|
212
|
-
if (
|
|
196
|
+
if (GetParam() == kFixedHyperClock) {
|
|
213
197
|
ASSERT_EQ(baseline_meta_usage + usage, precise_cache->GetUsage());
|
|
214
198
|
} else {
|
|
199
|
+
// AutoHyperClockCache meta usage grows in proportion to lifetime
|
|
200
|
+
// max number of entries. LRUCache in proportion to resident number of
|
|
201
|
+
// entries, though there is an untracked component proportional to
|
|
202
|
+
// lifetime max number of entries.
|
|
215
203
|
ASSERT_LT(usage, precise_cache->GetUsage());
|
|
216
204
|
}
|
|
217
205
|
}
|
|
@@ -219,16 +207,15 @@ TEST_P(CacheTest, UsageTest) {
|
|
|
219
207
|
cache->EraseUnRefEntries();
|
|
220
208
|
precise_cache->EraseUnRefEntries();
|
|
221
209
|
ASSERT_EQ(0, cache->GetUsage());
|
|
222
|
-
|
|
210
|
+
if (GetParam() != kAutoHyperClock) {
|
|
211
|
+
// NOTE: AutoHyperClockCache meta usage grows in proportion to lifetime
|
|
212
|
+
// max number of entries.
|
|
213
|
+
ASSERT_EQ(baseline_meta_usage, precise_cache->GetUsage());
|
|
214
|
+
}
|
|
223
215
|
|
|
224
216
|
// make sure the cache will be overloaded
|
|
225
217
|
for (size_t i = 1; i < kCapacity; ++i) {
|
|
226
|
-
std::string key;
|
|
227
|
-
if (type == kLRU) {
|
|
228
|
-
key = std::to_string(i);
|
|
229
|
-
} else {
|
|
230
|
-
key = EncodeKey(static_cast<int>(1000 + i));
|
|
231
|
-
}
|
|
218
|
+
std::string key = EncodeKey(static_cast<int>(1000 + i));
|
|
232
219
|
ASSERT_OK(cache->Insert(key, value, &kDumbHelper, key.size() + 5));
|
|
233
220
|
ASSERT_OK(precise_cache->Insert(key, value, &kDumbHelper, key.size() + 5));
|
|
234
221
|
}
|
|
@@ -237,7 +224,7 @@ TEST_P(CacheTest, UsageTest) {
|
|
|
237
224
|
ASSERT_GT(kCapacity, cache->GetUsage());
|
|
238
225
|
ASSERT_GT(kCapacity, precise_cache->GetUsage());
|
|
239
226
|
ASSERT_LT(kCapacity * 0.95, cache->GetUsage());
|
|
240
|
-
if (
|
|
227
|
+
if (!IsHyperClock()) {
|
|
241
228
|
ASSERT_LT(kCapacity * 0.95, precise_cache->GetUsage());
|
|
242
229
|
} else {
|
|
243
230
|
// estimated value size of 1 is weird for clock cache, because
|
|
@@ -248,22 +235,20 @@ TEST_P(CacheTest, UsageTest) {
|
|
|
248
235
|
}
|
|
249
236
|
}
|
|
250
237
|
|
|
251
|
-
// TODO: This test takes longer than expected on
|
|
252
|
-
// because the values size estimate at construction is too sloppy.
|
|
238
|
+
// TODO: This test takes longer than expected on FixedHyperClockCache.
|
|
239
|
+
// This is because the values size estimate at construction is too sloppy.
|
|
253
240
|
// Fix this.
|
|
254
241
|
// Why is it so slow? The cache is constructed with an estimate of 1, but
|
|
255
242
|
// then the charge is claimed to be 21. This will cause the hash table
|
|
256
243
|
// to be extremely sparse, which in turn means clock needs to scan too
|
|
257
244
|
// many slots to find victims.
|
|
258
245
|
TEST_P(CacheTest, PinnedUsageTest) {
|
|
259
|
-
auto type = GetParam();
|
|
260
|
-
|
|
261
246
|
// cache is std::shared_ptr and will be automatically cleaned up.
|
|
262
247
|
const size_t kCapacity = 200000;
|
|
263
248
|
auto cache = NewCache(kCapacity, 8, false, kDontChargeCacheMetadata);
|
|
264
249
|
auto precise_cache = NewCache(kCapacity, 8, false, kFullChargeCacheMetadata);
|
|
265
250
|
size_t baseline_meta_usage = precise_cache->GetUsage();
|
|
266
|
-
if (
|
|
251
|
+
if (!IsHyperClock()) {
|
|
267
252
|
ASSERT_EQ(0, baseline_meta_usage);
|
|
268
253
|
}
|
|
269
254
|
|
|
@@ -276,12 +261,7 @@ TEST_P(CacheTest, PinnedUsageTest) {
|
|
|
276
261
|
// Add entries. Unpin some of them after insertion. Then, pin some of them
|
|
277
262
|
// again. Check GetPinnedUsage().
|
|
278
263
|
for (int i = 1; i < 100; ++i) {
|
|
279
|
-
std::string key;
|
|
280
|
-
if (type == kLRU) {
|
|
281
|
-
key = std::string(i, 'a');
|
|
282
|
-
} else {
|
|
283
|
-
key = EncodeKey(i);
|
|
284
|
-
}
|
|
264
|
+
std::string key = EncodeKey(i);
|
|
285
265
|
auto kv_size = key.size() + 5;
|
|
286
266
|
Cache::Handle* handle;
|
|
287
267
|
Cache::Handle* handle_in_precise_cache;
|
|
@@ -322,12 +302,7 @@ TEST_P(CacheTest, PinnedUsageTest) {
|
|
|
322
302
|
|
|
323
303
|
// check that overloading the cache does not change the pinned usage
|
|
324
304
|
for (size_t i = 1; i < 2 * kCapacity; ++i) {
|
|
325
|
-
std::string key;
|
|
326
|
-
if (type == kLRU) {
|
|
327
|
-
key = std::to_string(i);
|
|
328
|
-
} else {
|
|
329
|
-
key = EncodeKey(static_cast<int>(1000 + i));
|
|
330
|
-
}
|
|
305
|
+
std::string key = EncodeKey(static_cast<int>(1000 + i));
|
|
331
306
|
ASSERT_OK(cache->Insert(key, value, &kDumbHelper, key.size() + 5));
|
|
332
307
|
ASSERT_OK(precise_cache->Insert(key, value, &kDumbHelper, key.size() + 5));
|
|
333
308
|
}
|
|
@@ -351,7 +326,11 @@ TEST_P(CacheTest, PinnedUsageTest) {
|
|
|
351
326
|
cache->EraseUnRefEntries();
|
|
352
327
|
precise_cache->EraseUnRefEntries();
|
|
353
328
|
ASSERT_EQ(0, cache->GetUsage());
|
|
354
|
-
|
|
329
|
+
if (GetParam() != kAutoHyperClock) {
|
|
330
|
+
// NOTE: AutoHyperClockCache meta usage grows in proportion to lifetime
|
|
331
|
+
// max number of entries.
|
|
332
|
+
ASSERT_EQ(baseline_meta_usage, precise_cache->GetUsage());
|
|
333
|
+
}
|
|
355
334
|
}
|
|
356
335
|
|
|
357
336
|
TEST_P(CacheTest, HitAndMiss) {
|
|
@@ -368,7 +347,7 @@ TEST_P(CacheTest, HitAndMiss) {
|
|
|
368
347
|
ASSERT_EQ(-1, Lookup(300));
|
|
369
348
|
|
|
370
349
|
Insert(100, 102);
|
|
371
|
-
if (
|
|
350
|
+
if (IsHyperClock()) {
|
|
372
351
|
// ClockCache usually doesn't overwrite on Insert
|
|
373
352
|
ASSERT_EQ(101, Lookup(100));
|
|
374
353
|
} else {
|
|
@@ -378,7 +357,7 @@ TEST_P(CacheTest, HitAndMiss) {
|
|
|
378
357
|
ASSERT_EQ(-1, Lookup(300));
|
|
379
358
|
|
|
380
359
|
ASSERT_EQ(1U, deleted_values_.size());
|
|
381
|
-
if (
|
|
360
|
+
if (IsHyperClock()) {
|
|
382
361
|
ASSERT_EQ(102, deleted_values_[0]);
|
|
383
362
|
} else {
|
|
384
363
|
ASSERT_EQ(101, deleted_values_[0]);
|
|
@@ -386,7 +365,7 @@ TEST_P(CacheTest, HitAndMiss) {
|
|
|
386
365
|
}
|
|
387
366
|
|
|
388
367
|
TEST_P(CacheTest, InsertSameKey) {
|
|
389
|
-
if (
|
|
368
|
+
if (IsHyperClock()) {
|
|
390
369
|
ROCKSDB_GTEST_BYPASS(
|
|
391
370
|
"ClockCache doesn't guarantee Insert overwrite same key.");
|
|
392
371
|
return;
|
|
@@ -415,7 +394,7 @@ TEST_P(CacheTest, Erase) {
|
|
|
415
394
|
}
|
|
416
395
|
|
|
417
396
|
TEST_P(CacheTest, EntriesArePinned) {
|
|
418
|
-
if (
|
|
397
|
+
if (IsHyperClock()) {
|
|
419
398
|
ROCKSDB_GTEST_BYPASS(
|
|
420
399
|
"ClockCache doesn't guarantee Insert overwrite same key.");
|
|
421
400
|
return;
|
|
@@ -479,7 +458,7 @@ TEST_P(CacheTest, ExternalRefPinsEntries) {
|
|
|
479
458
|
Insert(1000 + j, 2000 + j);
|
|
480
459
|
}
|
|
481
460
|
// Clock cache is even more stateful and needs more churn to evict
|
|
482
|
-
if (
|
|
461
|
+
if (IsHyperClock()) {
|
|
483
462
|
for (int j = 0; j < kCacheSize; j++) {
|
|
484
463
|
Insert(11000 + j, 11000 + j);
|
|
485
464
|
}
|
|
@@ -517,20 +496,20 @@ TEST_P(CacheTest, EvictionPolicyRef) {
|
|
|
517
496
|
// Check whether the entries inserted in the beginning
|
|
518
497
|
// are evicted. Ones without extra ref are evicted and
|
|
519
498
|
// those with are not.
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
499
|
+
EXPECT_EQ(-1, Lookup(100));
|
|
500
|
+
EXPECT_EQ(-1, Lookup(101));
|
|
501
|
+
EXPECT_EQ(-1, Lookup(102));
|
|
502
|
+
EXPECT_EQ(-1, Lookup(103));
|
|
524
503
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
504
|
+
EXPECT_EQ(-1, Lookup(300));
|
|
505
|
+
EXPECT_EQ(-1, Lookup(301));
|
|
506
|
+
EXPECT_EQ(-1, Lookup(302));
|
|
507
|
+
EXPECT_EQ(-1, Lookup(303));
|
|
529
508
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
509
|
+
EXPECT_EQ(101, Lookup(200));
|
|
510
|
+
EXPECT_EQ(102, Lookup(201));
|
|
511
|
+
EXPECT_EQ(103, Lookup(202));
|
|
512
|
+
EXPECT_EQ(104, Lookup(203));
|
|
534
513
|
|
|
535
514
|
// Cleaning up all the handles
|
|
536
515
|
cache_->Release(h201);
|
|
@@ -540,37 +519,22 @@ TEST_P(CacheTest, EvictionPolicyRef) {
|
|
|
540
519
|
}
|
|
541
520
|
|
|
542
521
|
TEST_P(CacheTest, EvictEmptyCache) {
|
|
543
|
-
auto type = GetParam();
|
|
544
|
-
|
|
545
522
|
// Insert item large than capacity to trigger eviction on empty cache.
|
|
546
523
|
auto cache = NewCache(1, 0, false);
|
|
547
|
-
|
|
548
|
-
ASSERT_OK(cache->Insert("foo", nullptr, &kDumbHelper, 10));
|
|
549
|
-
} else {
|
|
550
|
-
ASSERT_OK(cache->Insert(EncodeKey(1000), nullptr, &kDumbHelper, 10));
|
|
551
|
-
}
|
|
524
|
+
ASSERT_OK(cache->Insert(EncodeKey(1000), nullptr, &kDumbHelper, 10));
|
|
552
525
|
}
|
|
553
526
|
|
|
554
527
|
TEST_P(CacheTest, EraseFromDeleter) {
|
|
555
|
-
auto type = GetParam();
|
|
556
|
-
|
|
557
528
|
// Have deleter which will erase item from cache, which will re-enter
|
|
558
529
|
// the cache at that point.
|
|
559
530
|
std::shared_ptr<Cache> cache = NewCache(10, 0, false);
|
|
560
|
-
std::string foo
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
bar = "bar";
|
|
565
|
-
erase_helper = &kEraseOnDeleteHelper1;
|
|
566
|
-
} else {
|
|
567
|
-
foo = EncodeKey(1234);
|
|
568
|
-
bar = EncodeKey(5678);
|
|
569
|
-
erase_helper = &kEraseOnDeleteHelper2;
|
|
570
|
-
}
|
|
531
|
+
std::string foo = EncodeKey(1234);
|
|
532
|
+
std::string bar = EncodeKey(5678);
|
|
533
|
+
|
|
534
|
+
std::function<void()> erase_fn = [&]() { cache->Erase(foo); };
|
|
571
535
|
|
|
572
536
|
ASSERT_OK(cache->Insert(foo, nullptr, &kDumbHelper, 1));
|
|
573
|
-
ASSERT_OK(cache->Insert(bar,
|
|
537
|
+
ASSERT_OK(cache->Insert(bar, &erase_fn, &kInvokeOnDeleteHelper, 1));
|
|
574
538
|
|
|
575
539
|
cache->Erase(bar);
|
|
576
540
|
ASSERT_EQ(nullptr, cache->Lookup(foo));
|
|
@@ -678,10 +642,10 @@ using TypedHandle = SharedCache::TypedHandle;
|
|
|
678
642
|
} // namespace
|
|
679
643
|
|
|
680
644
|
TEST_P(CacheTest, SetCapacity) {
|
|
681
|
-
|
|
682
|
-
|
|
645
|
+
if (IsHyperClock()) {
|
|
646
|
+
// TODO: update test & code for limited supoort
|
|
683
647
|
ROCKSDB_GTEST_BYPASS(
|
|
684
|
-
"
|
|
648
|
+
"HyperClockCache doesn't support arbitrary capacity "
|
|
685
649
|
"adjustments.");
|
|
686
650
|
return;
|
|
687
651
|
}
|
|
@@ -811,7 +775,7 @@ TEST_P(CacheTest, OverCapacity) {
|
|
|
811
775
|
cache.Release(handles[i]);
|
|
812
776
|
}
|
|
813
777
|
|
|
814
|
-
if (
|
|
778
|
+
if (IsHyperClock()) {
|
|
815
779
|
// Make sure eviction is triggered.
|
|
816
780
|
ASSERT_OK(cache.Insert(EncodeKey(-1), nullptr, 1, &handles[0]));
|
|
817
781
|
|
|
@@ -923,8 +887,7 @@ TEST_P(CacheTest, DefaultShardBits) {
|
|
|
923
887
|
// Prevent excessive allocation (to save time & space)
|
|
924
888
|
estimated_value_size_ = 100000;
|
|
925
889
|
// Implementations use different minimum shard sizes
|
|
926
|
-
size_t min_shard_size =
|
|
927
|
-
(GetParam() == kHyperClock ? 32U * 1024U : 512U) * 1024U;
|
|
890
|
+
size_t min_shard_size = (IsHyperClock() ? 32U * 1024U : 512U) * 1024U;
|
|
928
891
|
|
|
929
892
|
std::shared_ptr<Cache> cache = NewCache(32U * min_shard_size);
|
|
930
893
|
ShardedCacheBase* sc = dynamic_cast<ShardedCacheBase*>(cache.get());
|
|
@@ -19,8 +19,10 @@ ChargedCache::ChargedCache(std::shared_ptr<Cache> cache,
|
|
|
19
19
|
|
|
20
20
|
Status ChargedCache::Insert(const Slice& key, ObjectPtr obj,
|
|
21
21
|
const CacheItemHelper* helper, size_t charge,
|
|
22
|
-
Handle** handle, Priority priority
|
|
23
|
-
|
|
22
|
+
Handle** handle, Priority priority,
|
|
23
|
+
const Slice& compressed_val, CompressionType type) {
|
|
24
|
+
Status s = target_->Insert(key, obj, helper, charge, handle, priority,
|
|
25
|
+
compressed_val, type);
|
|
24
26
|
if (s.ok()) {
|
|
25
27
|
// Insert may cause the cache entry eviction if the cache is full. So we
|
|
26
28
|
// directly call the reservation manager to update the total memory used
|
|
@@ -22,9 +22,11 @@ class ChargedCache : public CacheWrapper {
|
|
|
22
22
|
ChargedCache(std::shared_ptr<Cache> cache,
|
|
23
23
|
std::shared_ptr<Cache> block_cache);
|
|
24
24
|
|
|
25
|
-
Status Insert(
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
Status Insert(
|
|
26
|
+
const Slice& key, ObjectPtr obj, const CacheItemHelper* helper,
|
|
27
|
+
size_t charge, Handle** handle = nullptr,
|
|
28
|
+
Priority priority = Priority::LOW, const Slice& compressed_val = Slice(),
|
|
29
|
+
CompressionType type = CompressionType::kNoCompression) override;
|
|
28
30
|
|
|
29
31
|
Cache::Handle* Lookup(const Slice& key, const CacheItemHelper* helper,
|
|
30
32
|
CreateContext* create_context,
|