@nxtedition/rocksdb 8.2.8 → 9.0.1

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 (483) hide show
  1. package/binding.cc +0 -21
  2. package/deps/rocksdb/rocksdb/CMakeLists.txt +20 -10
  3. package/deps/rocksdb/rocksdb/Makefile +37 -25
  4. package/deps/rocksdb/rocksdb/README.md +29 -0
  5. package/deps/rocksdb/rocksdb/TARGETS +25 -2
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
  7. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +229 -74
  8. package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
  9. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
  10. package/deps/rocksdb/rocksdb/cache/cache_test.cc +58 -95
  11. package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
  12. package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
  13. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2683 -496
  14. package/deps/rocksdb/rocksdb/cache/clock_cache.h +580 -159
  15. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +145 -42
  16. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +20 -1
  17. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +391 -17
  18. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
  19. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +309 -212
  20. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -32
  21. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +439 -12
  22. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +44 -2
  23. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +11 -1
  24. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +16 -3
  25. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
  26. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
  27. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
  28. package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
  29. package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
  30. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +28 -12
  31. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
  32. package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -1
  33. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
  34. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
  35. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
  36. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
  37. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +20 -22
  38. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
  39. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
  40. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
  41. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
  42. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +8 -0
  43. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
  44. package/deps/rocksdb/rocksdb/db/builder.cc +35 -10
  45. package/deps/rocksdb/rocksdb/db/c.cc +233 -6
  46. package/deps/rocksdb/rocksdb/db/c_test.c +140 -6
  47. package/deps/rocksdb/rocksdb/db/column_family.cc +110 -51
  48. package/deps/rocksdb/rocksdb/db/column_family.h +34 -2
  49. package/deps/rocksdb/rocksdb/db/column_family_test.cc +314 -7
  50. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
  51. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +106 -23
  52. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +47 -9
  53. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +10 -11
  54. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
  55. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
  56. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +148 -60
  57. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +22 -7
  58. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
  59. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -4
  60. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +33 -23
  61. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +14 -5
  62. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
  63. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
  64. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +90 -4
  65. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +170 -95
  66. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
  67. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +32 -58
  68. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +3 -1
  69. package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
  70. package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
  71. package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
  72. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
  73. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +46 -10
  74. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +13 -3
  75. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +74 -15
  76. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
  77. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +850 -44
  78. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
  79. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +275 -1
  80. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +52 -19
  81. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
  82. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +733 -320
  83. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +155 -66
  84. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +516 -155
  85. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +8 -4
  86. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
  87. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +17 -4
  88. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +100 -35
  89. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +95 -50
  90. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -9
  91. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +136 -79
  92. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +6 -95
  93. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +31 -22
  94. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
  95. package/deps/rocksdb/rocksdb/db/db_iter.cc +85 -57
  96. package/deps/rocksdb/rocksdb/db/db_iter.h +11 -2
  97. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
  98. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
  99. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
  100. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
  101. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +193 -7
  102. package/deps/rocksdb/rocksdb/db/db_options_test.cc +294 -26
  103. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
  104. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +364 -0
  105. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +13 -3
  106. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
  107. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
  108. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
  109. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
  110. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
  111. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +282 -167
  112. package/deps/rocksdb/rocksdb/db/db_test.cc +180 -49
  113. package/deps/rocksdb/rocksdb/db/db_test2.cc +84 -12
  114. package/deps/rocksdb/rocksdb/db/db_test_util.cc +25 -12
  115. package/deps/rocksdb/rocksdb/db/db_test_util.h +45 -2
  116. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +14 -1
  117. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +245 -0
  118. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +480 -1
  119. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
  120. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
  121. package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
  122. package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
  123. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
  124. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
  125. package/deps/rocksdb/rocksdb/db/error_handler.cc +67 -34
  126. package/deps/rocksdb/rocksdb/db/error_handler.h +13 -9
  127. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
  128. package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
  129. package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
  130. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
  131. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
  132. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +144 -4
  133. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
  134. package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
  135. package/deps/rocksdb/rocksdb/db/flush_job.cc +105 -17
  136. package/deps/rocksdb/rocksdb/db/flush_job.h +27 -4
  137. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -12
  138. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
  139. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
  140. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
  141. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
  142. package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
  143. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
  144. package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
  145. package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
  146. package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
  147. package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
  148. package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
  149. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -3
  150. package/deps/rocksdb/rocksdb/db/memtable.cc +70 -83
  151. package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
  152. package/deps/rocksdb/rocksdb/db/memtable_list.cc +45 -11
  153. package/deps/rocksdb/rocksdb/db/memtable_list.h +43 -2
  154. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +91 -5
  155. package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
  156. package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
  157. package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
  158. package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
  159. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +5 -2
  160. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
  161. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -0
  162. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
  163. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
  164. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
  165. package/deps/rocksdb/rocksdb/db/repair.cc +25 -7
  166. package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
  167. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +459 -74
  168. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
  169. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
  170. package/deps/rocksdb/rocksdb/db/table_cache.cc +76 -54
  171. package/deps/rocksdb/rocksdb/db/table_cache.h +18 -12
  172. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
  173. package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
  174. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
  175. package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
  176. package/deps/rocksdb/rocksdb/db/version_edit.h +58 -10
  177. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
  178. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
  179. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
  180. package/deps/rocksdb/rocksdb/db/version_set.cc +207 -110
  181. package/deps/rocksdb/rocksdb/db/version_set.h +36 -15
  182. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
  183. package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -26
  184. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
  185. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
  186. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
  187. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
  188. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
  189. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
  190. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
  191. package/deps/rocksdb/rocksdb/db/write_batch.cc +55 -20
  192. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
  193. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
  194. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
  195. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
  196. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
  197. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
  198. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +37 -13
  199. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +110 -58
  200. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
  201. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +68 -17
  202. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
  203. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +8 -1
  204. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +429 -237
  205. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +13 -6
  206. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +21 -14
  207. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
  208. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
  209. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -6
  210. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
  211. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +29 -38
  212. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +302 -101
  213. package/deps/rocksdb/rocksdb/env/env.cc +6 -2
  214. package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
  215. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
  216. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
  217. package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
  218. package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
  219. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +79 -0
  220. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
  221. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
  222. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
  223. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +100 -70
  224. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +64 -18
  225. package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
  226. package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
  227. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1225 -97
  228. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +72 -33
  229. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
  230. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
  231. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
  232. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +40 -14
  233. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +163 -91
  234. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +112 -2
  235. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +108 -16
  236. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
  237. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
  238. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +42 -2
  239. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
  240. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +92 -12
  241. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +34 -4
  242. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
  243. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +91 -13
  244. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
  245. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
  246. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +7 -0
  247. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
  248. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
  249. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +130 -22
  250. package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
  251. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
  252. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +92 -9
  253. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
  254. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
  255. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +37 -2
  256. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
  257. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
  258. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
  259. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +20 -3
  260. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +7 -0
  261. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
  262. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
  263. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
  264. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
  265. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
  266. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +42 -2
  267. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
  268. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  269. package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +53 -2
  270. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -2
  271. package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
  272. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +4 -3
  273. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
  274. package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
  275. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
  276. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
  277. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +22 -1
  278. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
  279. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
  280. package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
  281. package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
  282. package/deps/rocksdb/rocksdb/options/customizable_test.cc +6 -1
  283. package/deps/rocksdb/rocksdb/options/db_options.cc +54 -2
  284. package/deps/rocksdb/rocksdb/options/db_options.h +4 -0
  285. package/deps/rocksdb/rocksdb/options/options.cc +15 -1
  286. package/deps/rocksdb/rocksdb/options/options_helper.cc +18 -0
  287. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +14 -4
  288. package/deps/rocksdb/rocksdb/options/options_test.cc +14 -1
  289. package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
  290. package/deps/rocksdb/rocksdb/port/README +10 -0
  291. package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
  292. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  293. package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
  294. package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
  295. package/deps/rocksdb/rocksdb/port/stack_trace.cc +32 -12
  296. package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
  297. package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
  298. package/deps/rocksdb/rocksdb/src.mk +10 -1
  299. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  300. package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
  301. package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
  302. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +116 -43
  303. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +9 -6
  304. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +321 -49
  305. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +98 -4
  306. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +233 -98
  307. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +58 -23
  308. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
  309. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +52 -24
  310. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
  311. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
  312. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
  313. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +3 -1
  314. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
  315. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -18
  316. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +20 -8
  317. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +232 -71
  318. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
  319. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
  320. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
  321. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  322. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
  323. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
  324. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -2
  325. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
  326. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +36 -19
  327. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
  328. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
  329. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
  330. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +11 -7
  331. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
  332. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
  333. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
  334. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +14 -13
  335. package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
  336. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +9 -2
  337. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
  338. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
  339. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
  340. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
  341. package/deps/rocksdb/rocksdb/table/format.cc +175 -33
  342. package/deps/rocksdb/rocksdb/table/format.h +63 -10
  343. package/deps/rocksdb/rocksdb/table/get_context.cc +52 -89
  344. package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
  345. package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
  346. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
  347. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +22 -2
  348. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
  349. package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
  350. package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
  351. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
  352. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
  353. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
  354. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
  355. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +45 -9
  356. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
  357. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +24 -1
  358. package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
  359. package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
  360. package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
  361. package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
  362. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
  363. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
  364. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
  365. package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
  366. package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
  367. package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
  368. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
  369. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +87 -65
  370. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +221 -33
  371. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
  372. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
  373. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
  374. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -11
  375. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
  376. package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
  377. package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
  378. package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
  379. package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
  380. package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
  381. package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
  382. package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
  383. package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
  384. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
  385. package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
  386. package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
  387. package/deps/rocksdb/rocksdb/util/cast_util.h +24 -0
  388. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
  389. package/deps/rocksdb/rocksdb/util/comparator.cc +55 -8
  390. package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
  391. package/deps/rocksdb/rocksdb/util/compression.h +119 -35
  392. package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
  393. package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
  394. package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
  395. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
  396. package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
  397. package/deps/rocksdb/rocksdb/util/hash.h +7 -3
  398. package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
  399. package/deps/rocksdb/rocksdb/util/math.h +58 -6
  400. package/deps/rocksdb/rocksdb/util/math128.h +29 -7
  401. package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
  402. package/deps/rocksdb/rocksdb/util/overload.h +23 -0
  403. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
  404. package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
  405. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
  406. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
  407. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
  408. package/deps/rocksdb/rocksdb/util/status.cc +1 -0
  409. package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
  410. package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
  411. package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
  412. package/deps/rocksdb/rocksdb/util/thread_operation.h +10 -1
  413. package/deps/rocksdb/rocksdb/util/udt_util.cc +385 -0
  414. package/deps/rocksdb/rocksdb/util/udt_util.h +192 -1
  415. package/deps/rocksdb/rocksdb/util/udt_util_test.cc +461 -0
  416. package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
  417. package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
  418. package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
  419. package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
  420. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
  421. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +71 -26
  422. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
  423. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
  424. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
  425. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
  426. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
  427. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
  428. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
  429. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +20 -16
  430. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
  431. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
  432. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +7 -1
  433. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
  434. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +12 -3
  435. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
  436. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
  437. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
  438. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
  439. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  440. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
  441. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
  442. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
  443. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
  444. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +272 -33
  445. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
  446. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -1
  447. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
  448. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
  449. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +195 -23
  450. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +19 -12
  451. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +88 -1
  452. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
  453. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +43 -17
  454. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
  455. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +73 -24
  456. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
  457. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
  458. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +41 -12
  459. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
  460. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +15 -8
  461. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
  462. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
  463. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
  464. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
  465. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +59 -28
  466. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
  467. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
  468. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +111 -14
  469. package/deps/rocksdb/rocksdb.gyp +6 -2
  470. package/index.js +0 -8
  471. package/package.json +1 -1
  472. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  473. package/prebuilds/linux-x64/node.napi.node +0 -0
  474. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
  475. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
  476. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
  477. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
  478. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
  479. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
  480. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
  481. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
  482. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
  483. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
