@nxtedition/rocksdb 15.4.1 → 15.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/binding.cc +24 -15
  2. package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
  3. package/deps/rocksdb/rocksdb/BUCK +42 -0
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
  5. package/deps/rocksdb/rocksdb/Makefile +59 -32
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
  7. package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
  8. package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
  9. package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
  10. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
  11. package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
  12. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
  13. package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
  14. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
  15. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
  16. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
  17. package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
  18. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
  24. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
  25. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
  26. package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
  27. package/deps/rocksdb/rocksdb/db/builder.h +7 -0
  28. package/deps/rocksdb/rocksdb/db/c.cc +373 -57
  29. package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
  51. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
  52. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
  53. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
  54. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
  55. package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
  56. package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
  57. package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
  58. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
  59. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
  60. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
  61. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
  62. package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
  63. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
  64. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
  65. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
  66. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
  71. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
  72. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
  73. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
  77. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
  78. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
  79. package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
  80. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
  81. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
  82. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
  83. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
  84. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
  85. package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
  86. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
  87. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
  88. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
  89. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
  90. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
  91. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
  92. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
  93. package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
  94. package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
  95. package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
  96. package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
  97. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
  98. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
  99. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
  100. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
  101. package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
  102. package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
  103. package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
  104. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
  105. package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
  106. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
  107. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
  108. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
  109. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
  110. package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
  111. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
  112. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
  113. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
  114. package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
  115. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
  116. package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
  117. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
  118. package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
  119. package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
  120. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
  121. package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
  122. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
  123. package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
  124. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
  125. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
  126. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
  127. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
  128. package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
  129. package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
  130. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
  131. package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
  132. package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
  133. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
  134. package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
  135. package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
  136. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
  137. package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
  138. package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
  139. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
  140. package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
  141. package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
  142. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
  143. package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
  144. package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
  145. package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
  146. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
  147. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
  148. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
  149. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
  150. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
  151. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
  152. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
  153. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
  154. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
  155. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
  156. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
  157. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
  158. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
  159. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
  160. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
  161. package/deps/rocksdb/rocksdb/env/env.cc +1 -0
  162. package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
  163. package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
  164. package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
  165. package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
  166. package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
  167. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
  168. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
  169. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
  170. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
  171. package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
  172. package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
  173. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
  174. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
  175. package/deps/rocksdb/rocksdb/folly.mk +22 -5
  176. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
  177. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
  178. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
  179. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
  180. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
  181. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
  182. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
  183. package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
  184. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
  185. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
  187. package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
  188. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
  191. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
  192. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
  193. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
  194. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
  195. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
  196. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
  197. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
  198. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
  199. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
  200. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
  201. package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
  202. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
  203. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
  204. package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
  205. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
  206. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
  207. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
  208. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
  209. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
  210. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  211. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
  212. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
  213. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
  214. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
  215. package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
  216. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
  217. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
  218. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
  219. package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
  220. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
  221. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
  222. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
  223. package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
  224. package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
  225. package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
  226. package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
  227. package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
  228. package/deps/rocksdb/rocksdb/options/options.cc +5 -1
  229. package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
  230. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
  231. package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
  232. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
  233. package/deps/rocksdb/rocksdb/port/lang.h +4 -0
  234. package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
  235. package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
  236. package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
  237. package/deps/rocksdb/rocksdb/src.mk +12 -0
  238. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
  239. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  240. package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
  241. package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
  246. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
  247. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
  248. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
  249. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
  250. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
  251. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
  252. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
  253. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
  254. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
  255. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
  256. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
  258. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
  259. package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
  260. package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
  261. package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
  262. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
  263. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
  264. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
  265. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
  266. package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
  267. package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
  268. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
  269. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
  270. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
  271. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
  272. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
  273. package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
  274. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
  275. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
  276. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
  277. package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
  278. package/deps/rocksdb/rocksdb/table/format.cc +27 -15
  279. package/deps/rocksdb/rocksdb/table/format.h +41 -15
  280. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
  281. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
  282. package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
  283. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
  284. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
  285. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
  286. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
  287. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
  288. package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
  289. package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
  290. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
  291. package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
  292. package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
  293. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
  294. package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
  295. package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
  296. package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
  297. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
  298. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
  299. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
  300. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
  301. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
  302. package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
  303. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
  304. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
  305. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
  306. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
  307. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
  308. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
  309. package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
  310. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
  311. package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
  312. package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
  313. package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
  314. package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
  315. package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
  316. package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
  317. package/deps/rocksdb/rocksdb/util/coding.h +14 -27
  318. package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
  319. package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
  320. package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
  321. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
  322. package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
  323. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
  324. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
  325. package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
  326. package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
  327. package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
  328. package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
  329. package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
  330. package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
  331. package/deps/rocksdb/rocksdb/util/math.h +3 -1
  332. package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
  333. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
  334. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
  335. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
  336. package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
  337. package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
  338. package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
  339. package/deps/rocksdb/rocksdb/util/status.cc +3 -1
  340. package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
  341. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
  342. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
  343. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
  344. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
  345. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
  346. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
  347. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
  348. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
  349. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
  350. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
  351. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
  352. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
  353. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
  354. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
  355. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
  356. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
  357. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
  358. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
  359. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
  360. package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
  361. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
  362. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
  363. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
  364. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
  365. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
  366. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
  367. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
  368. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
  369. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
  370. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
  371. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
  372. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
  373. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
  374. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
  375. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
  376. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
  377. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
  378. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
  379. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
  380. package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
  381. package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
  382. package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
  383. package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
  384. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
  385. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
  386. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
  387. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
  388. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
  389. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
  390. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
  391. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
  392. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
  393. package/deps/rocksdb/rocksdb.gyp +7 -0
  394. package/iterator.js +2 -2
  395. package/package.json +1 -1
  396. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  397. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  398. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
