@nxtedition/rocksdb 10.0.13 → 10.0.15

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 (700) hide show
  1. package/.tap/coverage/213879bb-47ae-470e-bb54-f4157d9f60e2.json +162898 -0
  2. package/.tap/processinfo/{4c642b53-6895-4ef0-9391-7c6b8d484262.json → 213879bb-47ae-470e-bb54-f4157d9f60e2.json} +117 -121
  3. package/.tap/test-results/node_modules/abstract-level/test/get-test.js.tap +0 -0
  4. package/.tap/test-results/test/abstract-level-test.js.tap +1705 -0
  5. package/.tap/test-results/test/batch-test.js.tap +12 -0
  6. package/.tap/test-results/test/chained-batch-gc-test.js.tap +11 -0
  7. package/.tap/test-results/test/cleanup-hanging-iterators-test.js.tap +58 -0
  8. package/.tap/test-results/test/clear-gc-test.js.tap +13 -0
  9. package/.tap/test-results/test/column-test.js.tap +55 -0
  10. package/.tap/test-results/test/common.js.tap +0 -0
  11. package/.tap/test-results/test/compression-test.js.tap +30 -0
  12. package/.tap/test-results/test/db-identity.js.tap +12 -0
  13. package/.tap/test-results/test/electron.js.tap +0 -0
  14. package/.tap/test-results/test/env-cleanup-hook-test.js.tap +2 -0
  15. package/.tap/test-results/test/env-cleanup-hook.js.tap +0 -0
  16. package/.tap/test-results/test/gc.js.tap +0 -0
  17. package/.tap/test-results/test/getproperty-test.js.tap +29 -0
  18. package/.tap/test-results/test/iterator-gc-test.js.tap +4 -0
  19. package/.tap/test-results/test/iterator-hwm-test.js.tap +24 -0
  20. package/.tap/test-results/test/iterator-recursion-test.js.tap +12 -0
  21. package/.tap/test-results/test/iterator-starvation-test.js.tap +2 -0
  22. package/.tap/test-results/test/iterator-test.js.tap +0 -0
  23. package/.tap/test-results/test/leak-tester-batch.js.tap +0 -0
  24. package/.tap/test-results/test/leak-tester-iterator.js.tap +0 -0
  25. package/.tap/test-results/test/leak-tester.js.tap +0 -0
  26. package/.tap/test-results/test/lock-test.js.tap +0 -0
  27. package/.tap/test-results/test/lock.js.tap +0 -0
  28. package/.tap/test-results/test/make.js.tap +0 -0
  29. package/.tap/test-results/test/max-rev-merge.js.tap +0 -12
  30. package/.tap/test-results/test/merge-operator-test.js.tap +0 -0
  31. package/.tap/test-results/test/mkdir-test.js.tap +0 -0
  32. package/.tap/test-results/test/segfault-test.js.tap +0 -0
  33. package/.tap/test-results/test/stack-blower.js.tap +0 -0
  34. package/binding.cc +42 -34
  35. package/deps/rocksdb/rocksdb/CMakeLists.txt +44 -14
  36. package/deps/rocksdb/rocksdb/Makefile +34 -17
  37. package/deps/rocksdb/rocksdb/TARGETS +27 -0
  38. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +95 -42
  39. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +0 -1
  40. package/deps/rocksdb/rocksdb/cache/cache_test.cc +5 -3
  41. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +381 -393
  42. package/deps/rocksdb/rocksdb/cache/clock_cache.h +88 -51
  43. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +14 -7
  44. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +1 -1
  45. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +21 -19
  46. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +8 -7
  47. package/deps/rocksdb/rocksdb/cache/lru_cache.h +1 -1
  48. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +89 -13
  49. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +16 -8
  50. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +6 -6
  51. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +15 -9
  52. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +16 -13
  53. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +306 -23
  54. package/deps/rocksdb/rocksdb/cache/typed_cache.h +3 -4
  55. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +30 -27
  56. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +8 -10
  57. package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.cc +20 -0
  58. package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.h +83 -0
  59. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +19 -16
  60. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -5
  61. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +18 -21
  62. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +5 -4
  63. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +7 -6
  64. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +56 -27
  65. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +11 -7
  66. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +20 -19
  67. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +106 -31
  68. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +5 -8
  69. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +4 -2
  70. package/deps/rocksdb/rocksdb/db/builder.cc +89 -44
  71. package/deps/rocksdb/rocksdb/db/builder.h +4 -6
  72. package/deps/rocksdb/rocksdb/db/c.cc +205 -57
  73. package/deps/rocksdb/rocksdb/db/c_test.c +141 -20
  74. package/deps/rocksdb/rocksdb/db/coalescing_iterator.cc +47 -0
  75. package/deps/rocksdb/rocksdb/db/coalescing_iterator.h +79 -0
  76. package/deps/rocksdb/rocksdb/db/column_family.cc +100 -36
  77. package/deps/rocksdb/rocksdb/db/column_family.h +46 -28
  78. package/deps/rocksdb/rocksdb/db/column_family_test.cc +168 -46
  79. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +51 -6
  80. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +72 -24
  81. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +11 -14
  82. package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +7 -0
  83. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +87 -8
  84. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -3
  85. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +310 -70
  86. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +78 -62
  87. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +0 -1
  88. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
  89. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +33 -96
  90. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +18 -10
  91. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +7 -8
  92. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +42 -22
  93. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +20 -16
  94. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +7 -3
  95. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +18 -17
  96. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +95 -10
  97. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +6 -7
  98. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +213 -34
  99. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +4 -4
  100. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +7 -8
  101. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +16 -16
  102. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +75 -142
  103. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +577 -34
  104. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +4 -4
  105. package/deps/rocksdb/rocksdb/db/convenience.cc +1 -1
  106. package/deps/rocksdb/rocksdb/db/corruption_test.cc +7 -38
  107. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +5 -5
  108. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +366 -136
  109. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +9 -10
  110. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +282 -6
  111. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +6 -6
  112. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +551 -150
  113. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +1 -1
  114. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +41 -13
  115. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +54 -17
  116. package/deps/rocksdb/rocksdb/db/db_follower_test.cc +527 -0
  117. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -58
  118. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +34 -45
  119. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +699 -580
  120. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +308 -230
  121. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +180 -107
  122. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -2
  123. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +10 -6
  124. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +36 -61
  125. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +347 -0
  126. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.h +54 -0
  127. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +206 -155
  128. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +5 -8
  129. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +41 -39
  130. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +26 -22
  131. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +14 -9
  132. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +126 -46
  133. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +21 -9
  134. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +294 -0
  135. package/deps/rocksdb/rocksdb/db/db_iter.cc +116 -78
  136. package/deps/rocksdb/rocksdb/db/db_iter.h +31 -7
  137. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +34 -14
  138. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +69 -8
  139. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +153 -18
  140. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +9 -11
  141. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +9 -1
  142. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +6 -2
  143. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +105 -0
  144. package/deps/rocksdb/rocksdb/db/db_options_test.cc +97 -111
  145. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +12 -3
  146. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +82 -30
  147. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +5 -7
  148. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +64 -22
  149. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +74 -0
  150. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +175 -47
  151. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +4 -3
  152. package/deps/rocksdb/rocksdb/db/db_test.cc +133 -109
  153. package/deps/rocksdb/rocksdb/db/db_test2.cc +227 -139
  154. package/deps/rocksdb/rocksdb/db/db_test_util.cc +42 -19
  155. package/deps/rocksdb/rocksdb/db/db_test_util.h +67 -24
  156. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +140 -2
  157. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +17 -19
  158. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +332 -87
  159. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +4 -4
  160. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +4 -4
  161. package/deps/rocksdb/rocksdb/db/db_write_test.cc +250 -30
  162. package/deps/rocksdb/rocksdb/db/dbformat.cc +41 -8
  163. package/deps/rocksdb/rocksdb/db/dbformat.h +100 -17
  164. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +48 -8
  165. package/deps/rocksdb/rocksdb/db/error_handler.cc +102 -116
  166. package/deps/rocksdb/rocksdb/db/error_handler.h +28 -6
  167. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +263 -99
  168. package/deps/rocksdb/rocksdb/db/event_helpers.cc +3 -1
  169. package/deps/rocksdb/rocksdb/db/experimental.cc +1073 -7
  170. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +261 -111
  171. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +263 -183
  172. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +31 -12
  173. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +698 -7
  174. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +5 -3
  175. package/deps/rocksdb/rocksdb/db/flush_job.cc +41 -41
  176. package/deps/rocksdb/rocksdb/db/flush_job.h +11 -8
  177. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -13
  178. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +19 -6
  179. package/deps/rocksdb/rocksdb/db/forward_iterator.h +12 -12
  180. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +83 -52
  181. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +169 -2
  182. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -6
  183. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -2
  184. package/deps/rocksdb/rocksdb/db/job_context.h +17 -0
  185. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -4
  186. package/deps/rocksdb/rocksdb/db/log_reader.cc +44 -20
  187. package/deps/rocksdb/rocksdb/db/log_reader.h +3 -0
  188. package/deps/rocksdb/rocksdb/db/log_test.cc +81 -17
  189. package/deps/rocksdb/rocksdb/db/log_writer.cc +135 -92
  190. package/deps/rocksdb/rocksdb/db/log_writer.h +11 -10
  191. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -3
  192. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +1 -1
  193. package/deps/rocksdb/rocksdb/db/memtable.cc +82 -62
  194. package/deps/rocksdb/rocksdb/db/memtable.h +17 -9
  195. package/deps/rocksdb/rocksdb/db/memtable_list.cc +19 -13
  196. package/deps/rocksdb/rocksdb/db/memtable_list.h +3 -1
  197. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +38 -5
  198. package/deps/rocksdb/rocksdb/db/merge_context.h +3 -0
  199. package/deps/rocksdb/rocksdb/db/merge_helper.cc +34 -156
  200. package/deps/rocksdb/rocksdb/db/merge_helper.h +52 -46
  201. package/deps/rocksdb/rocksdb/db/merge_test.cc +16 -11
  202. package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +289 -0
  203. package/deps/rocksdb/rocksdb/db/multi_cf_iterator_test.cc +918 -0
  204. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -6
  205. package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
  206. package/deps/rocksdb/rocksdb/db/output_validator.cc +8 -12
  207. package/deps/rocksdb/rocksdb/db/output_validator.h +1 -4
  208. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +23 -4
  209. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +2 -3
  210. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +1 -1
  211. package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +2 -2
  212. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -6
  213. package/deps/rocksdb/rocksdb/db/prefix_test.cc +21 -8
  214. package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +0 -2
  215. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +0 -1
  216. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +17 -4
  217. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +6 -3
  218. package/deps/rocksdb/rocksdb/db/repair.cc +35 -29
  219. package/deps/rocksdb/rocksdb/db/repair_test.cc +1 -2
  220. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +428 -156
  221. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +393 -227
  222. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +154 -82
  223. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +2 -2
  224. package/deps/rocksdb/rocksdb/db/table_cache.cc +9 -11
  225. package/deps/rocksdb/rocksdb/db/table_cache.h +2 -1
  226. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +8 -3
  227. package/deps/rocksdb/rocksdb/db/table_properties_collector.h +27 -26
  228. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +23 -23
  229. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +5 -5
  230. package/deps/rocksdb/rocksdb/db/version_builder.cc +6 -0
  231. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +62 -29
  232. package/deps/rocksdb/rocksdb/db/version_edit.cc +1 -2
  233. package/deps/rocksdb/rocksdb/db/version_edit.h +30 -11
  234. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +291 -116
  235. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +54 -11
  236. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +3 -1
  237. package/deps/rocksdb/rocksdb/db/version_set.cc +301 -141
  238. package/deps/rocksdb/rocksdb/db/version_set.h +90 -33
  239. package/deps/rocksdb/rocksdb/db/version_set_test.cc +817 -193
  240. package/deps/rocksdb/rocksdb/db/version_util.h +10 -5
  241. package/deps/rocksdb/rocksdb/db/wal_manager.cc +15 -11
  242. package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -1
  243. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +10 -9
  244. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +403 -28
  245. package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +2 -2
  246. package/deps/rocksdb/rocksdb/db/write_batch.cc +204 -18
  247. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +4 -0
  248. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +149 -5
  249. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +7 -7
  250. package/deps/rocksdb/rocksdb/db/write_stall_stats.h +7 -7
  251. package/deps/rocksdb/rocksdb/db/write_thread.cc +86 -47
  252. package/deps/rocksdb/rocksdb/db/write_thread.h +2 -0
  253. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +176 -68
  254. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +337 -125
  255. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +38 -9
  256. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +126 -34
  257. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +1 -1
  258. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +2 -2
  259. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +161 -1
  260. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +267 -9
  261. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +13 -7
  262. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +9 -9
  263. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +535 -86
  264. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +27 -5
  265. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +8 -15
  266. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +46 -21
  267. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +74 -4
  268. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +28 -11
  269. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +426 -151
  270. package/deps/rocksdb/rocksdb/env/composite_env.cc +1 -1
  271. package/deps/rocksdb/rocksdb/env/emulated_clock.h +6 -6
  272. package/deps/rocksdb/rocksdb/env/env.cc +21 -11
  273. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +9 -9
  274. package/deps/rocksdb/rocksdb/env/env_chroot.cc +3 -2
  275. package/deps/rocksdb/rocksdb/env/env_encryption.cc +3 -3
  276. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -2
  277. package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -10
  278. package/deps/rocksdb/rocksdb/env/env_test.cc +24 -18
  279. package/deps/rocksdb/rocksdb/env/file_system.cc +7 -6
  280. package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +3 -3
  281. package/deps/rocksdb/rocksdb/env/file_system_tracer.h +3 -3
  282. package/deps/rocksdb/rocksdb/env/fs_on_demand.cc +331 -0
  283. package/deps/rocksdb/rocksdb/env/fs_on_demand.h +139 -0
  284. package/deps/rocksdb/rocksdb/env/fs_posix.cc +14 -15
  285. package/deps/rocksdb/rocksdb/env/io_posix.cc +15 -10
  286. package/deps/rocksdb/rocksdb/env/io_posix.h +86 -92
  287. package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
  288. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +6 -6
  289. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +8 -6
  290. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +1 -1
  291. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +599 -592
  292. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +312 -200
  293. package/deps/rocksdb/rocksdb/file/file_util.cc +19 -14
  294. package/deps/rocksdb/rocksdb/file/file_util.h +34 -24
  295. package/deps/rocksdb/rocksdb/file/filename.cc +32 -17
  296. package/deps/rocksdb/rocksdb/file/filename.h +51 -53
  297. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +82 -441
  298. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +7 -6
  299. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -5
  300. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +9 -3
  301. package/deps/rocksdb/rocksdb/file/read_write_util.h +3 -3
  302. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +6 -2
  303. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +9 -4
  304. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +8 -4
  305. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +110 -89
  306. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +34 -17
  307. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +16 -0
  308. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +39 -189
  309. package/deps/rocksdb/rocksdb/include/rocksdb/attribute_groups.h +114 -0
  310. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +91 -6
  311. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +52 -7
  312. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -1
  313. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +27 -0
  314. package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +146 -0
  315. package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +2 -2
  316. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +254 -151
  317. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +39 -36
  318. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -1
  319. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +431 -0
  320. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +1 -1
  321. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +57 -23
  322. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +27 -57
  323. package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +74 -0
  324. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +2 -1
  325. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
  326. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +11 -11
  327. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -1
  328. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +146 -71
  329. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +6 -1
  330. package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +7 -4
  331. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +17 -13
  332. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +17 -19
  333. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +5 -5
  334. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +10 -8
  335. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +18 -2
  336. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +12 -2
  337. package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +3 -3
  338. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +118 -116
  339. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +4 -4
  340. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +26 -21
  341. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +18 -6
  342. package/deps/rocksdb/rocksdb/include/rocksdb/threadpool.h +1 -1
  343. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +5 -5
  344. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +8 -8
  345. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +12 -0
  346. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +4 -0
  347. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +3 -3
  348. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +8 -0
  349. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +1 -1
  350. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +4 -4
  351. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +3 -3
  352. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +5 -6
  353. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +159 -167
  354. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +1 -2
  355. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +52 -17
  356. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +3 -4
  357. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/types_util.h +36 -0
  358. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +118 -20
  359. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  360. package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +1 -1
  361. package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +87 -45
  362. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +26 -3
  363. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +22 -1
  364. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +7 -9
  365. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +5 -6
  366. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +2 -2
  367. package/deps/rocksdb/rocksdb/logging/env_logger.h +3 -3
  368. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -1
  369. package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -3
  370. package/deps/rocksdb/rocksdb/memory/arena.h +11 -0
  371. package/deps/rocksdb/rocksdb/memory/arena_test.cc +17 -2
  372. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +1 -1
  373. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +1 -0
  374. package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
  375. package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -1
  376. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +11 -10
  377. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +8 -7
  378. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +2 -2
  379. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +2 -2
  380. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
  381. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +3 -3
  382. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +2 -2
  383. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +3 -1
  384. package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +2 -2
  385. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +20 -10
  386. package/deps/rocksdb/rocksdb/monitoring/histogram.h +15 -15
  387. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +7 -3
  388. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +14 -14
  389. package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -1
  390. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +4 -0
  391. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +8 -1
  392. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -1
  393. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +5 -2
  394. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +64 -58
  395. package/deps/rocksdb/rocksdb/monitoring/statistics_impl.h +11 -12
  396. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
  397. package/deps/rocksdb/rocksdb/monitoring/thread_status_impl.cc +1 -1
  398. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +7 -1
  399. package/deps/rocksdb/rocksdb/options/cf_options.cc +20 -28
  400. package/deps/rocksdb/rocksdb/options/cf_options.h +7 -14
  401. package/deps/rocksdb/rocksdb/options/configurable.cc +20 -12
  402. package/deps/rocksdb/rocksdb/options/configurable_test.cc +4 -6
  403. package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -2
  404. package/deps/rocksdb/rocksdb/options/customizable.cc +1 -1
  405. package/deps/rocksdb/rocksdb/options/customizable_test.cc +3 -2
  406. package/deps/rocksdb/rocksdb/options/db_options.cc +22 -48
  407. package/deps/rocksdb/rocksdb/options/db_options.h +3 -3
  408. package/deps/rocksdb/rocksdb/options/offpeak_time_info.cc +59 -0
  409. package/deps/rocksdb/rocksdb/options/offpeak_time_info.h +37 -0
  410. package/deps/rocksdb/rocksdb/options/options.cc +14 -6
  411. package/deps/rocksdb/rocksdb/options/options_helper.cc +8 -13
  412. package/deps/rocksdb/rocksdb/options/options_helper.h +2 -3
  413. package/deps/rocksdb/rocksdb/options/options_parser.cc +35 -26
  414. package/deps/rocksdb/rocksdb/options/options_parser.h +4 -2
  415. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -3
  416. package/deps/rocksdb/rocksdb/options/options_test.cc +30 -23
  417. package/deps/rocksdb/rocksdb/port/lang.h +1 -1
  418. package/deps/rocksdb/rocksdb/port/port_example.h +7 -7
  419. package/deps/rocksdb/rocksdb/port/port_posix.cc +7 -7
  420. package/deps/rocksdb/rocksdb/port/port_posix.h +7 -7
  421. package/deps/rocksdb/rocksdb/port/stack_trace.cc +85 -24
  422. package/deps/rocksdb/rocksdb/port/win/env_win.cc +1 -2
  423. package/deps/rocksdb/rocksdb/port/win/io_win.cc +4 -4
  424. package/deps/rocksdb/rocksdb/port/win/io_win.h +13 -17
  425. package/deps/rocksdb/rocksdb/port/win/port_win.cc +3 -2
  426. package/deps/rocksdb/rocksdb/port/win/port_win.h +4 -4
  427. package/deps/rocksdb/rocksdb/src.mk +16 -1
  428. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -7
  429. package/deps/rocksdb/rocksdb/table/block_based/block.cc +39 -15
  430. package/deps/rocksdb/rocksdb/table/block_based/block.h +7 -7
  431. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +80 -40
  432. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +2 -3
  433. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +20 -5
  434. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +228 -122
  435. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +50 -9
  436. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +82 -25
  437. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +17 -20
  438. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +47 -13
  439. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +163 -50
  440. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +1 -2
  441. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +23 -23
  442. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -12
  443. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +1 -2
  444. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +6 -4
  445. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +32 -27
  446. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -1
  447. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +7 -10
  448. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +2 -2
  449. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
  450. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +25 -7
  451. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -5
  452. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +4 -6
  453. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +6 -6
  454. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -1
  455. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -5
  456. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +2 -2
  457. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -5
  458. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +138 -86
  459. package/deps/rocksdb/rocksdb/table/block_fetcher.h +22 -0
  460. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +26 -13
  461. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +11 -11
  462. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +11 -11
  463. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +10 -5
  464. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +6 -7
  465. package/deps/rocksdb/rocksdb/table/format.cc +15 -21
  466. package/deps/rocksdb/rocksdb/table/format.h +8 -0
  467. package/deps/rocksdb/rocksdb/table/get_context.cc +121 -78
  468. package/deps/rocksdb/rocksdb/table/get_context.h +11 -6
  469. package/deps/rocksdb/rocksdb/table/internal_iterator.h +12 -5
  470. package/deps/rocksdb/rocksdb/table/iterator.cc +4 -0
  471. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -1
  472. package/deps/rocksdb/rocksdb/table/merger_test.cc +1 -1
  473. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +5 -0
  474. package/deps/rocksdb/rocksdb/table/merging_iterator.h +4 -3
  475. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +15 -11
  476. package/deps/rocksdb/rocksdb/table/meta_blocks.h +8 -4
  477. package/deps/rocksdb/rocksdb/table/mock_table.cc +12 -8
  478. package/deps/rocksdb/rocksdb/table/mock_table.h +1 -3
  479. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +0 -1
  480. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -21
  481. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +4 -14
  482. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +7 -8
  483. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +7 -5
  484. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +15 -8
  485. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +1 -1
  486. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +75 -30
  487. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +7 -2
  488. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +76 -11
  489. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +358 -2
  490. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +93 -16
  491. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +12 -12
  492. package/deps/rocksdb/rocksdb/table/table_builder.h +12 -6
  493. package/deps/rocksdb/rocksdb/table/table_iterator.h +69 -0
  494. package/deps/rocksdb/rocksdb/table/table_properties.cc +1 -1
  495. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +8 -6
  496. package/deps/rocksdb/rocksdb/table/table_test.cc +732 -121
  497. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +3 -1
  498. package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
  499. package/deps/rocksdb/rocksdb/table/unique_id.cc +2 -2
  500. package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +2 -2
  501. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +5 -5
  502. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -6
  503. package/deps/rocksdb/rocksdb/test_util/testharness.cc +2 -4
  504. package/deps/rocksdb/rocksdb/test_util/testutil.cc +56 -32
  505. package/deps/rocksdb/rocksdb/test_util/testutil.h +57 -34
  506. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +18 -1
  507. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
  508. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  509. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +210 -112
  510. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +3 -3
  511. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +1 -1
  512. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +22 -27
  513. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +10 -4
  514. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +328 -59
  515. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +34 -2
  516. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +64 -17
  517. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +8 -1
  518. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +3 -2
  519. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +136 -10
  520. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -2
  521. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +50 -8
  522. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +51 -45
  523. package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +1 -1
  524. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +10 -10
  525. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +14 -4
  526. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +2 -1
  527. package/deps/rocksdb/rocksdb/unreleased_history/README.txt +2 -2
  528. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +2 -4
  529. package/deps/rocksdb/rocksdb/util/atomic.h +111 -0
  530. package/deps/rocksdb/rocksdb/util/autovector.h +5 -1
  531. package/deps/rocksdb/rocksdb/util/bloom_test.cc +12 -2
  532. package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
  533. package/deps/rocksdb/rocksdb/util/coding.h +34 -38
  534. package/deps/rocksdb/rocksdb/util/coding_test.cc +1 -1
  535. package/deps/rocksdb/rocksdb/util/comparator.cc +18 -5
  536. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -1
  537. package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +4 -4
  538. package/deps/rocksdb/rocksdb/util/crc32c.cc +3 -6
  539. package/deps/rocksdb/rocksdb/util/crc32c.h +3 -3
  540. package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +3 -4
  541. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -2
  542. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +2 -4
  543. package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -4
  544. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -2
  545. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +3 -3
  546. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +83 -59
  547. package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -3
  548. package/deps/rocksdb/rocksdb/util/hash.h +4 -4
  549. package/deps/rocksdb/rocksdb/util/log_write_bench.cc +3 -3
  550. package/deps/rocksdb/rocksdb/util/murmurhash.cc +1 -1
  551. package/deps/rocksdb/rocksdb/util/random.cc +3 -4
  552. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +23 -43
  553. package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +21 -16
  554. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +44 -24
  555. package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +2 -3
  556. package/deps/rocksdb/rocksdb/util/ribbon_config.cc +2 -10
  557. package/deps/rocksdb/rocksdb/util/ribbon_impl.h +2 -2
  558. package/deps/rocksdb/rocksdb/util/slice.cc +4 -5
  559. package/deps/rocksdb/rocksdb/util/slice_test.cc +70 -4
  560. package/deps/rocksdb/rocksdb/util/status.cc +1 -1
  561. package/deps/rocksdb/rocksdb/util/stderr_logger.cc +39 -7
  562. package/deps/rocksdb/rocksdb/util/stderr_logger.h +12 -2
  563. package/deps/rocksdb/rocksdb/util/string_util.cc +31 -18
  564. package/deps/rocksdb/rocksdb/util/string_util.h +9 -9
  565. package/deps/rocksdb/rocksdb/util/string_util_test.cc +36 -0
  566. package/deps/rocksdb/rocksdb/util/thread_list_test.cc +5 -5
  567. package/deps/rocksdb/rocksdb/util/thread_local.cc +1 -1
  568. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +3 -4
  569. package/deps/rocksdb/rocksdb/util/threadpool_imp.h +1 -1
  570. package/deps/rocksdb/rocksdb/util/udt_util_test.cc +4 -4
  571. package/deps/rocksdb/rocksdb/util/vector_iterator.h +12 -16
  572. package/deps/rocksdb/rocksdb/util/write_batch_util.h +5 -0
  573. package/deps/rocksdb/rocksdb/util/xxhash.h +116 -116
  574. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +4 -5
  575. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_impl.h +2 -2
  576. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -2
  577. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +33 -31
  578. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -22
  579. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +9 -7
  580. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +3 -6
  581. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +22 -55
  582. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +113 -74
  583. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +36 -24
  584. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +27 -11
  585. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -3
  586. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +68 -54
  587. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -6
  588. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +16 -16
  589. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +3 -2
  590. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +29 -9
  591. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +27 -14
  592. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +2 -4
  593. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +3 -3
  594. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +2 -4
  595. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +2 -4
  596. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +2 -4
  597. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +2 -4
  598. package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +2 -4
  599. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +8 -8
  600. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -7
  601. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -8
  602. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +2 -4
  603. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +9 -7
  604. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +7 -10
  605. package/deps/rocksdb/rocksdb/utilities/debug.cc +6 -2
  606. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +18 -11
  607. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +2 -2
  608. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +18 -25
  609. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +32 -23
  610. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +51 -48
  611. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +5 -3
  612. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -2
  613. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  614. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +2 -3
  615. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +3 -1
  616. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +7 -7
  617. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +10 -10
  618. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +5 -6
  619. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +5 -6
  620. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +1 -1
  621. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -8
  622. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +29 -21
  623. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +14 -15
  624. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -2
  625. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -1
  626. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_bench.cc +3 -3
  627. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -5
  628. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
  629. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +2 -2
  630. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +8 -8
  631. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +4 -4
  632. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +1 -1
  633. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +6 -9
  634. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +2 -2
  635. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +1 -1
  636. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +6 -6
  637. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +1 -2
  638. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +2 -3
  639. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  640. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +1 -1
  641. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
  642. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +5 -0
  643. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +1 -1
  644. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +3 -3
  645. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +1 -1
  646. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +4 -0
  647. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +4 -0
  648. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  649. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +4 -0
  650. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +12 -3
  651. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +17 -3
  652. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +3 -3
  653. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +1 -1
  654. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +3 -3
  655. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +4 -2
  656. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +1 -1
  657. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +1 -2
  658. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -3
  659. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +3 -4
  660. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +442 -10
  661. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +27 -9
  662. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +28 -7
  663. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +70 -12
  664. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +50 -22
  665. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -1
  666. package/deps/rocksdb/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +1 -1
  667. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +64 -3
  668. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +76 -17
  669. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +6 -6
  670. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +573 -77
  671. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -2
  672. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +65 -3
  673. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +13 -11
  674. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +1 -0
  675. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +14 -16
  676. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +37 -24
  677. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +23 -29
  678. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +4 -2
  679. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +31 -40
  680. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +8 -6
  681. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +3 -4
  682. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +34 -18
  683. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +21 -25
  684. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +26 -5
  685. package/deps/rocksdb/rocksdb/utilities/types_util.cc +88 -0
  686. package/deps/rocksdb/rocksdb/utilities/types_util_test.cc +98 -0
  687. package/deps/rocksdb/rocksdb/utilities/util_merge_operators_test.cc +1 -1
  688. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +463 -90
  689. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +259 -76
  690. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +70 -14
  691. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +609 -10
  692. package/deps/rocksdb/rocksdb.gyp +8 -4
  693. package/index.js +18 -4
  694. package/max_rev_operator.h +2 -0
  695. package/package.json +2 -2
  696. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  697. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  698. package/util.h +29 -5
  699. package/.tap/coverage/4c642b53-6895-4ef0-9391-7c6b8d484262.json +0 -14334
  700. package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +0 -57