@@ -77,6 +77,7 @@ using ROCKSDB_NAMESPACE::EnvOptions;
77
77
  using ROCKSDB_NAMESPACE::FileLock;
78
78
  using ROCKSDB_NAMESPACE::FilterPolicy;
79
79
  using ROCKSDB_NAMESPACE::FlushOptions;
80
+ using ROCKSDB_NAMESPACE::HistogramData;
80
81
  using ROCKSDB_NAMESPACE::HyperClockCacheOptions;
81
82
  using ROCKSDB_NAMESPACE::InfoLogLevel;
82
83
  using ROCKSDB_NAMESPACE::IngestExternalFileOptions;
@@ -119,6 +120,7 @@ using ROCKSDB_NAMESPACE::TransactionDB;
119
120
  using ROCKSDB_NAMESPACE::TransactionDBOptions;
120
121
  using ROCKSDB_NAMESPACE::TransactionLogIterator;
121
122
  using ROCKSDB_NAMESPACE::TransactionOptions;
123
+ using ROCKSDB_NAMESPACE::WaitForCompactOptions;
122
124
  using ROCKSDB_NAMESPACE::WALRecoveryMode;
123
125
  using ROCKSDB_NAMESPACE::WritableFile;
124
126
  using ROCKSDB_NAMESPACE::WriteBatch;
