@nxtedition/rocksdb 5.2.21 → 5.2.28

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 (923) hide show
  1. package/binding.cc +510 -967
  2. package/binding.gyp +78 -72
  3. package/chained-batch.js +1 -2
  4. package/deps/rocksdb/build_version.cc +70 -4
  5. package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
  6. package/deps/rocksdb/rocksdb/Makefile +459 -469
  7. package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
  8. package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
  9. package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
  10. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
  11. package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
  12. package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
  13. package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
  14. package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
  15. package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
  16. package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
  17. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
  18. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
  19. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
  20. package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
  21. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
  22. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
  23. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
  24. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
  25. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
  26. package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
  27. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
  28. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
  29. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
  30. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  31. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  32. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  33. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  34. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  35. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  36. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  37. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  38. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  39. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  40. package/deps/rocksdb/rocksdb/crash_test.mk +93 -0
  41. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
  42. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
  43. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
  44. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
  45. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
  46. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
  47. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
  48. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
  49. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
  50. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
  51. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
  52. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
  53. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
  54. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
  55. package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
  56. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
  57. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
  58. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
  59. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
  60. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
  61. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
  62. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
  63. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
  64. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
  65. package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
  66. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
  67. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
  68. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
  69. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
  70. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
  71. package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
  72. package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
  73. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
  74. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
  75. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
  76. package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
  77. package/deps/rocksdb/rocksdb/db/builder.h +16 -37
  78. package/deps/rocksdb/rocksdb/db/c.cc +413 -208
  79. package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
  80. package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
  81. package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
  82. package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
  83. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
  84. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
  85. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
  86. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
  87. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
  88. package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
  89. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
  90. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
  91. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
  92. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
  93. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
  94. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
  95. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
  96. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
  97. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
  98. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
  99. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
  100. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
  101. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
  102. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
  103. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
  104. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
  105. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
  106. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
  107. package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
  108. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
  110. package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
  111. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
  112. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
  113. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
  114. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
  115. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
  116. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
  117. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
  118. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
  119. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
  120. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
  121. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
  122. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
  123. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
  124. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
  125. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
  126. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
  127. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
  128. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
  129. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
  130. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
  131. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
  132. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
  133. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
  134. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
  135. package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
  136. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
  137. package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
  138. package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
  139. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
  140. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
  141. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
  142. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
  143. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
  144. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
  145. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
  146. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
  147. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
  148. package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
  149. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
  150. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
  151. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
  152. package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
  153. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
  154. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
  155. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
  156. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
  157. package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
  158. package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
  159. package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
  160. package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
  161. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
  162. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
  163. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
  164. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
  165. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
  166. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
  167. package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
  168. package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
  169. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
  170. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
  171. package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
  172. package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
  173. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
  174. package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
  175. package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
  176. package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
  177. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
  178. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
  179. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
  180. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
  181. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
  182. package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
  183. package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
  184. package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
  185. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
  186. package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
  187. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
  188. package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
  189. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
  190. package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
  191. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
  192. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
  193. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
  194. package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
  195. package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
  196. package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
  197. package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
  198. package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
  199. package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
  200. package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
  201. package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
  202. package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
  203. package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
  204. package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
  205. package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
  206. package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
  207. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
  208. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
  209. package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
  210. package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
  211. package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
  212. package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
  213. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
  214. package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
  215. package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
  216. package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
  217. package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
  218. package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
  219. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
  220. package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
  221. package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
  222. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
  223. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
  224. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
  225. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
  226. package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
  227. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
  228. package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
  229. package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
  230. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
  231. package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
  232. package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
  233. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
  234. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
  235. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
  236. package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
  237. package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
  238. package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
  239. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
  240. package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
  241. package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
  242. package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
  243. package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
  244. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
  245. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
  246. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
  247. package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
  248. package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
  249. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
  250. package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
  251. package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
  252. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
  253. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
  254. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
  255. package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
  256. package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
  257. package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
  258. package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
  259. package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
  260. package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
  261. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
  262. package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
  263. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
  264. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
  265. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
  266. package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
  267. package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
  268. package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
  269. package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
  270. package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
  271. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
  272. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
  273. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
  274. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
  275. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
  276. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
  277. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
  278. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
  279. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
  280. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
  281. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
  282. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
  283. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
  284. package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
  285. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
  286. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
  287. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
  288. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
  289. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
  290. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
  291. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
  292. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
  293. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
  294. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
  295. package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
  296. package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
  297. package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
  298. package/deps/rocksdb/rocksdb/env/env.cc +632 -42
  299. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
  300. package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
  301. package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
  302. package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
  303. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
  304. package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
  305. package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
  306. package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
  307. package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
  308. package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
  309. package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
  310. package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
  311. package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
  312. package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
  313. package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
  314. package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
  315. package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
  316. package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
  317. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
  318. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
  319. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
  320. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
  321. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
  322. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
  323. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
  324. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
  325. package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
  326. package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
  327. package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
  328. package/deps/rocksdb/rocksdb/file/filename.h +13 -8
  329. package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
  330. package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
  331. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
  332. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
  333. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
  334. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
  335. package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
  336. package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
  337. package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
  338. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
  339. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
  340. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
  341. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
  342. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
  343. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
  344. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
  345. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
  346. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
  347. package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
  348. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
  349. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
  350. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
  351. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
  352. package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
  353. package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
  354. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
  355. package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
  356. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
  357. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
  358. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
  359. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
  360. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
  361. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
  362. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
  363. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
  364. package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
  365. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
  366. package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
  367. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
  368. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
  369. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
  370. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
  371. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
  372. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
  373. package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
  374. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
  375. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
  376. package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
  377. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
  378. package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
  379. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
  380. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
  381. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
  382. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
  383. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
  384. package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
  385. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
  386. package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
  387. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
  388. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
  389. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
  390. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
  391. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
  392. package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
  393. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
  394. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
  395. package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
  396. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
  397. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
  398. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
  400. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
  401. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
  402. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
  403. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
  404. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
  405. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
  406. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
  407. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
  408. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
  409. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
  410. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
  411. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
  412. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
  413. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
  414. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
  415. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
  416. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
  417. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
  418. package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
  419. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
  420. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
  421. package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
  422. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
  423. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
  424. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
  425. package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
  426. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
  427. package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
  428. package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
  429. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  430. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
  431. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
  432. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
  433. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
  434. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
  435. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
  436. package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
  437. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
  438. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
  439. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
  440. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
  441. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
  442. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
  443. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
  444. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
  445. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
  446. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
  447. package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
  448. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
  449. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
  450. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
  451. package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
  452. package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
  453. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
  454. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
  455. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
  456. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
  457. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
  458. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
  459. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
  460. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
  461. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
  462. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
  463. package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
  464. package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
  465. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
  466. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
  467. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
  468. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
  469. package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
  470. package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
  471. package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
  472. package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
  473. package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
  474. package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
  475. package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
  476. package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
  477. package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
  478. package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
  479. package/deps/rocksdb/rocksdb/options/options.cc +49 -17
  480. package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
  481. package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
  482. package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
  483. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
  484. package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
  485. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
  486. package/deps/rocksdb/rocksdb/port/lang.h +52 -0
  487. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  488. package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
  489. package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
  490. package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
  491. package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
  492. package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
  493. package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
  494. package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
  495. package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
  496. package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
  497. package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
  498. package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
  499. package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
  500. package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
  501. package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
  502. package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
  503. package/deps/rocksdb/rocksdb/python.mk +9 -0
  504. package/deps/rocksdb/rocksdb/src.mk +82 -34
  505. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
  506. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
  507. package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
  508. package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
  509. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
  510. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
  511. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
  512. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
  513. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
  514. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
  515. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
  516. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
  517. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
  518. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
  519. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
  520. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
  521. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
  522. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
  523. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
  524. package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
  525. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
  526. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
  527. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
  528. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
  529. package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
  530. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
  531. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
  532. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
  533. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
  534. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
  535. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
  536. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
  537. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
  538. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
  539. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
  540. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  541. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
  542. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  543. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
  544. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
  545. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
  546. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
  547. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
  548. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
  549. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
  550. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
  551. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
  552. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
  553. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
  554. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
  555. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
  556. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
  557. package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
  558. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
  559. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
  560. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
  561. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
  562. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
  563. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
  564. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
  565. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
  566. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
  567. package/deps/rocksdb/rocksdb/table/format.cc +258 -104
  568. package/deps/rocksdb/rocksdb/table/format.h +120 -109
  569. package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
  570. package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
  571. package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
  572. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  573. package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
  574. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
  575. package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
  576. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
  577. package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
  578. package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
  579. package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
  580. package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
  581. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
  582. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
  583. package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
  584. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
  585. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
  586. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
  587. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
  588. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
  589. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
  590. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
  591. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
  592. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
  593. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
  594. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
  595. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
  596. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
  597. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
  598. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
  599. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
  600. package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
  601. package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
  602. package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
  603. package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
  604. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
  605. package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
  606. package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
  607. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
  608. package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
  609. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
  610. package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
  611. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
  612. package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
  613. package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
  614. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
  615. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
  616. package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
  617. package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
  618. package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
  619. package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
  620. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
  621. package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
  622. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
  623. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
  624. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
  625. package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
  626. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
  627. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
  628. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
  629. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
  630. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
  631. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
  632. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
  633. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
  634. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
  635. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  636. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
  637. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
  638. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
  639. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
  640. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
  641. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
  642. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
  643. package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
  644. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
  645. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
  646. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
  647. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
  648. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
  649. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
  650. package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
  651. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
  652. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
  653. package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
  654. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
  655. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
  656. package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
  657. package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
  658. package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
  659. package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
  660. package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
  661. package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
  662. package/deps/rocksdb/rocksdb/util/channel.h +2 -0
  663. package/deps/rocksdb/rocksdb/util/coding.h +1 -33
  664. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
  665. package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
  666. package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
  667. package/deps/rocksdb/rocksdb/util/compression.h +212 -7
  668. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
  669. package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
  670. package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
  671. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
  672. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
  673. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
  674. package/deps/rocksdb/rocksdb/util/defer.h +30 -1
  675. package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
  676. package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
  677. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
  678. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
  679. package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
  680. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
  681. package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
  682. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
  683. package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
  684. package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
  685. package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
  686. package/deps/rocksdb/rocksdb/util/hash.h +31 -1
  687. package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
  688. package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
  689. package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
  690. package/deps/rocksdb/rocksdb/util/heap.h +6 -1
  691. package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
  692. package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
  693. package/deps/rocksdb/rocksdb/util/math.h +74 -7
  694. package/deps/rocksdb/rocksdb/util/math128.h +13 -1
  695. package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
  696. package/deps/rocksdb/rocksdb/util/random.cc +9 -0
  697. package/deps/rocksdb/rocksdb/util/random.h +6 -0
  698. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
  699. package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
  700. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
  701. package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
  702. package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
  703. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
  704. package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
  705. package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
  706. package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
  707. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
  708. package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
  709. package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
  710. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
  711. package/deps/rocksdb/rocksdb/util/status.cc +32 -29
  712. package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
  713. package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
  714. package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
  715. package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
  716. package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
  717. package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
  718. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
  719. package/deps/rocksdb/rocksdb/util/timer.h +55 -46
  720. package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
  721. package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
  722. package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
  723. package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
  724. package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
  725. package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
  726. package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
  727. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
  728. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
  729. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
  730. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
  731. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
  732. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
  733. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
  734. package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
  735. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
  736. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
  737. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
  738. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
  739. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
  740. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
  741. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
  742. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
  743. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
  744. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
  745. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
  746. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
  747. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
  748. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
  749. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
  750. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
  751. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
  752. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
  753. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
  754. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
  755. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
  756. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
  757. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
  758. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
  759. package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
  760. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
  761. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
  762. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
  763. package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
  764. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
  765. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
  766. package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
  767. package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
  768. package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
  769. package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
  770. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
  771. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
  772. package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
  773. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
  774. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
  775. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
  776. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
  777. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
  778. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
  779. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
  780. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
  781. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
  782. package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
  783. package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
  784. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
  785. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
  786. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
  787. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
  788. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
  789. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
  790. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
  791. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
  792. package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
  793. package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
  794. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
  795. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
  796. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
  797. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
  798. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
  799. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
  800. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
  801. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
  802. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
  803. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
  804. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
  805. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
  806. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
  807. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
  808. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
  809. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
  810. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
  811. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
  812. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
  813. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
  814. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
  815. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
  816. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
  817. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
  818. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
  819. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
  820. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
  821. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  822. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
  823. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
  824. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
  825. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
  826. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
  827. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
  828. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
  829. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
  830. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
  831. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
  832. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
  833. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
  834. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
  835. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
  836. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
  837. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
  838. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
  839. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
  840. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
  841. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
  842. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
  843. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
  844. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
  845. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
  846. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
  847. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
  848. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
  849. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
  850. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
  851. package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
  852. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
  853. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
  854. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
  855. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
  856. package/deps/rocksdb/rocksdb.gyp +425 -446
  857. package/index.js +5 -87
  858. package/package-lock.json +23687 -0
  859. package/package.json +8 -9
  860. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  861. package/prebuilds/darwin-x64/node.napi.node +0 -0
  862. package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
  863. package/deps/rocksdb/rocksdb/README.md +0 -32
  864. package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
  865. package/deps/rocksdb/rocksdb/hdfs/README +0 -23
  866. package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
  867. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
  868. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
  869. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
  870. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
  871. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
  872. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
  873. package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
  874. package/deps/rocksdb/rocksdb/port/README +0 -10
  875. package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
  876. package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
  877. package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
  878. package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
  879. package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
  880. package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
  881. package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
  882. package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
  883. package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
  884. package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
  885. package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
  886. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
  887. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
  888. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
  889. package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
  890. package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
  891. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
  892. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
  893. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
  894. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
  895. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
  896. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
  897. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
  898. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
  899. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
  900. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
  901. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
  902. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
  903. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
  904. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
  905. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
  906. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
  907. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
  908. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
  909. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
  910. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
  911. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
  912. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
  913. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
  914. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
  915. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
  916. package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
  917. package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
  918. package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
  919. package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
  920. package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
  921. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
  922. package/deps/snappy/snappy-1.1.7/README.md +0 -149
  923. package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
