@nxtedition/rocksdb 6.0.1 → 7.0.0-alpha.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.
Files changed (490) hide show
  1. package/BUILDING.md +12 -4
  2. package/binding.cc +421 -40
  3. package/deps/rocksdb/build_version.cc +4 -10
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +26 -3
  5. package/deps/rocksdb/rocksdb/Makefile +73 -91
  6. package/deps/rocksdb/rocksdb/TARGETS +27 -2
  7. package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
  8. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
  9. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
  10. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
  12. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  13. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  14. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  15. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  16. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  17. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  18. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  19. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  20. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  21. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  22. package/deps/rocksdb/rocksdb/common.mk +30 -0
  23. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  24. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  25. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  26. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  27. package/deps/rocksdb/rocksdb/db/builder.cc +22 -7
  28. package/deps/rocksdb/rocksdb/db/c.cc +71 -0
  29. package/deps/rocksdb/rocksdb/db/c_test.c +28 -2
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +12 -5
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +54 -16
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +14 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +85 -18
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +23 -22
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +151 -32
  46. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  48. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  49. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  50. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +404 -32
  51. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  52. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  53. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  54. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  55. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  56. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  57. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +11 -20
  58. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +15 -1
  59. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +12 -9
  60. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +42 -10
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +14 -4
  67. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  68. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  69. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  70. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  71. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  72. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  73. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  74. package/deps/rocksdb/rocksdb/db/db_options_test.cc +28 -12
  75. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  76. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  77. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
  78. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +11 -6
  79. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  80. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  81. package/deps/rocksdb/rocksdb/db/db_test.cc +60 -42
  82. package/deps/rocksdb/rocksdb/db/db_test2.cc +244 -111
  83. package/deps/rocksdb/rocksdb/db/db_test_util.cc +101 -19
  84. package/deps/rocksdb/rocksdb/db/db_test_util.h +52 -2
  85. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  86. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  87. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +5 -175
  88. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
  89. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
  90. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  91. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  92. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  93. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  94. package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
  95. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +91 -12
  96. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -2
  97. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
  98. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  99. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  100. package/deps/rocksdb/rocksdb/db/flush_job.cc +28 -15
  101. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  102. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  103. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  104. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +14 -1
  105. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
  106. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  107. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  108. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  109. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  110. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  111. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  112. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  113. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  114. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  115. package/deps/rocksdb/rocksdb/db/repair.cc +13 -2
  116. package/deps/rocksdb/rocksdb/db/repair_test.cc +37 -15
  117. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  118. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
  119. package/deps/rocksdb/rocksdb/db/table_cache.cc +20 -130
  120. package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
  121. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
  122. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  123. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +133 -133
  124. package/deps/rocksdb/rocksdb/db/version_edit.cc +22 -2
  125. package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
  126. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
  127. package/deps/rocksdb/rocksdb/db/version_set.cc +207 -214
  128. package/deps/rocksdb/rocksdb/db/version_set.h +14 -3
  129. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
  130. package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
  131. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  132. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  133. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  134. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  135. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  136. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  137. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -6
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +44 -6
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  144. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  145. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +374 -275
  146. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  147. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  148. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  149. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  150. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  151. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  152. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  153. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  154. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  155. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  156. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  157. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  158. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  159. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  160. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  161. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
  162. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +44 -22
  163. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  164. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
  165. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  166. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  167. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +60 -40
  168. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +1 -0
  169. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
  170. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +49 -1
  171. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  172. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  173. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  174. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  175. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  176. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  177. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  178. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  179. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  180. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -3
  181. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
  182. package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
  183. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
  184. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  185. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  187. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  188. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +378 -103
  191. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  192. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  193. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  194. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  195. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  196. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  197. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  198. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  199. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  200. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  201. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  202. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  203. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  204. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  205. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +7 -8
  206. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  207. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  208. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  209. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  210. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
  211. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  212. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  213. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  214. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  215. package/deps/rocksdb/rocksdb/options/cf_options.cc +47 -38
  216. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  217. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  218. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  219. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  220. package/deps/rocksdb/rocksdb/options/db_options.cc +46 -17
  221. package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
  222. package/deps/rocksdb/rocksdb/options/options.cc +7 -0
  223. package/deps/rocksdb/rocksdb/options/options_helper.cc +86 -39
  224. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  225. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +12 -7
  226. package/deps/rocksdb/rocksdb/options/options_test.cc +222 -68
  227. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  228. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  229. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  230. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  231. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  232. package/deps/rocksdb/rocksdb/src.mk +6 -1
  233. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  234. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  235. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  236. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  237. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +23 -8
  238. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  239. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +81 -7
  240. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
  241. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +94 -726
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +44 -73
  246. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -5
  247. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  248. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +2 -11
  249. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
  250. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
  251. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  252. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
  253. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
  254. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  255. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  256. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  258. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
  259. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
  260. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +8 -4
  261. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  262. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
  263. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +65 -7
  264. package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
  265. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  266. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  267. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  268. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  269. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  270. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  271. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
  272. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  273. package/deps/rocksdb/rocksdb/table/multiget_context.h +60 -13
  274. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  275. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  276. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  277. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
  278. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
  279. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  280. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  281. package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
  282. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  283. package/deps/rocksdb/rocksdb/table/unique_id.cc +84 -25
  284. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +37 -4
  285. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -1
  286. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  287. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  288. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  289. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  290. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  291. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +277 -105
  292. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  293. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  294. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  295. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  296. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  297. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  298. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +26 -4
  299. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  300. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  301. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
  302. package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
  303. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  304. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  305. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  306. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  307. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  308. package/deps/rocksdb/rocksdb/util/compression.h +56 -7
  309. package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
  310. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  311. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  312. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  313. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  314. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  315. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  316. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  317. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  318. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  319. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
  320. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  321. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  322. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  323. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  324. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  325. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  326. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  327. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  328. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  329. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  330. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  331. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  332. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  333. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  334. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  335. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  336. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  337. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  338. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  339. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  340. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  341. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  342. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  343. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  344. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  345. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  346. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  347. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  348. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  349. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  350. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  351. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  352. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  353. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  354. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  355. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  356. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  357. package/deps/rocksdb/rocksdb.gyp +20 -13
  358. package/index.js +187 -3
  359. package/iterator.js +1 -0
  360. package/package-lock.json +23687 -0
  361. package/package.json +2 -30
  362. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  363. package/snapshot.js +23 -0
  364. package/deps/liburing/liburing/README +0 -46
  365. package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
  366. package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
  367. package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
  368. package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
  369. package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
  370. package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
  371. package/deps/liburing/liburing/test/Makefile +0 -312
  372. package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
  373. package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
  374. package/deps/liburing/liburing/test/accept-link.c +0 -251
  375. package/deps/liburing/liburing/test/accept-reuse.c +0 -164
  376. package/deps/liburing/liburing/test/accept-test.c +0 -79
  377. package/deps/liburing/liburing/test/accept.c +0 -476
  378. package/deps/liburing/liburing/test/across-fork.c +0 -283
  379. package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
  380. package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
  381. package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
  382. package/deps/liburing/liburing/test/close-opath.c +0 -122
  383. package/deps/liburing/liburing/test/config +0 -10
  384. package/deps/liburing/liburing/test/connect.c +0 -398
  385. package/deps/liburing/liburing/test/cq-full.c +0 -96
  386. package/deps/liburing/liburing/test/cq-overflow.c +0 -294
  387. package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
  388. package/deps/liburing/liburing/test/cq-ready.c +0 -94
  389. package/deps/liburing/liburing/test/cq-size.c +0 -58
  390. package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
  391. package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
  392. package/deps/liburing/liburing/test/defer.c +0 -307
  393. package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
  394. package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
  395. package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
  396. package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
  397. package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
  398. package/deps/liburing/liburing/test/eventfd.c +0 -112
  399. package/deps/liburing/liburing/test/fadvise.c +0 -202
  400. package/deps/liburing/liburing/test/fallocate.c +0 -249
  401. package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
  402. package/deps/liburing/liburing/test/file-register.c +0 -843
  403. package/deps/liburing/liburing/test/file-update.c +0 -173
  404. package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
  405. package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
  406. package/deps/liburing/liburing/test/fixed-link.c +0 -90
  407. package/deps/liburing/liburing/test/fsync.c +0 -224
  408. package/deps/liburing/liburing/test/hardlink.c +0 -136
  409. package/deps/liburing/liburing/test/helpers.c +0 -135
  410. package/deps/liburing/liburing/test/helpers.h +0 -67
  411. package/deps/liburing/liburing/test/io-cancel.c +0 -537
  412. package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
  413. package/deps/liburing/liburing/test/io_uring_register.c +0 -664
  414. package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
  415. package/deps/liburing/liburing/test/iopoll.c +0 -366
  416. package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
  417. package/deps/liburing/liburing/test/lfs-openat.c +0 -273
  418. package/deps/liburing/liburing/test/link-timeout.c +0 -1107
  419. package/deps/liburing/liburing/test/link.c +0 -496
  420. package/deps/liburing/liburing/test/link_drain.c +0 -229
  421. package/deps/liburing/liburing/test/madvise.c +0 -195
  422. package/deps/liburing/liburing/test/mkdir.c +0 -108
  423. package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
  424. package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
  425. package/deps/liburing/liburing/test/nop.c +0 -115
  426. package/deps/liburing/liburing/test/open-close.c +0 -146
  427. package/deps/liburing/liburing/test/openat2.c +0 -240
  428. package/deps/liburing/liburing/test/personality.c +0 -204
  429. package/deps/liburing/liburing/test/pipe-eof.c +0 -81
  430. package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
  431. package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
  432. package/deps/liburing/liburing/test/poll-cancel.c +0 -135
  433. package/deps/liburing/liburing/test/poll-link.c +0 -227
  434. package/deps/liburing/liburing/test/poll-many.c +0 -208
  435. package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
  436. package/deps/liburing/liburing/test/poll-ring.c +0 -48
  437. package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
  438. package/deps/liburing/liburing/test/poll.c +0 -109
  439. package/deps/liburing/liburing/test/probe.c +0 -137
  440. package/deps/liburing/liburing/test/read-write.c +0 -876
  441. package/deps/liburing/liburing/test/register-restrictions.c +0 -633
  442. package/deps/liburing/liburing/test/rename.c +0 -134
  443. package/deps/liburing/liburing/test/ring-leak.c +0 -173
  444. package/deps/liburing/liburing/test/ring-leak2.c +0 -249
  445. package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
  446. package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
  447. package/deps/liburing/liburing/test/runtests.sh +0 -170
  448. package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
  449. package/deps/liburing/liburing/test/self.c +0 -91
  450. package/deps/liburing/liburing/test/send_recv.c +0 -291
  451. package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
  452. package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
  453. package/deps/liburing/liburing/test/shared-wq.c +0 -84
  454. package/deps/liburing/liburing/test/short-read.c +0 -75
  455. package/deps/liburing/liburing/test/shutdown.c +0 -163
  456. package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
  457. package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
  458. package/deps/liburing/liburing/test/socket-rw.c +0 -147
  459. package/deps/liburing/liburing/test/splice.c +0 -511
  460. package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
  461. package/deps/liburing/liburing/test/sq-full.c +0 -45
  462. package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
  463. package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
  464. package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
  465. package/deps/liburing/liburing/test/sq-space_left.c +0 -159
  466. package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
  467. package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
  468. package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
  469. package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
  470. package/deps/liburing/liburing/test/statx.c +0 -172
  471. package/deps/liburing/liburing/test/stdout.c +0 -232
  472. package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
  473. package/deps/liburing/liburing/test/submit-reuse.c +0 -239
  474. package/deps/liburing/liburing/test/symlink.c +0 -116
  475. package/deps/liburing/liburing/test/teardowns.c +0 -58
  476. package/deps/liburing/liburing/test/thread-exit.c +0 -131
  477. package/deps/liburing/liburing/test/timeout-new.c +0 -246
  478. package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
  479. package/deps/liburing/liburing/test/timeout.c +0 -1354
  480. package/deps/liburing/liburing/test/unlink.c +0 -111
  481. package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
  482. package/deps/rocksdb/rocksdb/README.md +0 -32
  483. package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
  484. package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
  485. package/deps/rocksdb/rocksdb/port/README +0 -10
  486. package/deps/rocksdb/rocksdb/python.mk +0 -9
  487. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
  488. package/prebuilds/darwin-x64/node.napi.node +0 -0
  489. package/prebuilds/linux-arm64/node.napi.node +0 -0
  490. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -13,6 +13,7 @@
