@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
@@ -73,6 +73,7 @@ struct PerfContextByLevelInt {
73
73
  defCmd(compressed_sec_cache_compressed_bytes) \
74
74
  defCmd(block_checksum_time) \
75
75
  defCmd(block_decompress_time) \
76
+ defCmd(block_decompress_count) \
76
77
  defCmd(get_read_bytes) \
77
78
  defCmd(multiget_read_bytes) \
78
79
  defCmd(iter_read_bytes) \
@@ -155,7 +156,12 @@ struct PerfContextByLevelInt {
155
156
  defCmd(decrypt_data_nanos) \
156
157
  defCmd(number_async_seek) \
157
158
  defCmd(file_ingestion_nanos) \
158
- defCmd(file_ingestion_blocking_live_writes_nanos)
159
+ defCmd(file_ingestion_blocking_live_writes_nanos)\
160
+ defCmd(data_block_read_byte) \
161
+ defCmd(index_block_read_byte) \
162
+ defCmd(filter_block_read_byte) \
163
+ defCmd(compression_dict_block_read_byte) \
164
+ defCmd(metadata_block_read_byte)
159
165
  // clang-format on
160
166
 
161
167
  struct PerfContextInt {
@@ -259,10 +265,10 @@ void PerfContext::Reset() {
259
265
  #endif
260
266
  }
261
267
 
262
- void PerfContextByLevel::Reset(){
268
+ void PerfContextByLevel::Reset() {
263
269
  #ifndef NPERF_CONTEXT
264
270
  #define EMIT_FIELDS(x) x = 0;
265
- DEF_PERF_CONTEXT_LEVEL_METRICS(EMIT_FIELDS)
271
+ DEF_PERF_CONTEXT_LEVEL_METRICS(EMIT_FIELDS)
266
272
  #undef EMIT_FIELDS
267
273
  #endif
268
274
  }
@@ -93,6 +93,7 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
93
93
  {COMPACTION_OPTIMIZED_DEL_DROP_OBSOLETE,
94
94
  "rocksdb.compaction.optimized.del.drop.obsolete"},
95
95
  {COMPACTION_CANCELLED, "rocksdb.compaction.cancelled"},
96
+ {COMPACTION_ABORTED, "rocksdb.compaction.aborted"},
96
97
  {NUMBER_KEYS_WRITTEN, "rocksdb.number.keys.written"},
97
98
  {NUMBER_KEYS_READ, "rocksdb.number.keys.read"},
98
99
  {NUMBER_KEYS_UPDATED, "rocksdb.number.keys.updated"},
@@ -169,8 +170,8 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
169
170
  {BLOB_DB_NUM_KEYS_READ, "rocksdb.blobdb.num.keys.read"},
170
171
  {BLOB_DB_BYTES_WRITTEN, "rocksdb.blobdb.bytes.written"},
171
172
  {BLOB_DB_BYTES_READ, "rocksdb.blobdb.bytes.read"},
172
- {BLOB_DB_WRITE_INLINED, "rocksdb.blobdb.write.inlined"},
173
- {BLOB_DB_WRITE_INLINED_TTL, "rocksdb.blobdb.write.inlined.ttl"},
173
+ {BLOB_DB_WRITE_INLINED_DEPRECATED, "rocksdb.blobdb.write.inlined"},
174
+ {BLOB_DB_WRITE_INLINED_TTL_DEPRECATED, "rocksdb.blobdb.write.inlined.ttl"},
174
175
  {BLOB_DB_WRITE_BLOB, "rocksdb.blobdb.write.blob"},
175
176
  {BLOB_DB_WRITE_BLOB_TTL, "rocksdb.blobdb.write.blob.ttl"},
176
177
  {BLOB_DB_BLOB_FILE_BYTES_WRITTEN, "rocksdb.blobdb.blob.file.bytes.written"},
@@ -280,6 +281,21 @@ const std::vector<std::pair<Tickers, std::string>> TickersNameMap = {
280
281
  {NUMBER_WBWI_INGEST, "rocksdb.number.wbwi.ingest"},
281
282
  {SST_USER_DEFINED_INDEX_LOAD_FAIL_COUNT,
282
283
  "rocksdb.sst.user.defined.index.load.fail.count"},
284
+ {MULTISCAN_PREPARE_CALLS, "rocksdb.multiscan.prepare.calls"},
285
+ {MULTISCAN_PREPARE_ERRORS, "rocksdb.multiscan.prepare.errors"},
286
+ {MULTISCAN_BLOCKS_PREFETCHED, "rocksdb.multiscan.blocks.prefetched"},
287
+ {MULTISCAN_BLOCKS_FROM_CACHE, "rocksdb.multiscan.blocks.from.cache"},
288
+ {MULTISCAN_PREFETCH_BYTES, "rocksdb.multiscan.prefetch.bytes"},
289
+ {MULTISCAN_PREFETCH_BLOCKS_WASTED,
290
+ "rocksdb.multiscan.prefetch.blocks.wasted"},
291
+ {MULTISCAN_IO_REQUESTS, "rocksdb.multiscan.io.requests"},
292
+ {MULTISCAN_IO_COALESCED_NONADJACENT,
293
+ "rocksdb.multiscan.io.coalesced.nonadjacent"},
294
+ {MULTISCAN_SEEK_ERRORS, "rocksdb.multiscan.seek.errors"},
295
+ {PREFETCH_MEMORY_BYTES_GRANTED, "rocksdb.prefetch.memory.bytes.granted"},
296
+ {PREFETCH_MEMORY_BYTES_RELEASED, "rocksdb.prefetch.memory.bytes.released"},
297
+ {PREFETCH_MEMORY_REQUESTS_BLOCKED,
298
+ "rocksdb.prefetch.memory.requests.blocked"},
283
299
  };
284
300
 
285
301
  const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
@@ -354,6 +370,9 @@ const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
354
370
  {NUM_OP_PER_TRANSACTION, "rocksdb.num.op.per.transaction"},
355
371
  {MULTISCAN_PREPARE_ITERATORS,
356
372
  "rocksdb.multiscan.op.prepare.iterators.micros"},
373
+ {MULTISCAN_PREPARE_MICROS, "rocksdb.multiscan.prepare.micros"},
374
+ {MULTISCAN_BLOCKS_PER_PREPARE, "rocksdb.multiscan.blocks.per.prepare"},
375
+ {BLOCK_KEY_DISTRIBUTION_CV, "rocksdb.block.key.distribution.cv"},
357
376
  };
358
377
 
359
378
  std::shared_ptr<Statistics> CreateDBStatistics() {
@@ -185,7 +185,7 @@ TEST_F(StatsHistoryTest, GetStatsHistoryInMemory) {
185
185
 
186
186
  TEST_F(StatsHistoryTest, InMemoryStatsHistoryPurging) {
187
187
  constexpr int kPeriodSec = 1;
188
- constexpr int kEstimatedOneSliceSize = 16000;
188
+ constexpr int kEstimatedOneSliceSize = 22100;
189
189
 
190
190
  Options options;
191
191
  options.create_if_missing = true;
@@ -277,7 +277,7 @@ TEST_F(StatsHistoryTest, InMemoryStatsHistoryPurging) {
277
277
  // If `slice_count == 0` when new statistics are added, consider increasing
278
278
  // `kEstimatedOneSliceSize`
279
279
  ASSERT_EQ(slice_count, 1);
280
- ASSERT_TRUE(stats_history_size_reopen < 16000 &&
280
+ ASSERT_TRUE(stats_history_size_reopen < kEstimatedOneSliceSize &&
281
281
  stats_history_size_reopen > 0);
282
282
  ASSERT_TRUE(stats_count_reopen < stats_count && stats_count_reopen > 0);
283
283
  Close();
@@ -30,6 +30,7 @@
30
30
  #include "rocksdb/utilities/object_registry.h"
31
31
  #include "rocksdb/utilities/options_type.h"
32
32
  #include "util/cast_util.h"
33
+ #include "util/string_util.h"
33
34
 
34
35
  // NOTE: in this file, many option flags that were deprecated
35
36
  // and removed from the rest of the code have to be kept here
@@ -310,6 +311,14 @@ static std::unordered_map<std::string, OptionTypeInfo>
310
311
  {"trivial_copy_buffer_size",
311
312
  {offsetof(struct CompactionOptionsFIFO, trivial_copy_buffer_size),
312
313
  OptionType::kUInt64T, OptionVerificationType::kNormal,
314
+ OptionTypeFlags::kMutable}},
315
+ {"max_data_files_size",
316
+ {offsetof(struct CompactionOptionsFIFO, max_data_files_size),
317
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
318
+ OptionTypeFlags::kMutable}},
319
+ {"use_kv_ratio_compaction",
320
+ {offsetof(struct CompactionOptionsFIFO, use_kv_ratio_compaction),
321
+ OptionType::kBoolean, OptionVerificationType::kNormal,
313
322
  OptionTypeFlags::kMutable}}};
314
323
 
315
324
  static std::unordered_map<std::string, OptionTypeInfo>
@@ -910,6 +919,11 @@ static std::unordered_map<std::string, OptionTypeInfo>
910
919
  {offsetof(struct ImmutableCFOptions, cf_allow_ingest_behind),
911
920
  OptionType::kBoolean, OptionVerificationType::kNormal,
912
921
  OptionTypeFlags::kNone}},
922
+ {"memtable_batch_lookup_optimization",
923
+ {offsetof(struct ImmutableCFOptions,
924
+ memtable_batch_lookup_optimization),
925
+ OptionType::kBoolean, OptionVerificationType::kNormal,
926
+ OptionTypeFlags::kNone}},
913
927
  };
914
928
 
915
929
  const std::string OptionsHelper::kCFOptionsName = "ColumnFamilyOptions";
@@ -1050,7 +1064,9 @@ ImmutableCFOptions::ImmutableCFOptions(const ColumnFamilyOptions& cf_options)
1050
1064
  blob_cache(cf_options.blob_cache),
1051
1065
  persist_user_defined_timestamps(
1052
1066
  cf_options.persist_user_defined_timestamps),
1053
- cf_allow_ingest_behind(cf_options.cf_allow_ingest_behind) {}
1067
+ cf_allow_ingest_behind(cf_options.cf_allow_ingest_behind),
1068
+ memtable_batch_lookup_optimization(
1069
+ cf_options.memtable_batch_lookup_optimization) {}
1054
1070
 
1055
1071
  ImmutableOptions::ImmutableOptions() : ImmutableOptions(Options()) {}
1056
1072
 
@@ -1259,6 +1275,10 @@ void MutableCFOptions::Dump(Logger* log) const {
1259
1275
  compaction_options_fifo.max_table_files_size);
1260
1276
  ROCKS_LOG_INFO(log, "compaction_options_fifo.allow_compaction : %d",
1261
1277
  compaction_options_fifo.allow_compaction);
1278
+ ROCKS_LOG_INFO(log, "compaction_options_fifo.max_data_files_size : %" PRIu64,
1279
+ compaction_options_fifo.max_data_files_size);
1280
+ ROCKS_LOG_INFO(log, "compaction_options_fifo.use_kv_ratio_compaction : %d",
1281
+ compaction_options_fifo.use_kv_ratio_compaction);
1262
1282
 
1263
1283
  // Blob file related options
1264
1284
  ROCKS_LOG_INFO(log, " enable_blob_files: %s",
@@ -84,6 +84,8 @@ struct ImmutableCFOptions {
84
84
  bool persist_user_defined_timestamps;
85
85
 
86
86
  bool cf_allow_ingest_behind;
87
+
88
+ bool memtable_batch_lookup_optimization;
87
89
  };
88
90
 
89
91
  struct ImmutableOptions : public ImmutableDBOptions, public ImmutableCFOptions {
@@ -1281,8 +1281,6 @@ class MockSliceTransform : public SliceTransform {
1281
1281
  Slice Transform(const Slice& /*key*/) const override { return Slice(); }
1282
1282
 
1283
1283
  bool InDomain(const Slice& /*key*/) const override { return false; }
1284
-
1285
- bool InRange(const Slice& /*key*/) const override { return false; }
1286
1284
  };
1287
1285
 
1288
1286
  class MockMemoryAllocator : public BaseMemoryAllocator {
@@ -136,6 +136,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
136
136
  {offsetof(struct MutableDBOptions, manifest_preallocation_size),
137
137
  OptionType::kSizeT, OptionVerificationType::kNormal,
138
138
  OptionTypeFlags::kMutable}},
139
+ {"verify_manifest_content_on_close",
140
+ {offsetof(struct MutableDBOptions, verify_manifest_content_on_close),
141
+ OptionType::kBoolean, OptionVerificationType::kNormal,
142
+ OptionTypeFlags::kMutable}},
139
143
  {"daily_offpeak_time_utc",
140
144
  {offsetof(struct MutableDBOptions, daily_offpeak_time_utc),
141
145
  OptionType::kString, OptionVerificationType::kNormal,
@@ -230,6 +234,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
230
234
  {offsetof(struct ImmutableDBOptions, paranoid_checks),
231
235
  OptionType::kBoolean, OptionVerificationType::kNormal,
232
236
  OptionTypeFlags::kNone}},
237
+ {"open_files_async",
238
+ {offsetof(struct ImmutableDBOptions, open_files_async),
239
+ OptionType::kBoolean, OptionVerificationType::kNormal,
240
+ OptionTypeFlags::kNone}},
233
241
  {"flush_verify_memtable_count",
234
242
  {offsetof(struct ImmutableDBOptions, flush_verify_memtable_count),
235
243
  OptionType::kBoolean, OptionVerificationType::kNormal,
@@ -259,9 +267,7 @@ static std::unordered_map<std::string, OptionTypeInfo>
259
267
  OptionType::kBoolean, OptionVerificationType::kNormal,
260
268
  OptionTypeFlags::kNone}},
261
269
  {"skip_checking_sst_file_sizes_on_db_open",
262
- {offsetof(struct ImmutableDBOptions,
263
- skip_checking_sst_file_sizes_on_db_open),
264
- OptionType::kBoolean, OptionVerificationType::kNormal,
270
+ {0, OptionType::kBoolean, OptionVerificationType::kDeprecated,
265
271
  OptionTypeFlags::kNone}},
266
272
  {"new_table_reader_for_compaction_inputs",
267
273
  {0, OptionType::kBoolean, OptionVerificationType::kDeprecated,
@@ -373,6 +379,11 @@ static std::unordered_map<std::string, OptionTypeInfo>
373
379
  {offsetof(struct ImmutableDBOptions, avoid_flush_during_recovery),
374
380
  OptionType::kBoolean, OptionVerificationType::kNormal,
375
381
  OptionTypeFlags::kNone}},
382
+ {"enforce_write_buffer_manager_during_recovery",
383
+ {offsetof(struct ImmutableDBOptions,
384
+ enforce_write_buffer_manager_during_recovery),
385
+ OptionType::kBoolean, OptionVerificationType::kNormal,
386
+ OptionTypeFlags::kNone}},
376
387
  {"allow_ingest_behind",
377
388
  {offsetof(struct ImmutableDBOptions, allow_ingest_behind),
378
389
  OptionType::kBoolean, OptionVerificationType::kNormal,
@@ -719,6 +730,7 @@ ImmutableDBOptions::ImmutableDBOptions(const DBOptions& options)
719
730
  create_missing_column_families(options.create_missing_column_families),
720
731
  error_if_exists(options.error_if_exists),
721
732
  paranoid_checks(options.paranoid_checks),
733
+ open_files_async(options.open_files_async),
722
734
  flush_verify_memtable_count(options.flush_verify_memtable_count),
723
735
  compaction_verify_record_count(options.compaction_verify_record_count),
724
736
  track_and_verify_wals_in_manifest(
@@ -767,14 +779,14 @@ ImmutableDBOptions::ImmutableDBOptions(const DBOptions& options)
767
779
  write_thread_max_yield_usec(options.write_thread_max_yield_usec),
768
780
  write_thread_slow_yield_usec(options.write_thread_slow_yield_usec),
769
781
  skip_stats_update_on_db_open(options.skip_stats_update_on_db_open),
770
- skip_checking_sst_file_sizes_on_db_open(
771
- options.skip_checking_sst_file_sizes_on_db_open),
772
782
  wal_recovery_mode(options.wal_recovery_mode),
773
783
  allow_2pc(options.allow_2pc),
774
784
  row_cache(options.row_cache),
775
785
  wal_filter(options.wal_filter),
776
786
  dump_malloc_stats(options.dump_malloc_stats),
777
787
  avoid_flush_during_recovery(options.avoid_flush_during_recovery),
788
+ enforce_write_buffer_manager_during_recovery(
789
+ options.enforce_write_buffer_manager_during_recovery),
778
790
  allow_ingest_behind(options.allow_ingest_behind),
779
791
  two_write_queues(options.two_write_queues),
780
792
  manual_wal_flush(options.manual_wal_flush),
@@ -818,6 +830,8 @@ void ImmutableDBOptions::Dump(Logger* log) const {
818
830
  create_if_missing);
819
831
  ROCKS_LOG_HEADER(log, " Options.paranoid_checks: %d",
820
832
  paranoid_checks);
833
+ ROCKS_LOG_HEADER(log, " Options.open_files_async: %d",
834
+ open_files_async);
821
835
  ROCKS_LOG_HEADER(log, " Options.flush_verify_memtable_count: %d",
822
836
  flush_verify_memtable_count);
823
837
  ROCKS_LOG_HEADER(log, " Options.compaction_verify_record_count: %d",
@@ -939,6 +953,9 @@ void ImmutableDBOptions::Dump(Logger* log) const {
939
953
 
940
954
  ROCKS_LOG_HEADER(log, " Options.avoid_flush_during_recovery: %d",
941
955
  avoid_flush_during_recovery);
956
+ ROCKS_LOG_HEADER(
957
+ log, " Options.enforce_write_buffer_manager_during_recovery: %d",
958
+ enforce_write_buffer_manager_during_recovery);
942
959
  ROCKS_LOG_HEADER(log, " Options.allow_ingest_behind: %d",
943
960
  allow_ingest_behind);
944
961
  ROCKS_LOG_HEADER(log, " Options.two_write_queues: %d",
@@ -1045,6 +1062,8 @@ MutableDBOptions::MutableDBOptions(const DBOptions& options)
1045
1062
  max_manifest_file_size(options.max_manifest_file_size),
1046
1063
  max_manifest_space_amp_pct(options.max_manifest_space_amp_pct),
1047
1064
  manifest_preallocation_size(options.manifest_preallocation_size),
1065
+ verify_manifest_content_on_close(
1066
+ options.verify_manifest_content_on_close),
1048
1067
  daily_offpeak_time_utc(options.daily_offpeak_time_utc) {}
1049
1068
 
1050
1069
  void MutableDBOptions::Dump(Logger* log) const {
@@ -1098,6 +1117,8 @@ void MutableDBOptions::Dump(Logger* log) const {
1098
1117
  ROCKS_LOG_HEADER(
1099
1118
  log, " Options.manifest_preallocation_size: %" ROCKSDB_PRIszt,
1100
1119
  manifest_preallocation_size);
1120
+ ROCKS_LOG_HEADER(log, " Options.verify_manifest_content_on_close: %d",
1121
+ verify_manifest_content_on_close);
1101
1122
  ROCKS_LOG_HEADER(log, "Options.daily_offpeak_time_utc: %s",
1102
1123
  daily_offpeak_time_utc.c_str());
1103
1124
  }
@@ -24,6 +24,7 @@ struct ImmutableDBOptions {
24
24
  bool create_missing_column_families;
25
25
  bool error_if_exists;
26
26
  bool paranoid_checks;
27
+ bool open_files_async;
27
28
  bool flush_verify_memtable_count;
28
29
  bool compaction_verify_record_count;
29
30
  bool track_and_verify_wals_in_manifest;
@@ -70,13 +71,13 @@ struct ImmutableDBOptions {
70
71
  uint64_t write_thread_max_yield_usec;
71
72
  uint64_t write_thread_slow_yield_usec;
72
73
  bool skip_stats_update_on_db_open;
73
- bool skip_checking_sst_file_sizes_on_db_open;
74
74
  WALRecoveryMode wal_recovery_mode;
75
75
  bool allow_2pc;
76
76
  std::shared_ptr<Cache> row_cache;
77
77
  WalFilter* wal_filter;
78
78
  bool dump_malloc_stats;
79
79
  bool avoid_flush_during_recovery;
80
+ bool enforce_write_buffer_manager_during_recovery;
80
81
  bool allow_ingest_behind;
81
82
  bool two_write_queues;
82
83
  bool manual_wal_flush;
@@ -147,6 +148,7 @@ struct MutableDBOptions {
147
148
  uint64_t max_manifest_file_size;
148
149
  int max_manifest_space_amp_pct;
149
150
  size_t manifest_preallocation_size;
151
+ bool verify_manifest_content_on_close;
150
152
  std::string daily_offpeak_time_utc;
151
153
  };
152
154
 
@@ -115,7 +115,9 @@ AdvancedColumnFamilyOptions::AdvancedColumnFamilyOptions(const Options& options)
115
115
  persist_user_defined_timestamps(options.persist_user_defined_timestamps),
116
116
  memtable_op_scan_flush_trigger(options.memtable_op_scan_flush_trigger),
117
117
  memtable_avg_op_scan_flush_trigger(
118
- options.memtable_avg_op_scan_flush_trigger) {
118
+ options.memtable_avg_op_scan_flush_trigger),
119
+ memtable_batch_lookup_optimization(
120
+ options.memtable_batch_lookup_optimization) {
119
121
  assert(memtable_factory.get() != nullptr);
120
122
  if (max_bytes_for_level_multiplier_additional.size() <
121
123
  static_cast<unsigned int>(num_levels)) {
@@ -468,6 +470,8 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
468
470
  memtable_max_range_deletions);
469
471
  ROCKS_LOG_HEADER(log, " Options.cf_allow_ingest_behind: %s",
470
472
  cf_allow_ingest_behind ? "true" : "false");
473
+ ROCKS_LOG_HEADER(log, " Options.memtable_batch_lookup_optimization: %s",
474
+ memtable_batch_lookup_optimization ? "true" : "false");
471
475
  } // ColumnFamilyOptions::Dump
472
476
 
473
477
  void Options::Dump(Logger* log) const {
@@ -65,6 +65,7 @@ void BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
65
65
  immutable_db_options.create_missing_column_families;
66
66
  options.error_if_exists = immutable_db_options.error_if_exists;
67
67
  options.paranoid_checks = immutable_db_options.paranoid_checks;
68
+ options.open_files_async = immutable_db_options.open_files_async;
68
69
  options.flush_verify_memtable_count =
69
70
  immutable_db_options.flush_verify_memtable_count;
70
71
  options.compaction_verify_record_count =
@@ -149,8 +150,6 @@ void BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
149
150
  immutable_db_options.write_thread_slow_yield_usec;
150
151
  options.skip_stats_update_on_db_open =
151
152
  immutable_db_options.skip_stats_update_on_db_open;
152
- options.skip_checking_sst_file_sizes_on_db_open =
153
- immutable_db_options.skip_checking_sst_file_sizes_on_db_open;
154
153
  options.wal_recovery_mode = immutable_db_options.wal_recovery_mode;
155
154
  options.allow_2pc = immutable_db_options.allow_2pc;
156
155
  options.row_cache = immutable_db_options.row_cache;
@@ -158,6 +157,8 @@ void BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
158
157
  options.dump_malloc_stats = immutable_db_options.dump_malloc_stats;
159
158
  options.avoid_flush_during_recovery =
160
159
  immutable_db_options.avoid_flush_during_recovery;
160
+ options.enforce_write_buffer_manager_during_recovery =
161
+ immutable_db_options.enforce_write_buffer_manager_during_recovery;
161
162
  options.avoid_flush_during_shutdown =
162
163
  mutable_db_options.avoid_flush_during_shutdown;
163
164
  options.allow_ingest_behind = immutable_db_options.allow_ingest_behind;
@@ -188,6 +189,8 @@ void BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
188
189
  options.lowest_used_cache_tier = immutable_db_options.lowest_used_cache_tier;
189
190
  options.enforce_single_del_contracts =
190
191
  immutable_db_options.enforce_single_del_contracts;
192
+ options.verify_manifest_content_on_close =
193
+ mutable_db_options.verify_manifest_content_on_close;
191
194
  options.daily_offpeak_time_utc = mutable_db_options.daily_offpeak_time_utc;
192
195
  options.follower_refresh_catchup_period_ms =
193
196
  immutable_db_options.follower_refresh_catchup_period_ms;
@@ -348,6 +351,8 @@ void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
348
351
  ioptions.persist_user_defined_timestamps;
349
352
  cf_opts->default_temperature = ioptions.default_temperature;
350
353
  cf_opts->cf_allow_ingest_behind = ioptions.cf_allow_ingest_behind;
354
+ cf_opts->memtable_batch_lookup_optimization =
355
+ ioptions.memtable_batch_lookup_optimization;
351
356
 
352
357
  // TODO(yhchiang): find some way to handle the following derived options
353
358
  // * max_file_size