@@ -11,7 +11,11 @@
11
11
 
12
12
  #include "rocksdb/c.h"
13
13
 
14
- #include <stdlib.h>
14
+ #include <cstdlib>
15
+ #include <map>
16
+ #include <unordered_set>
17
+ #include <vector>
18
+
15
19
  #include "port/port.h"
16
20
  #include "rocksdb/cache.h"
17
21
  #include "rocksdb/compaction_filter.h"
@@ -24,30 +28,27 @@
24
28
  #include "rocksdb/memtablerep.h"
25
29
  #include "rocksdb/merge_operator.h"
26
30
  #include "rocksdb/options.h"
31
+ #include "rocksdb/perf_context.h"
27
32
  #include "rocksdb/rate_limiter.h"
28
33
  #include "rocksdb/slice_transform.h"
29
34
  #include "rocksdb/statistics.h"
30
35
  #include "rocksdb/status.h"
31
36
  #include "rocksdb/table.h"
32
37
  #include "rocksdb/universal_compaction.h"
33
- #include "rocksdb/utilities/backupable_db.h"
38
+ #include "rocksdb/utilities/backup_engine.h"
34
39
  #include "rocksdb/utilities/checkpoint.h"
35
40
  #include "rocksdb/utilities/db_ttl.h"
36
41
  #include "rocksdb/utilities/memory_util.h"
37
42
  #include "rocksdb/utilities/optimistic_transaction_db.h"
43
+ #include "rocksdb/utilities/table_properties_collectors.h"
38
44
  #include "rocksdb/utilities/transaction.h"
39
45
  #include "rocksdb/utilities/transaction_db.h"
40
46
  #include "rocksdb/utilities/write_batch_with_index.h"
41
47
  #include "rocksdb/write_batch.h"
42
- #include "rocksdb/perf_context.h"
43
48
  #include "utilities/merge_operators.h"
44
49
 
45
- #include <vector>
46
- #include <unordered_set>
47
- #include <map>
48
-
49
- using ROCKSDB_NAMESPACE::BackupableDBOptions;
50
50
  using ROCKSDB_NAMESPACE::BackupEngine;
51
+ using ROCKSDB_NAMESPACE::BackupEngineOptions;
51
52
  using ROCKSDB_NAMESPACE::BackupID;
52
53
  using ROCKSDB_NAMESPACE::BackupInfo;
53
54
  using ROCKSDB_NAMESPACE::BatchResult;
@@ -79,11 +80,15 @@ using ROCKSDB_NAMESPACE::IngestExternalFileOptions;
79
80
  using ROCKSDB_NAMESPACE::Iterator;
80
81
  using ROCKSDB_NAMESPACE::LiveFileMetaData;
81
82
  using ROCKSDB_NAMESPACE::Logger;