@@ -274,11 +276,19 @@ struct rocksdb_optimistictransactiondb_t {
274
276
  struct rocksdb_optimistictransaction_options_t {
275
277
  OptimisticTransactionOptions rep;
276
278
  };
279
+ struct rocksdb_wait_for_compact_options_t {
280
+ WaitForCompactOptions rep;
281
+ };
277
282
 
278
283
  struct rocksdb_compactionfiltercontext_t {
279
284
  CompactionFilter::Context rep;
280
285
  };
281
286
 
287
+ struct rocksdb_statistics_histogram_data_t {
288
+ rocksdb_statistics_histogram_data_t() : rep() {}
289
+ HistogramData rep;
290
+ };
291
+
282
292
  struct rocksdb_compactionfilter_t : public CompactionFilter {
283
293
  void* state_;
284
294
  void (*destructor_)(void*);
@@ -1057,6 +1067,36 @@ rocksdb_column_family_handle_t* rocksdb_create_column_family(
1057
1067
  return handle;
1058
1068
  }
1059
1069
 
1070
+ rocksdb_column_family_handle_t** rocksdb_create_column_families(
1071
+ rocksdb_t* db, const rocksdb_options_t* column_family_options,
1072
+ int num_column_families, const char* const* column_family_names,
1073
+ size_t* lencfs, char** errptr) {
1074
+ std::vector<ColumnFamilyHandle*> handles;
1075
+ std::vector<std::string> names;
1076
+ for (int i = 0; i != num_column_families; ++i) {
1077
+ names.push_back(std::string(column_family_names[i]));
1078
+ }
1079
+ SaveError(errptr, db->rep->CreateColumnFamilies(
1080
+ ColumnFamilyOptions(column_family_options->rep), names,
1081
+ &handles));
1082
+
1083
+ *lencfs = handles.size();
1084
+ rocksdb_column_family_handle_t** c_handles =
1085
+ static_cast<rocksdb_column_family_handle_t**>(
1086
+ malloc(sizeof(rocksdb_column_family_handle_t*) * handles.size()));
1087
+ for (size_t i = 0; i != handles.size(); ++i) {
1088
+ c_handles[i] = new rocksdb_column_family_handle_t;
1089
+ c_handles[i]->rep = handles[i];
1090
+ }
1091
+
1092
+ return c_handles;
1093
+ }
1094
+
1095
+ void rocksdb_create_column_families_destroy(
1096
+ rocksdb_column_family_handle_t** list) {
1097
+ free(list);
1098
+ }
1099
+
1060
1100
  rocksdb_column_family_handle_t* rocksdb_create_column_family_with_ttl(
1061
1101
  rocksdb_t* db, const rocksdb_options_t* column_family_options,
1062
1102
  const char* column_family_name, int ttl, char** errptr) {
@@ -2993,6 +3033,29 @@ void rocksdb_options_enable_statistics(rocksdb_options_t* opt) {
2993
3033
  opt->rep.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
2994
3034
  }
2995
3035
 
3036
+ void rocksdb_options_set_statistics_level(rocksdb_options_t* opt, int level) {
3037
+ if (!opt->rep.statistics) {
3038
+ return;
3039
+ }
3040
+
3041
+ if (level < rocksdb_statistics_level_disable_all) {
3042
+ level = rocksdb_statistics_level_disable_all;
3043
+ }
3044
+ if (level > rocksdb_statistics_level_all) {
3045
+ level = rocksdb_statistics_level_all;
3046
+ }
3047
+ opt->rep.statistics->set_stats_level(
3048
+ static_cast<ROCKSDB_NAMESPACE::StatsLevel>(level));
3049
+ }
3050
+
3051
+ int rocksdb_options_get_statistics_level(rocksdb_options_t* opt) {
3052
+ if (!opt->rep.statistics) {
3053
+ return ROCKSDB_NAMESPACE::StatsLevel::kDisableAll;
3054
+ }
3055
+
3056
+ return static_cast<int>(opt->rep.statistics->get_stats_level());
3057
+ }
3058
+
2996
3059
  void rocksdb_options_set_skip_stats_update_on_db_open(rocksdb_options_t* opt,
2997
3060
  unsigned char val) {
2998
3061
  opt->rep.skip_stats_update_on_db_open = val;
@@ -3740,16 +3803,21 @@ void rocksdb_options_set_hash_link_list_rep(rocksdb_options_t* opt,
3740
3803
  ROCKSDB_NAMESPACE::NewHashLinkListRepFactory(bucket_count));
3741
3804
  }
3742
3805
 
3743
- void rocksdb_options_set_plain_table_factory(rocksdb_options_t* opt,
3744
- uint32_t user_key_len,
3745
- int bloom_bits_per_key,
3746
- double hash_table_ratio,
3747
- size_t index_sparseness) {
3806
+ void rocksdb_options_set_plain_table_factory(
3807
+ rocksdb_options_t* opt, uint32_t user_key_len, int bloom_bits_per_key,
3808
+ double hash_table_ratio, size_t index_sparseness, size_t huge_page_tlb_size,
3809
+ char encoding_type, unsigned char full_scan_mode,
3810
+ unsigned char store_index_in_file) {
3748
3811
  ROCKSDB_NAMESPACE::PlainTableOptions options;
3749
3812
  options.user_key_len = user_key_len;
3750
3813
  options.bloom_bits_per_key = bloom_bits_per_key;
3751
3814
  options.hash_table_ratio = hash_table_ratio;
3752
3815
  options.index_sparseness = index_sparseness;
3816
+ options.huge_page_tlb_size = huge_page_tlb_size;
3817
+ options.encoding_type =
3818
+ static_cast<ROCKSDB_NAMESPACE::EncodingType>(encoding_type);
3819
+ options.full_scan_mode = full_scan_mode;
3820
+ options.store_index_in_file = store_index_in_file;
3753
3821
 
3754
3822
  ROCKSDB_NAMESPACE::TableFactory* factory =
3755
3823
  ROCKSDB_NAMESPACE::NewPlainTableFactory(options);
@@ -3827,6 +3895,26 @@ char* rocksdb_options_statistics_get_string(rocksdb_options_t* opt) {
3827
3895
  return nullptr;
3828
3896
  }
3829
3897
 
3898
+ uint64_t rocksdb_options_statistics_get_ticker_count(rocksdb_options_t* opt,
3899
+ uint32_t ticker_type) {
3900
+ ROCKSDB_NAMESPACE::Statistics* statistics = opt->rep.statistics.get();
3901
+ if (statistics) {
3902
+ return statistics->getTickerCount(ticker_type);
3903
+ }
3904
+ return 0;
3905
+ }
3906
+
3907
+ void rocksdb_options_statistics_get_histogram_data(
3908
+ rocksdb_options_t* opt, uint32_t type,
3909
+ rocksdb_statistics_histogram_data_t* const data) {
3910
+ ROCKSDB_NAMESPACE::Statistics* statistics = opt->rep.statistics.get();
3911
+ if (statistics) {
3912
+ statistics->histogramData(type, &data->rep);
3913
+ } else {
3914
+ *data = rocksdb_statistics_histogram_data_t{};
3915
+ }
3916
+ }
3917
+
3830
3918
  void rocksdb_options_set_ratelimiter(rocksdb_options_t* opt,
3831
3919
  rocksdb_ratelimiter_t* limiter) {
3832
3920
  if (limiter) {
@@ -3888,6 +3976,15 @@ void rocksdb_options_add_compact_on_deletion_collector_factory(
3888
3976
  opt->rep.table_properties_collector_factories.emplace_back(compact_on_del);
3889
3977
  }
3890
3978
 
3979
+ void rocksdb_options_add_compact_on_deletion_collector_factory_del_ratio(
3980
+ rocksdb_options_t* opt, size_t window_size, size_t num_dels_trigger,
3981
+ double deletion_ratio) {
3982
+ std::shared_ptr<ROCKSDB_NAMESPACE::TablePropertiesCollectorFactory>
3983
+ compact_on_del = NewCompactOnDeletionCollectorFactory(
3984
+ window_size, num_dels_trigger, deletion_ratio);
3985
+ opt->rep.table_properties_collector_factories.emplace_back(compact_on_del);
3986
+ }
3987
+
3891
3988
  void rocksdb_set_perf_level(int v) {
3892
3989
  PerfLevel level = static_cast<PerfLevel>(v);
3893
3990
  SetPerfLevel(level);
@@ -4492,6 +4589,11 @@ void rocksdb_readoptions_set_iter_start_ts(rocksdb_readoptions_t* opt,
4492
4589
  }
4493
4590
  }
4494
4591
 
4592
+ void rocksdb_readoptions_set_auto_readahead_size(rocksdb_readoptions_t* opt,
4593
+ unsigned char v) {
4594
+ opt->rep.auto_readahead_size = v;
4595
+ }
4596
+
4495
4597
  rocksdb_writeoptions_t* rocksdb_writeoptions_create() {
4496
4598
  return new rocksdb_writeoptions_t;
4497
4599
  }
@@ -5150,7 +5252,8 @@ rocksdb_fifo_compaction_options_t* rocksdb_fifo_compaction_options_create() {
5150
5252
  }
5151
5253
 
5152
5254
  void rocksdb_fifo_compaction_options_set_allow_compaction(
5153
- rocksdb_fifo_compaction_options_t* fifo_opts, unsigned char allow_compaction) {
5255
+ rocksdb_fifo_compaction_options_t* fifo_opts,
5256
+ unsigned char allow_compaction) {
5154
5257
  fifo_opts->rep.allow_compaction = allow_compaction;
5155
5258
  }
5156
5259
 
@@ -5579,6 +5682,20 @@ int rocksdb_transactiondb_property_int(rocksdb_transactiondb_t* db,
5579
5682
  }
5580
5683
  }
5581
5684
 
5685
+ rocksdb_t* rocksdb_transactiondb_get_base_db(rocksdb_transactiondb_t* txn_db) {
5686
+ DB* base_db = txn_db->rep->GetBaseDB();
5687
+
5688
+ if (base_db != nullptr) {
5689
+ rocksdb_t* result = new rocksdb_t;
5690
+ result->rep = base_db;
5691
+ return result;
5692
+ }
5693
+
5694
+ return nullptr;
5695
+ }
5696
+
5697
+ void rocksdb_transactiondb_close_base_db(rocksdb_t* base_db) { delete base_db; }
5698
+
5582
5699
  rocksdb_transaction_t* rocksdb_transaction_begin(
5583
5700
  rocksdb_transactiondb_t* txn_db,
5584
5701
  const rocksdb_writeoptions_t* write_options,
@@ -6556,4 +6673,114 @@ void rocksdb_enable_manual_compaction(rocksdb_t* db) {
6556
6673
  db->rep->EnableManualCompaction();
6557
6674
  }
6558
6675
 
6676
+ rocksdb_statistics_histogram_data_t*
6677
+ rocksdb_statistics_histogram_data_create() {
6678
+ return new rocksdb_statistics_histogram_data_t{};
6679
+ }
6680
+
6681
+ void rocksdb_statistics_histogram_data_destroy(
6682
+ rocksdb_statistics_histogram_data_t* data) {
6683
+ delete data;
6684
+ }
6685
+
6686
+ double rocksdb_statistics_histogram_data_get_median(
6687
+ rocksdb_statistics_histogram_data_t* data) {
6688
+ return data->rep.median;
6689
+ }
6690
+
6691
+ double rocksdb_statistics_histogram_data_get_p95(
6692
+ rocksdb_statistics_histogram_data_t* data) {
6693
+ return data->rep.percentile95;
6694
+ }
6695
+
6696
+ double rocksdb_statistics_histogram_data_get_p99(
6697
+ rocksdb_statistics_histogram_data_t* data) {
6698
+ return data->rep.percentile99;
6699
+ }
6700
+
6701
+ double rocksdb_statistics_histogram_data_get_average(
6702
+ rocksdb_statistics_histogram_data_t* data) {
6703
+ return data->rep.average;
6704
+ }
6705
+
6706
+ double rocksdb_statistics_histogram_data_get_std_dev(
6707
+ rocksdb_statistics_histogram_data_t* data) {
6708
+ return data->rep.standard_deviation;
6709
+ }
6710
+
6711
+ double rocksdb_statistics_histogram_data_get_max(
6712
+ rocksdb_statistics_histogram_data_t* data) {
6713
+ return data->rep.max;
6714
+ }
6715
+
6716
+ uint64_t rocksdb_statistics_histogram_data_get_count(
6717
+ rocksdb_statistics_histogram_data_t* data) {
6718
+ return data->rep.count;
6719
+ }
6720
+
6721
+ uint64_t rocksdb_statistics_histogram_data_get_sum(
6722
+ rocksdb_statistics_histogram_data_t* data) {
6723
+ return data->rep.sum;
6724
+ }
6725
+
6726
+ double rocksdb_statistics_histogram_data_get_min(
6727
+ rocksdb_statistics_histogram_data_t* data) {
6728
+ return data->rep.min;
6729
+ }
6730
+
6731
+ void rocksdb_wait_for_compact(rocksdb_t* db,
6732
+ rocksdb_wait_for_compact_options_t* options,
6733
+ char** errptr) {
6734
+ SaveError(errptr, db->rep->WaitForCompact(options->rep));
6735
+ }
6736
+
6737
+ rocksdb_wait_for_compact_options_t* rocksdb_wait_for_compact_options_create() {
6738
+ return new rocksdb_wait_for_compact_options_t;
6739
+ }
6740
+
6741
+ void rocksdb_wait_for_compact_options_destroy(
6742
+ rocksdb_wait_for_compact_options_t* opt) {
6743
+ delete opt;
6744
+ }
6745
+
6746
+ void rocksdb_wait_for_compact_options_set_abort_on_pause(
6747
+ rocksdb_wait_for_compact_options_t* opt, unsigned char v) {
6748
+ opt->rep.abort_on_pause = v;
6749
+ }
6750
+
6751
+ unsigned char rocksdb_wait_for_compact_options_get_abort_on_pause(
6752
+ rocksdb_wait_for_compact_options_t* opt) {
6753
+ return opt->rep.abort_on_pause;
6754
+ }
6755
+
6756
+ void rocksdb_wait_for_compact_options_set_flush(
6757
+ rocksdb_wait_for_compact_options_t* opt, unsigned char v) {
6758
+ opt->rep.flush = v;
6759
+ }
6760
+
6761
+ unsigned char rocksdb_wait_for_compact_options_get_flush(
6762
+ rocksdb_wait_for_compact_options_t* opt) {
6763
+ return opt->rep.flush;
6764
+ }
6765
+
6766
+ void rocksdb_wait_for_compact_options_set_close_db(
6767
+ rocksdb_wait_for_compact_options_t* opt, unsigned char v) {
6768
+ opt->rep.close_db = v;
6769
+ }
6770
+
6771
+ unsigned char rocksdb_wait_for_compact_options_get_close_db(
6772
+ rocksdb_wait_for_compact_options_t* opt) {
6773
+ return opt->rep.close_db;
6774
+ }
6775
+
6776
+ void rocksdb_wait_for_compact_options_set_timeout(
6777
+ rocksdb_wait_for_compact_options_t* opt, uint64_t microseconds) {
6778
+ opt->rep.timeout = std::chrono::microseconds(microseconds);
6779
+ }
6780
+
6781
+ uint64_t rocksdb_wait_for_compact_options_get_timeout(
6782
+ rocksdb_wait_for_compact_options_t* opt) {
6783
+ return opt->rep.timeout.count();
6784
+ }
6785
+
6559
6786
  } // end extern "C"
@@ -3,15 +3,14 @@
3
3
  found in the LICENSE file. See the AUTHORS file for names of contributors. */
4
4
  // Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
5
5
 
6
- #include <stdio.h>
6
+ #include "rocksdb/c.h"
7
7
 
8
8
  #include <assert.h>
9
9
  #include <stddef.h>
10
+ #include <stdio.h>
10
11
  #include <stdlib.h>
11
12
  #include <string.h>
12
13
  #include <sys/types.h>
13
-
14
- #include "rocksdb/c.h"
15
14
  #ifndef OS_WIN
16
15
  #include <unistd.h>
17
16
  #endif
@@ -376,6 +375,11 @@ static rocksdb_t* CheckCompaction(rocksdb_t* db, rocksdb_options_t* options,
376
375
 
377
376
  // Force compaction
378
377
  rocksdb_compact_range(db, NULL, 0, NULL, 0);
378
+ rocksdb_wait_for_compact_options_t* wco;
379
+ wco = rocksdb_wait_for_compact_options_create();
380
+ rocksdb_wait_for_compact(db, wco, &err);
381
+ CheckNoError(err);
382
+ rocksdb_wait_for_compact_options_destroy(wco);
379
383
  // should have filtered bar, but not foo
380
384
  CheckGet(db, roptions, "foo", "foovalue");
381
385
  CheckGet(db, roptions, "bar", NULL);
@@ -721,6 +725,8 @@ int main(int argc, char** argv) {
721
725
 
722
726
  rocksdb_options_add_compact_on_deletion_collector_factory(options, 10000,
723
727
  10001);
728
+ rocksdb_options_add_compact_on_deletion_collector_factory_del_ratio(
729
+ options, 10000, 10001, 0.0);
724
730
 
725
731
  StartPhase("destroy");
726
732
  rocksdb_destroy_db(options, dbname, &err);
@@ -1672,7 +1678,8 @@ int main(int argc, char** argv) {
1672
1678
  rocksdb_options_set_prefix_extractor(
1673
1679
  options, rocksdb_slicetransform_create_fixed_prefix(3));
1674
1680
  rocksdb_options_set_hash_skip_list_rep(options, 5000, 4, 4);
1675
- rocksdb_options_set_plain_table_factory(options, 4, 10, 0.75, 16);
1681
+ rocksdb_options_set_plain_table_factory(options, 4, 10, 0.75, 16, 0, 0, 0,
1682
+ 0);
1676
1683
  rocksdb_options_set_allow_concurrent_memtable_write(options, 0);
1677
1684
 
1678
1685
  db = rocksdb_open(options, dbname, &err);
@@ -2058,6 +2065,15 @@ int main(int argc, char** argv) {
2058
2065
  CheckCondition(29.0 ==
2059
2066
  rocksdb_options_get_experimental_mempurge_threshold(o));
2060
2067
 
2068
+ CheckCondition(rocksdb_statistics_level_disable_all ==
2069
+ rocksdb_options_get_statistics_level(o));
2070
+ rocksdb_options_enable_statistics(o);
2071
+ CheckCondition(rocksdb_statistics_level_disable_all !=
2072
+ rocksdb_options_get_statistics_level(o));
2073
+ rocksdb_options_set_statistics_level(o, rocksdb_statistics_level_all);
2074
+ CheckCondition(rocksdb_statistics_level_all ==
2075
+ rocksdb_options_get_statistics_level(o));
2076
+
2061
2077
  /* Blob Options */
2062
2078
  rocksdb_options_set_enable_blob_files(o, 1);
2063
2079
  CheckCondition(1 == rocksdb_options_get_enable_blob_files(o));
@@ -3119,6 +3135,17 @@ int main(int argc, char** argv) {
3119
3135
  CheckTxnDBGetCF(txn_db, roptions, cfh, "cf_foo", NULL);
3120
3136
  CheckTxnDBPinGetCF(txn_db, roptions, cfh, "cf_foo", NULL);
3121
3137
 
3138
+ // memory usage
3139
+ rocksdb_t* base_db = rocksdb_transactiondb_get_base_db(txn_db);
3140
+ rocksdb_memory_consumers_t* consumers = rocksdb_memory_consumers_create();
3141
+ rocksdb_memory_consumers_add_db(consumers, base_db);
3142
+ rocksdb_memory_usage_t* usage =
3143
+ rocksdb_approximate_memory_usage_create(consumers, &err);
3144
+ CheckNoError(err);
3145
+ rocksdb_approximate_memory_usage_destroy(usage);
3146
+ rocksdb_memory_consumers_destroy(consumers);
3147
+ rocksdb_transactiondb_close_base_db(base_db);
3148
+
3122
3149
  // flush
3123
3150
  rocksdb_flushoptions_t* flush_options = rocksdb_flushoptions_create();
3124
3151
  rocksdb_flushoptions_set_wait(flush_options, 1);
@@ -3374,8 +3401,19 @@ int main(int argc, char** argv) {
3374
3401
  rocksdb_put(db, woptions, "key", 3, "value", 5, &err);
3375
3402
  CheckNoError(err);
3376
3403
  rocksdb_column_family_handle_t *cfh1, *cfh2;
3377
- cfh1 = rocksdb_create_column_family(db, db_options, "txn_db_cf1", &err);
3378
- cfh2 = rocksdb_create_column_family(db, db_options, "txn_db_cf2", &err);
3404
+ char** list_const_cf_names = (char**)malloc(2 * sizeof(char*));
3405
+ list_const_cf_names[0] = "txn_db_cf1";
3406
+ list_const_cf_names[1] = "txn_db_cf2";
3407
+ size_t cflen;
3408
+ rocksdb_column_family_handle_t** list_cfh = rocksdb_create_column_families(
3409
+ db, db_options, 2, (const char* const*)list_const_cf_names, &cflen,
3410
+ &err);
3411
+ free(list_const_cf_names);
3412
+ CheckNoError(err);
3413
+ assert(cflen == 2);
3414
+ cfh1 = list_cfh[0];
3415
+ cfh2 = list_cfh[1];
3416
+ rocksdb_create_column_families_destroy(list_cfh);
3379
3417
  txn = rocksdb_optimistictransaction_begin(otxn_db, woptions, otxn_options,
3380
3418
  NULL);
3381
3419
  rocksdb_transaction_put_cf(txn, cfh1, "key_cf1", 7, "val_cf1", 7, &err);
@@ -3589,6 +3627,102 @@ int main(int argc, char** argv) {
3589
3627
  rocksdb_readoptions_destroy(ropts);
3590
3628
  }
3591
3629
 
3630
+ StartPhase("statistics");
3631
+ {
3632
+ const uint32_t BYTES_WRITTEN_TICKER = 40;
3633
+ const uint32_t DB_WRITE_HIST = 1;
3634
+
3635
+ rocksdb_statistics_histogram_data_t* hist =
3636
+ rocksdb_statistics_histogram_data_create();
3637
+ {
3638
+ // zero by default
3639
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_median(hist));
3640
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p95(hist));
3641
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p99(hist));
3642
+ CheckCondition(0.0 ==
3643
+ rocksdb_statistics_histogram_data_get_average(hist));
3644
+ CheckCondition(0.0 ==
3645
+ rocksdb_statistics_histogram_data_get_std_dev(hist));
3646
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_max(hist));
3647
+ CheckCondition(0 == rocksdb_statistics_histogram_data_get_count(hist));
3648
+ CheckCondition(0 == rocksdb_statistics_histogram_data_get_sum(hist));
3649
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_min(hist));
3650
+ }
3651
+
3652
+ rocksdb_close(db);
3653
+ rocksdb_destroy_db(options, dbname, &err);
3654
+ CheckNoError(err);
3655
+
3656
+ rocksdb_options_enable_statistics(options);
3657
+ rocksdb_options_set_statistics_level(options, rocksdb_statistics_level_all);
3658
+
3659
+ db = rocksdb_open(options, dbname, &err);
3660
+ CheckNoError(err);
3661
+
3662
+ CheckCondition(0 == rocksdb_options_statistics_get_ticker_count(
3663
+ options, BYTES_WRITTEN_TICKER));
3664
+ rocksdb_options_statistics_get_histogram_data(options, DB_WRITE_HIST, hist);
3665
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_median(hist));
3666
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p95(hist));
3667
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p99(hist));
3668
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_average(hist));
3669
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_std_dev(hist));
3670
+ CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_max(hist));
3671
+ CheckCondition(0 == rocksdb_statistics_histogram_data_get_count(hist));
3672
+ CheckCondition(0 == rocksdb_statistics_histogram_data_get_sum(hist));
3673
+
3674
+ int i;
3675
+ for (i = 0; i < 10; ++i) {
3676
+ char key = '0' + (char)i;
3677
+ rocksdb_put(db, woptions, &key, 1, "", 1, &err);
3678
+ CheckNoError(err);
3679
+ }
3680
+ CheckCondition(0 != rocksdb_options_statistics_get_ticker_count(
3681
+ options, BYTES_WRITTEN_TICKER));
3682
+ rocksdb_options_statistics_get_histogram_data(options, DB_WRITE_HIST, hist);
3683
+ CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_median(hist));
3684
+ CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_p95(hist));
3685
+ CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_p99(hist));
3686
+ CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_average(hist));
3687
+ CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_std_dev(hist));
3688
+ CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_max(hist));
3689
+ CheckCondition(0 != rocksdb_statistics_histogram_data_get_count(hist));
3690
+ CheckCondition(0 != rocksdb_statistics_histogram_data_get_sum(hist));
3691
+
3692
+ rocksdb_statistics_histogram_data_destroy(hist);
3693
+ }
3694
+
3695
+ StartPhase("wait_for_compact_options");
3696
+ {
3697
+ rocksdb_wait_for_compact_options_t* wco;
3698
+ wco = rocksdb_wait_for_compact_options_create();
3699
+
3700
+ rocksdb_wait_for_compact_options_set_abort_on_pause(wco, 1);
3701
+ CheckCondition(1 ==
3702
+ rocksdb_wait_for_compact_options_get_abort_on_pause(wco));
3703
+
3704
+ rocksdb_wait_for_compact_options_set_flush(wco, 1);
3705
+ CheckCondition(1 == rocksdb_wait_for_compact_options_get_flush(wco));
3706
+
3707
+ rocksdb_wait_for_compact_options_set_close_db(wco, 1);
3708
+ CheckCondition(1 == rocksdb_wait_for_compact_options_get_close_db(wco));
3709
+
3710
+ rocksdb_wait_for_compact_options_set_timeout(wco, 342);
3711
+ CheckCondition(342 == rocksdb_wait_for_compact_options_get_timeout(wco));
3712
+
3713
+ rocksdb_wait_for_compact_options_destroy(wco);
3714
+ }
3715
+ StartPhase("wait_for_compact");
3716
+ {
3717
+ rocksdb_wait_for_compact_options_t* wco;
3718
+ wco = rocksdb_wait_for_compact_options_create();
3719
+ rocksdb_wait_for_compact_options_set_flush(wco, 1);
3720
+
3721
+ rocksdb_wait_for_compact(db, wco, &err);
3722
+ CheckNoError(err);
3723
+ rocksdb_wait_for_compact_options_destroy(wco);
3724
+ }
3725
+
3592
3726
  StartPhase("cancel_all_background_work");
3593
3727
  rocksdb_cancel_all_background_work(db, 1);
3594
3728