@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
@@ -11,6 +11,8 @@
11
11
 
12
12
  #pragma once
13
13
 
14
+ #include <variant>
15
+
14
16
  #include "rocksdb/cache.h"
15
17
  #include "rocksdb/compression_type.h"
16
18
  #include "rocksdb/data_structure.h"
@@ -56,7 +58,64 @@ class Decompressor;
56
58
  // because RocksDB is not exception-safe. This could cause undefined behavior
57
59
  // including data loss, unreported corruption, deadlocks, and more.
58
60
  class Compressor {
59
- public:
61
+ public: // Auxiliary types
62
+ // No dictionary should be used (for a given block type).
63
+ struct DictDisabled {};
64
+
65
+ // A recommendation for dictionary compression by collecting samples from
66
+ // blocks. The caller should collect up to `max_sample_bytes` of sample data
67
+ // and pass it to MaybeCloneSpecialized() to create a specialized compressor.
68
+ struct DictSampling {
69
+ // Maximum total bytes of sample data to collect from blocks.
70
+ // This controls how much data is buffered before dictionary training.
71
+ size_t max_sample_bytes = 0;
72
+ };
73
+
74
+ // A pre-defined dictionary that is recommended or specified for direct use
75
+ // with MaybeCloneSpecialized(), without any sampling.
76
+ struct DictPreDefined {
77
+ // The owned raw/serialized dictionary bytes. Recommend std::move to
78
+ // MaybeCloneSpecialized()
79
+ std::string dict_data;
80
+ };
81
+
82
+ // The result type for GetDictGuidance() - indicates how dictionary
83
+ // compression should be configured for a given block type.
84
+ using DictConfig = std::variant<DictDisabled, DictSampling, DictPreDefined>;
85
+
86
+ // Sample data collected from blocks for dictionary training.
87
+ struct DictSamples {
88
+ // All the sample input blocks stored contiguously
89
+ std::string sample_data;
90
+ // The lengths of each of the sample blocks in `sample_data`
91
+ std::vector<size_t> sample_lens;
92
+
93
+ bool empty() const { return sample_data.empty(); }
94
+ bool Verify() const {
95
+ size_t total_len = 0;
96
+ for (auto len : sample_lens) {
97
+ total_len += len;
98
+ }
99
+ return total_len == sample_data.size();
100
+ }
101
+ };
102
+
103
+ // Arguments for MaybeCloneSpecialized() - provides either samples, a
104
+ // pre-defined dictionary, or indicates no dictionary should be used.
105
+ // NOTE: DictPreDefined here is the same type as above, allowing the
106
+ // pre-defined dictionary from GetDictGuidance() to be passed through.
107
+ using DictConfigArgs =
108
+ std::variant<DictDisabled, DictSamples, DictPreDefined>;
109
+
110
+ // A WorkingArea is an optional structure (both for callers and
111
+ // implementations) that can enable optimizing repeated compressions by
112
+ // reusing working space or thread-local tracking of statistics or trends.
113
+ // This enables use of ZSTD context, for example.
114
+ //
115
+ // EXTENSIBLE or reinterpret_cast-able by custom Compressor implementations
116
+ struct WorkingArea {};
117
+
118
+ public: // Functions
60
119
  Compressor() = default;
61
120
  virtual ~Compressor() = default;
62
121
 
@@ -69,15 +128,17 @@ class Compressor {
69
128
  return id;
70
129
  }
71
130
 
72
- // Returns the max total bytes of for all sampled blocks for creating the data
73
- // dictionary, or zero indicating dictionary compression should not be
74
- // used/configured. This will typically be called after
75
- // CompressionManager::GetCompressor() to see if samples should be accumulated
76
- // and passed to MaybeCloneSpecialized().
77
- virtual size_t GetMaxSampleSizeIfWantDict(CacheEntryRole block_type) const {
131
+ // Returns the recommended dictionary configuration for the given block type.
132
+ // See the comments on DictConfig and variants for details.
133
+ //
134
+ // NOTE: This may be called on the "base" Compressor returned by
135
+ // CompressionManager, which is not yet configured with a dictionary,
136
+ // or it can be skipped by callers not intending to handle dictionary
137
+ // compression.
138
+ virtual DictConfig GetDictGuidance(CacheEntryRole block_type) const {
78
139
  // Default implementation: no dictionary
79
140
  (void)block_type;
80
- return 0;
141
+ return DictDisabled{};
81
142
  }
82
143
 
83
144
  // Returns the serialized form of the data dictionary associated with this
@@ -94,52 +155,32 @@ class Compressor {
94
155
  // needed to implement MaybeCloneSpecialized() in wrapper compressors.
95
156
  virtual std::unique_ptr<Compressor> Clone() const = 0;
96
157
 
97
- // Utility struct for providing sample data for the compression dictionary.
98
- // Potentially extensible by callers of Compressor (but not recommended)
99
- struct DictSampleArgs {
100
- // All the sample input blocks stored contiguously
101
- std::string sample_data;
102
- // The lengths of each of the sample blocks in `sample_data`
103
- std::vector<size_t> sample_lens;
104
-
105
- bool empty() { return sample_data.empty(); }
106
- bool Verify() {
107
- size_t total_len = 0;
108
- for (auto len : sample_lens) {
109
- total_len += len;
110
- }
111
- return total_len == sample_data.size();
112
- }
113
- };
114
-
115
158
  // Create potential variants of the same Compressor that might be
116
159
  // (a) optimized for a particular block type (does not affect correct
117
160
  // decompression), and/or
118
- // (b) configured to use a compression dictionary, based on the given
119
- // samples (decompression must provide the dictionary from
120
- // GetSerializedDict())
161
+ // (b) configured to use a compression dictionary based on the provided
162
+ // configuration (samples or pre-defined dictionary). See the comments on
163
+ // DictConfigArgs and its variants for detail.
164
+ //
121
165
  // Return of nullptr indicates no specialization exists or was attempted
122
- // and the caller is best to use the current Compressor for the desired
123
- // scenario. Using CacheEntryRole:kMisc for block_type generally means
124
- // "unspecified", and both parameters are merely suggestions. The exact
125
- // dictionary associated with a returned compressor must be read from
126
- // GetSerializedDict().
166
+ // and the caller should use the current Compressor for the desired scenario.
167
+ // Using CacheEntryRole::kMisc for block_type generally means "unspecified".
168
+ //
169
+ // The exact dictionary associated with a returned compressor must be read
170
+ // from GetSerializedDict().
127
171
  virtual std::unique_ptr<Compressor> MaybeCloneSpecialized(
128
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const {
172
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
129
173
  // Default implementation: no specialization
130
174
  (void)block_type;
131
- (void)dict_samples;
132
- // Caller should have checked GetMaxSampleSizeIfWantDict before attempting
133
- // to provide dictionary samples
134
- assert(dict_samples.empty());
175
+ (void)dict_config;
135
176
  return nullptr;
136
177
  }
137
178
 
138
179
  // A convenience function when a clone is needed and may or may not be
139
180
  // specialized.
140
181
  std::unique_ptr<Compressor> CloneMaybeSpecialized(
141
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const {
142
- auto clone = MaybeCloneSpecialized(block_type, std::move(dict_samples));
182
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
183
+ auto clone = MaybeCloneSpecialized(block_type, std::move(dict_config));
143
184
  if (clone == nullptr) {
144
185
  clone = Clone();
145
186
  assert(clone != nullptr);
@@ -147,14 +188,6 @@ class Compressor {
147
188
  return clone;
148
189
  }
149
190
 
150
- // A WorkingArea is an optional structure (both for callers and
151
- // implementations) that can enable optimizing repeated compressions by
152
- // reusing working space or thread-local tracking of statistics or trends.
153
- // This enables use of ZSTD context, for example.
154
- //
155
- // EXTENSIBLE or reinterpret_cast-able by custom Compressor implementations
156
- struct WorkingArea {};
157
-
158
191
  // To allow for flexible re-use / reclaimation, we have explicit Get and
159
192
  // Release functions, and usually wrap in a special RAII smart pointer.
160
193
  // For example, a WorkingArea could be saved/recycled in thread-local or
@@ -423,6 +456,12 @@ class CompressionManager
423
456
  // which is valid at the discretion of the CompressionManager. Returning
424
457
  // nullptr should normally be the result if preferred == kNoCompression.
425
458
  //
459
+ // Compressors returned here are configured WITHOUT a dictionary, so that
460
+ // it's always possible to get correct compression->decompression results
461
+ // if not opting-in to dictionary handling. The compressors may recommend
462
+ // dictionary usage via GetDictGuidance() and creating a modified Compressor
463
+ // for that. See Compressor::GetDictGuidance() etc. for details.
464
+ //
426
465
  // These functions must be thread-safe.
427
466
 
428
467
  // Get a compressor for an SST file.
@@ -477,8 +516,8 @@ class CompressorWrapper : public Compressor {
477
516
  CompressorWrapper(const CompressorWrapper&) = delete;
478
517
  CompressorWrapper& operator=(const CompressorWrapper&) = delete;
479
518
 
480
- size_t GetMaxSampleSizeIfWantDict(CacheEntryRole block_type) const override {
481
- return wrapped_->GetMaxSampleSizeIfWantDict(block_type);
519
+ DictConfig GetDictGuidance(CacheEntryRole block_type) const override {
520
+ return wrapped_->GetDictGuidance(block_type);
482
521
  }
483
522
 
484
523
  Slice GetSerializedDict() const override {
@@ -496,9 +535,9 @@ class CompressorWrapper : public Compressor {
496
535
  // when the wrapped Compressor uses the default implementation of
497
536
  // MaybeCloneSpecialized(). This needs to be overridden if not.
498
537
  std::unique_ptr<Compressor> MaybeCloneSpecialized(
499
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const override {
538
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const override {
500
539
  auto clone =
501
- wrapped_->MaybeCloneSpecialized(block_type, std::move(dict_samples));
540
+ wrapped_->MaybeCloneSpecialized(block_type, std::move(dict_config));
502
541
  // Assert default no-op MaybeCloneSpecialized()
503
542
  assert(clone == nullptr);
504
543
  return clone;
@@ -592,7 +631,14 @@ class CompressionManagerWrapper : public CompressionManager {
592
631
 
593
632
  std::shared_ptr<CompressionManager> FindCompatibleCompressionManager(
594
633
  Slice compatibility_name) override {
595
- return wrapped_->FindCompatibleCompressionManager(compatibility_name);
634
+ // NOTE: We expect that the wrapped CompressionManager will generally
635
+ // be preferred if compatible, so the default implementation here does
636
+ // not purely defer to the wrapped instance
637
+ if (compatibility_name == CompatibilityName()) {
638
+ return shared_from_this();
639
+ } else {
640
+ return wrapped_->FindCompatibleCompressionManager(compatibility_name);
641
+ }
596
642
  }
597
643
 
598
644
  bool SupportsCompressionType(CompressionType type) const override {
@@ -128,6 +128,51 @@ struct CompactionOptionsFIFO {
128
128
  // not be used. The minmum buffer size must be at least 4KiB
129
129
  uint64_t trivial_copy_buffer_size = 4096;
130
130
 
131
+ // When non-zero, FIFO compaction uses the combined size of SST files and
132
+ // blob files for size-based trimming decisions. When the total data size
133
+ // (SST + blob) exceeds this limit, the oldest SST files are dropped along
134
+ // with their associated blob files.
135
+ //
136
+ // When non-zero, this takes precedence over max_table_files_size for all
137
+ // FIFO compaction decisions: size-based dropping, TTL threshold checks,
138
+ // and compaction score computation. max_table_files_size is ignored.
139
+ //
140
+ // When zero (default), FIFO compaction uses max_table_files_size which
141
+ // only considers SST file sizes, maintaining backward compatibility.
142
+ //
143
+ // This option is primarily intended for use with integrated BlobDB where
144
+ // blob files can represent a significant portion of the total data.
145
+ //
146
+ // Dynamically changeable through SetOptions() API.
147
+ // Default: 0 (use max_table_files_size behavior)
148
+ uint64_t max_data_files_size = 0;
149
+
150
+ // When true, enables a capacity-derived intra-L0 compaction strategy
151
+ // optimized for BlobDB workloads where SST files are much smaller than
152
+ // write_buffer_size. Uses the observed key/value size ratio (SST vs blob
153
+ // file sizes) to compute a target compacted file size, producing uniform
154
+ // files for predictable FIFO trimming.
155
+ //
156
+ // Uses level0_file_num_compaction_trigger as the target max L0 file count.
157
+ //
158
+ // When max_compaction_bytes is 0, the target is auto-calculated from the
159
+ // data capacity and observed SST/blob ratio. When max_compaction_bytes is
160
+ // explicitly set to a non-zero value, it overrides the auto-calculated
161
+ // target.
162
+ //
163
+ // Recommends:
164
+ // - allow_compaction = true (master switch for intra-L0 compaction)
165
+ // - max_data_files_size > 0 (needed to compute the target file size)
166
+ // If these are not met, kv_ratio compaction is skipped and the old
167
+ // cost-based intra-L0 compaction algorithm is used as a fallback.
168
+ //
169
+ // When false, the old intra-L0 strategy is used if allow_compaction is
170
+ // true (PickCostBasedIntraL0Compaction with 1.1 * write_buffer_size guard).
171
+ //
172
+ // Dynamically changeable through SetOptions() API.
173
+ // Default: false
174
+ bool use_kv_ratio_compaction = false;
175
+
131
176
  CompactionOptionsFIFO() : max_table_files_size(1 * 1024 * 1024 * 1024) {}
132
177
  CompactionOptionsFIFO(uint64_t _max_table_files_size, bool _allow_compaction)
133
178
  : max_table_files_size(_max_table_files_size),
@@ -168,8 +213,7 @@ enum class VerifyOutputFlags : uint32_t {
168
213
  // by comparing the one inserted into a
169
214
  // file, and what is read back.
170
215
 
171
- // TODO - Implement
172
- // kVerifyFileChecksum = 1 << 2, // Verify file-level checksum
216
+ kVerifyFileChecksum = 1 << 2, // Verify file-level checksum
173
217
 
174
218
  // Second set of bits: when to enable verification
175
219
  kEnableForLocalCompaction = 1 << 10, // Enable for local compaction
@@ -643,6 +687,15 @@ struct AdvancedColumnFamilyOptions {
643
687
  //
644
688
  // Default: target_file_size_base * 25
645
689
  //
690
+ // For FIFO compaction with use_kv_ratio_compaction=true:
691
+ // When set to 0 (and compaction_style is FIFO), the value is NOT sanitized
692
+ // to the default. Instead, the target compacted file size is automatically
693
+ // calculated from the data capacity (max_data_files_size) and observed
694
+ // SST/blob ratio. When explicitly set to a non-zero value, it overrides
695
+ // the auto-calculated target and is used directly as the max compaction
696
+ // input size. Note: for FIFO, this controls the output file size target,
697
+ // not a general compaction byte limit as in level/universal compaction.
698
+ //
646
699
  // Dynamically changeable through SetOptions() API
647
700
  uint64_t max_compaction_bytes = 0;
648
701
 
@@ -1252,6 +1305,18 @@ struct AdvancedColumnFamilyOptions {
1252
1305
  // Immutable.
1253
1306
  bool cf_allow_ingest_behind = false;
1254
1307
 
1308
+ // If true, use batch lookup optimization for memtable MultiGet. For skip
1309
+ // list memtables, after looking up each key, the search path is cached and
1310
+ // reused for the next key, reducing per-key cost from O(log N) to O(log d)
1311
+ // where d is the distance between consecutive keys.
1312
+ //
1313
+ // This optimization exploits the fact that MultiGet keys are sorted.
1314
+ // Non-skip-list memtable implementations fall back to per-key lookups.
1315
+ //
1316
+ // Default: false
1317
+ // Immutable.
1318
+ bool memtable_batch_lookup_optimization = false;
1319
+
1255
1320
  // Create ColumnFamilyOptions with default values for all fields
1256
1321
  AdvancedColumnFamilyOptions();
1257
1322
  // Create ColumnFamilyOptions from Options
@@ -86,6 +86,12 @@ typedef struct rocksdb_compactionfiltercontext_t
86
86
  rocksdb_compactionfiltercontext_t;
87
87
  typedef struct rocksdb_compactionfilterfactory_t
88
88
  rocksdb_compactionfilterfactory_t;
89
+ typedef struct rocksdb_file_checksum_gen_factory_t
90
+ rocksdb_file_checksum_gen_factory_t;
91
+ typedef struct rocksdb_sst_partitioner_factory_t
92
+ rocksdb_sst_partitioner_factory_t;
93
+ typedef struct rocksdb_table_properties_collector_factory_t
94
+ rocksdb_table_properties_collector_factory_t;
89
95
  typedef struct rocksdb_comparator_t rocksdb_comparator_t;
90
96
  typedef struct rocksdb_dbpath_t rocksdb_dbpath_t;
91
97
  typedef struct rocksdb_env_t rocksdb_env_t;
@@ -944,6 +950,11 @@ extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate(
944
950
  rocksdb_writebatch_t*, void* state,
945
951
  void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
946
952
  void (*deleted)(void*, const char* k, size_t klen));
953
+ extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_ld(
954
+ rocksdb_writebatch_t*, void* state,
955
+ void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
956
+ void (*deleted)(void*, const char* k, size_t klen),
957
+ void (*log_data)(void*, const char* blob, size_t blob_len));
947
958
  extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_cf(
948
959
  rocksdb_writebatch_t*, void* state,
949
960
  void (*put_cf)(void*, uint32_t cfid, const char* k, size_t klen,
@@ -951,6 +962,14 @@ extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_cf(
951
962
  void (*deleted_cf)(void*, uint32_t cfid, const char* k, size_t klen),
952
963
  void (*merge_cf)(void*, uint32_t cfid, const char* k, size_t klen,
953
964
  const char* v, size_t vlen));
965
+ extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_iterate_cf_ld(
966
+ rocksdb_writebatch_t*, void* state,
967
+ void (*put_cf)(void*, uint32_t cfid, const char* k, size_t klen,
968
+ const char* v, size_t vlen),
969
+ void (*deleted_cf)(void*, uint32_t cfid, const char* k, size_t klen),
970
+ void (*merge_cf)(void*, uint32_t cfid, const char* k, size_t klen,
971
+ const char* v, size_t vlen),
972
+ void (*log_data)(void*, const char* blob, size_t blob_len));
954
973
  extern ROCKSDB_LIBRARY_API const char* rocksdb_writebatch_data(
955
974
  rocksdb_writebatch_t*, size_t* size);
956
975
  extern ROCKSDB_LIBRARY_API void rocksdb_writebatch_set_save_point(
@@ -1176,6 +1195,9 @@ rocksdb_block_based_options_set_whole_key_filtering(
1176
1195
  rocksdb_block_based_table_options_t*, unsigned char);
1177
1196
  extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_format_version(
1178
1197
  rocksdb_block_based_table_options_t*, int);
1198
+ extern ROCKSDB_LIBRARY_API void
1199
+ rocksdb_block_based_options_set_separate_key_value_in_data_block(
1200
+ rocksdb_block_based_table_options_t*, unsigned char);
1179
1201
  enum {
1180
1202
  rocksdb_block_based_table_index_type_binary_search = 0,
1181
1203
  rocksdb_block_based_table_index_type_hash_search = 1,
@@ -1190,6 +1212,13 @@ enum {
1190
1212
  extern ROCKSDB_LIBRARY_API void
1191
1213
  rocksdb_block_based_options_set_data_block_index_type(
1192
1214
  rocksdb_block_based_table_options_t*, int); // uses one of the above enums
1215
+ enum {
1216
+ rocksdb_block_based_table_index_block_search_type_binary = 0,
1217
+ rocksdb_block_based_table_index_block_search_type_interpolation = 1,
1218
+ };
1219
+ extern ROCKSDB_LIBRARY_API void
1220
+ rocksdb_block_based_options_set_index_block_search_type(
1221
+ rocksdb_block_based_table_options_t*, int); // uses one of the above enums
1193
1222
  extern ROCKSDB_LIBRARY_API void
1194
1223
  rocksdb_block_based_options_set_data_block_hash_ratio(
1195
1224
  rocksdb_block_based_table_options_t* options, double v);
@@ -1225,6 +1254,8 @@ rocksdb_block_based_options_set_partition_pinning_tier(
1225
1254
  extern ROCKSDB_LIBRARY_API void
1226
1255
  rocksdb_block_based_options_set_unpartitioned_pinning_tier(
1227
1256
  rocksdb_block_based_table_options_t*, int);
1257
+ extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_block_align(
1258
+ rocksdb_block_based_table_options_t*, unsigned char);
1228
1259
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_write_buffer_manager(
1229
1260
  rocksdb_options_t* opt, rocksdb_write_buffer_manager_t* wbm);
1230
1261
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_sst_file_manager(
@@ -1448,6 +1479,10 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_paranoid_checks(
1448
1479
  rocksdb_options_t*, unsigned char);
1449
1480
  extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_paranoid_checks(
1450
1481
  rocksdb_options_t*);
1482
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_open_files_async(
1483
+ rocksdb_options_t*, unsigned char);
1484
+ extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_open_files_async(
1485
+ rocksdb_options_t*);
1451
1486
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_db_paths(
1452
1487
  rocksdb_options_t*, const rocksdb_dbpath_t** path_values, size_t num_paths);
1453
1488
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_cf_paths(
@@ -1471,6 +1506,31 @@ rocksdb_logger_create_callback_logger(int log_level,
1471
1506
  void* priv);
1472
1507
  extern ROCKSDB_LIBRARY_API void rocksdb_logger_destroy(
1473
1508
  rocksdb_logger_t* logger);
1509
+
1510
+ /* File Checksum Gen Factory */
1511
+ extern ROCKSDB_LIBRARY_API rocksdb_file_checksum_gen_factory_t*
1512
+ rocksdb_file_checksum_gen_crc32c_factory_create(void);
1513
+ extern ROCKSDB_LIBRARY_API void rocksdb_file_checksum_gen_factory_destroy(
1514
+ rocksdb_file_checksum_gen_factory_t* factory);
1515
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_file_checksum_gen_factory(
1516
+ rocksdb_options_t*, rocksdb_file_checksum_gen_factory_t*);
1517
+
1518
+ /* SST Partitioner Factory */
1519
+ extern ROCKSDB_LIBRARY_API rocksdb_sst_partitioner_factory_t*
1520
+ rocksdb_sst_partitioner_fixed_prefix_factory_create(size_t prefix_len);
1521
+ extern ROCKSDB_LIBRARY_API void rocksdb_sst_partitioner_factory_destroy(
1522
+ rocksdb_sst_partitioner_factory_t* factory);
1523
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_sst_partitioner_factory(
1524
+ rocksdb_options_t*, rocksdb_sst_partitioner_factory_t*);
1525
+
1526
+ /* Table Properties Collector Factory */
1527
+ extern ROCKSDB_LIBRARY_API void
1528
+ rocksdb_table_properties_collector_factory_destroy(
1529
+ rocksdb_table_properties_collector_factory_t* factory);
1530
+ extern ROCKSDB_LIBRARY_API void
1531
+ rocksdb_options_add_table_properties_collector_factory(
1532
+ rocksdb_options_t*, rocksdb_table_properties_collector_factory_t*);
1533
+
1474
1534
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_write_buffer_size(
1475
1535
  rocksdb_options_t*, size_t);
1476
1536
  extern ROCKSDB_LIBRARY_API size_t
@@ -1615,13 +1675,6 @@ rocksdb_options_set_skip_stats_update_on_db_open(rocksdb_options_t* opt,
1615
1675
  unsigned char val);
1616
1676
  extern ROCKSDB_LIBRARY_API unsigned char
1617
1677
  rocksdb_options_get_skip_stats_update_on_db_open(rocksdb_options_t* opt);
1618
- extern ROCKSDB_LIBRARY_API void
1619
- rocksdb_options_set_skip_checking_sst_file_sizes_on_db_open(
1620
- rocksdb_options_t* opt, unsigned char val);
1621
- extern ROCKSDB_LIBRARY_API unsigned char
1622
- rocksdb_options_get_skip_checking_sst_file_sizes_on_db_open(
1623
- rocksdb_options_t* opt);
1624
-
1625
1678
  /* Blob Options Settings */
1626
1679
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_enable_blob_files(
1627
1680
  rocksdb_options_t* opt, unsigned char val);
@@ -2128,7 +2181,12 @@ enum {
2128
2181
  rocksdb_internal_range_del_reseek_count,
2129
2182
  rocksdb_block_read_cpu_time,
2130
2183
  rocksdb_internal_merge_point_lookup_count,
2131
- rocksdb_total_metric_count = 80
2184
+ rocksdb_data_block_read_byte,
2185
+ rocksdb_index_block_read_byte,
2186
+ rocksdb_filter_block_read_byte,
2187
+ rocksdb_compression_dict_block_read_byte,
2188
+ rocksdb_metadata_block_read_byte,
2189
+ rocksdb_total_metric_count = 85
2132
2190
  };
2133
2191
 
2134
2192
  extern ROCKSDB_LIBRARY_API void rocksdb_set_perf_level(int);
@@ -2265,9 +2323,6 @@ extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_tailing(
2265
2323
  rocksdb_readoptions_t*, unsigned char);
2266
2324
  extern ROCKSDB_LIBRARY_API unsigned char rocksdb_readoptions_get_tailing(
2267
2325
  rocksdb_readoptions_t*);
2268
- // The functionality that this option controlled has been removed.
2269
- extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_managed(
2270
- rocksdb_readoptions_t*, unsigned char);
2271
2326
  extern ROCKSDB_LIBRARY_API void rocksdb_readoptions_set_readahead_size(
2272
2327
  rocksdb_readoptions_t*, size_t);
2273
2328
  extern ROCKSDB_LIBRARY_API size_t
@@ -2679,10 +2734,9 @@ rocksdb_slicetransform_create(
2679
2734
  char* (*transform)(void*, const char* key, size_t length,
2680
2735
  size_t* dst_length),
2681
2736
  unsigned char (*in_domain)(void*, const char* key, size_t length),
2682
- unsigned char (*in_range)(void*, const char* key, size_t length),
2683
2737
  const char* (*name)(void*));
2684
2738
  extern ROCKSDB_LIBRARY_API rocksdb_slicetransform_t*
2685
- rocksdb_slicetransform_create_fixed_prefix(size_t);
2739
+ rocksdb_slicetransform_create_fixed_prefix(size_t);
2686
2740
  extern ROCKSDB_LIBRARY_API rocksdb_slicetransform_t*
2687
2741
  rocksdb_slicetransform_create_noop(void);
2688
2742
  extern ROCKSDB_LIBRARY_API void rocksdb_slicetransform_destroy(
@@ -2751,6 +2805,19 @@ rocksdb_fifo_compaction_options_set_max_table_files_size(
2751
2805
  extern ROCKSDB_LIBRARY_API uint64_t
2752
2806
  rocksdb_fifo_compaction_options_get_max_table_files_size(
2753
2807
  rocksdb_fifo_compaction_options_t* fifo_opts);
2808
+ extern ROCKSDB_LIBRARY_API void
2809
+ rocksdb_fifo_compaction_options_set_max_data_files_size(
2810
+ rocksdb_fifo_compaction_options_t* fifo_opts, uint64_t size);
2811
+ extern ROCKSDB_LIBRARY_API uint64_t
2812
+ rocksdb_fifo_compaction_options_get_max_data_files_size(
2813
+ rocksdb_fifo_compaction_options_t* fifo_opts);
2814
+ extern ROCKSDB_LIBRARY_API void
2815
+ rocksdb_fifo_compaction_options_set_use_kv_ratio_compaction(
2816
+ rocksdb_fifo_compaction_options_t* fifo_opts,
2817
+ unsigned char use_kv_ratio_compaction);
2818
+ extern ROCKSDB_LIBRARY_API unsigned char
2819
+ rocksdb_fifo_compaction_options_get_use_kv_ratio_compaction(
2820
+ rocksdb_fifo_compaction_options_t* fifo_opts);
2754
2821
  extern ROCKSDB_LIBRARY_API void rocksdb_fifo_compaction_options_destroy(
2755
2822
  rocksdb_fifo_compaction_options_t* fifo_opts);
2756
2823
 
@@ -3631,6 +3698,10 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_compaction_service(
3631
3698
  extern ROCKSDB_LIBRARY_API rocksdb_compaction_service_options_override_t*
3632
3699
  rocksdb_compaction_service_options_override_create(void);
3633
3700
 
3701
+ extern ROCKSDB_LIBRARY_API rocksdb_compaction_service_options_override_t*
3702
+ rocksdb_compaction_service_options_override_create_from_options(
3703
+ rocksdb_options_t* option);
3704
+
3634
3705
  extern ROCKSDB_LIBRARY_API void
3635
3706
  rocksdb_compaction_service_options_override_destroy(
3636
3707
  rocksdb_compaction_service_options_override_t* override_options);
@@ -3645,6 +3716,71 @@ rocksdb_compaction_service_options_override_set_comparator(
3645
3716
  rocksdb_compaction_service_options_override_t* override_options,
3646
3717
  rocksdb_comparator_t* comparator);
3647
3718
 
3719
+ extern ROCKSDB_LIBRARY_API void
3720
+ rocksdb_compaction_service_options_override_set_merge_operator(
3721
+ rocksdb_compaction_service_options_override_t* override_options,
3722
+ rocksdb_mergeoperator_t* merge_operator);
3723
+
3724
+ extern ROCKSDB_LIBRARY_API void
3725
+ rocksdb_compaction_service_options_override_set_compaction_filter(
3726
+ rocksdb_compaction_service_options_override_t* override_options,
3727
+ rocksdb_compactionfilter_t* compaction_filter);
3728
+
3729
+ extern ROCKSDB_LIBRARY_API void
3730
+ rocksdb_compaction_service_options_override_set_compaction_filter_factory(
3731
+ rocksdb_compaction_service_options_override_t* override_options,
3732
+ rocksdb_compactionfilterfactory_t* compaction_filter_factory);
3733
+
3734
+ extern ROCKSDB_LIBRARY_API void
3735
+ rocksdb_compaction_service_options_override_set_prefix_extractor(
3736
+ rocksdb_compaction_service_options_override_t* override_options,
3737
+ rocksdb_slicetransform_t* prefix_extractor);
3738
+
3739
+ extern ROCKSDB_LIBRARY_API void
3740
+ rocksdb_compaction_service_options_override_set_block_based_table_factory(
3741
+ rocksdb_compaction_service_options_override_t* override_options,
3742
+ rocksdb_block_based_table_options_t* table_options);
3743
+
3744
+ extern ROCKSDB_LIBRARY_API void
3745
+ rocksdb_compaction_service_options_override_set_cuckoo_table_factory(
3746
+ rocksdb_compaction_service_options_override_t* override_options,
3747
+ rocksdb_cuckoo_table_options_t* table_options);
3748
+
3749
+ extern ROCKSDB_LIBRARY_API void
3750
+ rocksdb_compaction_service_options_override_add_event_listener(
3751
+ rocksdb_compaction_service_options_override_t* override_options,
3752
+ rocksdb_eventlistener_t* event_listener);
3753
+
3754
+ extern ROCKSDB_LIBRARY_API void
3755
+ rocksdb_compaction_service_options_override_set_statistics(
3756
+ rocksdb_compaction_service_options_override_t* override_options,
3757
+ rocksdb_options_t* options);
3758
+
3759
+ extern ROCKSDB_LIBRARY_API void
3760
+ rocksdb_compaction_service_options_override_set_info_log(
3761
+ rocksdb_compaction_service_options_override_t* override_options,
3762
+ rocksdb_logger_t* logger);
3763
+
3764
+ extern ROCKSDB_LIBRARY_API void
3765
+ rocksdb_compaction_service_options_override_set_option(
3766
+ rocksdb_compaction_service_options_override_t* override_options,
3767
+ const char* key, const char* value);
3768
+
3769
+ extern ROCKSDB_LIBRARY_API void
3770
+ rocksdb_compaction_service_options_override_set_file_checksum_gen_factory(
3771
+ rocksdb_compaction_service_options_override_t* override_options,
3772
+ rocksdb_file_checksum_gen_factory_t* factory);
3773
+
3774
+ extern ROCKSDB_LIBRARY_API void
3775
+ rocksdb_compaction_service_options_override_set_sst_partitioner_factory(
3776
+ rocksdb_compaction_service_options_override_t* override_options,
3777
+ rocksdb_sst_partitioner_factory_t* factory);
3778
+
3779
+ extern ROCKSDB_LIBRARY_API void
3780
+ rocksdb_compaction_service_options_override_add_table_properties_collector_factory(
3781
+ rocksdb_compaction_service_options_override_t* override_options,
3782
+ rocksdb_table_properties_collector_factory_t* factory);
3783
+
3648
3784
  // Atomic bool management for cancellation
3649
3785
  // Creates an atomic bool that can be used for cancellation.
3650
3786
  // User must call rocksdb_open_and_compact_canceled_destroy() to free it.
@@ -306,13 +306,6 @@ struct CompressedSecondaryCacheOptions : LRUCacheOptions {
306
306
  // Options specific to the compression algorithm
307
307
  CompressionOptions compression_opts;
308
308
 
309
- // compress_format_version can have two values:
310
- // compress_format_version == 1 -- decompressed size is not included in the
311
- // block header. DEPRECATED
312
- // compress_format_version == 2 -- decompressed size is included in the block
313
- // header in varint32 format.
314
- uint32_t compress_format_version = 2;
315
-
316
309
  // Enable the custom split and merge feature, which split the compressed value
317
310
  // into chunks so that they may better fit jemalloc bins.
318
311
  bool enable_custom_split_merge = false;
@@ -330,7 +323,6 @@ struct CompressedSecondaryCacheOptions : LRUCacheOptions {
330
323
  CacheMetadataChargePolicy _metadata_charge_policy =
331
324
  kDefaultCacheMetadataChargePolicy,
332
325
  CompressionType _compression_type = CompressionType::kLZ4Compression,
333
- uint32_t _compress_format_version = 2,
334
326
  bool _enable_custom_split_merge = false,
335
327
  const CacheEntryRoleSet& _do_not_compress_roles =
336
328
  {CacheEntryRole::kFilterBlock})
@@ -339,7 +331,6 @@ struct CompressedSecondaryCacheOptions : LRUCacheOptions {
339
331
  _use_adaptive_mutex, _metadata_charge_policy,
340
332
  _low_pri_pool_ratio),
341
333
  compression_type(_compression_type),
342
- compress_format_version(_compress_format_version),
343
334
  enable_custom_split_merge(_enable_custom_split_merge),
344
335
  do_not_compress_roles(_do_not_compress_roles) {}
345
336
 
@@ -360,7 +351,6 @@ inline std::shared_ptr<SecondaryCache> NewCompressedSecondaryCache(
360
351
  CacheMetadataChargePolicy metadata_charge_policy =
361
352
  kDefaultCacheMetadataChargePolicy,
362
353
  CompressionType compression_type = CompressionType::kLZ4Compression,
363
- uint32_t compress_format_version = 2,
364
354
  bool enable_custom_split_merge = false,
365
355
  const CacheEntryRoleSet& _do_not_compress_roles = {
366
356
  CacheEntryRole::kFilterBlock}) {
@@ -368,8 +358,7 @@ inline std::shared_ptr<SecondaryCache> NewCompressedSecondaryCache(
368
358
  capacity, num_shard_bits, strict_capacity_limit,
369
359
  high_pri_pool_ratio, low_pri_pool_ratio, memory_allocator,
370
360
  use_adaptive_mutex, metadata_charge_policy, compression_type,
371
- compress_format_version, enable_custom_split_merge,
372
- _do_not_compress_roles)
361
+ enable_custom_split_merge, _do_not_compress_roles)
373
362
  .MakeSharedSecondaryCache();
374
363
  }
375
364