83
+ using ROCKSDB_NAMESPACE::LRUCacheOptions;
84
+ using ROCKSDB_NAMESPACE::MemoryAllocator;
82
85
  using ROCKSDB_NAMESPACE::MemoryUtil;
83
86
  using ROCKSDB_NAMESPACE::MergeOperator;
84
87
  using ROCKSDB_NAMESPACE::NewBloomFilterPolicy;
88
+ using ROCKSDB_NAMESPACE::NewCompactOnDeletionCollectorFactory;
85
89
  using ROCKSDB_NAMESPACE::NewGenericRateLimiter;
86
90
  using ROCKSDB_NAMESPACE::NewLRUCache;
91
+ using ROCKSDB_NAMESPACE::NewRibbonFilterPolicy;
87
92
  using ROCKSDB_NAMESPACE::OptimisticTransactionDB;
88
93
  using ROCKSDB_NAMESPACE::OptimisticTransactionOptions;
89
94
  using ROCKSDB_NAMESPACE::Options;
@@ -102,6 +107,7 @@ using ROCKSDB_NAMESPACE::SliceTransform;
102
107
  using ROCKSDB_NAMESPACE::Snapshot;
103
108
  using ROCKSDB_NAMESPACE::SstFileWriter;
104
109
  using ROCKSDB_NAMESPACE::Status;
110
+ using ROCKSDB_NAMESPACE::TablePropertiesCollectorFactory;
105
111
  using ROCKSDB_NAMESPACE::Transaction;
106
112
  using ROCKSDB_NAMESPACE::TransactionDB;
107
113
  using ROCKSDB_NAMESPACE::TransactionDBOptions;
@@ -150,6 +156,12 @@ struct rocksdb_filelock_t { FileLock* rep; };
150
156
  struct rocksdb_logger_t {
151
157
  std::shared_ptr<Logger> rep;
152
158
  };
159
+ struct rocksdb_lru_cache_options_t {
160
+ LRUCacheOptions rep;
161
+ };
162
+ struct rocksdb_memory_allocator_t {
163
+ std::shared_ptr<MemoryAllocator> rep;
164
+ };
153
165
  struct rocksdb_cache_t {
154
166
  std::shared_ptr<Cache> rep;
155
167
  };