package/binding.cc CHANGED
@@ -20,6 +20,7 @@
20
20
 
21
21
  #include <re2/re2.h>
22
22
 
23
+ #include <cmath>
23
24
  #include <iostream>
24
25
  #include <memory>
25
26
  #include <optional>
@@ -601,6 +602,7 @@ class Iterator final : public BaseIterator {
601
602
  std::vector<rocksdb::PinnableSlice> values;
602
603
  size_t count = 0;
603
604
  bool finished = false;
605
+ bool limited = false;
604
606
  };
605
607
 
606
608
  napi_value resourceName;
@@ -615,8 +617,9 @@ class Iterator final : public BaseIterator {
615
617
  const auto deadline = timeout ? database_->db->GetEnv()->NowMicros() + timeout * 1000 : 0;
616
618
 
617
619
  size_t bytesRead = 0;
618
- while (state.count < count) {
619
- if (bytesRead > highWaterMarkBytes_) {
620
+ while (true) {
621
+ if (state.count >= count || bytesRead > highWaterMarkBytes_) {
622
+ state.limited = true;
620
623
  break;
621
624
  }
622
625
 
@@ -675,6 +678,9 @@ class Iterator final : public BaseIterator {
675
678
  napi_value finished;
676
679
  NAPI_STATUS_RETURN(napi_get_boolean(env, state.finished, &finished));
677
680
 
681
+ napi_value limited;
682
+ NAPI_STATUS_RETURN(napi_get_boolean(env, state.limited, &limited));
683
+
678
684
  napi_value rows;
679
685
  NAPI_STATUS_RETURN(napi_create_array(env, &rows));
680
686
 
@@ -702,6 +708,7 @@ class Iterator final : public BaseIterator {
702
708
  NAPI_STATUS_RETURN(napi_create_object(env, result));
703
709
  NAPI_STATUS_RETURN(napi_set_named_property(env, *result, "rows", rows));
704
710
  NAPI_STATUS_RETURN(napi_set_named_property(env, *result, "finished", finished));
711
+ NAPI_STATUS_RETURN(napi_set_named_property(env, *result, "limited", limited));
705
712
 
706
713
  return napi_ok;
707
714
  }));
@@ -713,6 +720,9 @@ class Iterator final : public BaseIterator {
713
720
  napi_value finished;
714
721
  NAPI_STATUS_THROWS(napi_get_boolean(env, false, &finished));
715
722
 
723
+ napi_value limited;
724
+ NAPI_STATUS_THROWS(napi_get_boolean(env, false, &limited));
725
+
716
726
  napi_value rows;
717
727
  NAPI_STATUS_THROWS(napi_create_array(env, &rows));
718
728
 
@@ -720,8 +730,9 @@ class Iterator final : public BaseIterator {
720
730
 
721
731
  size_t idx = 0;
722
732
  size_t bytesRead = 0;
723
- while (idx < count * 2) {
724
- if (bytesRead > highWaterMarkBytes_) {
733
+ while (true) {
734
+ if (idx >= count * 2 || bytesRead > highWaterMarkBytes_) {
735
+ NAPI_STATUS_THROWS(napi_get_boolean(env, true, &limited));
725
736
  break;
726
737
  }
727
738
 
@@ -776,6 +787,7 @@ class Iterator final : public BaseIterator {
776
787
  NAPI_STATUS_THROWS(napi_create_object(env, &ret));
777
788
  NAPI_STATUS_THROWS(napi_set_named_property(env, ret, "rows", rows));
778
789
  NAPI_STATUS_THROWS(napi_set_named_property(env, ret, "finished", finished));
790
+ NAPI_STATUS_THROWS(napi_set_named_property(env, ret, "limited", limited));
779
791
  return ret;
780
792
  }
781
793
  };
@@ -1203,7 +1215,7 @@ napi_status InitOptions(napi_env env, T& columnOptions, const U& options) {
1203
1215
  GetProperty(env, options, "cacheIndexAndFilterBlocks", tableOptions.cache_index_and_filter_blocks));
1204
1216
  NAPI_STATUS_RETURN(GetProperty(env, options, "cacheIndexAndFilterBlocksWithHighPriority",
1205
1217
  tableOptions.cache_index_and_filter_blocks_with_high_priority));
1206
- NAPI_STATUS_RETURN(GetProperty(env, options, "decouplePartitionedFilters", tableOptions.block_restart_interval));
1218
+ NAPI_STATUS_RETURN(GetProperty(env, options, "decouplePartitionedFilters", tableOptions.decouple_partitioned_filters));
1207
1219
  NAPI_STATUS_RETURN(GetProperty(env, options, "optimizeFiltersForMemory", tableOptions.optimize_filters_for_memory));
1208
1220
  NAPI_STATUS_RETURN(GetProperty(env, options, "maxAutoReadaheadSize", tableOptions.max_auto_readahead_size));
1209
1221
  NAPI_STATUS_RETURN(GetProperty(env, options, "initialAutoReadaheadSize", tableOptions.initial_auto_readahead_size));
@@ -1258,11 +1270,11 @@ NAPI_METHOD(db_open) {
1258
1270
 
1259
1271
  uint32_t walTTL = 0;
1260
1272
  NAPI_STATUS_THROWS(GetProperty(env, options, "walTTL", walTTL));
1261
- dbOptions.WAL_ttl_seconds = walTTL / 1e3;
1273
+ dbOptions.WAL_ttl_seconds = static_cast<uint32_t>(std::ceil(walTTL / 1e3));
1262
1274
 
1263
1275
  uint32_t walSizeLimit = 0;
1264
1276
  NAPI_STATUS_THROWS(GetProperty(env, options, "walSizeLimit", walSizeLimit));
1265
- dbOptions.WAL_size_limit_MB = walSizeLimit / 1e6;
1277
+ dbOptions.WAL_size_limit_MB = static_cast<uint32_t>(std::ceil(walSizeLimit / 1e6));
1266
1278
 
1267
1279
  NAPI_STATUS_THROWS(GetProperty(env, options, "maxTotalWalSize", dbOptions.max_total_wal_size));
1268
1280
 
@@ -1392,13 +1404,10 @@ NAPI_METHOD(db_open) {
1392
1404
  [=](auto& handles) {
1393
1405
  assert(!database->db);
1394
1406
 
1395
- rocksdb::DB* db = nullptr;
1396
-
1397
- const auto status = descriptors.empty()
1398
- ? rocksdb::DB::Open(dbOptions, database->location, &db)
1399
- : rocksdb::DB::Open(dbOptions, database->location, descriptors, &handles, &db);
1400
-
1401
- database->db.reset(db);
1407
+ const auto status =
1408
+ descriptors.empty()
1409
+ ? rocksdb::DB::Open(dbOptions, database->location, &database->db)
1410
+ : rocksdb::DB::Open(dbOptions, database->location, descriptors, &handles, &database->db);
1402
1411
 
1403
1412
  return status;
1404
1413
  },
@@ -1907,7 +1916,7 @@ NAPI_METHOD(batch_put) {
1907
1916
  }
1908
1917
 
1909
1918
  NAPI_METHOD(batch_put_log_data) {
1910
- NAPI_ARGV(3);
1919
+ NAPI_ARGV(2);
1911
1920
 
1912
1921
  rocksdb::WriteBatch* batch;
1913
1922
  NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&batch)));
@@ -0,0 +1,86 @@
1
+ # When making changes, verify the output of:
2
+ # clang-tidy -list-checks
3
+ ---
4
+ Checks: "-*,\
5
+ bugprone-argument-comment,\
6
+ bugprone-dangling-handle,\
7
+ bugprone-fold-init-type,\
8
+ bugprone-forward-declaration-namespace,\
9
+ bugprone-forwarding-reference-overload,\
10
+ bugprone-shadow,\
11
+ bugprone-sizeof-*,\
12
+ bugprone-string-constructor,\
13
+ bugprone-undefined-memory-manipulation,\
14
+ bugprone-unused-return-value,\
15
+ bugprone-use-after-move,\
16
+ cert-env33-c,\
17
+ cert-err58-cpp,\
18
+ cert-msc30-c,\
19
+ cert-msc50-cpp,\
20
+ clang-analyzer-*,\
21
+ clang-diagnostic-*,\
22
+ -clang-diagnostic-missing-designated-field-initializers,\
23
+ concurrency-mt-unsafe,\
24
+ cppcoreguidelines-avoid-non-const-global-variables,\
25
+ cppcoreguidelines-missing-std-forward,\
26
+ cppcoreguidelines-pro-type-member-init,\
27
+ cppcoreguidelines-special-member-functions,\
28
+ cppcoreguidelines-virtual-class-destructor,\
29
+ google-build-using-namespace,\
30
+ google-explicit-constructor,\
31
+ google-readability-avoid-underscore-in-googletest-name,\
32
+ misc-definitions-in-headers,\
33
+ misc-redundant-expression,\
34
+ modernize-make-shared,\
35
+ modernize-use-emplace,\
36
+ modernize-use-noexcept,\
37
+ modernize-use-override,\
38
+ modernize-use-using,\
39
+ performance-faster-string-find,\
40
+ performance-for-range-copy,\
41
+ performance-implicit-conversion-in-loop,\
42
+ performance-inefficient-algorithm,\
43
+ performance-inefficient-string-concatenation,\
44
+ performance-inefficient-vector-operation,\
45
+ performance-move-const-arg,\
46
+ performance-move-constructor-init,\
47
+ performance-no-automatic-move,\
48
+ performance-no-int-to-ptr,\
49
+ performance-noexcept-move-constructor,\
50
+ performance-noexcept-swap,\
51
+ performance-trivially-destructible,\
52
+ performance-type-promotion-in-math-fn,\
53
+ performance-unnecessary-copy-initialization,\
54
+ performance-unnecessary-value-param,\
55
+ readability-braces-around-statements,\
56
+ readability-duplicate-include,\
57
+ readability-isolate-declaration,\
58
+ readability-operators-representation,\
59
+ readability-redundant-string-init"
60
+
61
+ WarningsAsErrors: "bugprone-use-after-move"
62
+
63
+ CheckOptions:
64
+ - key: bugprone-easily-swappable-parameters.MinimumLength
65
+ value: 4
66
+ - key: cppcoreguidelines-avoid-non-const-global-variables.AllowThreadLocal
67
+ value: true
68
+ - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
69
+ value: true
70
+ - key: cppcoreguidelines-special-member-functions.AllowImplicitlyDeletedCopyOrMove
71
+ value: true
72
+ - key: modernize-use-using.IgnoreExternC
73
+ value: true
74
+ - key: performance-move-const-arg.CheckTriviallyCopyableMove
75
+ value: false
76
+ - key: performance-unnecessary-value-param.AllowedTypes
77
+ value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$'
78
+ - key: performance-unnecessary-copy-initialization.AllowedTypes
79
+ value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$'
80
+ - key: readability-operators-representation.BinaryOperators
81
+ value: '&&;&=;&;|;~;!;!=;||;|=;^;^='
82
+ - key: readability-redundant-string-init.StringNames
83
+ value: '::std::basic_string'
84
+ - key: readability-named-parameter.InsertPlainNamesInForwardDecls
85
+ value: true
86
+ ...
@@ -106,6 +106,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
106
106
  "db/version_edit.cc",
107
107
  "db/version_edit_handler.cc",
108
108
  "db/version_set.cc",
109
+ "db/version_util.cc",
109
110
  "db/wal_edit.cc",
110
111
  "db/wal_manager.cc",
111
112
  "db/wide/wide_column_serialization.cc",
@@ -207,6 +208,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
207
208
  "table/block_based/hash_index_reader.cc",
208
209
  "table/block_based/index_builder.cc",
209
210
  "table/block_based/index_reader_common.cc",
211
+ "table/block_based/multi_scan_index_iterator.cc",
210
212
  "table/block_based/parsed_full_filter_block.cc",
211
213
  "table/block_based/partitioned_filter_block.cc",
212
214
  "table/block_based/partitioned_index_iterator.cc",
@@ -268,6 +270,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
268
270
  "util/dynamic_bloom.cc",
269
271
  "util/file_checksum_helper.cc",
270
272
  "util/hash.cc",
273
+ "util/io_dispatcher_imp.cc",
271
274
  "util/murmurhash.cc",
272
275
  "util/random.cc",
273
276
  "util/rate_limiter.cc",
@@ -361,6 +364,9 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
361
364
  "utilities/transactions/write_prepared_txn_db.cc",
362
365
  "utilities/transactions/write_unprepared_txn.cc",
363
366
  "utilities/transactions/write_unprepared_txn_db.cc",
367
+ "utilities/trie_index/bitvector.cc",
368
+ "utilities/trie_index/louds_trie.cc",
369
+ "utilities/trie_index/trie_index_factory.cc",
364
370
  "utilities/ttl/db_ttl_impl.cc",
365
371
  "utilities/types_util.cc",
366
372
  "utilities/wal_filter.cc",
@@ -4822,6 +4828,12 @@ cpp_unittest_wrapper(name="db_clip_test",
4822
4828
  extra_compiler_flags=[])
4823
4829
 
4824
4830
 
4831
+ cpp_unittest_wrapper(name="db_compaction_abort_test",
4832
+ srcs=["db/db_compaction_abort_test.cc"],
4833
+ deps=[":rocksdb_test_lib"],
4834
+ extra_compiler_flags=[])
4835
+
4836
+
4825
4837
  cpp_unittest_wrapper(name="db_compaction_filter_test",
4826
4838
  srcs=["db/db_compaction_filter_test.cc"],
4827
4839
  deps=[":rocksdb_test_lib"],
@@ -5130,6 +5142,12 @@ cpp_unittest_wrapper(name="faiss_ivf_index_test",
5130
5142
  extra_compiler_flags=[])
5131
5143
 
5132
5144
 
5145
+ cpp_unittest_wrapper(name="fault_injection_fs_test",
5146
+ srcs=["utilities/fault_injection_fs_test.cc"],
5147
+ deps=[":rocksdb_test_lib"],
5148
+ extra_compiler_flags=[])
5149
+
5150
+
5133
5151
  cpp_unittest_wrapper(name="fault_injection_test",
5134
5152
  srcs=["db/fault_injection_test.cc"],
5135
5153
  deps=[":rocksdb_test_lib"],
@@ -5214,6 +5232,12 @@ cpp_unittest_wrapper(name="interval_test",
5214
5232
  extra_compiler_flags=[])
5215
5233
 
5216
5234
 
5235
+ cpp_unittest_wrapper(name="io_dispatcher_test",
5236
+ srcs=["util/io_dispatcher_test.cc"],
5237
+ deps=[":rocksdb_test_lib"],
5238
+ extra_compiler_flags=[])
5239
+
5240
+
5217
5241
  cpp_unittest_wrapper(name="io_posix_test",
5218
5242
  srcs=["env/io_posix_test.cc"],
5219
5243
  deps=[":rocksdb_test_lib"],
@@ -5610,6 +5634,18 @@ cpp_unittest_wrapper(name="transaction_test",
5610
5634
  extra_compiler_flags=[])
5611
5635
 
5612
5636
 
5637
+ cpp_unittest_wrapper(name="trie_index_db_test",
5638
+ srcs=["utilities/trie_index/trie_index_db_test.cc"],
5639
+ deps=[":rocksdb_test_lib"],
5640
+ extra_compiler_flags=[])
5641
+
5642
+
5643
+ cpp_unittest_wrapper(name="trie_index_test",
5644
+ srcs=["utilities/trie_index/trie_index_test.cc"],
5645
+ deps=[":rocksdb_test_lib"],
5646
+ extra_compiler_flags=[])
5647
+
5648
+
5613
5649
  cpp_unittest_wrapper(name="ttl_test",
5614
5650
  srcs=["utilities/ttl/ttl_test.cc"],
5615
5651
  deps=[":rocksdb_test_lib"],
@@ -5712,6 +5748,12 @@ cpp_unittest_wrapper(name="write_controller_test",
5712
5748
  extra_compiler_flags=[])
5713
5749
 
5714
5750
 
5751
+ cpp_unittest_wrapper(name="write_prepared_transaction_seqno_test",
5752
+ srcs=["utilities/transactions/write_prepared_transaction_seqno_test.cc"],
5753
+ deps=[":rocksdb_test_lib"],
5754
+ extra_compiler_flags=[])
5755
+
5756
+
5715
5757
  cpp_unittest_wrapper(name="write_prepared_transaction_test",
5716
5758
  srcs=["utilities/transactions/write_prepared_transaction_test.cc"],
5717
5759
  deps=[":rocksdb_test_lib"],
@@ -766,6 +766,7 @@ set(SOURCES
766
766
  db/version_edit.cc
767
767
  db/version_edit_handler.cc
768
768
  db/version_set.cc
769
+ db/version_util.cc
769
770
  db/wal_edit.cc
770
771
  db/wal_manager.cc
771
772
  db/wide/wide_column_serialization.cc
@@ -842,6 +843,7 @@ set(SOURCES
842
843
  table/block_based/block_based_table_builder.cc
843
844
  table/block_based/block_based_table_factory.cc
844
845
  table/block_based/block_based_table_iterator.cc
846
+ table/block_based/multi_scan_index_iterator.cc
845
847
  table/block_based/block_based_table_reader.cc
846
848
  table/block_based/block_builder.cc
847
849
  table/block_based/block_cache.cc
@@ -918,6 +920,7 @@ set(SOURCES
918
920
  util/data_structure.cc
919
921
  util/dynamic_bloom.cc
920
922
  util/hash.cc
923
+ util/io_dispatcher_imp.cc
921
924
  util/murmurhash.cc
922
925
  util/random.cc
923
926
  util/rate_limiter.cc
@@ -998,6 +1001,9 @@ set(SOURCES
998
1001
  utilities/transactions/write_prepared_txn_db.cc
999
1002
  utilities/transactions/write_unprepared_txn.cc
1000
1003
  utilities/transactions/write_unprepared_txn_db.cc
1004
+ utilities/trie_index/bitvector.cc
1005
+ utilities/trie_index/louds_trie.cc
1006
+ utilities/trie_index/trie_index_factory.cc
1001
1007
  utilities/types_util.cc
1002
1008
  utilities/ttl/db_ttl_impl.cc
1003
1009
  utilities/wal_filter.cc
@@ -1381,6 +1387,7 @@ if(WITH_TESTS)
1381
1387
  db/db_bloom_filter_test.cc
1382
1388
  db/db_compaction_filter_test.cc
1383
1389
  db/db_compaction_test.cc
1390
+ db/db_compaction_abort_test.cc
1384
1391
  db/db_clip_test.cc
1385
1392
  db/db_dynamic_level_test.cc
1386
1393
  db/db_encryption_test.cc
@@ -1529,6 +1536,7 @@ if(WITH_TESTS)
1529
1536
  utilities/cassandra/cassandra_serialize_test.cc
1530
1537
  utilities/checkpoint/checkpoint_test.cc
1531
1538
  utilities/env_timed_test.cc
1539
+ utilities/fault_injection_fs_test.cc
1532
1540
  utilities/memory/memory_test.cc
1533
1541
  utilities/merge_operators/string_append/stringappend_test.cc
1534
1542
  utilities/object_registry_test.cc
@@ -1546,9 +1554,12 @@ if(WITH_TESTS)
1546
1554
  utilities/transactions/lock/point/point_lock_manager_stress_test.cc
1547
1555
  utilities/transactions/write_committed_transaction_ts_test.cc
1548
1556
  utilities/transactions/write_prepared_transaction_test.cc
1557
+ utilities/transactions/write_prepared_transaction_seqno_test.cc
1549
1558
  utilities/transactions/write_unprepared_transaction_test.cc
1550
1559
  utilities/transactions/lock/range/range_locking_test.cc
1551
1560
  utilities/transactions/timestamped_snapshot_test.cc
1561
+ utilities/trie_index/trie_index_db_test.cc
1562
+ utilities/trie_index/trie_index_test.cc
1552
1563
  utilities/ttl/ttl_test.cc
1553
1564
  utilities/types_util_test.cc
1554
1565
  utilities/util_merge_operators_test.cc
@@ -390,8 +390,6 @@ ifdef COMPILE_WITH_TSAN
390
390
  # Turn off -pg when enabling TSAN testing, because that induces
391
391
  # a link failure. TODO: find the root cause
392
392
  PROFILING_FLAGS =
393
- # LUA is not supported under TSAN
394
- LUA_PATH =
395
393
  # Limit keys for crash test under TSAN to avoid error:
396
394
  # "ThreadSanitizer: DenseSlabAllocator overflow. Dying."
397
395
  CRASH_TEST_EXT_ARGS += --max_key=1000000
@@ -508,32 +506,6 @@ ifndef DISABLE_WARNING_AS_ERROR
508
506
  endif
509
507
 
510
508
 
511
- ifdef LUA_PATH
512
-
513
- ifndef LUA_INCLUDE
514
- LUA_INCLUDE=$(LUA_PATH)/include
515
- endif
516
-
517
- LUA_INCLUDE_FILE=$(LUA_INCLUDE)/lualib.h
518
-
519
- ifeq ("$(wildcard $(LUA_INCLUDE_FILE))", "")
520
- # LUA_INCLUDE_FILE does not exist
521
- $(error Cannot find lualib.h under $(LUA_INCLUDE). Try to specify both LUA_PATH and LUA_INCLUDE manually)
522
- endif
523
- LUA_FLAGS = -I$(LUA_INCLUDE) -DLUA -DLUA_COMPAT_ALL
524
- CFLAGS += $(LUA_FLAGS)
525
- CXXFLAGS += $(LUA_FLAGS)
526
-
527
- ifndef LUA_LIB
528
- LUA_LIB = $(LUA_PATH)/lib/liblua.a
529
- endif
530
- ifeq ("$(wildcard $(LUA_LIB))", "") # LUA_LIB does not exist
531
- $(error $(LUA_LIB) does not exist. Try to specify both LUA_PATH and LUA_LIB manually)
532
- endif
533
- EXEC_LDFLAGS += $(LUA_LIB)
534
-
535
- endif
536
-
537
509
  ifeq ($(NO_THREEWAY_CRC32C), 1)
538
510
  CXXFLAGS += -DNO_THREEWAY_CRC32C
539
511
  endif
@@ -604,8 +576,8 @@ ifneq ($(filter check-headers, $(MAKECMDGOALS)),)
604
576
  # TODO: add/support JNI headers
605
577
  DEV_HEADER_DIRS := $(sort include/ $(dir $(ALL_SOURCES)))
606
578
  # Some headers like in port/ are platform-specific
607
- DEV_HEADERS_TO_CHECK := $(shell $(FIND) $(DEV_HEADER_DIRS) -type f -name '*.h' | grep -E -v 'port/|plugin/|lua/|range_tree/|secondary_index/')
608
- PUBLIC_HEADERS_TO_CHECK := $(shell $(FIND) include/ -type f -name '*.h' | grep -E -v 'lua/')
579
+ DEV_HEADERS_TO_CHECK := $(shell $(FIND) $(DEV_HEADER_DIRS) -type f -name '*.h' | grep -E -v 'port/|plugin/|range_tree/|secondary_index/')
580
+ PUBLIC_HEADERS_TO_CHECK := $(shell $(FIND) include/ -type f -name '*.h')
609
581
  else
610
582
  DEV_HEADERS_TO_CHECK :=
611
583
  PUBLIC_HEADERS_TO_CHECK :=
@@ -655,11 +627,22 @@ ROCKSDBTESTS_SUBSET ?= $(TESTS)
655
627
  # its various tests. Parallel can fill up your /dev/shm
656
628
  # db_bloom_filter_test - serial because excessive space usage by instances
657
629
  # of DBFilterConstructionReserveMemoryTestWithParam can fill up /dev/shm
630
+ # perf_context_test - 1GB write_buffer_size default, parallel can fill /dev/shm
631
+ # obsolete_files_test - ~1GB write_buffer_size/target_file_size_base
632
+ # backup_engine_test - 1GB write_buffer_size in FailOverwritingBackups
633
+ # prefetch_test - 1GB write_buffer_size in PrefetchWhenReseek parameterized test
634
+ # db_io_failure_test - 256MB write_buffer_size in FlushSstRangeSyncError and
635
+ # CompactionSstRangeSyncError
658
636
  NON_PARALLEL_TEST = \
659
637
  c_test \
660
638
  env_test \
661
639
  deletefile_test \
662
640
  db_bloom_filter_test \
641
+ perf_context_test \
642
+ obsolete_files_test \
643
+ backup_engine_test \
644
+ prefetch_test \
645
+ db_io_failure_test \
663
646
  $(PLUGIN_TESTS) \
664
647
 
665
648
  PARALLEL_TEST = $(filter-out $(NON_PARALLEL_TEST), $(TESTS))
@@ -833,7 +816,7 @@ endif # PLATFORM_SHARED_EXT
833
816
  .PHONY: check clean coverage ldb_tests package dbg gen-pc build_size \
834
817
  release tags tags0 valgrind_check format static_lib shared_lib all \
835
818
  rocksdbjavastatic rocksdbjava install install-static install-shared \
836
- uninstall analyze tools tools_lib check-headers checkout_folly
819
+ uninstall analyze tools tools_lib check-headers checkout_folly clang-tidy
837
820
 
838
821
  all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(TESTS)
839
822
 
@@ -912,6 +895,9 @@ $(parallel_tests):
912
895
  "d=\$(TEST_TMPDIR)$$TEST_SCRIPT" \
913
896
  'mkdir -p $$d' \
914
897
  "TEST_TMPDIR=\$$d $(DRIVER) ./$$TEST_BINARY --gtest_filter=$$TEST_NAME" \
898
+ 'test_retcode=$$?' \
899
+ '[ $$test_retcode -eq 0 ] && rm -rf $$d' \
900
+ 'exit $$test_retcode' \
915
901
  > $$TEST_SCRIPT; \
916
902
  chmod a=rx $$TEST_SCRIPT; \
917
903
  done
@@ -1021,9 +1007,19 @@ watch-log:
1021
1007
  dump-log:
1022
1008
  bash -c '$(quoted_perl_command)' < LOG
1023
1009
 
1010
+ # Machine-parseable progress output for automated monitoring (e.g., Claude Code)
1011
+ # Outputs JSON: {"status":"running","completed":45,"total":100,"failed":0,"percent":45,"eta_seconds":120}
1012
+ check-progress:
1013
+ @build_tools/check_progress.sh
1014
+
1024
1015
  # If J != 1 and GNU parallel is installed, run the tests in parallel,
1025
1016
  # via the check_0 rule above. Otherwise, run them sequentially.
1026
1017
  check: all
1018
+ $(AM_V_at)echo "Cleaning up stale test directories older than 3 hours..."; \
1019
+ test_tmpdir_parent=$$(dirname $(TEST_TMPDIR)); \
1020
+ find $$test_tmpdir_parent -maxdepth 1 -name 'rocksdb.*' -type d \
1021
+ -mmin +180 -exec rm -rf {} + 2>/dev/null; \
1022
+ true
1027
1023
  $(MAKE) gen_parallel_tests
1028
1024
  $(AM_V_GEN)if test "$(J)" != 1 \
1029
1025
  && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
@@ -1232,6 +1228,10 @@ tags0:
1232
1228
  format:
1233
1229
  build_tools/format-diff.sh
1234
1230
 
1231
+ # Non-interactive format (auto-apply without prompts, for CI/automation/Claude Code)
1232
+ format-auto:
1233
+ build_tools/format-diff.sh -y
1234
+
1235
1235
  check-format:
1236
1236
  build_tools/format-diff.sh -c
1237
1237
 
@@ -1241,6 +1241,15 @@ check-buck-targets:
1241
1241
  check-sources:
1242
1242
  build_tools/check-sources.sh
1243
1243
 
1244
+ # Run clang-tidy on locally changed files, filtered to changed lines only.
1245
+ # Requires compile_commands.json (generate with cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON).
1246
+ # Override CLANG_TIDY_BINARY and CLANG_TIDY_JOBS as needed:
1247
+ # make clang-tidy CLANG_TIDY_BINARY=/usr/bin/clang-tidy CLANG_TIDY_JOBS=8
1248
+ CLANG_TIDY_BINARY ?= /opt/homebrew/opt/llvm/bin/clang-tidy
1249
+ CLANG_TIDY_JOBS ?= $(shell nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
1250
+ clang-tidy:
1251
+ python3 tools/run_clang_tidy.py --clang-tidy-binary $(CLANG_TIDY_BINARY) -j $(CLANG_TIDY_JOBS)
1252
+
1244
1253
  package:
1245
1254
  bash build_tools/make_package.sh $(SHARED_MAJOR).$(SHARED_MINOR)
1246
1255
 
@@ -1470,6 +1479,9 @@ db_compaction_filter_test: $(OBJ_DIR)/db/db_compaction_filter_test.o $(TEST_LIBR
1470
1479
  db_compaction_test: $(OBJ_DIR)/db/db_compaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1471
1480
  $(AM_LINK)
1472
1481
 
1482
+ db_compaction_abort_test: $(OBJ_DIR)/db/db_compaction_abort_test.o $(TEST_LIBRARY) $(LIBRARY)
1483
+ $(AM_LINK)
1484
+
1473
1485
  db_clip_test: $(OBJ_DIR)/db/db_clip_test.o $(TEST_LIBRARY) $(LIBRARY)
1474
1486
  $(AM_LINK)
1475
1487
 
@@ -1596,6 +1608,12 @@ object_registry_test: $(OBJ_DIR)/utilities/object_registry_test.o $(TEST_LIBRARY
1596
1608
  ttl_test: $(OBJ_DIR)/utilities/ttl/ttl_test.o $(TEST_LIBRARY) $(LIBRARY)
1597
1609
  $(AM_LINK)
1598
1610
 
1611
+ trie_index_db_test: $(OBJ_DIR)/utilities/trie_index/trie_index_db_test.o $(TEST_LIBRARY) $(LIBRARY)
1612
+ $(AM_LINK)
1613
+
1614
+ trie_index_test: $(OBJ_DIR)/utilities/trie_index/trie_index_test.o $(TEST_LIBRARY) $(LIBRARY)
1615
+ $(AM_LINK)
1616
+
1599
1617
  types_util_test: $(OBJ_DIR)/utilities/types_util_test.o $(TEST_LIBRARY) $(LIBRARY)
1600
1618
  $(AM_LINK)
1601
1619
 
@@ -1647,6 +1665,9 @@ io_posix_test: $(OBJ_DIR)/env/io_posix_test.o $(TEST_LIBRARY) $(LIBRARY)
1647
1665
  fault_injection_test: $(OBJ_DIR)/db/fault_injection_test.o $(TEST_LIBRARY) $(LIBRARY)
1648
1666
  $(AM_LINK)
1649
1667
 
1668
+ fault_injection_fs_test: $(OBJ_DIR)/utilities/fault_injection_fs_test.o $(TEST_LIBRARY) $(LIBRARY)
1669
+ $(AM_LINK)
1670
+
1650
1671
  rate_limiter_test: $(OBJ_DIR)/util/rate_limiter_test.o $(TEST_LIBRARY) $(LIBRARY)
1651
1672
  $(AM_LINK)
1652
1673
 
@@ -1845,6 +1866,9 @@ write_committed_transaction_ts_test: $(OBJ_DIR)/utilities/transactions/write_com
1845
1866
  write_prepared_transaction_test: $(OBJ_DIR)/utilities/transactions/write_prepared_transaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1846
1867
  $(AM_LINK)
1847
1868
 
1869
+ write_prepared_transaction_seqno_test: $(OBJ_DIR)/utilities/transactions/write_prepared_transaction_seqno_test.o $(TEST_LIBRARY) $(LIBRARY)
1870
+ $(AM_LINK)
1871
+
1848
1872
  write_unprepared_transaction_test: $(OBJ_DIR)/utilities/transactions/write_unprepared_transaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1849
1873
  $(AM_LINK)
1850
1874
 
@@ -1950,6 +1974,9 @@ blob_source_test: $(OBJ_DIR)/db/blob/blob_source_test.o $(TEST_LIBRARY) $(LIBRAR
1950
1974
  blob_garbage_meter_test: $(OBJ_DIR)/db/blob/blob_garbage_meter_test.o $(TEST_LIBRARY) $(LIBRARY)
1951
1975
  $(AM_LINK)
1952
1976
 
1977
+ io_dispatcher_test: $(OBJ_DIR)/util/io_dispatcher_test.o $(TEST_LIBRARY) $(LIBRARY)
1978
+ $(AM_LINK)
1979
+
1953
1980
  timer_test: $(OBJ_DIR)/util/timer_test.o $(TEST_LIBRARY) $(LIBRARY)
1954
1981
  $(AM_LINK)
1955
1982
 
@@ -2562,7 +2589,7 @@ list_all_tests:
2562
2589
 
2563
2590
  # Remove the rules for which dependencies should not be generated and see if any are left.
2564
2591
  #If so, include the dependencies; if not, do not include the dependency files
2565
- ROCKS_DEP_RULES=$(filter-out clean format check-format check-buck-targets check-headers check-sources jclean jtest package analyze tags rocksdbjavastatic% unity.% unity_test checkout_folly, $(MAKECMDGOALS))
2592
+ ROCKS_DEP_RULES=$(filter-out clean format check-format check-buck-targets check-headers check-sources clang-tidy jclean jtest package analyze tags rocksdbjavastatic% unity.% unity_test checkout_folly, $(MAKECMDGOALS))
2566
2593
  ifneq ("$(ROCKS_DEP_RULES)", "")
2567
2594
  -include $(DEPFILES)
2568
2595
  endif
@@ -54,11 +54,6 @@ static std::unordered_map<std::string, OptionTypeInfo>
54
54
  {offsetof(struct CompressedSecondaryCacheOptions, compression_type),
55
55
  OptionType::kCompressionType, OptionVerificationType::kNormal,
56
56
  OptionTypeFlags::kMutable}},
57
- {"compress_format_version",
58
- {offsetof(struct CompressedSecondaryCacheOptions,
59
- compress_format_version),
60
- OptionType::kUInt32T, OptionVerificationType::kNormal,
61
- OptionTypeFlags::kMutable}},
62
57
  {"enable_custom_split_merge",
63
58
  {offsetof(struct CompressedSecondaryCacheOptions,
64
59
  enable_custom_split_merge),
@@ -101,23 +101,23 @@ class CacheEntryStatsCollector {
101
101
  }
102
102
 
103
103
  // Gets saved stats, regardless of age
104
- void GetStats(Stats *stats) {
104
+ void GetStats(Stats* stats) {
105
105
  std::lock_guard<std::mutex> lock(saved_mutex_);
106
106
  *stats = saved_stats_;
107
107
  }
108
108
 
109
- Cache *GetCache() const { return cache_; }
109
+ Cache* GetCache() const { return cache_; }
110
110
 
111
111
  // Gets or creates a shared instance of CacheEntryStatsCollector in the
112
112
  // cache itself, and saves into `ptr`. This shared_ptr will hold the
113
113
  // entry in cache until all refs are destroyed.
114
- static Status GetShared(Cache *raw_cache, SystemClock *clock,
115
- std::shared_ptr<CacheEntryStatsCollector> *ptr) {
114
+ static Status GetShared(Cache* raw_cache, SystemClock* clock,
115
+ std::shared_ptr<CacheEntryStatsCollector>* ptr) {
116
116
  assert(raw_cache);
117
117
  BasicTypedCacheInterface<CacheEntryStatsCollector, CacheEntryRole::kMisc>
118
118
  cache{raw_cache};
119
119
 
120
- const Slice &cache_key = GetCacheKey();
120
+ const Slice& cache_key = GetCacheKey();
121
121
  auto h = cache.Lookup(cache_key);
122
122
  if (h == nullptr) {
123
123
  // Not yet in cache, but Cache doesn't provide a built-in way to
@@ -152,7 +152,7 @@ class CacheEntryStatsCollector {
152
152
  }
153
153
 
154
154
  private:
155
- explicit CacheEntryStatsCollector(Cache *cache, SystemClock *clock)
155
+ explicit CacheEntryStatsCollector(Cache* cache, SystemClock* clock)
156
156
  : saved_stats_(),
157
157
  working_stats_(),
158
158
  last_start_time_micros_(0),
@@ -160,7 +160,7 @@ class CacheEntryStatsCollector {
160
160
  cache_(cache),
161
161
  clock_(clock) {}
162
162
 
163
- static const Slice &GetCacheKey() {
163
+ static const Slice& GetCacheKey() {
164
164
  // For each template instantiation
165
165
  static CacheKey ckey = CacheKey::CreateUniqueForProcessLifetime();
166
166
  static Slice ckey_slice = ckey.AsSlice();
@@ -175,8 +175,8 @@ class CacheEntryStatsCollector {
175
175
  uint64_t last_start_time_micros_;
176
176
  uint64_t last_end_time_micros_;
177
177
 
178
- Cache *const cache_;
179
- SystemClock *const clock_;
178
+ Cache* const cache_;
179
+ SystemClock* const clock_;
180
180
  };
181
181
 
182
182
  } // namespace ROCKSDB_NAMESPACE
@@ -24,7 +24,7 @@ namespace ROCKSDB_NAMESPACE {
24
24
  // 0 | >= 1<<63 | CreateUniqueForProcessLifetime
25
25
  // > 0 | any | OffsetableCacheKey.WithOffset
26
26
 
27
- CacheKey CacheKey::CreateUniqueForCacheLifetime(Cache *cache) {
27
+ CacheKey CacheKey::CreateUniqueForCacheLifetime(Cache* cache) {
28
28
  // +1 so that we can reserve all zeros for "unset" cache key
29
29
  uint64_t id = cache->NewId() + 1;
30
30
  // Ensure we don't collide with CreateUniqueForProcessLifetime
@@ -297,8 +297,8 @@ CacheKey CacheKey::CreateUniqueForProcessLifetime() {
297
297
  //
298
298
  // TODO: Nevertheless / regardless, an efficient way to detect (and thus
299
299
  // quantify) block cache corruptions, including collisions, should be added.
300
- OffsetableCacheKey::OffsetableCacheKey(const std::string &db_id,
301
- const std::string &db_session_id,
300
+ OffsetableCacheKey::OffsetableCacheKey(const std::string& db_id,
301
+ const std::string& db_session_id,
302
302
  uint64_t file_number) {
303
303
  UniqueId64x2 internal_id;
304
304
  Status s = GetSstInternalUniqueId(db_id, db_session_id, file_number,