@@ -51,6 +51,8 @@ enum CompactionPri : char {
51
51
  // First compact files whose ratio between overlapping size in next level
52
52
  // and its size is the smallest. It in many cases can optimize write
53
53
  // amplification.
54
+ // Files marked for compaction will be prioritized over files that are not
55
+ // marked.
54
56
  kMinOverlappingRatio = 0x3,
55
57
  // Keeps a cursor(s) of the successor of the file (key range) was/were
56
58
  // compacted before, and always picks the next files (key range) in that
@@ -59,151 +61,6 @@ enum CompactionPri : char {
59
61
  kRoundRobin = 0x4,
60
62
  };
61
63
 
62
- // Compression options for different compression algorithms like Zlib
63
- struct CompressionOptions {
64
- // ==> BEGIN options that can be set by deprecated configuration syntax, <==
65
- // ==> e.g. compression_opts=5:6:7:8:9:10:true:11:false <==
66
- // ==> Please use compression_opts={level=6;strategy=7;} form instead. <==
67
-
68
- // RocksDB's generic default compression level. Internally it'll be translated
69
- // to the default compression level specific to the library being used (see
70
- // comment above `ColumnFamilyOptions::compression`).
71
- //
72
- // The default value is the max 16-bit int as it'll be written out in OPTIONS
73
- // file, which should be portable.
74
- static constexpr int kDefaultCompressionLevel = 32767;
75
-
76
- // zlib only: windowBits parameter. See https://www.zlib.net/manual.html
77
- int window_bits = -14;
78
-
79
- // Compression "level" applicable to zstd, zlib, LZ4, and LZ4HC. Except for
80
- // kDefaultCompressionLevel (see above), the meaning of each value depends
81
- // on the compression algorithm. Decreasing across non-
82
- // `kDefaultCompressionLevel` values will either favor speed over
83
- // compression ratio or have no effect.
84
- //
85
- // In LZ4 specifically, the absolute value of a negative `level` internally
86
- // configures the `acceleration` parameter. For example, set `level=-10` for
87
- // `acceleration=10`. This negation is necessary to ensure decreasing `level`
88
- // values favor speed over compression ratio.
89
- int level = kDefaultCompressionLevel;
90
-
91
- // zlib only: strategy parameter. See https://www.zlib.net/manual.html
92
- int strategy = 0;
93
-
94
- // Maximum size of dictionaries used to prime the compression library.
95
- // Enabling dictionary can improve compression ratios when there are
96
- // repetitions across data blocks.
97
- //
98
- // The dictionary is created by sampling the SST file data. If
99
- // `zstd_max_train_bytes` is nonzero, the samples are passed through zstd's
100
- // dictionary generator (see comments for option `use_zstd_dict_trainer` for
101
- // detail on dictionary generator). If `zstd_max_train_bytes` is zero, the
102
- // random samples are used directly as the dictionary.
103
- //
104
- // When compression dictionary is disabled, we compress and write each block
105
- // before buffering data for the next one. When compression dictionary is
106
- // enabled, we buffer SST file data in-memory so we can sample it, as data
107
- // can only be compressed and written after the dictionary has been finalized.
108
- //
109
- // The amount of data buffered can be limited by `max_dict_buffer_bytes`. This
110
- // buffered memory is charged to the block cache when there is a block cache.
111
- // If block cache insertion fails with `Status::MemoryLimit` (i.e., it is
112
- // full), we finalize the dictionary with whatever data we have and then stop
113
- // buffering.
114
- uint32_t max_dict_bytes = 0;
115
-
116
- // Maximum size of training data passed to zstd's dictionary trainer. Using
117
- // zstd's dictionary trainer can achieve even better compression ratio
118
- // improvements than using `max_dict_bytes` alone.
119
- //
120
- // The training data will be used to generate a dictionary of max_dict_bytes.
121
- uint32_t zstd_max_train_bytes = 0;
122
-
123
- // Number of threads for parallel compression.
124
- // Parallel compression is enabled only if threads > 1.
125
- // THE FEATURE IS STILL EXPERIMENTAL
126
- //
127
- // This option is valid only when BlockBasedTable is used.
128
- //
129
- // When parallel compression is enabled, SST size file sizes might be
130
- // more inflated compared to the target size, because more data of unknown
131
- // compressed size is in flight when compression is parallelized. To be
132
- // reasonably accurate, this inflation is also estimated by using historical
133
- // compression ratio and current bytes inflight.
134
- uint32_t parallel_threads = 1;
135
-
136
- // When the compression options are set by the user, it will be set to "true".
137
- // For bottommost_compression_opts, to enable it, user must set enabled=true.
138
- // Otherwise, bottommost compression will use compression_opts as default
139
- // compression options.
140
- //
141
- // For compression_opts, if compression_opts.enabled=false, it is still
142
- // used as compression options for compression process.
143
- bool enabled = false;
144
-
145
- // Limit on data buffering when gathering samples to build a dictionary. Zero
146
- // means no limit. When dictionary is disabled (`max_dict_bytes == 0`),
147
- // enabling this limit (`max_dict_buffer_bytes != 0`) has no effect.
148
- //
149
- // In compaction, the buffering is limited to the target file size (see
150
- // `target_file_size_base` and `target_file_size_multiplier`) even if this
151
- // setting permits more buffering. Since we cannot determine where the file
152
- // should be cut until data blocks are compressed with dictionary, buffering
153
- // more than the target file size could lead to selecting samples that belong
154
- // to a later output SST.
155
- //
156
- // Limiting too strictly may harm dictionary effectiveness since it forces
157
- // RocksDB to pick samples from the initial portion of the output SST, which
158
- // may not be representative of the whole file. Configuring this limit below
159
- // `zstd_max_train_bytes` (when enabled) can restrict how many samples we can
160
- // pass to the dictionary trainer. Configuring it below `max_dict_bytes` can
161
- // restrict the size of the final dictionary.
162
- uint64_t max_dict_buffer_bytes = 0;
163
-
164
- // Use zstd trainer to generate dictionaries. When this option is set to true,
165
- // zstd_max_train_bytes of training data sampled from max_dict_buffer_bytes
166
- // buffered data will be passed to zstd dictionary trainer to generate a
167
- // dictionary of size max_dict_bytes.
168
- //
169
- // When this option is false, zstd's API ZDICT_finalizeDictionary() will be
170
- // called to generate dictionaries. zstd_max_train_bytes of training sampled
171
- // data will be passed to this API. Using this API should save CPU time on
172
- // dictionary training, but the compression ratio may not be as good as using
173
- // a dictionary trainer.
174
- bool use_zstd_dict_trainer = true;
175
-
176
- // ===> END options that can be set by deprecated configuration syntax <===
177
- // ===> Use compression_opts={level=6;strategy=7;} form for below opts <===
178
-
179
- // Essentially specifies a minimum acceptable compression ratio. A block is
180
- // stored uncompressed if the compressed block does not achieve this ratio,
181
- // because the downstream cost of decompression is not considered worth such
182
- // a small savings (if any).
183
- // However, the ratio is specified in a way that is efficient for checking.
184
- // An integer from 1 to 1024 indicates the maximum allowable compressed bytes
185
- // per 1KB of input, so the minimum acceptable ratio is 1024.0 / this value.
186
- // For example, for a minimum ratio of 1.5:1, set to 683. See SetMinRatio().
187
- // Default: abandon use of compression for a specific block or entry if
188
- // compressed by less than 12.5% (minimum ratio of 1.143:1).
189
- int max_compressed_bytes_per_kb = 1024 * 7 / 8;
190
-
191
- // ZSTD only.
192
- // Enable compression algorithm's checksum feature.
193
- // (https://github.com/facebook/zstd/blob/d857369028d997c92ff1f1861a4d7f679a125464/lib/zstd.h#L428)
194
- // Each compressed frame will have a 32-bit checksum attached. The checksum
195
- // computed from the uncompressed data and can be verified during
196
- // decompression.
197
- bool checksum = false;
198
-
199
- // A convenience function for setting max_compressed_bytes_per_kb based on a
200
- // minimum acceptable compression ratio (uncompressed size over compressed
201
- // size).
202
- void SetMinRatio(double min_ratio) {
203
- max_compressed_bytes_per_kb = static_cast<int>(1024.0 / min_ratio + 0.5);
204
- }
205
- };
206
-
207
64
  // Temperature of a file. Used to pass to FileSystem for a different
208
65
  // placement and/or coding.
209
66
  // Reserve some numbers in the middle, in case we need to insert new tier
@@ -372,11 +229,18 @@ struct AdvancedColumnFamilyOptions {
372
229
  // if it is not explicitly set by the user. Otherwise, the default is 0.
373
230
  int64_t max_write_buffer_size_to_maintain = 0;
374
231
 
375
- // Allows thread-safe inplace updates. If this is true, there is no way to
232
+ // Allows thread-safe inplace updates.
233
+ //
234
+ // If this is true, there is no way to
376
235
  // achieve point-in-time consistency using snapshot or iterator (assuming
377
236
  // concurrent updates). Hence iterator and multi-get will return results
378
237
  // which are not consistent as of any point-in-time.
238
+ //
379
239
  // Backward iteration on memtables will not work either.
240
+ //
241
+ // It is intended to work or be compatible with a limited set of features:
242
+ // (1) Non-snapshot Get()
243
+ //
380
244
  // If inplace_callback function is not set,
381
245
  // Put(key, new_value) will update inplace the existing_value iff
382
246
  // * key exists in current memtable
@@ -690,15 +554,6 @@ struct AdvancedColumnFamilyOptions {
690
554
  // Default: true
691
555
  bool level_compaction_dynamic_level_bytes = true;
692
556
 
693
- // Allows RocksDB to generate files that are not exactly the target_file_size
694
- // only for the non-bottommost files. Which can reduce the write-amplification
695
- // from compaction. The file size could be from 0 to 2x target_file_size.
696
- // Once enabled, non-bottommost compaction will try to cut the files align
697
- // with the next level file boundaries (grandparent level).
698
- //
699
- // Default: true
700
- bool level_compaction_dynamic_file_size = true;
701
-
702
557
  // Default: 10.
703
558
  //
704
559
  // Dynamically changeable through SetOptions() API
@@ -714,7 +569,7 @@ struct AdvancedColumnFamilyOptions {
714
569
  //
715
570
  // Dynamically changeable through SetOptions() API
716
571
  std::vector<int> max_bytes_for_level_multiplier_additional =
717
- std::vector<int>(num_levels, 1);
572
+ std::vector<int>(static_cast<size_t>(num_levels), 1);
718
573
 
719
574
  // We try to limit number of bytes in one compaction to be lower than this
720
575
  // threshold. But it's not guaranteed.
@@ -725,17 +580,6 @@ struct AdvancedColumnFamilyOptions {
725
580
  // Dynamically changeable through SetOptions() API
726
581
  uint64_t max_compaction_bytes = 0;
727
582
 
728
- // When setting up compaction input files, we ignore the
729
- // `max_compaction_bytes` limit when pulling in input files that are entirely
730
- // within output key range.
731
- //
732
- // Default: true
733
- //
734
- // Dynamically changeable through SetOptions() API
735
- // We could remove this knob and always ignore the limit once it is proven
736
- // safe.
737
- bool ignore_max_compaction_bytes_for_input = true;
738
-
739
583
  // All writes will be slowed down to at least delayed_write_rate if estimated
740
584
  // bytes needed to be compaction exceed this threshold.
741
585
  //
@@ -812,18 +656,29 @@ struct AdvancedColumnFamilyOptions {
812
656
  TablePropertiesCollectorFactories table_properties_collector_factories;
813
657
 
814
658
  // Maximum number of successive merge operations on a key in the memtable.
659
+ // It may be violated when filesystem reads would be needed to stay under the
660
+ // limit, unless `strict_max_successive_merges` is explicitly set.
815
661
  //
816
662
  // When a merge operation is added to the memtable and the maximum number of
817
- // successive merges is reached, the value of the key will be calculated and
818
- // inserted into the memtable instead of the merge operation. This will
819
- // ensure that there are never more than max_successive_merges merge
820
- // operations in the memtable.
663
+ // successive merges is reached, RocksDB will attempt to read the value. Upon
664
+ // success, the value will be inserted into the memtable instead of the merge
665
+ // operation.
821
666
  //
822
667
  // Default: 0 (disabled)
823
668
  //
824
669
  // Dynamically changeable through SetOptions() API
825
670
  size_t max_successive_merges = 0;
826
671
 
672
+ // Whether to allow filesystem reads to stay under the `max_successive_merges`
673
+ // limit. When true, this can lead to merge writes blocking the write path
674
+ // waiting on filesystem reads.
675
+ //
676
+ // This option is temporary in case the recent change to disallow filesystem
677
+ // reads during merge writes has a problem and users need to undo it quickly.
678
+ //
679
+ // Default: false
680
+ bool strict_max_successive_merges = false;
681
+
827
682
  // This flag specifies that the implementation should optimize the filters
828
683
  // mainly for cases where keys are found rather than also optimize for keys
829
684
  // missed. This would be used in cases where the application knows that
@@ -840,14 +695,6 @@ struct AdvancedColumnFamilyOptions {
840
695
  // Default: false
841
696
  bool optimize_filters_for_hits = false;
842
697
 
843
- // During flush or compaction, check whether keys inserted to output files
844
- // are in order.
845
- //
846
- // Default: true
847
- //
848
- // Dynamically changeable through SetOptions() API
849
- bool check_flush_compaction_key_order = true;
850
-
851
698
  // After writing every SST file, reopen it and read all the keys.
852
699
  // Checks the hash of all of the keys and values written versus the
853
700
  // keys in the file and signals a corruption if they do not match
@@ -912,7 +759,9 @@ struct AdvancedColumnFamilyOptions {
912
759
  //
913
760
  // Leveled: files older than `periodic_compaction_seconds` will be picked up
914
761
  // for compaction and will be re-written to the same level as they were
915
- // before.
762
+ // before if level_compaction_dynamic_level_bytes is disabled. Otherwise,
763
+ // it will rewrite files to the next level except for the last level files
764
+ // to the same level.
916
765
  //
917
766
  // FIFO: not supported. Setting this option has no effect for FIFO compaction.
918
767
  //
@@ -961,27 +810,28 @@ struct AdvancedColumnFamilyOptions {
961
810
  uint64_t sample_for_compression = 0;
962
811
 
963
812
  // EXPERIMENTAL
964
- // The feature is still in development and is incomplete.
965
813
  // If this option is set, when creating the last level files, pass this
966
814
  // temperature to FileSystem used. Should be no-op for default FileSystem
967
815
  // and users need to plug in their own FileSystem to take advantage of it.
968
- //
969
- // Note: the feature is changed from `bottommost_temperature` to
970
- // `last_level_temperature` which now only apply for the last level files.
971
- // The option name `bottommost_temperature` is kept only for migration, the
972
- // behavior is the same as `last_level_temperature`. Please stop using
973
- // `bottommost_temperature` and will be removed in next release.
816
+ // When using FIFO compaction, this option is ignored.
974
817
  //
975
818
  // Dynamically changeable through the SetOptions() API
976
- Temperature bottommost_temperature = Temperature::kUnknown;
977
819
  Temperature last_level_temperature = Temperature::kUnknown;
978
820
 
821
+ // EXPERIMENTAL
822
+ // When no other option such as last_level_temperature determines the
823
+ // temperature of a new SST file, it will be written with this temperature,
824
+ // which can be set differently for each column family.
825
+ //
826
+ // Dynamically changeable through the SetOptions() API
827
+ Temperature default_write_temperature = Temperature::kUnknown;
828
+
979
829
  // EXPERIMENTAL
980
830
  // When this field is set, all SST files without an explicitly set temperature
981
831
  // will be treated as if they have this temperature for file reading
982
832
  // accounting purpose, such as io statistics, io perf context.
983
833
  //
984
- // Not dynamically changeable, change it requires db restart.
834
+ // Not dynamically changeable; change requires DB restart.
985
835
  Temperature default_temperature = Temperature::kUnknown;
986
836
 
987
837
  // EXPERIMENTAL
@@ -0,0 +1,114 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ // This source code is licensed under both the GPLv2 (found in the
3
+ // COPYING file in the root directory) and Apache 2.0 License
4
+ // (found in the LICENSE.Apache file in the root directory).
5
+
6
+ #pragma once
7
+
8
+ #include "rocksdb/iterator_base.h"
9
+ #include "rocksdb/wide_columns.h"
10
+
11
+ namespace ROCKSDB_NAMESPACE {
12
+
13
+ class ColumnFamilyHandle;
14
+
15
+ // Class representing attribute group. Attribute group is a logical grouping of
16
+ // wide-column entities by leveraging Column Families.
17
+ // Used in Write Path
18
+ class AttributeGroup {
19
+ public:
20
+ explicit AttributeGroup(ColumnFamilyHandle* column_family,
21
+ const WideColumns& columns)
22
+ : column_family_(column_family), columns_(columns) {}
23
+
24
+ ColumnFamilyHandle* column_family() const { return column_family_; }
25
+ const WideColumns& columns() const { return columns_; }
26
+ WideColumns& columns() { return columns_; }
27
+
28
+ private:
29
+ ColumnFamilyHandle* column_family_;
30
+ WideColumns columns_;
31
+ };
32
+
33
+ inline bool operator==(const AttributeGroup& lhs, const AttributeGroup& rhs) {
34
+ return lhs.column_family() == rhs.column_family() &&
35
+ lhs.columns() == rhs.columns();
36
+ }
37
+
38
+ // A collection of Attribute Groups.
39
+ using AttributeGroups = std::vector<AttributeGroup>;
40
+
41
+ // An empty set of Attribute Groups.
42
+ extern const AttributeGroups kNoAttributeGroups;
43
+
44
+ // Used in Read Path. Wide-columns returned from the query are pinnable.
45
+ class PinnableAttributeGroup {
46
+ public:
47
+ explicit PinnableAttributeGroup(ColumnFamilyHandle* column_family)
48
+ : column_family_(column_family), status_(Status::OK()) {}
49
+
50
+ ColumnFamilyHandle* column_family() const { return column_family_; }
51
+ const Status& status() const { return status_; }
52
+ const WideColumns& columns() const { return columns_.columns(); }
53
+
54
+ void SetStatus(const Status& status);
55
+ void SetColumns(PinnableWideColumns&& columns);
56
+
57
+ void Reset();
58
+
59
+ private:
60
+ ColumnFamilyHandle* column_family_;
61
+ Status status_;
62
+ PinnableWideColumns columns_;
63
+ };
64
+
65
+ inline void PinnableAttributeGroup::SetStatus(const Status& status) {
66
+ status_ = status;
67
+ }
68
+ inline void PinnableAttributeGroup::SetColumns(PinnableWideColumns&& columns) {
69
+ columns_ = std::move(columns);
70
+ }
71
+
72
+ inline void PinnableAttributeGroup::Reset() {
73
+ SetStatus(Status::OK());
74
+ columns_.Reset();
75
+ }
76
+
77
+ // A collection of Pinnable Attribute Groups.
78
+ using PinnableAttributeGroups = std::vector<PinnableAttributeGroup>;
79
+
80
+ // Used in Iterator Path. Uses pointers to the columns to avoid having to copy
81
+ // all WideColumns objs during iteration.
82
+ class IteratorAttributeGroup {
83
+ public:
84
+ explicit IteratorAttributeGroup(ColumnFamilyHandle* column_family,
85
+ const WideColumns* columns)
86
+ : column_family_(column_family), columns_(columns) {}
87
+ ColumnFamilyHandle* column_family() const { return column_family_; }
88
+ const WideColumns& columns() const { return *columns_; }
89
+
90
+ private:
91
+ ColumnFamilyHandle* column_family_;
92
+ const WideColumns* columns_;
93
+ };
94
+
95
+ using IteratorAttributeGroups = std::vector<IteratorAttributeGroup>;
96
+
97
+ extern const IteratorAttributeGroups kNoIteratorAttributeGroups;
98
+
99
+ // EXPERIMENTAL
100
+ // A cross-column-family iterator that collects and returns attribute groups for
101
+ // each key in order provided by comparator
102
+ class AttributeGroupIterator : public IteratorBase {
103
+ public:
104
+ AttributeGroupIterator() {}
105
+ ~AttributeGroupIterator() override {}
106
+
107
+ // No copy allowed
108
+ AttributeGroupIterator(const AttributeGroupIterator&) = delete;
109
+ AttributeGroupIterator& operator=(const AttributeGroupIterator&) = delete;
110
+
111
+ virtual const IteratorAttributeGroups& attribute_groups() const = 0;
112
+ };
113
+
114
+ } // namespace ROCKSDB_NAMESPACE
@@ -78,6 +78,7 @@ typedef struct rocksdb_lru_cache_options_t rocksdb_lru_cache_options_t;
78
78
  typedef struct rocksdb_hyper_clock_cache_options_t
79
79
  rocksdb_hyper_clock_cache_options_t;
80
80
  typedef struct rocksdb_cache_t rocksdb_cache_t;
81
+ typedef struct rocksdb_write_buffer_manager_t rocksdb_write_buffer_manager_t;
81
82
  typedef struct rocksdb_compactionfilter_t rocksdb_compactionfilter_t;
82
83
  typedef struct rocksdb_compactionfiltercontext_t
83
84
  rocksdb_compactionfiltercontext_t;
@@ -607,6 +608,9 @@ extern ROCKSDB_LIBRARY_API const rocksdb_snapshot_t* rocksdb_create_snapshot(
607
608
  extern ROCKSDB_LIBRARY_API void rocksdb_release_snapshot(
608
609
  rocksdb_t* db, const rocksdb_snapshot_t* snapshot);
609
610
 
611
+ extern ROCKSDB_LIBRARY_API uint64_t
612
+ rocksdb_snapshot_get_sequence_number(const rocksdb_snapshot_t* snapshot);
613
+
610
614
  /* Returns NULL if property name is unknown.
611
615
  Else returns a pointer to a malloc()-ed null-terminated value. */
612
616
  extern ROCKSDB_LIBRARY_API char* rocksdb_property_value(rocksdb_t* db,
@@ -690,8 +694,8 @@ extern ROCKSDB_LIBRARY_API void rocksdb_flush_wal(rocksdb_t* db,
690
694
  extern ROCKSDB_LIBRARY_API void rocksdb_disable_file_deletions(rocksdb_t* db,
691
695
  char** errptr);
692
696
 
693
- extern ROCKSDB_LIBRARY_API void rocksdb_enable_file_deletions(
694
- rocksdb_t* db, unsigned char force, char** errptr);
697
+ extern ROCKSDB_LIBRARY_API void rocksdb_enable_file_deletions(rocksdb_t* db,
698
+ char** errptr);
695
699
 
696
700
  /* Management operations */
697
701
 
@@ -1060,6 +1064,23 @@ rocksdb_block_based_options_set_pin_top_level_index_and_filter(
1060
1064
  rocksdb_block_based_table_options_t*, unsigned char);
1061
1065
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_block_based_table_factory(
1062
1066
  rocksdb_options_t* opt, rocksdb_block_based_table_options_t* table_options);
1067
+ enum {
1068
+ rocksdb_block_based_k_fallback_pinning_tier = 0,
1069
+ rocksdb_block_based_k_none_pinning_tier = 1,
1070
+ rocksdb_block_based_k_flush_and_similar_pinning_tier = 2,
1071
+ rocksdb_block_based_k_all_pinning_tier = 3,
1072
+ };
1073
+ extern ROCKSDB_LIBRARY_API void
1074
+ rocksdb_block_based_options_set_top_level_index_pinning_tier(
1075
+ rocksdb_block_based_table_options_t*, int);
1076
+ extern ROCKSDB_LIBRARY_API void
1077
+ rocksdb_block_based_options_set_partition_pinning_tier(
1078
+ rocksdb_block_based_table_options_t*, int);
1079
+ extern ROCKSDB_LIBRARY_API void
1080
+ rocksdb_block_based_options_set_unpartitioned_pinning_tier(
1081
+ rocksdb_block_based_table_options_t*, int);
1082
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_write_buffer_manager(
1083
+ rocksdb_options_t* opt, rocksdb_write_buffer_manager_t* wbm);
1063
1084
 
1064
1085
  /* Cuckoo table options */
1065
1086
 
@@ -1143,14 +1164,22 @@ extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_paranoid_checks(
1143
1164
  rocksdb_options_t*);
1144
1165
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_db_paths(
1145
1166
  rocksdb_options_t*, const rocksdb_dbpath_t** path_values, size_t num_paths);
1167
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_cf_paths(
1168
+ rocksdb_options_t*, const rocksdb_dbpath_t** path_values, size_t num_paths);
1146
1169
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_env(rocksdb_options_t*,
1147
1170
  rocksdb_env_t*);
1148
1171
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_info_log(rocksdb_options_t*,
1149
1172
  rocksdb_logger_t*);
1173
+ extern ROCKSDB_LIBRARY_API rocksdb_logger_t* rocksdb_options_get_info_log(
1174
+ rocksdb_options_t* opt);
1150
1175
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_info_log_level(
1151
1176
  rocksdb_options_t*, int);
1152
1177
  extern ROCKSDB_LIBRARY_API int rocksdb_options_get_info_log_level(
1153
1178
  rocksdb_options_t*);
1179
+ extern ROCKSDB_LIBRARY_API rocksdb_logger_t*
1180
+ rocksdb_logger_create_stderr_logger(int log_level, const char* prefix);
1181
+ extern ROCKSDB_LIBRARY_API void rocksdb_logger_destroy(
1182
+ rocksdb_logger_t* logger);
1154
1183
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_write_buffer_size(
1155
1184
  rocksdb_options_t*, size_t);
1156
1185
  extern ROCKSDB_LIBRARY_API size_t
@@ -1256,6 +1285,13 @@ rocksdb_options_set_max_bytes_for_level_multiplier_additional(
1256
1285
  rocksdb_options_t*, int* level_values, size_t num_levels);
1257
1286
  extern ROCKSDB_LIBRARY_API void rocksdb_options_enable_statistics(
1258
1287
  rocksdb_options_t*);
1288
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_ttl(rocksdb_options_t*,
1289
+ uint64_t);
1290
+ extern ROCKSDB_LIBRARY_API uint64_t rocksdb_options_get_ttl(rocksdb_options_t*);
1291
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_periodic_compaction_seconds(
1292
+ rocksdb_options_t*, uint64_t);
1293
+ extern ROCKSDB_LIBRARY_API uint64_t
1294
+ rocksdb_options_get_periodic_compaction_seconds(rocksdb_options_t*);
1259
1295
 
1260
1296
  enum {
1261
1297
  rocksdb_statistics_level_disable_all = 0,
@@ -1487,10 +1523,6 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_advise_random_on_open(
1487
1523
  rocksdb_options_t*, unsigned char);
1488
1524
  extern ROCKSDB_LIBRARY_API unsigned char
1489
1525
  rocksdb_options_get_advise_random_on_open(rocksdb_options_t*);
1490
- extern ROCKSDB_LIBRARY_API void
1491
- rocksdb_options_set_access_hint_on_compaction_start(rocksdb_options_t*, int);
1492
- extern ROCKSDB_LIBRARY_API int
1493
- rocksdb_options_get_access_hint_on_compaction_start(rocksdb_options_t*);
1494
1526
  extern ROCKSDB_LIBRARY_API void rocksdb_options_set_use_adaptive_mutex(
1495
1527
  rocksdb_options_t*, unsigned char);
1496
1528
  extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_use_adaptive_mutex(
@@ -1665,9 +1697,29 @@ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_wal_compression(
1665
1697
  extern ROCKSDB_LIBRARY_API int rocksdb_options_get_wal_compression(
1666
1698
  rocksdb_options_t* opt);
1667
1699
 
1700
+ enum {
1701
+ rocksdb_k_by_compensated_size_compaction_pri = 0,
1702
+ rocksdb_k_oldest_largest_seq_first_compaction_pri = 1,
1703
+ rocksdb_k_oldest_smallest_seq_first_compaction_pri = 2,
1704
+ rocksdb_k_min_overlapping_ratio_compaction_pri = 3,
1705
+ rocksdb_k_round_robin_compaction_pri = 4
1706
+ };
1707
+ extern ROCKSDB_LIBRARY_API void rocksdb_options_set_compaction_pri(
1708
+ rocksdb_options_t*, int);
1709
+ extern ROCKSDB_LIBRARY_API int rocksdb_options_get_compaction_pri(
1710
+ rocksdb_options_t*);
1711
+
1668
1712
  /* RateLimiter */
1669
1713
  extern ROCKSDB_LIBRARY_API rocksdb_ratelimiter_t* rocksdb_ratelimiter_create(
1670
1714
  int64_t rate_bytes_per_sec, int64_t refill_period_us, int32_t fairness);
1715
+ extern ROCKSDB_LIBRARY_API rocksdb_ratelimiter_t*
1716
+ rocksdb_ratelimiter_create_auto_tuned(int64_t rate_bytes_per_sec,
1717
+ int64_t refill_period_us,
1718
+ int32_t fairness);
1719
+ extern ROCKSDB_LIBRARY_API rocksdb_ratelimiter_t*
1720
+ rocksdb_ratelimiter_create_with_mode(int64_t rate_bytes_per_sec,
1721
+ int64_t refill_period_us, int32_t fairness,
1722
+ int mode, bool auto_tuned);
1671
1723
  extern ROCKSDB_LIBRARY_API void rocksdb_ratelimiter_destroy(
1672
1724
  rocksdb_ratelimiter_t*);
1673
1725
 
@@ -2067,6 +2119,36 @@ rocksdb_cache_get_table_address_count(const rocksdb_cache_t* cache);
2067
2119
  extern ROCKSDB_LIBRARY_API size_t
2068
2120
  rocksdb_cache_get_occupancy_count(const rocksdb_cache_t* cache);
2069
2121
 
2122
+ /* WriteBufferManager */
2123
+
2124
+ extern ROCKSDB_LIBRARY_API rocksdb_write_buffer_manager_t*
2125
+ rocksdb_write_buffer_manager_create(size_t buffer_size, bool allow_stall);
2126
+ extern ROCKSDB_LIBRARY_API rocksdb_write_buffer_manager_t*
2127
+ rocksdb_write_buffer_manager_create_with_cache(size_t buffer_size,
2128
+ const rocksdb_cache_t* cache,
2129
+ bool allow_stall);
2130
+
2131
+ extern ROCKSDB_LIBRARY_API void rocksdb_write_buffer_manager_destroy(
2132
+ rocksdb_write_buffer_manager_t* wbm);
2133
+ extern ROCKSDB_LIBRARY_API bool rocksdb_write_buffer_manager_enabled(
2134
+ rocksdb_write_buffer_manager_t* wbm);
2135
+ extern ROCKSDB_LIBRARY_API bool rocksdb_write_buffer_manager_cost_to_cache(
2136
+ rocksdb_write_buffer_manager_t* wbm);
2137
+ extern ROCKSDB_LIBRARY_API size_t
2138
+ rocksdb_write_buffer_manager_memory_usage(rocksdb_write_buffer_manager_t* wbm);
2139
+ extern ROCKSDB_LIBRARY_API size_t
2140
+ rocksdb_write_buffer_manager_mutable_memtable_memory_usage(
2141
+ rocksdb_write_buffer_manager_t* wbm);
2142
+ extern ROCKSDB_LIBRARY_API size_t
2143
+ rocksdb_write_buffer_manager_dummy_entries_in_cache_usage(
2144
+ rocksdb_write_buffer_manager_t* wbm);
2145
+ extern ROCKSDB_LIBRARY_API size_t
2146
+ rocksdb_write_buffer_manager_buffer_size(rocksdb_write_buffer_manager_t* wbm);
2147
+ extern ROCKSDB_LIBRARY_API void rocksdb_write_buffer_manager_set_buffer_size(
2148
+ rocksdb_write_buffer_manager_t* wbm, size_t new_size);
2149
+ extern ROCKSDB_LIBRARY_API void rocksdb_write_buffer_manager_set_allow_stall(
2150
+ rocksdb_write_buffer_manager_t* wbm, bool new_allow_stall);
2151
+
2070
2152
  /* HyperClockCache */
2071
2153
 
2072
2154
  extern ROCKSDB_LIBRARY_API rocksdb_hyper_clock_cache_options_t*
@@ -2427,6 +2509,9 @@ extern ROCKSDB_LIBRARY_API char*
2427
2509
  rocksdb_sst_file_metadata_get_relative_filename(
2428
2510
  rocksdb_sst_file_metadata_t* file_meta);
2429
2511
 
2512
+ extern ROCKSDB_LIBRARY_API char* rocksdb_sst_file_metadata_get_directory(
2513
+ rocksdb_sst_file_metadata_t* file_meta);
2514
+
2430
2515
  extern ROCKSDB_LIBRARY_API uint64_t
2431
2516
  rocksdb_sst_file_metadata_get_size(rocksdb_sst_file_metadata_t* file_meta);
2432
2517