@nxtedition/rocksdb 15.4.1 → 16.0.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 (401) hide show
  1. package/binding.cc +70 -23
  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/index.js +70 -10
  395. package/iterator.js +25 -3
  396. package/max_rev_operator.h +9 -5
  397. package/package.json +1 -1
  398. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  399. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  400. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  401. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
@@ -100,6 +100,8 @@ DECLARE_bool(enable_pipelined_write);
100
100
  DECLARE_bool(verify_before_write);
101
101
  DECLARE_bool(histogram);
102
102
  DECLARE_bool(destroy_db_initially);
103
+ DECLARE_bool(destroy_db_and_exit);
104
+ DECLARE_string(delete_dir_and_exit);
103
105
  DECLARE_bool(verbose);
104
106
  DECLARE_bool(progress_reports);
105
107
  DECLARE_uint64(db_write_buffer_size);
@@ -111,6 +113,7 @@ DECLARE_bool(use_write_buffer_manager);
111
113
  DECLARE_double(memtable_prefix_bloom_size_ratio);
112
114
  DECLARE_bool(memtable_whole_key_filtering);
113
115
  DECLARE_int32(open_files);
116
+ DECLARE_bool(open_files_async);
114
117
  DECLARE_uint64(compressed_secondary_cache_size);
115
118
  DECLARE_int32(compressed_secondary_cache_numshardbits);
116
119
  DECLARE_int32(secondary_cache_update_interval);
@@ -123,6 +126,7 @@ DECLARE_int32(level0_slowdown_writes_trigger);
123
126
  DECLARE_int32(level0_stop_writes_trigger);
124
127
  DECLARE_int32(block_size);
125
128
  DECLARE_int32(format_version);
129
+ DECLARE_bool(separate_key_value_in_data_block);
126
130
  DECLARE_int32(index_block_restart_interval);
127
131
  DECLARE_int32(max_background_compactions);
128
132
  DECLARE_int32(num_bottom_pri_threads);
@@ -159,6 +163,8 @@ DECLARE_uint64(periodic_compaction_seconds);
159
163
  DECLARE_string(daily_offpeak_time_utc);
160
164
  DECLARE_uint64(compaction_ttl);
161
165
  DECLARE_bool(fifo_allow_compaction);
166
+ DECLARE_uint64(fifo_compaction_max_data_files_size_mb);
167
+ DECLARE_bool(fifo_compaction_use_kv_ratio_compaction);
162
168
  DECLARE_bool(allow_concurrent_memtable_write);
163
169
  DECLARE_double(experimental_mempurge_threshold);
164
170
  DECLARE_bool(enable_write_thread_adaptive_yield);
@@ -173,6 +179,10 @@ DECLARE_uint32(sqfc_version);
173
179
  DECLARE_bool(use_sqfc_for_range_queries);
174
180
  DECLARE_int32(index_type);
175
181
  DECLARE_int32(data_block_index_type);
182
+ DECLARE_int32(index_block_search_type);
183
+ DECLARE_double(uniform_cv_threshold);
184
+ DECLARE_bool(use_trie_index);
185
+ DECLARE_bool(test_backward_scan);
176
186
  DECLARE_string(db);
177
187
  DECLARE_string(secondaries_base);
178
188
  DECLARE_bool(test_secondary);
@@ -217,6 +227,7 @@ DECLARE_int32(reset_stats_one_in);
217
227
  DECLARE_int32(pause_background_one_in);
218
228
  DECLARE_int32(disable_file_deletions_one_in);
219
229
  DECLARE_int32(disable_manual_compaction_one_in);
230
+ DECLARE_int32(abort_and_resume_compactions_one_in);
220
231
  DECLARE_int32(compact_range_width);
221
232
  DECLARE_int32(acquire_snapshot_one_in);
222
233
  DECLARE_bool(compare_full_db_state_snapshot);
@@ -249,6 +260,7 @@ DECLARE_uint64(ops_per_thread);
249
260
  DECLARE_uint64(log2_keys_per_lock);
250
261
  DECLARE_uint64(max_manifest_file_size);
251
262
  DECLARE_int32(max_manifest_space_amp_pct);
263
+ DECLARE_bool(verify_manifest_content_on_close);
252
264
  DECLARE_bool(in_place_update);
253
265
  DECLARE_string(memtablerep);
254
266
  DECLARE_int32(prefix_size);
@@ -262,6 +274,7 @@ DECLARE_bool(avoid_unnecessary_blocking_io);
262
274
  DECLARE_bool(write_dbid_to_manifest);
263
275
  DECLARE_bool(write_identity_file);