@@ -177,8 +189,8 @@ struct rocksdb_transaction_options_t {
177
189
  struct rocksdb_transaction_t {
178
190
  Transaction* rep;
179
191
  };
180
- struct rocksdb_backupable_db_options_t {
181
- BackupableDBOptions rep;
192
+ struct rocksdb_backup_engine_options_t {
193
+ BackupEngineOptions rep;
182
194
  };
183
195
  struct rocksdb_checkpoint_t {
184
196
  Checkpoint* rep;
@@ -278,45 +290,10 @@ struct rocksdb_filterpolicy_t : public FilterPolicy {
278
290
  void* state_;
279
291
  void (*destructor_)(void*);
280
292
  const char* (*name_)(void*);
281
- char* (*create_)(
282
- void*,
283
- const char* const* key_array, const size_t* key_length_array,
284
- int num_keys,
285
- size_t* filter_length);
286
- unsigned char (*key_match_)(
287
- void*,
288
- const char* key, size_t length,
289
- const char* filter, size_t filter_length);
290
- void (*delete_filter_)(
291
- void*,
292
- const char* filter, size_t filter_length);
293
293
 
294
294
  ~rocksdb_filterpolicy_t() override { (*destructor_)(state_); }
295
295
 
296
296
  const char* Name() const override { return (*name_)(state_); }
297
-
298
- void CreateFilter(const Slice* keys, int n, std::string* dst) const override {
299
- std::vector<const char*> key_pointers(n);
300
- std::vector<size_t> key_sizes(n);
301
- for (int i = 0; i < n; i++) {
302
- key_pointers[i] = keys[i].data();
303
- key_sizes[i] = keys[i].size();
304
- }
305
- size_t len;
306
- char* filter = (*create_)(state_, &key_pointers[0], &key_sizes[0], n, &len);
307
- dst->append(filter, len);
308
-
309
- if (delete_filter_ != nullptr) {
310
- (*delete_filter_)(state_, filter, len);
311
- } else {
312
- free(filter);
313
- }
314
- }
315
-
316
- bool KeyMayMatch(const Slice& key, const Slice& filter) const override {
317
- return (*key_match_)(state_, key.data(), key.size(),
318
- filter.data(), filter.size());
319
- }
320
297
  };
321
298
 
322
299
  struct rocksdb_mergeoperator_t : public MergeOperator {
@@ -535,12 +512,11 @@ rocksdb_t* rocksdb_open_as_secondary(const rocksdb_options_t* options,
535
512
  rocksdb_backup_engine_t* rocksdb_backup_engine_open(
536
513
  const rocksdb_options_t* options, const char* path, char** errptr) {
537
514
  BackupEngine* be;
538
- if (SaveError(errptr, BackupEngine::Open(options->rep.env,
539
- BackupableDBOptions(path,
540
- nullptr,
541
- true,
542
- options->rep.info_log.get()),
543
- &be))) {
515
+ if (SaveError(errptr, BackupEngine::Open(
516
+ options->rep.env,
517
+ BackupEngineOptions(path, nullptr, true,
518
+ options->rep.info_log.get()),
519
+ &be))) {
544
520
  return nullptr;
545
521
  }
546
522
  rocksdb_backup_engine_t* result = new rocksdb_backup_engine_t;
@@ -549,7 +525,7 @@ rocksdb_backup_engine_t* rocksdb_backup_engine_open(
549
525
  }
550
526
 
551
527
  rocksdb_backup_engine_t* rocksdb_backup_engine_open_opts(
552
- const rocksdb_backupable_db_options_t* options, rocksdb_env_t* env,
528
+ const rocksdb_backup_engine_options_t* options, rocksdb_env_t* env,
553
529
  char** errptr) {
554
530
  BackupEngine* be;
555
531
  if (SaveError(errptr, BackupEngine::Open(options->rep, env->rep, &be))) {
@@ -656,125 +632,125 @@ void rocksdb_backup_engine_close(rocksdb_backup_engine_t* be) {
656
632
  delete be;
657
633
  }
658
634
 
659
- rocksdb_backupable_db_options_t* rocksdb_backupable_db_options_create(
635
+ rocksdb_backup_engine_options_t* rocksdb_backup_engine_options_create(
660
636
  const char* backup_dir) {
661
- return new rocksdb_backupable_db_options_t{
662
- BackupableDBOptions(std::string(backup_dir))};
637
+ return new rocksdb_backup_engine_options_t{
638
+ BackupEngineOptions(std::string(backup_dir))};
663
639
  }
664
640
 
665
- void rocksdb_backupable_db_options_set_backup_dir(
666
- rocksdb_backupable_db_options_t* options, const char* backup_dir) {
641
+ void rocksdb_backup_engine_options_set_backup_dir(
642
+ rocksdb_backup_engine_options_t* options, const char* backup_dir) {
667
643
  options->rep.backup_dir = std::string(backup_dir);
668
644
  }
669
645
 
670
- void rocksdb_backupable_db_options_set_env(
671
- rocksdb_backupable_db_options_t* options, rocksdb_env_t* env) {
646
+ void rocksdb_backup_engine_options_set_env(
647
+ rocksdb_backup_engine_options_t* options, rocksdb_env_t* env) {
672
648
  options->rep.backup_env = (env ? env->rep : nullptr);
673
649
  }
674
650
 
675
- void rocksdb_backupable_db_options_set_share_table_files(
676
- rocksdb_backupable_db_options_t* options, unsigned char val) {
651
+ void rocksdb_backup_engine_options_set_share_table_files(
652
+ rocksdb_backup_engine_options_t* options, unsigned char val) {
677
653
  options->rep.share_table_files = val;
678
654
  }
679
655
 
680
- unsigned char rocksdb_backupable_db_options_get_share_table_files(
681
- rocksdb_backupable_db_options_t* options) {
656
+ unsigned char rocksdb_backup_engine_options_get_share_table_files(
657
+ rocksdb_backup_engine_options_t* options) {
682
658
  return options->rep.share_table_files;
683
659
  }
684
660
 
685
- void rocksdb_backupable_db_options_set_sync(
686
- rocksdb_backupable_db_options_t* options, unsigned char val) {
661
+ void rocksdb_backup_engine_options_set_sync(
662
+ rocksdb_backup_engine_options_t* options, unsigned char val) {
687
663
  options->rep.sync = val;
688
664
  }
689
665
 
690
- unsigned char rocksdb_backupable_db_options_get_sync(
691
- rocksdb_backupable_db_options_t* options) {
666
+ unsigned char rocksdb_backup_engine_options_get_sync(
667
+ rocksdb_backup_engine_options_t* options) {
692
668
  return options->rep.sync;
693
669
  }
694
670
 
695
- void rocksdb_backupable_db_options_set_destroy_old_data(
696
- rocksdb_backupable_db_options_t* options, unsigned char val) {
671
+ void rocksdb_backup_engine_options_set_destroy_old_data(
672
+ rocksdb_backup_engine_options_t* options, unsigned char val) {
697
673
  options->rep.destroy_old_data = val;
698
674
  }
699
675
 
700
- unsigned char rocksdb_backupable_db_options_get_destroy_old_data(
701
- rocksdb_backupable_db_options_t* options) {
676
+ unsigned char rocksdb_backup_engine_options_get_destroy_old_data(
677
+ rocksdb_backup_engine_options_t* options) {
702
678
  return options->rep.destroy_old_data;
703
679
  }
704
680
 
705
- void rocksdb_backupable_db_options_set_backup_log_files(
706
- rocksdb_backupable_db_options_t* options, unsigned char val) {
681
+ void rocksdb_backup_engine_options_set_backup_log_files(
682
+ rocksdb_backup_engine_options_t* options, unsigned char val) {
707
683
  options->rep.backup_log_files = val;
708
684
  }
709
685
 
710
- unsigned char rocksdb_backupable_db_options_get_backup_log_files(
711
- rocksdb_backupable_db_options_t* options) {
686
+ unsigned char rocksdb_backup_engine_options_get_backup_log_files(
687
+ rocksdb_backup_engine_options_t* options) {
712
688
  return options->rep.backup_log_files;
713
689
  }
714
690
 
715
- void rocksdb_backupable_db_options_set_backup_rate_limit(
716
- rocksdb_backupable_db_options_t* options, uint64_t limit) {
691
+ void rocksdb_backup_engine_options_set_backup_rate_limit(
692
+ rocksdb_backup_engine_options_t* options, uint64_t limit) {
717
693
  options->rep.backup_rate_limit = limit;
718
694
  }
719
695
 
720
- uint64_t rocksdb_backupable_db_options_get_backup_rate_limit(
721
- rocksdb_backupable_db_options_t* options) {
696
+ uint64_t rocksdb_backup_engine_options_get_backup_rate_limit(
697
+ rocksdb_backup_engine_options_t* options) {
722
698
  return options->rep.backup_rate_limit;
723
699
  }
724
700
 
725
- void rocksdb_backupable_db_options_set_restore_rate_limit(
726
- rocksdb_backupable_db_options_t* options, uint64_t limit) {
701
+ void rocksdb_backup_engine_options_set_restore_rate_limit(
702
+ rocksdb_backup_engine_options_t* options, uint64_t limit) {
727
703
  options->rep.restore_rate_limit = limit;
728
704
  }
729
705
 
730
- uint64_t rocksdb_backupable_db_options_get_restore_rate_limit(
731
- rocksdb_backupable_db_options_t* options) {
706
+ uint64_t rocksdb_backup_engine_options_get_restore_rate_limit(
707
+ rocksdb_backup_engine_options_t* options) {
732
708
  return options->rep.restore_rate_limit;
733
709
  }
734
710
 
735
- void rocksdb_backupable_db_options_set_max_background_operations(
736
- rocksdb_backupable_db_options_t* options, int val) {
711
+ void rocksdb_backup_engine_options_set_max_background_operations(
712
+ rocksdb_backup_engine_options_t* options, int val) {
737
713
  options->rep.max_background_operations = val;
738
714
  }
739
715
 
740
- int rocksdb_backupable_db_options_get_max_background_operations(
741
- rocksdb_backupable_db_options_t* options) {
716
+ int rocksdb_backup_engine_options_get_max_background_operations(
717
+ rocksdb_backup_engine_options_t* options) {
742
718
  return options->rep.max_background_operations;
743
719
  }
744
720
 
745
- void rocksdb_backupable_db_options_set_callback_trigger_interval_size(
746
- rocksdb_backupable_db_options_t* options, uint64_t size) {
721
+ void rocksdb_backup_engine_options_set_callback_trigger_interval_size(
722
+ rocksdb_backup_engine_options_t* options, uint64_t size) {
747
723
  options->rep.callback_trigger_interval_size = size;
748
724
  }
749
725
 
750
- uint64_t rocksdb_backupable_db_options_get_callback_trigger_interval_size(
751
- rocksdb_backupable_db_options_t* options) {
726
+ uint64_t rocksdb_backup_engine_options_get_callback_trigger_interval_size(
727
+ rocksdb_backup_engine_options_t* options) {
752
728
  return options->rep.callback_trigger_interval_size;
753
729
  }
754
730
 
755
- void rocksdb_backupable_db_options_set_max_valid_backups_to_open(
756
- rocksdb_backupable_db_options_t* options, int val) {
731
+ void rocksdb_backup_engine_options_set_max_valid_backups_to_open(
732
+ rocksdb_backup_engine_options_t* options, int val) {
757
733
  options->rep.max_valid_backups_to_open = val;
758
734
  }
759
735
 
760
- int rocksdb_backupable_db_options_get_max_valid_backups_to_open(
761
- rocksdb_backupable_db_options_t* options) {
736
+ int rocksdb_backup_engine_options_get_max_valid_backups_to_open(
737
+ rocksdb_backup_engine_options_t* options) {
762
738
  return options->rep.max_valid_backups_to_open;
763
739
  }
764
740
 
765
- void rocksdb_backupable_db_options_set_share_files_with_checksum_naming(
766
- rocksdb_backupable_db_options_t* options, int val) {
741
+ void rocksdb_backup_engine_options_set_share_files_with_checksum_naming(
742
+ rocksdb_backup_engine_options_t* options, int val) {
767
743
  options->rep.share_files_with_checksum_naming =
768
- static_cast<BackupableDBOptions::ShareFilesNaming>(val);
744
+ static_cast<BackupEngineOptions::ShareFilesNaming>(val);
769
745
  }
770
746
 
771
- int rocksdb_backupable_db_options_get_share_files_with_checksum_naming(
772
- rocksdb_backupable_db_options_t* options) {
747
+ int rocksdb_backup_engine_options_get_share_files_with_checksum_naming(
748
+ rocksdb_backup_engine_options_t* options) {
773
749
  return static_cast<int>(options->rep.share_files_with_checksum_naming);
774
750
  }
775
751
 
776
- void rocksdb_backupable_db_options_destroy(
777
- rocksdb_backupable_db_options_t* options) {
752
+ void rocksdb_backup_engine_options_destroy(
753
+ rocksdb_backup_engine_options_t* options) {
778
754
  delete options;
779
755
  }
780
756
 
@@ -1501,6 +1477,10 @@ void rocksdb_flush_cf(
1501
1477
  SaveError(errptr, db->rep->Flush(options->rep, column_family->rep));
1502
1478
  }
1503
1479
 
1480
+ void rocksdb_flush_wal(rocksdb_t* db, unsigned char sync, char** errptr) {
1481
+ SaveError(errptr, db->rep->FlushWAL(sync));
1482
+ }
1483
+
1504
1484
  void rocksdb_disable_file_deletions(
1505
1485
  rocksdb_t* db,
1506
1486
  char** errptr) {
@@ -2317,11 +2297,6 @@ void rocksdb_block_based_options_set_data_block_hash_ratio(
2317
2297
  options->rep.data_block_hash_table_util_ratio = v;
2318
2298
  }
2319
2299
 
2320
- void rocksdb_block_based_options_set_hash_index_allow_collision(
2321
- rocksdb_block_based_table_options_t* options, unsigned char v) {
2322
- options->rep.hash_index_allow_collision = v;
2323
- }
2324
-
2325
2300
  void rocksdb_block_based_options_set_cache_index_and_filter_blocks(
2326
2301
  rocksdb_block_based_table_options_t* options, unsigned char v) {
2327
2302
  options->rep.cache_index_and_filter_blocks = v;
@@ -2682,6 +2657,78 @@ unsigned char rocksdb_options_get_skip_checking_sst_file_sizes_on_db_open(
2682
2657
  return opt->rep.skip_checking_sst_file_sizes_on_db_open;
2683
2658
  }
2684
2659
 
2660
+ /* Blob Options Settings */
2661
+ void rocksdb_options_set_enable_blob_files(rocksdb_options_t* opt,
2662
+ unsigned char val) {
2663
+ opt->rep.enable_blob_files = val;
2664
+ }
2665
+ extern ROCKSDB_LIBRARY_API unsigned char rocksdb_options_get_enable_blob_files(
2666
+ rocksdb_options_t* opt) {
2667
+ return opt->rep.enable_blob_files;
2668
+ }
2669
+
2670
+ void rocksdb_options_set_min_blob_size(rocksdb_options_t* opt, uint64_t val) {
2671
+ opt->rep.min_blob_size = val;
2672
+ }
2673
+
2674
+ uint64_t rocksdb_options_get_min_blob_size(rocksdb_options_t* opt) {
2675
+ return opt->rep.min_blob_size;
2676
+ }
2677
+
2678
+ void rocksdb_options_set_blob_file_size(rocksdb_options_t* opt, uint64_t val) {
2679
+ opt->rep.blob_file_size = val;
2680
+ }
2681
+
2682
+ uint64_t rocksdb_options_get_blob_file_size(rocksdb_options_t* opt) {
2683
+ return opt->rep.blob_file_size;
2684
+ }
2685
+
2686
+ void rocksdb_options_set_blob_compression_type(rocksdb_options_t* opt,
2687
+ int val) {
2688
+ opt->rep.blob_compression_type = static_cast<CompressionType>(val);
2689
+ }
2690
+
2691
+ int rocksdb_options_get_blob_compression_type(rocksdb_options_t* opt) {
2692
+ return opt->rep.blob_compression_type;
2693
+ }
2694
+
2695
+ void rocksdb_options_set_enable_blob_gc(rocksdb_options_t* opt,
2696
+ unsigned char val) {
2697
+ opt->rep.enable_blob_garbage_collection = val;
2698
+ }
2699
+
2700
+ unsigned char rocksdb_options_get_enable_blob_gc(rocksdb_options_t* opt) {
2701
+ return opt->rep.enable_blob_garbage_collection;
2702
+ }
2703
+
2704
+ void rocksdb_options_set_blob_gc_age_cutoff(rocksdb_options_t* opt,
2705
+ double val) {
2706
+ opt->rep.blob_garbage_collection_age_cutoff = val;
2707
+ }
2708
+
2709
+ double rocksdb_options_get_blob_gc_age_cutoff(rocksdb_options_t* opt) {
2710
+ return opt->rep.blob_garbage_collection_age_cutoff;
2711
+ }
2712
+
2713
+ void rocksdb_options_set_blob_gc_force_threshold(rocksdb_options_t* opt,
2714
+ double val) {
2715
+ opt->rep.blob_garbage_collection_force_threshold = val;
2716
+ }
2717
+
2718
+ double rocksdb_options_get_blob_gc_force_threshold(rocksdb_options_t* opt) {
2719
+ return opt->rep.blob_garbage_collection_force_threshold;
2720
+ }
2721
+
2722
+ void rocksdb_options_set_blob_compaction_readahead_size(rocksdb_options_t* opt,
2723
+ uint64_t val) {
2724
+ opt->rep.blob_compaction_readahead_size = val;
2725
+ }
2726
+
2727
+ uint64_t rocksdb_options_get_blob_compaction_readahead_size(
2728
+ rocksdb_options_t* opt) {
2729
+ return opt->rep.blob_compaction_readahead_size;
2730
+ }
2731
+
2685
2732
  void rocksdb_options_set_num_levels(rocksdb_options_t* opt, int n) {
2686
2733
  opt->rep.num_levels = n;
2687
2734
  }
@@ -2718,9 +2765,6 @@ int rocksdb_options_get_level0_stop_writes_trigger(rocksdb_options_t* opt) {
2718
2765
  return opt->rep.level0_stop_writes_trigger;
2719
2766
  }
2720
2767
 
2721
- void rocksdb_options_set_max_mem_compaction_level(rocksdb_options_t* /*opt*/,
2722
- int /*n*/) {}
2723
-
2724
2768
  void rocksdb_options_set_wal_recovery_mode(rocksdb_options_t* opt,int mode) {
2725
2769
  opt->rep.wal_recovery_mode = static_cast<WALRecoveryMode>(mode);
2726
2770
  }
@@ -2746,7 +2790,7 @@ int rocksdb_options_get_bottommost_compression(rocksdb_options_t* opt) {
2746
2790
  }
2747
2791
 
2748
2792
  void rocksdb_options_set_compression_per_level(rocksdb_options_t* opt,
2749
- int* level_values,
2793
+ const int* level_values,
2750
2794
  size_t num_levels) {
2751
2795
  opt->rep.compression_per_level.resize(num_levels);
2752
2796
  for (size_t i = 0; i < num_levels; ++i) {
@@ -2774,6 +2818,14 @@ void rocksdb_options_set_bottommost_compression_options_zstd_max_train_bytes(
2774
2818
  opt->rep.bottommost_compression_opts.enabled = enabled;
2775
2819
  }
2776
2820
 
2821
+ void rocksdb_options_set_bottommost_compression_options_max_dict_buffer_bytes(
2822
+ rocksdb_options_t* opt, uint64_t max_dict_buffer_bytes,
2823
+ unsigned char enabled) {
2824
+ opt->rep.bottommost_compression_opts.max_dict_buffer_bytes =
2825
+ max_dict_buffer_bytes;
2826
+ opt->rep.bottommost_compression_opts.enabled = enabled;
2827
+ }
2828
+
2777
2829
  void rocksdb_options_set_compression_options(rocksdb_options_t* opt, int w_bits,
2778
2830
  int level, int strategy,
2779
2831
  int max_dict_bytes) {
@@ -2788,6 +2840,31 @@ void rocksdb_options_set_compression_options_zstd_max_train_bytes(
2788
2840
  opt->rep.compression_opts.zstd_max_train_bytes = zstd_max_train_bytes;
2789
2841
  }
2790
2842
 
2843
+ int rocksdb_options_get_compression_options_zstd_max_train_bytes(
2844
+ rocksdb_options_t* opt) {
2845
+ return opt->rep.compression_opts.zstd_max_train_bytes;
2846
+ }
2847
+
2848
+ void rocksdb_options_set_compression_options_parallel_threads(
2849
+ rocksdb_options_t* opt, int value) {
2850
+ opt->rep.compression_opts.parallel_threads = value;
2851
+ }
2852
+
2853
+ int rocksdb_options_get_compression_options_parallel_threads(
2854
+ rocksdb_options_t* opt) {
2855
+ return opt->rep.compression_opts.parallel_threads;
2856
+ }
2857
+
2858
+ void rocksdb_options_set_compression_options_max_dict_buffer_bytes(
2859
+ rocksdb_options_t* opt, uint64_t max_dict_buffer_bytes) {
2860
+ opt->rep.compression_opts.max_dict_buffer_bytes = max_dict_buffer_bytes;
2861
+ }
2862
+
2863
+ uint64_t rocksdb_options_get_compression_options_max_dict_buffer_bytes(
2864
+ rocksdb_options_t* opt) {
2865
+ return opt->rep.compression_opts.max_dict_buffer_bytes;
2866
+ }
2867
+
2791
2868
  void rocksdb_options_set_prefix_extractor(
2792
2869
  rocksdb_options_t* opt, rocksdb_slicetransform_t* prefix_extractor) {
2793
2870
  opt->rep.prefix_extractor.reset(prefix_extractor);
@@ -2838,10 +2915,6 @@ size_t rocksdb_options_get_manifest_preallocation_size(rocksdb_options_t* opt) {
2838
2915
  return opt->rep.manifest_preallocation_size;
2839
2916
  }
2840
2917
 
2841
- // noop
2842
- void rocksdb_options_set_purge_redundant_kvs_while_flush(
2843
- rocksdb_options_t* /*opt*/, unsigned char /*v*/) {}
2844
-
2845
2918
  void rocksdb_options_set_use_direct_reads(rocksdb_options_t* opt,
2846
2919
  unsigned char v) {
2847
2920
  opt->rep.use_direct_reads = v;
@@ -2888,16 +2961,6 @@ unsigned char rocksdb_options_get_is_fd_close_on_exec(rocksdb_options_t* opt) {
2888
2961
  return opt->rep.is_fd_close_on_exec;
2889
2962
  }
2890
2963
 
2891
- void rocksdb_options_set_skip_log_error_on_recovery(
2892
- rocksdb_options_t* opt, unsigned char v) {
2893
- opt->rep.skip_log_error_on_recovery = v;
2894
- }
2895
-
2896
- unsigned char rocksdb_options_get_skip_log_error_on_recovery(
2897
- rocksdb_options_t* opt) {
2898
- return opt->rep.skip_log_error_on_recovery;
2899
- }
2900
-
2901
2964
  void rocksdb_options_set_stats_dump_period_sec(
2902
2965
  rocksdb_options_t* opt, unsigned int v) {
2903
2966
  opt->rep.stats_dump_period_sec = v;
@@ -2927,6 +2990,11 @@ unsigned char rocksdb_options_get_advise_random_on_open(
2927
2990
  return opt->rep.advise_random_on_open;
2928
2991
  }
2929
2992
 
2993
+ void rocksdb_options_set_experimental_mempurge_threshold(rocksdb_options_t* opt,
2994
+ double v) {
2995
+ opt->rep.experimental_mempurge_threshold = v;
2996
+ }
2997
+
2930
2998
  void rocksdb_options_set_access_hint_on_compaction_start(
2931
2999
  rocksdb_options_t* opt, int v) {
2932
3000
  switch(v) {
@@ -2946,6 +3014,8 @@ void rocksdb_options_set_access_hint_on_compaction_start(
2946
3014
  opt->rep.access_hint_on_compaction_start =
2947
3015
  ROCKSDB_NAMESPACE::Options::WILLNEED;
2948
3016
  break;
3017
+ default:
3018
+ assert(0);
2949
3019
  }
2950
3020
  }
2951
3021
 
@@ -3102,15 +3172,6 @@ int rocksdb_options_get_max_background_compactions(rocksdb_options_t* opt) {
3102
3172
  return opt->rep.max_background_compactions;
3103
3173
  }
3104
3174
 
3105
- void rocksdb_options_set_base_background_compactions(rocksdb_options_t* opt,
3106
- int n) {
3107
- opt->rep.base_background_compactions = n;
3108
- }
3109
-
3110
- int rocksdb_options_get_base_background_compactions(rocksdb_options_t* opt) {
3111
- return opt->rep.base_background_compactions;
3112
- }
3113
-
3114
3175
  void rocksdb_options_set_max_background_flushes(rocksdb_options_t* opt, int n) {
3115
3176
  opt->rep.max_background_flushes = n;
3116
3177
  }
@@ -3152,22 +3213,6 @@ size_t rocksdb_options_get_recycle_log_file_num(rocksdb_options_t* opt) {
3152
3213
  return opt->rep.recycle_log_file_num;
3153
3214
  }
3154
3215
 
3155
- void rocksdb_options_set_soft_rate_limit(rocksdb_options_t* opt, double v) {
3156
- opt->rep.soft_rate_limit = v;
3157
- }
3158
-
3159
- double rocksdb_options_get_soft_rate_limit(rocksdb_options_t* opt) {
3160
- return opt->rep.soft_rate_limit;
3161
- }
3162
-
3163
- void rocksdb_options_set_hard_rate_limit(rocksdb_options_t* opt, double v) {
3164
- opt->rep.hard_rate_limit = v;
3165
- }
3166
-
3167
- double rocksdb_options_get_hard_rate_limit(rocksdb_options_t* opt) {
3168
- return opt->rep.hard_rate_limit;
3169
- }
3170
-
3171
3216
  void rocksdb_options_set_soft_pending_compaction_bytes_limit(rocksdb_options_t* opt, size_t v) {
3172
3217
  opt->rep.soft_pending_compaction_bytes_limit = v;
3173
3218
  }
@@ -3186,16 +3231,6 @@ size_t rocksdb_options_get_hard_pending_compaction_bytes_limit(
3186
3231
  return opt->rep.hard_pending_compaction_bytes_limit;
3187
3232
  }
3188
3233
 
3189
- void rocksdb_options_set_rate_limit_delay_max_milliseconds(
3190
- rocksdb_options_t* opt, unsigned int v) {
3191
- opt->rep.rate_limit_delay_max_milliseconds = v;
3192
- }
3193
-
3194
- unsigned int rocksdb_options_get_rate_limit_delay_max_milliseconds(
3195
- rocksdb_options_t* opt) {
3196
- return opt->rep.rate_limit_delay_max_milliseconds;
3197
- }
3198
-
3199
3234
  void rocksdb_options_set_max_manifest_file_size(
3200
3235
  rocksdb_options_t* opt, size_t v) {
3201
3236
  opt->rep.max_manifest_file_size = v;
@@ -3214,11 +3249,6 @@ int rocksdb_options_get_table_cache_numshardbits(rocksdb_options_t* opt) {
3214
3249
  return opt->rep.table_cache_numshardbits;
3215
3250
  }
3216
3251
 
3217
- void rocksdb_options_set_table_cache_remove_scan_count_limit(
3218
- rocksdb_options_t* /*opt*/, int /*v*/) {
3219
- // this option is deprecated
3220
- }
3221
-
3222
3252
  void rocksdb_options_set_arena_block_size(
3223
3253
  rocksdb_options_t* opt, size_t v) {
3224
3254
  opt->rep.arena_block_size = v;
@@ -3400,6 +3430,23 @@ unsigned char rocksdb_options_get_atomic_flush(rocksdb_options_t* opt) {
3400
3430
  return opt->rep.atomic_flush;
3401
3431
  }
3402
3432
 
3433
+ void rocksdb_options_set_manual_wal_flush(rocksdb_options_t* opt,
3434
+ unsigned char manual_wal_flush) {
3435
+ opt->rep.manual_wal_flush = manual_wal_flush;
3436
+ }
3437
+
3438
+ unsigned char rocksdb_options_get_manual_wal_flush(rocksdb_options_t* opt) {
3439
+ return opt->rep.manual_wal_flush;
3440
+ }
3441
+
3442
+ void rocksdb_options_set_wal_compression(rocksdb_options_t* opt, int val) {
3443
+ opt->rep.wal_compression = static_cast<CompressionType>(val);
3444
+ }
3445
+
3446
+ int rocksdb_options_get_wal_compression(rocksdb_options_t* opt) {
3447
+ return opt->rep.wal_compression;
3448
+ }
3449
+
3403
3450
  rocksdb_ratelimiter_t* rocksdb_ratelimiter_create(
3404
3451
  int64_t rate_bytes_per_sec,
3405
3452
  int64_t refill_period_us,
@@ -3421,6 +3468,14 @@ void rocksdb_options_set_row_cache(rocksdb_options_t* opt, rocksdb_cache_t* cach
3421
3468
  }
3422
3469
  }
3423
3470
 
3471
+ void rocksdb_options_add_compact_on_deletion_collector_factory(
3472
+ rocksdb_options_t* opt, size_t window_size, size_t num_dels_trigger) {
3473
+ std::shared_ptr<ROCKSDB_NAMESPACE::TablePropertiesCollectorFactory>
3474
+ compact_on_del =
3475
+ NewCompactOnDeletionCollectorFactory(window_size, num_dels_trigger);
3476
+ opt->rep.table_properties_collector_factories.emplace_back(compact_on_del);
3477
+ }
3478
+
3424
3479
  void rocksdb_set_perf_level(int v) {
3425
3480
  PerfLevel level = static_cast<PerfLevel>(v);
3426
3481
  SetPerfLevel(level);
@@ -3684,37 +3739,12 @@ void rocksdb_comparator_destroy(rocksdb_comparator_t* cmp) {
3684
3739
  delete cmp;
3685
3740
  }
3686
3741
 
3687
- rocksdb_filterpolicy_t* rocksdb_filterpolicy_create(
3688
- void* state,
3689
- void (*destructor)(void*),
3690
- char* (*create_filter)(
3691
- void*,
3692
- const char* const* key_array, const size_t* key_length_array,
3693
- int num_keys,
3694
- size_t* filter_length),
3695
- unsigned char (*key_may_match)(
3696
- void*,
3697
- const char* key, size_t length,
3698
- const char* filter, size_t filter_length),
3699
- void (*delete_filter)(
3700
- void*,
3701
- const char* filter, size_t filter_length),
3702
- const char* (*name)(void*)) {
3703
- rocksdb_filterpolicy_t* result = new rocksdb_filterpolicy_t;
3704
- result->state_ = state;
3705
- result->destructor_ = destructor;
3706
- result->create_ = create_filter;
3707
- result->key_match_ = key_may_match;
3708
- result->delete_filter_ = delete_filter;
3709
- result->name_ = name;
3710
- return result;
3711
- }
3712
-
3713
3742
  void rocksdb_filterpolicy_destroy(rocksdb_filterpolicy_t* filter) {
3714
3743
  delete filter;
3715
3744
  }
3716
3745
 
3717
- rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_key, bool original_format) {
3746
+ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(
3747
+ double bits_per_key, bool original_format) {
3718
3748
  // Make a rocksdb_filterpolicy_t, but override all of its methods so
3719
3749
  // they delegate to a NewBloomFilterPolicy() instead of user
3720
3750
  // supplied C functions.
@@ -3722,12 +3752,8 @@ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_ke
3722
3752
  const FilterPolicy* rep_;
3723
3753
  ~Wrapper() override { delete rep_; }
3724
3754
  const char* Name() const override { return rep_->Name(); }
3725
- void CreateFilter(const Slice* keys, int n,
3726
- std::string* dst) const override {
3727
- return rep_->CreateFilter(keys, n, dst);
3728
- }
3729
- bool KeyMayMatch(const Slice& key, const Slice& filter) const override {
3730
- return rep_->KeyMayMatch(key, filter);
3755
+ const char* CompatibilityName() const override {
3756
+ return rep_->CompatibilityName();
3731
3757
  }
3732
3758
  // No need to override GetFilterBitsBuilder if this one is overridden
3733
3759
  ROCKSDB_NAMESPACE::FilterBitsBuilder* GetBuilderWithContext(
@@ -3744,19 +3770,62 @@ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_ke
3744
3770
  Wrapper* wrapper = new Wrapper;
3745
3771
  wrapper->rep_ = NewBloomFilterPolicy(bits_per_key, original_format);
3746
3772
  wrapper->state_ = nullptr;
3747
- wrapper->delete_filter_ = nullptr;
3748
3773
  wrapper->destructor_ = &Wrapper::DoNothing;
3749
3774
  return wrapper;
3750
3775
  }
3751
3776
 
3752
- rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_full(int bits_per_key) {
3777
+ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_full(
3778
+ double bits_per_key) {
3753
3779
  return rocksdb_filterpolicy_create_bloom_format(bits_per_key, false);
3754
3780
  }
3755
3781
 
3756
- rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom(int bits_per_key) {
3782
+ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom(double bits_per_key) {
3757
3783
  return rocksdb_filterpolicy_create_bloom_format(bits_per_key, true);
3758
3784
  }
3759
3785
 
3786
+ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_ribbon_format(
3787
+ double bloom_equivalent_bits_per_key, int bloom_before_level) {
3788
+ // Make a rocksdb_filterpolicy_t, but override all of its methods so
3789
+ // they delegate to a NewRibbonFilterPolicy() instead of user
3790
+ // supplied C functions.
3791
+ struct Wrapper : public rocksdb_filterpolicy_t {
3792
+ const FilterPolicy* rep_;
3793
+ ~Wrapper() override { delete rep_; }
3794
+ const char* Name() const override { return rep_->Name(); }
3795
+ const char* CompatibilityName() const override {
3796
+ return rep_->CompatibilityName();
3797
+ }
3798
+ ROCKSDB_NAMESPACE::FilterBitsBuilder* GetBuilderWithContext(
3799
+ const ROCKSDB_NAMESPACE::FilterBuildingContext& context)
3800
+ const override {
3801
+ return rep_->GetBuilderWithContext(context);
3802
+ }
3803
+ ROCKSDB_NAMESPACE::FilterBitsReader* GetFilterBitsReader(
3804
+ const Slice& contents) const override {
3805
+ return rep_->GetFilterBitsReader(contents);
3806
+ }
3807
+ static void DoNothing(void*) {}
3808
+ };
3809
+ Wrapper* wrapper = new Wrapper;
3810
+ wrapper->rep_ =
3811
+ NewRibbonFilterPolicy(bloom_equivalent_bits_per_key, bloom_before_level);
3812
+ wrapper->state_ = nullptr;
3813
+ wrapper->destructor_ = &Wrapper::DoNothing;
3814
+ return wrapper;
3815
+ }
3816
+
3817
+ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_ribbon(
3818
+ double bloom_equivalent_bits_per_key) {
3819
+ return rocksdb_filterpolicy_create_ribbon_format(
3820
+ bloom_equivalent_bits_per_key, /*bloom_before_level = disabled*/ -1);
3821
+ }
3822
+
3823
+ rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_ribbon_hybrid(
3824
+ double bloom_equivalent_bits_per_key, int bloom_before_level) {
3825
+ return rocksdb_filterpolicy_create_ribbon_format(
3826
+ bloom_equivalent_bits_per_key, bloom_before_level);
3827
+ }
3828
+
3760
3829
  rocksdb_mergeoperator_t* rocksdb_mergeoperator_create(
3761
3830
  void* state, void (*destructor)(void*),
3762
3831
  char* (*full_merge)(void*, const char* key, size_t key_length,
@@ -3936,6 +4005,25 @@ unsigned char rocksdb_readoptions_get_ignore_range_deletions(
3936
4005
  return opt->rep.ignore_range_deletions;
3937
4006
  }
3938
4007
 
4008
+ void rocksdb_readoptions_set_deadline(rocksdb_readoptions_t* opt,
4009
+ uint64_t microseconds) {
4010
+ opt->rep.deadline = std::chrono::microseconds(microseconds);
4011
+ }
4012
+
4013
+ uint64_t rocksdb_readoptions_get_deadline(rocksdb_readoptions_t* opt) {
4014
+ return opt->rep.deadline.count();
4015
+ }
4016
+
4017
+ void rocksdb_readoptions_set_io_timeout(rocksdb_readoptions_t* opt,
4018
+ uint64_t microseconds) {
4019
+ opt->rep.io_timeout = std::chrono::microseconds(microseconds);
4020
+ }
4021
+
4022
+ extern ROCKSDB_LIBRARY_API uint64_t
4023
+ rocksdb_readoptions_get_io_timeout(rocksdb_readoptions_t* opt) {
4024
+ return opt->rep.io_timeout.count();
4025
+ }
4026
+
3939
4027
  rocksdb_writeoptions_t* rocksdb_writeoptions_create() {
3940
4028
  return new rocksdb_writeoptions_t;
3941
4029
  }
@@ -4068,16 +4156,58 @@ unsigned char rocksdb_flushoptions_get_wait(rocksdb_flushoptions_t* opt) {
4068
4156
  return opt->rep.wait;
4069
4157
  }
4070
4158
 
4159
+ rocksdb_memory_allocator_t* rocksdb_jemalloc_nodump_allocator_create(
4160
+ char** errptr) {
4161
+ rocksdb_memory_allocator_t* allocator = new rocksdb_memory_allocator_t;
4162
+ ROCKSDB_NAMESPACE::JemallocAllocatorOptions options;
4163
+ SaveError(errptr, ROCKSDB_NAMESPACE::NewJemallocNodumpAllocator(
4164
+ options, &allocator->rep));
4165
+ return allocator;
4166
+ }
4167
+
4168
+ void rocksdb_memory_allocator_destroy(rocksdb_memory_allocator_t* allocator) {
4169
+ delete allocator;
4170
+ }
4171
+
4172
+ rocksdb_lru_cache_options_t* rocksdb_lru_cache_options_create() {
4173
+ return new rocksdb_lru_cache_options_t;
4174
+ }
4175
+
4176
+ void rocksdb_lru_cache_options_destroy(rocksdb_lru_cache_options_t* opt) {
4177
+ delete opt;
4178
+ }
4179
+
4180
+ void rocksdb_lru_cache_options_set_capacity(rocksdb_lru_cache_options_t* opt,
4181
+ size_t capacity) {
4182
+ opt->rep.capacity = capacity;
4183
+ }
4184
+
4185
+ void rocksdb_lru_cache_options_set_memory_allocator(
4186
+ rocksdb_lru_cache_options_t* opt, rocksdb_memory_allocator_t* allocator) {
4187
+ opt->rep.memory_allocator = allocator->rep;
4188
+ }
4189
+
4071
4190
  rocksdb_cache_t* rocksdb_cache_create_lru(size_t capacity) {
4072
4191
  rocksdb_cache_t* c = new rocksdb_cache_t;
4073
4192
  c->rep = NewLRUCache(capacity);
4074
4193
  return c;
4075
4194
  }
4076
4195
 
4196
+ rocksdb_cache_t* rocksdb_cache_create_lru_opts(
4197
+ rocksdb_lru_cache_options_t* opt) {
4198
+ rocksdb_cache_t* c = new rocksdb_cache_t;
4199
+ c->rep = NewLRUCache(opt->rep);
4200
+ return c;
4201
+ }
4202
+
4077
4203
  void rocksdb_cache_destroy(rocksdb_cache_t* cache) {
4078
4204
  delete cache;
4079
4205
  }
4080
4206
 
4207
+ void rocksdb_cache_disown_data(rocksdb_cache_t* cache) {
4208
+ cache->rep->DisownData();
4209
+ }
4210
+
4081
4211
  void rocksdb_cache_set_capacity(rocksdb_cache_t* cache, size_t capacity) {
4082
4212
  cache->rep->SetCapacity(capacity);
4083
4213
  }
@@ -4192,6 +4322,11 @@ rocksdb_sstfilewriter_t* rocksdb_sstfilewriter_create(
4192
4322
  return writer;
4193
4323
  }
4194
4324
 
4325
+ void rocksdb_create_dir_if_missing(rocksdb_env_t* env, const char* path,
4326
+ char** errptr) {
4327
+ SaveError(errptr, env->rep->CreateDirIfMissing(std::string(path)));
4328
+ }
4329
+
4195
4330
  rocksdb_sstfilewriter_t* rocksdb_sstfilewriter_create_with_comparator(
4196
4331
  const rocksdb_envoptions_t* env, const rocksdb_options_t* io_options,
4197
4332
  const rocksdb_comparator_t* /*comparator*/) {
@@ -4339,10 +4474,11 @@ void rocksdb_slicetransform_destroy(rocksdb_slicetransform_t* st) {
4339
4474
  delete st;
4340
4475
  }
4341
4476
 
4342
- struct Wrapper : public rocksdb_slicetransform_t {
4477
+ struct SliceTransformWrapper : public rocksdb_slicetransform_t {
4343
4478
  const SliceTransform* rep_;
4344
- ~Wrapper() override { delete rep_; }
4479
+ ~SliceTransformWrapper() override { delete rep_; }
4345
4480
  const char* Name() const override { return rep_->Name(); }
4481
+ std::string GetId() const override { return rep_->GetId(); }
4346
4482
  Slice Transform(const Slice& src) const override {
4347
4483
  return rep_->Transform(src);
4348
4484
  }
@@ -4354,18 +4490,18 @@ struct Wrapper : public rocksdb_slicetransform_t {
4354
4490
  };
4355
4491
 
4356
4492
  rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
4357
- Wrapper* wrapper = new Wrapper;
4493
+ SliceTransformWrapper* wrapper = new SliceTransformWrapper;
4358
4494
  wrapper->rep_ = ROCKSDB_NAMESPACE::NewFixedPrefixTransform(prefixLen);
4359
4495
  wrapper->state_ = nullptr;
4360
- wrapper->destructor_ = &Wrapper::DoNothing;
4496
+ wrapper->destructor_ = &SliceTransformWrapper::DoNothing;
4361
4497
  return wrapper;
4362
4498
  }
4363
4499
 
4364
4500
  rocksdb_slicetransform_t* rocksdb_slicetransform_create_noop() {
4365
- Wrapper* wrapper = new Wrapper;
4501
+ SliceTransformWrapper* wrapper = new SliceTransformWrapper;
4366
4502
  wrapper->rep_ = ROCKSDB_NAMESPACE::NewNoopTransform();
4367
4503
  wrapper->state_ = nullptr;
4368
- wrapper->destructor_ = &Wrapper::DoNothing;
4504
+ wrapper->destructor_ = &SliceTransformWrapper::DoNothing;
4369
4505
  return wrapper;
4370
4506
  }
4371
4507
 
@@ -4481,6 +4617,11 @@ int rocksdb_livefiles_count(
4481
4617
  return static_cast<int>(lf->rep.size());
4482
4618
  }
4483
4619
 
4620
+ const char* rocksdb_livefiles_column_family_name(const rocksdb_livefiles_t* lf,
4621
+ int index) {
4622
+ return lf->rep[index].column_family_name.c_str();
4623
+ }
4624
+
4484
4625
  const char* rocksdb_livefiles_name(
4485
4626
  const rocksdb_livefiles_t* lf,
4486
4627
  int index) {
@@ -4647,6 +4788,27 @@ void rocksdb_optimistictransaction_options_set_set_snapshot(
4647
4788
  opt->rep.set_snapshot = v;
4648
4789
  }
4649
4790
 
4791
+ char* rocksdb_optimistictransactiondb_property_value(
4792
+ rocksdb_optimistictransactiondb_t* db, const char* propname) {
4793
+ std::string tmp;
4794
+ if (db->rep->GetProperty(Slice(propname), &tmp)) {
4795
+ // We use strdup() since we expect human readable output.
4796
+ return strdup(tmp.c_str());
4797
+ } else {
4798
+ return nullptr;
4799
+ }
4800
+ }
4801
+
4802
+ int rocksdb_optimistictransactiondb_property_int(
4803
+ rocksdb_optimistictransactiondb_t* db, const char* propname,
4804
+ uint64_t* out_val) {
4805
+ if (db->rep->GetIntProperty(Slice(propname), out_val)) {
4806
+ return 0;
4807
+ } else {
4808
+ return -1;
4809
+ }
4810
+ }
4811
+
4650
4812
  rocksdb_column_family_handle_t* rocksdb_transactiondb_create_column_family(
4651
4813
  rocksdb_transactiondb_t* txn_db,
4652
4814
  const rocksdb_options_t* column_family_options,
@@ -4717,6 +4879,27 @@ void rocksdb_transactiondb_release_snapshot(
4717
4879
  delete snapshot;
4718
4880
  }
4719
4881
 
4882
+ char* rocksdb_transactiondb_property_value(rocksdb_transactiondb_t* db,
4883
+ const char* propname) {
4884
+ std::string tmp;
4885
+ if (db->rep->GetProperty(Slice(propname), &tmp)) {
4886
+ // We use strdup() since we expect human readable output.
4887
+ return strdup(tmp.c_str());
4888
+ } else {
4889
+ return nullptr;
4890
+ }
4891
+ }
4892
+
4893
+ int rocksdb_transactiondb_property_int(rocksdb_transactiondb_t* db,
4894
+ const char* propname,
4895
+ uint64_t* out_val) {
4896
+ if (db->rep->GetIntProperty(Slice(propname), out_val)) {
4897
+ return 0;
4898
+ } else {
4899
+ return -1;
4900
+ }
4901
+ }
4902
+
4720
4903
  rocksdb_transaction_t* rocksdb_transaction_begin(
4721
4904
  rocksdb_transactiondb_t* txn_db,
4722
4905
  const rocksdb_writeoptions_t* write_options,
@@ -4756,7 +4939,10 @@ void rocksdb_transaction_destroy(rocksdb_transaction_t* txn) {
4756
4939
 
4757
4940
  const rocksdb_snapshot_t* rocksdb_transaction_get_snapshot(
4758
4941
  rocksdb_transaction_t* txn) {
4759
- rocksdb_snapshot_t* result = new rocksdb_snapshot_t;
4942
+ // This will be freed later on using free, so use malloc here to avoid a
4943
+ // mismatch
4944
+ rocksdb_snapshot_t* result =
4945
+ (rocksdb_snapshot_t*)malloc(sizeof(rocksdb_snapshot_t));
4760
4946
  result->rep = txn->rep->GetSnapshot();
4761
4947
  return result;
4762
4948
  }
@@ -5116,12 +5302,31 @@ rocksdb_transaction_t* rocksdb_optimistictransaction_begin(
5116
5302
  return old_txn;
5117
5303
  }
5118
5304
 
5305
+ // Write batch into OptimisticTransactionDB
5306
+ void rocksdb_optimistictransactiondb_write(
5307
+ rocksdb_optimistictransactiondb_t* otxn_db,
5308
+ const rocksdb_writeoptions_t* options, rocksdb_writebatch_t* batch,
5309
+ char** errptr) {
5310
+ SaveError(errptr, otxn_db->rep->Write(options->rep, &batch->rep));
5311
+ }
5312
+
5119
5313
  void rocksdb_optimistictransactiondb_close(
5120
5314
  rocksdb_optimistictransactiondb_t* otxn_db) {
5121
5315
  delete otxn_db->rep;
5122
5316
  delete otxn_db;
5123
5317
  }
5124
5318
 
5319
+ rocksdb_checkpoint_t* rocksdb_optimistictransactiondb_checkpoint_object_create(
5320
+ rocksdb_optimistictransactiondb_t* otxn_db, char** errptr) {
5321
+ Checkpoint* checkpoint;
5322
+ if (SaveError(errptr, Checkpoint::Create(otxn_db->rep, &checkpoint))) {
5323
+ return nullptr;
5324
+ }
5325
+ rocksdb_checkpoint_t* result = new rocksdb_checkpoint_t;
5326
+ result->rep = checkpoint;
5327
+ return result;
5328
+ }
5329
+
5125
5330
  void rocksdb_free(void* ptr) { free(ptr); }
5126
5331
 
5127
5332
  rocksdb_pinnableslice_t* rocksdb_get_pinned(