13
13
 
14
14
  #include "cache/cache_entry_roles.h"
15
15
  #include "cache/cache_key.h"
16
+ #include "cache/fast_lru_cache.h"
16
17
  #include "cache/lru_cache.h"
17
18
  #include "db/column_family.h"
18
19
  #include "db/db_impl/db_impl.h"
@@ -75,7 +76,7 @@ class DBBlockCacheTest : public DBTestBase {
75
76
  void InitTable(const Options& /*options*/) {
76
77
  std::string value(kValueSize, 'a');
77
78
  for (size_t i = 0; i < kNumBlocks; i++) {
78
- ASSERT_OK(Put(ToString(i), value.c_str()));
79
+ ASSERT_OK(Put(std::to_string(i), value.c_str()));
79
80
  }
80
81
  }
81
82
 
@@ -204,7 +205,7 @@ TEST_F(DBBlockCacheTest, IteratorBlockCacheUsage) {
204
205
 
205
206
  ASSERT_EQ(0, cache->GetUsage());
206
207
  iter = db_->NewIterator(read_options);
207
- iter->Seek(ToString(0));
208
+ iter->Seek(std::to_string(0));
208
209
  ASSERT_LT(0, cache->GetUsage());
209
210
  delete iter;
210
211
  iter = nullptr;
@@ -235,7 +236,7 @@ TEST_F(DBBlockCacheTest, TestWithoutCompressedBlockCache) {
235
236
  // Load blocks into cache.
236
237
  for (size_t i = 0; i + 1 < kNumBlocks; i++) {
237
238
  iter = db_->NewIterator(read_options);
238
- iter->Seek(ToString(i));
239
+ iter->Seek(std::to_string(i));
239
240
  ASSERT_OK(iter->status());
240
241
  CheckCacheCounters(options, 1, 0, 1, 0);
241
242
  iterators[i].reset(iter);
@@ -248,7 +249,7 @@ TEST_F(DBBlockCacheTest, TestWithoutCompressedBlockCache) {
248
249
  // Test with strict capacity limit.
249
250
  cache->SetStrictCapacityLimit(true);
250
251
  iter = db_->NewIterator(read_options);
251
- iter->Seek(ToString(kNumBlocks - 1));
252
+ iter->Seek(std::to_string(kNumBlocks - 1));
252
253
  ASSERT_TRUE(iter->status().IsIncomplete());
253
254
  CheckCacheCounters(options, 1, 0, 0, 1);
254
255
  delete iter;
@@ -262,7 +263,7 @@ TEST_F(DBBlockCacheTest, TestWithoutCompressedBlockCache) {
262
263
  ASSERT_EQ(0, cache->GetPinnedUsage());
263
264
  for (size_t i = 0; i + 1 < kNumBlocks; i++) {
264
265
  iter = db_->NewIterator(read_options);
265
- iter->Seek(ToString(i));
266
+ iter->Seek(std::to_string(i));
266
267
  ASSERT_OK(iter->status());
267
268
  CheckCacheCounters(options, 0, 1, 0, 0);
268
269
  iterators[i].reset(iter);
@@ -288,7 +289,7 @@ TEST_F(DBBlockCacheTest, TestWithCompressedBlockCache) {
288
289
 
289
290
  std::string value(kValueSize, 'a');
290
291
  for (size_t i = 0; i < kNumBlocks; i++) {
291
- ASSERT_OK(Put(ToString(i), value));
292
+ ASSERT_OK(Put(std::to_string(i), value));
292
293
  ASSERT_OK(Flush());
293
294
  }
294
295
 
@@ -312,7 +313,7 @@ TEST_F(DBBlockCacheTest, TestWithCompressedBlockCache) {
312
313
 
313
314
  // Load blocks into cache.
314
315
  for (size_t i = 0; i < kNumBlocks - 1; i++) {
315
- ASSERT_EQ(value, Get(ToString(i)));
316
+ ASSERT_EQ(value, Get(std::to_string(i)));
316
317
  CheckCacheCounters(options, 1, 0, 1, 0);
317
318
  CheckCompressedCacheCounters(options, 1, 0, 1, 0);
318
319
  }
@@ -333,7 +334,7 @@ TEST_F(DBBlockCacheTest, TestWithCompressedBlockCache) {
333
334
 
334
335
  // Load last key block.
335
336
  ASSERT_EQ("Result incomplete: Insert failed due to LRU cache being full.",
336
- Get(ToString(kNumBlocks - 1)));
337
+ Get(std::to_string(kNumBlocks - 1)));
337
338
  // Failure will also record the miss counter.
338
339
  CheckCacheCounters(options, 1, 0, 0, 1);
339
340
  CheckCompressedCacheCounters(options, 1, 0, 1, 0);
@@ -342,7 +343,7 @@ TEST_F(DBBlockCacheTest, TestWithCompressedBlockCache) {
342
343
  // cache and load into block cache.
343
344
  cache->SetStrictCapacityLimit(false);
344
345
  // Load last key block.
345
- ASSERT_EQ(value, Get(ToString(kNumBlocks - 1)));
346
+ ASSERT_EQ(value, Get(std::to_string(kNumBlocks - 1)));
346
347
  CheckCacheCounters(options, 1, 0, 1, 0);
347
348
  CheckCompressedCacheCounters(options, 0, 1, 0, 0);
348
349
  }
@@ -567,7 +568,7 @@ TEST_F(DBBlockCacheTest, FillCacheAndIterateDB) {
567
568
  Iterator* iter = nullptr;
568
569
 
569
570
  iter = db_->NewIterator(read_options);
570
- iter->Seek(ToString(0));
571
+ iter->Seek(std::to_string(0));
571
572
  while (iter->Valid()) {
572
573
  iter->Next();
573
574
  }
@@ -645,10 +646,10 @@ TEST_F(DBBlockCacheTest, WarmCacheWithDataBlocksDuringFlush) {
645
646
 
646
647
  std::string value(kValueSize, 'a');
647
648
  for (size_t i = 1; i <= kNumBlocks; i++) {
648
- ASSERT_OK(Put(ToString(i), value));
649
+ ASSERT_OK(Put(std::to_string(i), value));
649
650
  ASSERT_OK(Flush());
650
651
  ASSERT_EQ(i, options.statistics->getTickerCount(BLOCK_CACHE_DATA_ADD));
651
- ASSERT_EQ(value, Get(ToString(i)));
652
+ ASSERT_EQ(value, Get(std::to_string(i)));
652
653
  ASSERT_EQ(0, options.statistics->getTickerCount(BLOCK_CACHE_DATA_MISS));
653
654
  ASSERT_EQ(i, options.statistics->getTickerCount(BLOCK_CACHE_DATA_HIT));
654
655
  }
@@ -705,7 +706,7 @@ TEST_P(DBBlockCacheTest1, WarmCacheWithBlocksDuringFlush) {
705
706
 
706
707
  std::string value(kValueSize, 'a');
707
708
  for (size_t i = 1; i <= kNumBlocks; i++) {
708
- ASSERT_OK(Put(ToString(i), value));
709
+ ASSERT_OK(Put(std::to_string(i), value));
709
710
  ASSERT_OK(Flush());
710
711
  ASSERT_EQ(i, options.statistics->getTickerCount(BLOCK_CACHE_DATA_ADD));
711
712
  if (filter_type == 1) {
@@ -717,7 +718,7 @@ TEST_P(DBBlockCacheTest1, WarmCacheWithBlocksDuringFlush) {
717
718
  ASSERT_EQ(i, options.statistics->getTickerCount(BLOCK_CACHE_INDEX_ADD));
718
719
  ASSERT_EQ(i, options.statistics->getTickerCount(BLOCK_CACHE_FILTER_ADD));
719
720
  }
720
- ASSERT_EQ(value, Get(ToString(i)));
721
+ ASSERT_EQ(value, Get(std::to_string(i)));
721
722
 
722
723
  ASSERT_EQ(0, options.statistics->getTickerCount(BLOCK_CACHE_DATA_MISS));
723
724
  ASSERT_EQ(i, options.statistics->getTickerCount(BLOCK_CACHE_DATA_HIT));
@@ -772,12 +773,12 @@ TEST_F(DBBlockCacheTest, DynamicallyWarmCacheDuringFlush) {
772
773
  std::string value(kValueSize, 'a');
773
774
 
774
775
  for (size_t i = 1; i <= 5; i++) {
775
- ASSERT_OK(Put(ToString(i), value));
776
+ ASSERT_OK(Put(std::to_string(i), value));
776
777
  ASSERT_OK(Flush());
777
778
  ASSERT_EQ(1,
778
779
  options.statistics->getAndResetTickerCount(BLOCK_CACHE_DATA_ADD));
779
780
 
780
- ASSERT_EQ(value, Get(ToString(i)));
781
+ ASSERT_EQ(value, Get(std::to_string(i)));
781
782
  ASSERT_EQ(0,
782
783
  options.statistics->getAndResetTickerCount(BLOCK_CACHE_DATA_ADD));
783
784
  ASSERT_EQ(
@@ -790,12 +791,12 @@ TEST_F(DBBlockCacheTest, DynamicallyWarmCacheDuringFlush) {
790
791
  {{"block_based_table_factory", "{prepopulate_block_cache=kDisable;}"}}));
791
792
 
792
793
  for (size_t i = 6; i <= kNumBlocks; i++) {
793
- ASSERT_OK(Put(ToString(i), value));
794
+ ASSERT_OK(Put(std::to_string(i), value));
794
795
  ASSERT_OK(Flush());
795
796
  ASSERT_EQ(0,
796
797
  options.statistics->getAndResetTickerCount(BLOCK_CACHE_DATA_ADD));
797
798
 
798
- ASSERT_EQ(value, Get(ToString(i)));
799
+ ASSERT_EQ(value, Get(std::to_string(i)));
799
800
  ASSERT_EQ(1,
800
801
  options.statistics->getAndResetTickerCount(BLOCK_CACHE_DATA_ADD));
801
802
  ASSERT_EQ(
@@ -934,7 +935,8 @@ TEST_F(DBBlockCacheTest, AddRedundantStats) {
934
935
  int iterations_tested = 0;
935
936
  for (std::shared_ptr<Cache> base_cache :
936
937
  {NewLRUCache(capacity, num_shard_bits),
937
- NewClockCache(capacity, num_shard_bits)}) {
938
+ NewClockCache(capacity, num_shard_bits),
939
+ NewFastLRUCache(capacity, num_shard_bits)}) {
938
940
  if (!base_cache) {
939
941
  // Skip clock cache when not supported
940
942
  continue;
@@ -1288,7 +1290,8 @@ TEST_F(DBBlockCacheTest, CacheEntryRoleStats) {
1288
1290
  int iterations_tested = 0;
1289
1291
  for (bool partition : {false, true}) {
1290
1292
  for (std::shared_ptr<Cache> cache :
1291
- {NewLRUCache(capacity), NewClockCache(capacity)}) {
1293
+ {NewLRUCache(capacity), NewClockCache(capacity),
1294
+ NewFastLRUCache(capacity)}) {
1292
1295
  if (!cache) {
1293
1296
  // Skip clock cache when not supported
1294
1297
  continue;
@@ -1406,7 +1409,7 @@ TEST_F(DBBlockCacheTest, CacheEntryRoleStats) {
1406
1409
 
1407
1410
  for (size_t i = 0; i < kNumCacheEntryRoles; ++i) {
1408
1411
  auto role = static_cast<CacheEntryRole>(i);
1409
- EXPECT_EQ(ToString(expected[i]),
1412
+ EXPECT_EQ(std::to_string(expected[i]),
1410
1413
  values[BlockCacheEntryStatsMapKeys::EntryCount(role)]);
1411
1414
  }
1412
1415
 
@@ -1419,7 +1422,7 @@ TEST_F(DBBlockCacheTest, CacheEntryRoleStats) {
1419
1422
  // re-scanning stats, but not totally aggressive.
1420
1423
  // Within some time window, we will get cached entry stats
1421
1424
  env_->MockSleepForSeconds(1);
1422
- EXPECT_EQ(ToString(prev_expected[static_cast<size_t>(
1425
+ EXPECT_EQ(std::to_string(prev_expected[static_cast<size_t>(
1423
1426
  CacheEntryRole::kWriteBuffer)]),
1424
1427
  values[BlockCacheEntryStatsMapKeys::EntryCount(
1425
1428
  CacheEntryRole::kWriteBuffer)]);
@@ -1429,7 +1432,7 @@ TEST_F(DBBlockCacheTest, CacheEntryRoleStats) {
1429
1432
  ASSERT_TRUE(db_->GetMapProperty(DB::Properties::kBlockCacheEntryStats,
1430
1433
  &values));
1431
1434
  EXPECT_EQ(
1432
- ToString(
1435
+ std::to_string(
1433
1436
  expected[static_cast<size_t>(CacheEntryRole::kWriteBuffer)]),
1434
1437
  values[BlockCacheEntryStatsMapKeys::EntryCount(
1435
1438
  CacheEntryRole::kWriteBuffer)]);
@@ -1637,7 +1640,7 @@ TEST_P(DBBlockCacheKeyTest, StableCacheKeys) {
1637
1640
  SstFileWriter sst_file_writer(EnvOptions(), options);
1638
1641
  std::vector<std::string> external;
1639
1642
  for (int i = 0; i < 2; ++i) {
1640
- std::string f = dbname_ + "/external" + ToString(i) + ".sst";
1643
+ std::string f = dbname_ + "/external" + std::to_string(i) + ".sst";
1641
1644
  external.push_back(f);
1642
1645
  ASSERT_OK(sst_file_writer.Open(f));
1643
1646
  ASSERT_OK(sst_file_writer.Put(Key(key_count), "abc"));
@@ -1721,7 +1724,7 @@ class CacheKeyTest : public testing::Test {
1721
1724
  // Like SemiStructuredUniqueIdGen::GenerateNext
1722
1725
  tp_.db_session_id = EncodeSessionId(base_session_upper_,
1723
1726
  base_session_lower_ ^ session_counter_);
1724
- tp_.db_id = ToString(db_id_);
1727
+ tp_.db_id = std::to_string(db_id_);
1725
1728
  tp_.orig_file_number = file_number_;
1726
1729
  bool is_stable;
1727
1730
  std::string cur_session_id = ""; // ignored
@@ -111,6 +111,7 @@ TEST_P(DBBloomFilterTestDefFormatVersion, KeyMayExist) {
111
111
  options_override.filter_policy = Create(20, bfp_impl_);
112
112
  options_override.partition_filters = partition_filters_;
113
113
  options_override.metadata_block_size = 32;
114
+ options_override.full_block_cache = true;
114
115
  Options options = CurrentOptions(options_override);
115
116
  if (partition_filters_) {
116
117
  auto* table_options =
@@ -857,7 +858,7 @@ TEST_F(DBBloomFilterTest, BloomFilterCompatibility) {
857
858
  options.table_factory.reset(NewBlockBasedTableFactory(table_options));
858
859
  Reopen(options);
859
860
 
860
- std::string prefix = ToString(i) + "_";
861
+ std::string prefix = std::to_string(i) + "_";
861
862
  ASSERT_OK(Put(prefix + "A", "val"));
862
863
  ASSERT_OK(Put(prefix + "Z", "val"));
863
864
  ASSERT_OK(Flush());
@@ -872,7 +873,7 @@ TEST_F(DBBloomFilterTest, BloomFilterCompatibility) {
872
873
  options.table_factory.reset(NewBlockBasedTableFactory(table_options));
873
874
  Reopen(options);
874
875
  for (size_t j = 0; j < kCompatibilityConfigs.size(); ++j) {
875
- std::string prefix = ToString(j) + "_";
876
+ std::string prefix = std::to_string(j) + "_";
876
877
  ASSERT_EQ("val", Get(prefix + "A")); // Filter positive
877
878
  ASSERT_EQ("val", Get(prefix + "Z")); // Filter positive
878
879
  // Filter negative, with high probability
@@ -885,103 +886,27 @@ TEST_F(DBBloomFilterTest, BloomFilterCompatibility) {
885
886
  }
886
887
  }
887
888
 
888
- /*
889
- * A cache wrapper that tracks peaks and increments of filter
890
- * construction cache reservation.
891
- * p0
892
- * / \ p1
893
- * / \ /\
894
- * / \/ \
895
- * a / b \
896
- * peaks = {p0, p1}
897
- * increments = {p1-a, p2-b}
898
- */
899
- class FilterConstructResPeakTrackingCache : public CacheWrapper {
900
- public:
901
- explicit FilterConstructResPeakTrackingCache(std::shared_ptr<Cache> target)
902
- : CacheWrapper(std::move(target)),
903
- cur_cache_res_(0),
904
- cache_res_peak_(0),
905
- cache_res_increment_(0),
906
- last_peak_tracked_(false),
907
- cache_res_increments_sum_(0) {}
908
-
909
- using Cache::Insert;
910
- Status Insert(const Slice& key, void* value, size_t charge,
911
- void (*deleter)(const Slice& key, void* value),
912
- Handle** handle = nullptr,
913
- Priority priority = Priority::LOW) override {
914
- Status s = target_->Insert(key, value, charge, deleter, handle, priority);
915
- if (deleter == kNoopDeleterForFilterConstruction) {
916
- if (last_peak_tracked_) {
917
- cache_res_peak_ = 0;
918
- cache_res_increment_ = 0;
919
- last_peak_tracked_ = false;
920
- }
921
- cur_cache_res_ += charge;
922
- cache_res_peak_ = std::max(cache_res_peak_, cur_cache_res_);
923
- cache_res_increment_ += charge;
924
- }
925
- return s;
926
- }
927
-
928
- using Cache::Release;
929
- bool Release(Handle* handle, bool erase_if_last_ref = false) override {
930
- auto deleter = GetDeleter(handle);
931
- if (deleter == kNoopDeleterForFilterConstruction) {
932
- if (!last_peak_tracked_) {
933
- cache_res_peaks_.push_back(cache_res_peak_);
934
- cache_res_increments_sum_ += cache_res_increment_;
935
- last_peak_tracked_ = true;
936
- }
937
- cur_cache_res_ -= GetCharge(handle);
938
- }
939
- bool is_successful = target_->Release(handle, erase_if_last_ref);
940
- return is_successful;
941
- }
942
-
943
- std::deque<std::size_t> GetReservedCachePeaks() { return cache_res_peaks_; }
944
-
945
- std::size_t GetReservedCacheIncrementSum() {
946
- return cache_res_increments_sum_;
947
- }
948
-
949
- private:
950
- static const Cache::DeleterFn kNoopDeleterForFilterConstruction;
951
-
952
- std::size_t cur_cache_res_;
953
- std::size_t cache_res_peak_;
954
- std::size_t cache_res_increment_;
955
- bool last_peak_tracked_;
956
- std::deque<std::size_t> cache_res_peaks_;
957
- std::size_t cache_res_increments_sum_;
958
- };
959
-
960
- const Cache::DeleterFn
961
- FilterConstructResPeakTrackingCache::kNoopDeleterForFilterConstruction =
962
- CacheReservationManagerImpl<
963
- CacheEntryRole::kFilterConstruction>::TEST_GetNoopDeleterForRole();
964
-
965
889
  // To align with the type of hash entry being reserved in implementation.
966
890
  using FilterConstructionReserveMemoryHash = uint64_t;
967
891
 
968
- class DBFilterConstructionReserveMemoryTestWithParam
892
+ class ChargeFilterConstructionTestWithParam
969
893
  : public DBTestBase,
970
- public testing::WithParamInterface<
971
- std::tuple<bool, std::string, bool, bool>> {
894
+ public testing::WithParamInterface<std::tuple<
895
+ CacheEntryRoleOptions::Decision, std::string, bool, bool>> {
972
896
  public:
973
- DBFilterConstructionReserveMemoryTestWithParam()
897
+ ChargeFilterConstructionTestWithParam()
974
898
  : DBTestBase("db_bloom_filter_tests",
975
899
  /*env_do_fsync=*/true),
976
900
  num_key_(0),
977
- reserve_table_builder_memory_(std::get<0>(GetParam())),
901
+ charge_filter_construction_(std::get<0>(GetParam())),
978
902
  policy_(std::get<1>(GetParam())),
979
903
  partition_filters_(std::get<2>(GetParam())),
980
904
  detect_filter_construct_corruption_(std::get<3>(GetParam())) {
981
- if (!reserve_table_builder_memory_ || policy_ == kDeprecatedBlock ||
982
- policy_ == kLegacyBloom) {
905
+ if (charge_filter_construction_ ==
906
+ CacheEntryRoleOptions::Decision::kDisabled ||
907
+ policy_ == kDeprecatedBlock || policy_ == kLegacyBloom) {
983
908
  // For these cases, we only interested in whether filter construction
984
- // cache resevation happens instead of its accuracy. Therefore we don't
909
+ // cache charging happens instead of its accuracy. Therefore we don't
985
910
  // need many keys.
986
911
  num_key_ = 5;
987
912
  } else if (partition_filters_) {
@@ -996,11 +921,11 @@ class DBFilterConstructionReserveMemoryTestWithParam
996
921
  sizeof(FilterConstructionReserveMemoryHash);
997
922
  } else if (policy_ == kFastLocalBloom) {
998
923
  // For Bloom Filter + FullFilter case, since we design the num_key_ to
999
- // make hash entry cache reservation be a multiple of dummy entries, the
924
+ // make hash entry cache charging be a multiple of dummy entries, the
1000
925
  // correct behavior of charging final filter on top of it will trigger at
1001
926
  // least another dummy entry insertion. Therefore we can assert that
1002
927
  // behavior and we don't need a large number of keys to verify we
1003
- // indeed charge the final filter for cache reservation, even though final
928
+ // indeed charge the final filter for in cache, even though final
1004
929
  // filter is a lot smaller than hash entries.
1005
930
  num_key_ = 1 *
1006
931
  CacheReservationManagerImpl<
@@ -1010,7 +935,7 @@ class DBFilterConstructionReserveMemoryTestWithParam
1010
935
  // For Ribbon Filter + FullFilter case, we need a large enough number of
1011
936
  // keys so that charging final filter after releasing the hash entries
1012
937
  // reservation will trigger at least another dummy entry (or equivalently
1013
- // to saying, causing another peak in cache reservation) as banding
938
+ // to saying, causing another peak in cache charging) as banding
1014
939
  // reservation might not be a multiple of dummy entry.
1015
940
  num_key_ = 12 *
1016
941
  CacheReservationManagerImpl<
@@ -1026,7 +951,9 @@ class DBFilterConstructionReserveMemoryTestWithParam
1026
951
  // calculation.
1027
952
  constexpr std::size_t kCacheCapacity = 100 * 1024 * 1024;
1028
953
 
1029
- table_options.reserve_table_builder_memory = reserve_table_builder_memory_;
954
+ table_options.cache_usage_options.options_overrides.insert(
955
+ {CacheEntryRole::kFilterConstruction,
956
+ {/*.charged = */ charge_filter_construction_}});
1030
957
  table_options.filter_policy = Create(10, policy_);
1031
958
  table_options.partition_filters = partition_filters_;
1032
959
  if (table_options.partition_filters) {
@@ -1044,7 +971,8 @@ class DBFilterConstructionReserveMemoryTestWithParam
1044
971
  lo.capacity = kCacheCapacity;
1045
972
  lo.num_shard_bits = 0; // 2^0 shard
1046
973
  lo.strict_capacity_limit = true;
1047
- cache_ = std::make_shared<FilterConstructResPeakTrackingCache>(
974
+ cache_ = std::make_shared<
975
+ TargetCacheChargeTrackingCache<CacheEntryRole::kFilterConstruction>>(
1048
976
  (NewLRUCache(lo)));
1049
977
  table_options.block_cache = cache_;
1050
978
 
@@ -1053,56 +981,73 @@ class DBFilterConstructionReserveMemoryTestWithParam
1053
981
 
1054
982
  std::size_t GetNumKey() { return num_key_; }
1055
983
 
1056
- bool ReserveTableBuilderMemory() { return reserve_table_builder_memory_; }
984
+ CacheEntryRoleOptions::Decision ChargeFilterConstructMemory() {
985
+ return charge_filter_construction_;
986
+ }
1057
987
 
1058
988
  std::string GetFilterPolicy() { return policy_; }
1059
989
 
1060
990
  bool PartitionFilters() { return partition_filters_; }
1061
991
 
1062
- std::shared_ptr<FilterConstructResPeakTrackingCache>
1063
- GetFilterConstructResPeakTrackingCache() {
992
+ std::shared_ptr<
993
+ TargetCacheChargeTrackingCache<CacheEntryRole::kFilterConstruction>>
994
+ GetCache() {
1064
995
  return cache_;
1065
996
  }
1066
997
 
1067
998
  private:
1068
999
  std::size_t num_key_;
1069
- bool reserve_table_builder_memory_;
1000
+ CacheEntryRoleOptions::Decision charge_filter_construction_;
1070
1001
  std::string policy_;
1071
1002
  bool partition_filters_;
1072
- std::shared_ptr<FilterConstructResPeakTrackingCache> cache_;
1003
+ std::shared_ptr<
1004
+ TargetCacheChargeTrackingCache<CacheEntryRole::kFilterConstruction>>
1005
+ cache_;
1073
1006
  bool detect_filter_construct_corruption_;
1074
1007
  };
1075
1008
 
1076
1009
  INSTANTIATE_TEST_CASE_P(
1077
- DBFilterConstructionReserveMemoryTestWithParam,
1078
- DBFilterConstructionReserveMemoryTestWithParam,
1079
- ::testing::Values(std::make_tuple(false, kFastLocalBloom, false, false),
1080
-
1081
- std::make_tuple(true, kFastLocalBloom, false, false),
1082
- std::make_tuple(true, kFastLocalBloom, false, true),
1083
- std::make_tuple(true, kFastLocalBloom, true, false),
1084
- std::make_tuple(true, kFastLocalBloom, true, true),
1085
-
1086
- std::make_tuple(true, kStandard128Ribbon, false, false),
1087
- std::make_tuple(true, kStandard128Ribbon, false, true),
1088
- std::make_tuple(true, kStandard128Ribbon, true, false),
1089
- std::make_tuple(true, kStandard128Ribbon, true, true),
1090
-
1091
- std::make_tuple(true, kDeprecatedBlock, false, false),
1092
- std::make_tuple(true, kLegacyBloom, false, false)));
1010
+ ChargeFilterConstructionTestWithParam,
1011
+ ChargeFilterConstructionTestWithParam,
1012
+ ::testing::Values(
1013
+ std::make_tuple(CacheEntryRoleOptions::Decision::kDisabled,
1014
+ kFastLocalBloom, false, false),
1015
+
1016
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1017
+ kFastLocalBloom, false, false),
1018
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1019
+ kFastLocalBloom, false, true),
1020
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1021
+ kFastLocalBloom, true, false),
1022
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1023
+ kFastLocalBloom, true, true),
1024
+
1025
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1026
+ kStandard128Ribbon, false, false),
1027
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1028
+ kStandard128Ribbon, false, true),
1029
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1030
+ kStandard128Ribbon, true, false),
1031
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1032
+ kStandard128Ribbon, true, true),
1033
+
1034
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled,
1035
+ kDeprecatedBlock, false, false),
1036
+ std::make_tuple(CacheEntryRoleOptions::Decision::kEnabled, kLegacyBloom,
1037
+ false, false)));
1093
1038
 
1094
1039
  // TODO: Speed up this test, and reduce disk space usage (~700MB)
1095
1040
  // The current test inserts many keys (on the scale of dummy entry size)
1096
1041
  // in order to make small memory user (e.g, final filter, partitioned hash
1097
1042
  // entries/filter/banding) , which is proportional to the number of
1098
- // keys, big enough so that its cache reservation triggers dummy entry insertion
1043
+ // keys, big enough so that its cache charging triggers dummy entry insertion
1099
1044
  // and becomes observable in the test.
1100
1045
  //
1101
1046
  // However, inserting that many keys slows down this test and leaves future
1102
1047
  // developers an opportunity to speed it up.
1103
1048
  //
1104
1049
  // Possible approaches & challenges:
1105
- // 1. Use sync point during cache reservation of filter construction
1050
+ // 1. Use sync point during cache charging of filter construction
1106
1051
  //
1107
1052
  // Benefit: It does not rely on triggering dummy entry insertion
1108
1053
  // but the sync point to verify small memory user is charged correctly.
@@ -1111,7 +1056,7 @@ INSTANTIATE_TEST_CASE_P(
1111
1056
  //
1112
1057
  // 2. Make dummy entry size configurable and set it small in the test
1113
1058
  //
1114
- // Benefit: It increases the precision of cache reservation and therefore
1059
+ // Benefit: It increases the precision of cache charging and therefore
1115
1060
  // small memory usage can still trigger insertion of dummy entry.
1116
1061
  //
1117
1062
  // Challenge: change CacheReservationManager related APIs and a hack
@@ -1119,16 +1064,17 @@ INSTANTIATE_TEST_CASE_P(
1119
1064
  // CacheReservationManager used in filter construction for testing
1120
1065
  // since CacheReservationManager is not exposed at the high level.
1121
1066
  //
1122
- TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1067
+ TEST_P(ChargeFilterConstructionTestWithParam, Basic) {
1123
1068
  Options options = CurrentOptions();
1124
1069
  // We set write_buffer_size big enough so that in the case where there is
1125
- // filter construction cache reservation, flush won't be triggered before we
1070
+ // filter construction cache charging, flush won't be triggered before we
1126
1071
  // manually trigger it for clean testing
1127
1072
  options.write_buffer_size = 640 << 20;
1128
1073
  BlockBasedTableOptions table_options = GetBlockBasedTableOptions();
1129
1074
  options.table_factory.reset(NewBlockBasedTableFactory(table_options));
1130
- std::shared_ptr<FilterConstructResPeakTrackingCache> cache =
1131
- GetFilterConstructResPeakTrackingCache();
1075
+ std::shared_ptr<
1076
+ TargetCacheChargeTrackingCache<CacheEntryRole::kFilterConstruction>>
1077
+ cache = GetCache();
1132
1078
  options.create_if_missing = true;
1133
1079
  // Disable auto compaction to prevent its unexpected side effect
1134
1080
  // to the number of keys per partition designed by us in the test
@@ -1139,32 +1085,33 @@ TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1139
1085
  ASSERT_OK(Put(Key(i), Key(i)));
1140
1086
  }
1141
1087
 
1142
- ASSERT_EQ(cache->GetReservedCacheIncrementSum(), 0)
1088
+ ASSERT_EQ(cache->GetChargedCacheIncrementSum(), 0)
1143
1089
  << "Flush was triggered too early in the test case with filter "
1144
- "construction cache reservation - please make sure no flush triggered "
1090
+ "construction cache charging - please make sure no flush triggered "
1145
1091
  "during the key insertions above";
1146
1092
 
1147
1093
  ASSERT_OK(Flush());
1148
1094
 
1149
- bool reserve_table_builder_memory = ReserveTableBuilderMemory();
1095
+ bool charge_filter_construction = (ChargeFilterConstructMemory() ==
1096
+ CacheEntryRoleOptions::Decision::kEnabled);
1150
1097
  std::string policy = GetFilterPolicy();
1151
1098
  bool partition_filters = PartitionFilters();
1152
1099
  bool detect_filter_construct_corruption =
1153
1100
  table_options.detect_filter_construct_corruption;
1154
1101
 
1155
1102
  std::deque<std::size_t> filter_construction_cache_res_peaks =
1156
- cache->GetReservedCachePeaks();
1103
+ cache->GetChargedCachePeaks();
1157
1104
  std::size_t filter_construction_cache_res_increments_sum =
1158
- cache->GetReservedCacheIncrementSum();
1105
+ cache->GetChargedCacheIncrementSum();
1159
1106
 
1160
- if (!reserve_table_builder_memory) {
1107
+ if (!charge_filter_construction) {
1161
1108
  EXPECT_EQ(filter_construction_cache_res_peaks.size(), 0);
1162
1109
  return;
1163
1110
  }
1164
1111
 
1165
1112
  if (policy == kDeprecatedBlock || policy == kLegacyBloom) {
1166
1113
  EXPECT_EQ(filter_construction_cache_res_peaks.size(), 0)
1167
- << "There shouldn't be filter construction cache reservation as this "
1114
+ << "There shouldn't be filter construction cache charging as this "
1168
1115
  "feature does not support kDeprecatedBlock "
1169
1116
  "nor kLegacyBloom";
1170
1117
  return;
@@ -1238,14 +1185,14 @@ TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1238
1185
  */
1239
1186
  if (!partition_filters) {
1240
1187
  EXPECT_EQ(filter_construction_cache_res_peaks.size(), 1)
1241
- << "Filter construction cache reservation should have only 1 peak in "
1188
+ << "Filter construction cache charging should have only 1 peak in "
1242
1189
  "case: kFastLocalBloom + FullFilter";
1243
1190
  std::size_t filter_construction_cache_res_peak =
1244
1191
  filter_construction_cache_res_peaks[0];
1245
1192
  EXPECT_GT(filter_construction_cache_res_peak,
1246
1193
  predicted_hash_entries_cache_res)
1247
1194
  << "The testing number of hash entries is designed to make hash "
1248
- "entries cache reservation be multiples of dummy entries"
1195
+ "entries cache charging be multiples of dummy entries"
1249
1196
  " so the correct behavior of charging final filter on top of it"
1250
1197
  " should've triggered at least another dummy entry insertion";
1251
1198
 
@@ -1258,7 +1205,7 @@ TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1258
1205
  return;
1259
1206
  } else {
1260
1207
  EXPECT_GE(filter_construction_cache_res_peaks.size(), 2)
1261
- << "Filter construction cache reservation should have multiple peaks "
1208
+ << "Filter construction cache charging should have multiple peaks "
1262
1209
  "in case: kFastLocalBloom + "
1263
1210
  "PartitionedFilter";
1264
1211
  std::size_t predicted_filter_construction_cache_res_increments_sum =
@@ -1365,11 +1312,11 @@ TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1365
1312
  CacheReservationManagerImpl<
1366
1313
  CacheEntryRole::kFilterConstruction>::GetDummyEntrySize()),
1367
1314
  1)
1368
- << "Final filter cache reservation too small for this test - please "
1315
+ << "Final filter cache charging too small for this test - please "
1369
1316
  "increase the number of keys";
1370
1317
  if (!detect_filter_construct_corruption) {
1371
1318
  EXPECT_EQ(filter_construction_cache_res_peaks.size(), 2)
1372
- << "Filter construction cache reservation should have 2 peaks in "
1319
+ << "Filter construction cache charging should have 2 peaks in "
1373
1320
  "case: kStandard128Ribbon + "
1374
1321
  "FullFilter. "
1375
1322
  "The second peak is resulted from charging the final filter "
@@ -1388,7 +1335,7 @@ TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1388
1335
  predicted_filter_construction_cache_res_peak * 1.1);
1389
1336
  } else {
1390
1337
  EXPECT_EQ(filter_construction_cache_res_peaks.size(), 1)
1391
- << "Filter construction cache reservation should have 1 peaks in "
1338
+ << "Filter construction cache charging should have 1 peaks in "
1392
1339
  "case: kStandard128Ribbon + FullFilter "
1393
1340
  "+ detect_filter_construct_corruption. "
1394
1341
  "The previous second peak now disappears since we don't "
@@ -1409,13 +1356,13 @@ TEST_P(DBFilterConstructionReserveMemoryTestWithParam, ReserveMemory) {
1409
1356
  } else {
1410
1357
  if (!detect_filter_construct_corruption) {
1411
1358
  EXPECT_GE(filter_construction_cache_res_peaks.size(), 3)
1412
- << "Filter construction cache reservation should have more than 3 "
1359
+ << "Filter construction cache charging should have more than 3 "
1413
1360
  "peaks "
1414
1361
  "in case: kStandard128Ribbon + "
1415
1362
  "PartitionedFilter";
1416
1363
  } else {
1417
1364
  EXPECT_GE(filter_construction_cache_res_peaks.size(), 2)
1418
- << "Filter construction cache reservation should have more than 2 "
1365
+ << "Filter construction cache charging should have more than 2 "
1419
1366
  "peaks "
1420
1367
  "in case: kStandard128Ribbon + "
1421
1368
  "PartitionedFilter + detect_filter_construct_corruption";
@@ -1712,11 +1659,11 @@ class TestingContextCustomFilterPolicy
1712
1659
  test_report_ +=
1713
1660
  OptionsHelper::compaction_style_to_string[context.compaction_style];
1714
1661
  test_report_ += ",n=";
1715
- test_report_ += ROCKSDB_NAMESPACE::ToString(context.num_levels);
1662
+ test_report_ += std::to_string(context.num_levels);
1716
1663
  test_report_ += ",l=";
1717
- test_report_ += ROCKSDB_NAMESPACE::ToString(context.level_at_creation);
1664
+ test_report_ += std::to_string(context.level_at_creation);
1718
1665
  test_report_ += ",b=";
1719
- test_report_ += ROCKSDB_NAMESPACE::ToString(int{context.is_bottommost});
1666
+ test_report_ += std::to_string(int{context.is_bottommost});
1720
1667
  test_report_ += ",r=";
1721
1668
  test_report_ += table_file_creation_reason_to_string[context.reason];
1722
1669
  test_report_ += "\n";