264
276
  DECLARE_bool(avoid_flush_during_recovery);
277
+ DECLARE_bool(enforce_write_buffer_manager_during_recovery);
265
278
  DECLARE_uint64(max_write_batch_group_size_bytes);
266
279
  DECLARE_bool(level_compaction_dynamic_level_bytes);
267
280
  DECLARE_int32(verify_checksum_one_in);
@@ -275,8 +288,10 @@ DECLARE_bool(verification_only);
275
288
  DECLARE_string(last_level_temperature);
276
289
  DECLARE_string(default_write_temperature);
277
290
  DECLARE_string(default_temperature);
291
+ DECLARE_uint32(verify_output_flags);
278
292
  DECLARE_bool(paranoid_memory_checks);
279
293
  DECLARE_bool(memtable_veirfy_per_key_checksum_on_seek);
294
+ DECLARE_bool(memtable_batch_lookup_optimization);
280
295
 
281
296
  // Options for transaction dbs.
282
297
  // Use TransactionDB (a.k.a. Pessimistic Transaction DB)
@@ -296,11 +311,8 @@ DECLARE_uint32(occ_lock_bucket_count);
296
311
 
297
312
  // Options for StackableDB-based BlobDB
298
313
  DECLARE_bool(use_blob_db);
299
- DECLARE_uint64(blob_db_min_blob_size);
300
- DECLARE_uint64(blob_db_bytes_per_sync);
301
314
  DECLARE_uint64(blob_db_file_size);
302
315
  DECLARE_bool(blob_db_enable_gc);
303
- DECLARE_double(blob_db_gc_cutoff);
304
316
 
305
317
  // Options for integrated BlobDB
306
318
  DECLARE_bool(allow_setting_blob_options_dynamically);
@@ -398,7 +410,6 @@ DECLARE_bool(enable_index_compression);
398
410
  DECLARE_uint32(index_shortening);
399
411
  DECLARE_uint32(metadata_charge_policy);
400
412
  DECLARE_bool(use_adaptive_mutex_lru);
401
- DECLARE_uint32(compress_format_version);
402
413
  DECLARE_uint64(manifest_preallocation_size);
403
414
  DECLARE_bool(enable_checksum_handoff);
404
415
  DECLARE_string(compression_manager);
@@ -438,6 +449,7 @@ DECLARE_uint32(ingest_wbwi_one_in);
438
449
  DECLARE_bool(universal_reduce_file_locking);
439
450
  DECLARE_bool(use_multiscan);
440
451
  DECLARE_bool(multiscan_use_async_io);
452
+ DECLARE_uint64(multiscan_max_prefetch_memory_bytes);
441
453
 
442
454
  // Compaction deletion trigger declarations for stress testing
443
455
  DECLARE_bool(enable_compaction_on_deletion_trigger);
@@ -820,5 +832,10 @@ Status SaveFilesInDirectory(const std::string& src_dirname,
820
832
  const std::string& dst_dirname);
821
833
  Status DestroyUnverifiedSubdir(const std::string& dirname);
822
834
  Status InitUnverifiedSubdir(const std::string& dirname);
835
+
836
+ // Destroy the DB at the given path under the env configured for db_stress.
837
+ // Handles both regular DB and BlobDB, and cleans and removes the entire dir.
838
+ Status DbStressDestroyDb(const std::string& db_path);
839
+
823
840
  } // namespace ROCKSDB_NAMESPACE
824
841
  #endif // GFLAGS
@@ -9,8 +9,11 @@
9
9
 
10
10
  #ifdef GFLAGS
11
11
  #pragma once
12
+
12
13
  #include "db_stress_tool/db_stress_common.h"
14
+ #include "file/filename.h"
13
15
  #include "monitoring/thread_status_util.h"
16
+ #include "rocksdb/file_checksum.h"
14
17
 
15
18
  namespace ROCKSDB_NAMESPACE {
16
19
  namespace {
@@ -173,6 +176,35 @@ class DbStressFSWrapper : public FileSystemWrapper {
173
176
  const FileOptions& file_opts,
174
177
  std::unique_ptr<FSRandomAccessFile>* r,
175
178
  IODebugContext* dbg) override {
179
+ // verify that file checksums are propagated through FileOptions
180
+ // for SST file opens.
181
+
182
+ std::string basename = f.substr(f.rfind('/') + 1);
183
+ uint64_t file_number;
184
+ FileType file_type;
185
+ if (ParseFileName(basename, &file_number, &file_type) &&
186
+ file_type == kTableFile) {
187
+ // file_checksum_func_name must always be populated to be sure each call
188
+ // site within RocksDB is intentional about populating the fields with the
189
+ // best available information:
190
+ // - kNoFileChecksumFuncName: no checksum context available
191
+ // (e.g., SstFileDumper, SstFileReader, checksum generation),
192
+ // always paired with empty checksum
193
+ // - kUnknownFileChecksumFuncName: file created without a
194
+ // checksum factory (from MANIFEST), always paired with
195
+ // empty checksum
196
+ // - a real name (e.g., "FileChecksumCrc32c"): checksum exists
197
+ assert(!file_opts.file_checksum_func_name.empty());
198
+ if (file_opts.file_checksum_func_name == kUnknownFileChecksumFuncName ||
199
+ file_opts.file_checksum_func_name == kNoFileChecksumFuncName) {
200
+ // No checksum available — checksum value must be empty
201
+ assert(file_opts.file_checksum.empty());
202
+ } else {
203
+ // A real checksum function — checksum value must be present
204
+ assert(!file_opts.file_checksum.empty());
205
+ }
206
+ }
207
+
176
208
  std::unique_ptr<FSRandomAccessFile> file;
177
209
  IOStatus s = target()->NewRandomAccessFile(f, file_opts, &file, dbg);
178
210
  if (s.ok()) {
@@ -135,6 +135,14 @@ DEFINE_bool(histogram, false, "Print histogram of operation timings");
135
135
  DEFINE_bool(destroy_db_initially, true,
136
136
  "Destroys the database dir before start if this is true");
137
137
 
138
+ DEFINE_bool(destroy_db_and_exit, false,
139
+ "Destroys the database dir and exits. Useful for cleanup without "
140
+ "running stress test. Other options are mostly ignored.");
141
+
142
+ DEFINE_string(delete_dir_and_exit, "",
143
+ "Recursively deletes the specified directory and exits. "
144
+ "Useful for cleaning up TEST_TMPDIR after crash tests.");
145
+
138
146
  DEFINE_bool(verbose, false, "Verbose");
139
147
 
140
148
  DEFINE_bool(progress_reports, true,
@@ -195,6 +203,9 @@ DEFINE_int32(open_files, ROCKSDB_NAMESPACE::Options().max_open_files,
195
203
  "Maximum number of files to keep open at the same time "
196
204
  "(use default if == 0)");
197
205
 
206
+ DEFINE_bool(open_files_async, ROCKSDB_NAMESPACE::Options().open_files_async,
207
+ "Options.open_files_async");
208
+
198
209
  DEFINE_uint64(compressed_secondary_cache_size, 0,
199
210
  "Number of bytes to use as a cache of compressed data."
200
211
  " 0 means use default settings.");
@@ -245,6 +256,11 @@ DEFINE_int32(format_version,
245
256
  ROCKSDB_NAMESPACE::BlockBasedTableOptions().format_version),
246
257
  "Format version of SST files.");
247
258
 
259
+ DEFINE_bool(separate_key_value_in_data_block,
260
+ ROCKSDB_NAMESPACE::BlockBasedTableOptions()
261
+ .separate_key_value_in_data_block,
262
+ "If true, data blocks store keys and values separately.");
263
+
248
264
  DEFINE_int32(
249
265
  index_block_restart_interval,
250
266
  ROCKSDB_NAMESPACE::BlockBasedTableOptions().index_block_restart_interval,
@@ -407,6 +423,18 @@ DEFINE_bool(fifo_allow_compaction, false,
407
423
  "If true, set `Options::compaction_options_fifo.allow_compaction = "
408
424
  "true`. It only take effect when FIFO compaction is used.");
409
425
 
426
+ DEFINE_uint64(fifo_compaction_max_data_files_size_mb, 0,
427
+ "If non-zero, set "
428
+ "`Options::compaction_options_fifo.max_data_files_size` to this "
429
+ "value (in MB). Only takes effect with FIFO compaction.");
430
+
431
+ DEFINE_bool(fifo_compaction_use_kv_ratio_compaction, false,
432
+ "If true, set "
433
+ "`Options::compaction_options_fifo.use_kv_ratio_compaction = "
434
+ "true`. Recommends fifo_allow_compaction and "
435
+ "fifo_compaction_max_data_files_size_mb > 0 (falls back to "
436
+ "cost-based intra-L0 compaction if not set).");
437
+
410
438
  DEFINE_bool(allow_concurrent_memtable_write, false,
411
439
  "Allow multi-writers to update mem tables in parallel.");
412
440
 
@@ -421,17 +449,6 @@ DEFINE_bool(enable_write_thread_adaptive_yield,
421
449
  // Options for StackableDB-based BlobDB
422
450
  DEFINE_bool(use_blob_db, false, "[Stacked BlobDB] Use BlobDB.");
423
451
 
424
- DEFINE_uint64(
425
- blob_db_min_blob_size,
426
- ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().min_blob_size,
427
- "[Stacked BlobDB] Smallest blob to store in a file. Blobs "
428
- "smaller than this will be inlined with the key in the LSM tree.");
429
-
430
- DEFINE_uint64(
431
- blob_db_bytes_per_sync,
432
- ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().bytes_per_sync,
433
- "[Stacked BlobDB] Sync blob files once per every N bytes written.");
434
-
435
452
  DEFINE_uint64(blob_db_file_size,
436
453
  ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().blob_file_size,
437
454
  "[Stacked BlobDB] Target size of each blob file.");
@@ -441,11 +458,6 @@ DEFINE_bool(
441
458
  ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().enable_garbage_collection,
442
459
  "[Stacked BlobDB] Enable BlobDB garbage collection.");
443
460
 
444
- DEFINE_double(
445
- blob_db_gc_cutoff,
446
- ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().garbage_collection_cutoff,
447
- "[Stacked BlobDB] Cutoff ratio for BlobDB garbage collection.");
448
-
449
461
  // Options for integrated BlobDB
450
462
  DEFINE_bool(allow_setting_blob_options_dynamically, false,
451
463
  "[Integrated BlobDB] Allow setting blob options dynamically.");
@@ -604,6 +616,26 @@ DEFINE_int32(
604
616
  ROCKSDB_NAMESPACE::BlockBasedTableOptions().data_block_index_type),
605
617
  "Index type for data blocks (see `enum DataBlockIndexType` in table.h)");
606
618
 
619
+ DEFINE_int32(index_block_search_type,
620
+ static_cast<int32_t>(ROCKSDB_NAMESPACE::BlockBasedTableOptions()
621
+ .index_block_search_type),
622
+ "Search algorithm for index blocks (see `enum BlockSearchType` in "
623
+ "table.h)");
624
+
625
+ DEFINE_double(uniform_cv_threshold,
626
+ ROCKSDB_NAMESPACE::BlockBasedTableOptions().uniform_cv_threshold,
627
+ "CV threshold for marking index blocks as uniform. Set to -1 to "
628
+ "disable. (see `uniform_cv_threshold` in table.h)");
629
+
630
+ DEFINE_bool(use_trie_index, false,
631
+ "Use trie-based user defined index (UDI) for SST files. "
632
+ "Compatible with all operation types (Put, Delete, Merge, etc.). "
633
+ "Backward scan is disabled when this is enabled.");
634
+
635
+ DEFINE_bool(test_backward_scan, true,
636
+ "Test backward iteration (Prev, SeekForPrev) in stress tests. "
637
+ "Automatically set to false when use_trie_index is enabled.");
638
+
607
639
  DEFINE_string(db, "", "Use the db with the following name.");
608
640
 
609
641
  DEFINE_string(secondaries_base, "",
@@ -808,6 +840,10 @@ DEFINE_int32(
808
840
  "If non-zero, then DisableManualCompaction()+Enable will be called "
809
841
  "once for every N ops on average. 0 disables.");
810
842
 
843
+ DEFINE_int32(abort_and_resume_compactions_one_in, 0,
844
+ "If non-zero, then AbortAllCompactions()+Resume will be called "
845
+ "once for every N ops on average. 0 disables.");
846
+
811
847
  DEFINE_int32(compact_range_width, 10000,
812
848
  "The width of the ranges passed to CompactRange().");
813
849
 
@@ -984,6 +1020,9 @@ DEFINE_uint64(max_manifest_file_size, 16384,
984
1020
  DEFINE_int32(max_manifest_space_amp_pct, 500,
985
1021
  "Max manifest space amp percentage for auto-tuning");
986
1022
 
1023
+ DEFINE_bool(verify_manifest_content_on_close, false,
1024
+ "If true, verify MANIFEST content (CRC + decode) on DB close");
1025
+
987
1026
  DEFINE_bool(in_place_update, false, "On true, does inplace update in memtable");
988
1027
 
989
1028
  DEFINE_string(memtablerep, "skip_list", "");
@@ -1041,6 +1080,11 @@ DEFINE_bool(avoid_flush_during_recovery,
1041
1080
  ROCKSDB_NAMESPACE::Options().avoid_flush_during_recovery,
1042
1081
  "Avoid flush during recovery");
1043
1082
 
1083
+ DEFINE_bool(
1084
+ enforce_write_buffer_manager_during_recovery,
1085
+ ROCKSDB_NAMESPACE::Options().enforce_write_buffer_manager_during_recovery,
1086
+ "Enforce write buffer manager memory limit during WAL recovery");
1087
+
1044
1088
  DEFINE_uint64(max_write_batch_group_size_bytes,
1045
1089
  ROCKSDB_NAMESPACE::Options().max_write_batch_group_size_bytes,
1046
1090
  "Max write batch group size");
@@ -1394,12 +1438,6 @@ DEFINE_bool(use_adaptive_mutex_lru,
1394
1438
  ROCKSDB_NAMESPACE::LRUCacheOptions().use_adaptive_mutex,
1395
1439
  "LRUCacheOptions.use_adaptive_mutex");
1396
1440
 
1397
- DEFINE_uint32(
1398
- compress_format_version,
1399
- static_cast<uint32_t>(ROCKSDB_NAMESPACE::CompressedSecondaryCacheOptions()
1400
- .compress_format_version),
1401
- "CompressedSecondaryCacheOptions.compress_format_version");
1402
-
1403
1441
  DEFINE_uint64(manifest_preallocation_size,
1404
1442
  ROCKSDB_NAMESPACE::Options().manifest_preallocation_size,
1405
1443
  "Options.manifest_preallocation_size");
@@ -1500,6 +1538,10 @@ DEFINE_uint32(uncache_aggressiveness,
1500
1538
  "obsolete. 0 = disabled, 1 = minimum, 100 = moderate, 10000 = "
1501
1539
  "normal max");
1502
1540
 
1541
+ DEFINE_uint32(verify_output_flags, 0,
1542
+ "Sets CF option verify_output_flags as a uint32_t bitmask. "
1543
+ "See VerifyOutputFlags enum for bit definitions.");
1544
+
1503
1545
  DEFINE_bool(paranoid_memory_checks,
1504
1546
  ROCKSDB_NAMESPACE::Options().paranoid_memory_checks,
1505
1547
  "Sets CF option paranoid_memory_checks.");
@@ -1509,6 +1551,10 @@ DEFINE_bool(
1509
1551
  ROCKSDB_NAMESPACE::Options().memtable_veirfy_per_key_checksum_on_seek,
1510
1552
  "Sets CF option memtable_veirfy_per_key_checksum_on_seek.");
1511
1553
 
1554
+ DEFINE_bool(memtable_batch_lookup_optimization,
1555
+ ROCKSDB_NAMESPACE::Options().memtable_batch_lookup_optimization,
1556
+ "Sets CF option memtable_batch_lookup_optimization.");
1557
+
1512
1558
  DEFINE_uint32(commit_bypass_memtable_one_in, 0,
1513
1559
  "If greater than zero, transaction option will set "
1514
1560
  "commit_bypass_memtable to per every N transactions on average.");
@@ -1563,4 +1609,10 @@ DEFINE_bool(use_multiscan, false,
1563
1609
  DEFINE_bool(multiscan_use_async_io, false,
1564
1610
  "If set, enable async_io for MultiScan operations.");
1565
1611
 
1612
+ DEFINE_uint64(multiscan_max_prefetch_memory_bytes, 0,
1613
+ "If non-zero, sets the max_prefetch_memory_bytes on the "
1614
+ "IODispatcher used for MultiScan. This limits the total memory "
1615
+ "used for prefetching data blocks across all concurrent "
1616
+ "MultiScan ReadSets.");
1617
+
1566
1618
  #endif // GFLAGS
@@ -226,6 +226,13 @@ class DbStressListener : public EventListener {
226
226
  RandomSleep();
227
227
  }
228
228
 
229
+ void OnBackgroundJobPressureChanged(
230
+ DB* /*db*/, const BackgroundJobPressure& pressure) override {
231
+ RandomSleep();
232
+ std::lock_guard<std::mutex> lk(bg_pressure_mu_);
233
+ last_bg_pressure_ = pressure;
234
+ }
235
+
229
236
  void OnFileReadFinish(const FileOperationInfo& info) override {
230
237
  // Even empty callback is valuable because sometimes some locks are
231
238
  // released in order to make the callback.
@@ -366,6 +373,8 @@ class DbStressListener : public EventListener {
366
373
  std::atomic<int> num_pending_file_creations_;
367
374
  UniqueIdVerifier unique_ids_;
368
375
  SharedState* shared_;
376
+ mutable std::mutex bg_pressure_mu_;
377
+ BackgroundJobPressure last_bg_pressure_;
369
378
  };
370
379
  } // namespace ROCKSDB_NAMESPACE
371
380
  #endif // GFLAGS