@nxtedition/rocksdb 5.2.21 → 5.2.26

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 (909) hide show
  1. package/binding.cc +216 -252
  2. package/binding.gyp +78 -72
  3. package/deps/rocksdb/build_version.cc +70 -4
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
  5. package/deps/rocksdb/rocksdb/Makefile +459 -469
  6. package/deps/rocksdb/rocksdb/README.md +4 -4
  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/crash_test.mk +93 -0
  31. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
  32. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
  33. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
  34. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
  35. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
  36. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
  37. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
  38. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
  39. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
  40. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
  41. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
  42. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
  43. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
  44. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
  45. package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
  46. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
  47. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
  48. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
  49. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
  50. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
  51. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
  52. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
  53. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
  54. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
  55. package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
  56. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
  57. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
  58. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
  59. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
  60. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
  61. package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
  62. package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
  63. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
  64. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
  65. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
  66. package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
  67. package/deps/rocksdb/rocksdb/db/builder.h +16 -37
  68. package/deps/rocksdb/rocksdb/db/c.cc +413 -208
  69. package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
  70. package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
  71. package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
  72. package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
  73. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
  74. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
  75. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
  76. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
  77. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
  78. package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
  79. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
  80. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
  81. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
  82. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
  83. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
  84. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
  85. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
  86. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
  87. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
  88. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
  89. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
  90. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
  91. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
  92. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
  93. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
  94. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
  95. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
  96. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
  97. package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
  98. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  99. package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
  100. package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
  101. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
  102. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
  103. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
  104. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
  105. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
  106. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
  107. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
  108. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
  110. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
  111. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
  112. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
  113. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
  114. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
  115. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
  116. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
  117. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
  118. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
  119. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
  120. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
  121. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
  122. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
  123. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
  124. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
  125. package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
  126. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
  127. package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
  128. package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
  129. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
  130. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
  131. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
  132. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
  133. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
  134. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
  135. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
  136. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
  137. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
  138. package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
  139. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
  140. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
  141. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
  142. package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
  143. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
  144. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
  145. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
  146. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
  147. package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
  148. package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
  149. package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
  150. package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
  151. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
  152. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
  153. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
  154. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
  155. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
  156. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
  157. package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
  158. package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
  159. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
  160. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
  161. package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
  162. package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
  163. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
  164. package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
  165. package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
  166. package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
  167. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
  168. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
  169. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
  170. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
  171. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
  172. package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
  173. package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
  174. package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
  175. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
  176. package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
  177. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
  178. package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
  179. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
  180. package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
  181. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
  182. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
  183. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
  184. package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
  185. package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
  186. package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
  187. package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
  188. package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
  189. package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
  190. package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
  191. package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
  192. package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
  193. package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
  194. package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
  195. package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
  196. package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
  197. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
  198. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
  199. package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
  200. package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
  201. package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
  202. package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
  203. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
  204. package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
  205. package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
  206. package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
  207. package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
  208. package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
  209. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
  210. package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
  211. package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
  212. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
  213. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
  214. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
  215. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
  216. package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
  217. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
  218. package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
  219. package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
  220. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
  221. package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
  222. package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
  223. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
  224. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
  225. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
  226. package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
  227. package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
  228. package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
  229. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
  230. package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
  231. package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
  232. package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
  233. package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
  234. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
  235. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
  236. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
  237. package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
  238. package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
  239. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
  240. package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
  241. package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
  242. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
  243. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
  244. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
  245. package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
  246. package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
  247. package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
  248. package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
  249. package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
  250. package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
  251. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
  252. package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
  253. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
  254. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
  255. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
  256. package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
  257. package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
  258. package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
  259. package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
  260. package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
  261. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
  262. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
  263. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
  264. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
  265. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
  266. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
  267. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
  268. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
  269. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
  270. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
  271. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
  272. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
  273. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
  274. package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
  275. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
  276. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
  277. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
  278. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
  279. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
  280. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
  281. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
  282. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
  283. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
  284. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
  285. package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
  286. package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
  287. package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
  288. package/deps/rocksdb/rocksdb/env/env.cc +632 -42
  289. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
  290. package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
  291. package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
  292. package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
  293. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
  294. package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
  295. package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
  296. package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
  297. package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
  298. package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
  299. package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
  300. package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
  301. package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
  302. package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
  303. package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
  304. package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
  305. package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
  306. package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
  307. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
  308. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
  309. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
  310. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
  311. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
  312. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
  313. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
  314. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
  315. package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
  316. package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
  317. package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
  318. package/deps/rocksdb/rocksdb/file/filename.h +13 -8
  319. package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
  320. package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
  321. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
  322. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
  323. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
  324. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
  325. package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
  326. package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
  327. package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
  328. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
  329. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
  330. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
  331. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
  332. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
  333. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
  334. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
  335. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
  336. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
  337. package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
  338. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
  339. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
  340. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
  341. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
  342. package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
  343. package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
  344. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
  345. package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
  346. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
  347. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
  348. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
  349. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
  350. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
  351. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
  352. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
  353. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
  354. package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
  355. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
  356. package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
  357. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
  358. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
  359. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
  360. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
  361. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
  362. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
  363. package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
  364. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
  365. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
  366. package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
  367. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
  368. package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
  369. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
  370. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
  371. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
  372. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
  373. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
  374. package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
  375. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
  376. package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
  377. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
  378. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
  379. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
  380. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
  381. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
  382. package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
  383. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
  384. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
  385. package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
  386. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
  387. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
  388. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
  389. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
  390. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
  391. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
  392. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
  393. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
  394. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
  395. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
  396. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
  397. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
  398. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
  400. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
  401. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
  402. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
  403. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
  404. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
  405. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
  406. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
  407. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
  408. package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
  409. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
  410. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
  411. package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
  412. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
  413. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
  414. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
  415. package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
  416. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
  417. package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
  418. package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
  419. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  420. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
  421. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
  422. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
  423. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
  424. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
  425. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
  426. package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
  427. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
  428. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
  429. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
  430. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
  431. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
  432. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
  433. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
  434. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
  435. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
  436. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
  437. package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
  438. package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
  439. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
  440. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
  441. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
  442. package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
  443. package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
  444. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
  445. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
  446. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
  447. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
  448. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
  449. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
  450. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
  451. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
  452. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
  453. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
  454. package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
  455. package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
  456. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
  457. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
  458. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
  459. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
  460. package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
  461. package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
  462. package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
  463. package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
  464. package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
  465. package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
  466. package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
  467. package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
  468. package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
  469. package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
  470. package/deps/rocksdb/rocksdb/options/options.cc +49 -17
  471. package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
  472. package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
  473. package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
  474. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
  475. package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
  476. package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
  477. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
  478. package/deps/rocksdb/rocksdb/port/lang.h +52 -0
  479. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  480. package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
  481. package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
  482. package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
  483. package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
  484. package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
  485. package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
  486. package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
  487. package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
  488. package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
  489. package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
  490. package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
  491. package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
  492. package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
  493. package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
  494. package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
  495. package/deps/rocksdb/rocksdb/python.mk +9 -0
  496. package/deps/rocksdb/rocksdb/src.mk +82 -34
  497. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
  498. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
  499. package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
  500. package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
  501. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
  502. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
  503. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
  504. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
  505. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
  506. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
  507. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
  508. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
  509. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
  510. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
  511. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
  512. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
  513. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
  514. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
  515. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
  516. package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
  517. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
  518. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
  519. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
  520. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
  521. package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
  522. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
  523. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
  524. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
  525. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
  526. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
  527. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
  528. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
  529. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
  530. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
  531. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
  532. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  533. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
  534. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  535. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
  536. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
  537. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
  538. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
  539. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
  540. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
  541. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
  542. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
  543. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
  544. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
  545. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
  546. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
  547. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
  548. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
  549. package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
  550. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
  551. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
  552. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
  553. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
  554. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
  555. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
  556. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
  557. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
  558. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
  559. package/deps/rocksdb/rocksdb/table/format.cc +258 -104
  560. package/deps/rocksdb/rocksdb/table/format.h +120 -109
  561. package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
  562. package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
  563. package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
  564. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  565. package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
  566. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
  567. package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
  568. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
  569. package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
  570. package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
  571. package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
  572. package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
  573. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
  574. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
  575. package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
  576. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
  577. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
  578. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
  579. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
  580. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
  581. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
  582. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
  583. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
  584. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
  585. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
  586. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
  587. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
  588. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
  589. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
  590. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
  591. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
  592. package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
  593. package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
  594. package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
  595. package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
  596. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
  597. package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
  598. package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
  599. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
  600. package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
  601. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
  602. package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
  603. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
  604. package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
  605. package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
  606. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
  607. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
  608. package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
  609. package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
  610. package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
  611. package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
  612. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
  613. package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
  614. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
  615. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
  616. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
  617. package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
  618. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
  619. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
  620. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
  621. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
  622. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
  623. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
  624. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
  625. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
  626. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
  627. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  628. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
  629. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
  630. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
  631. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
  632. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
  633. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
  634. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
  635. package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
  636. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
  637. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
  638. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
  639. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
  640. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
  641. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
  642. package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
  643. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
  644. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
  645. package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
  646. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
  647. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
  648. package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
  649. package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
  650. package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
  651. package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
  652. package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
  653. package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
  654. package/deps/rocksdb/rocksdb/util/channel.h +2 -0
  655. package/deps/rocksdb/rocksdb/util/coding.h +1 -33
  656. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
  657. package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
  658. package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
  659. package/deps/rocksdb/rocksdb/util/compression.h +212 -7
  660. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
  661. package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
  662. package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
  663. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
  664. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
  665. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
  666. package/deps/rocksdb/rocksdb/util/defer.h +30 -1
  667. package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
  668. package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
  669. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
  670. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
  671. package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
  672. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
  673. package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
  674. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
  675. package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
  676. package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
  677. package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
  678. package/deps/rocksdb/rocksdb/util/hash.h +31 -1
  679. package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
  680. package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
  681. package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
  682. package/deps/rocksdb/rocksdb/util/heap.h +6 -1
  683. package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
  684. package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
  685. package/deps/rocksdb/rocksdb/util/math.h +74 -7
  686. package/deps/rocksdb/rocksdb/util/math128.h +13 -1
  687. package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
  688. package/deps/rocksdb/rocksdb/util/random.cc +9 -0
  689. package/deps/rocksdb/rocksdb/util/random.h +6 -0
  690. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
  691. package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
  692. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
  693. package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
  694. package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
  695. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
  696. package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
  697. package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
  698. package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
  699. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
  700. package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
  701. package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
  702. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
  703. package/deps/rocksdb/rocksdb/util/status.cc +32 -29
  704. package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
  705. package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
  706. package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
  707. package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
  708. package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
  709. package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
  710. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
  711. package/deps/rocksdb/rocksdb/util/timer.h +55 -46
  712. package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
  713. package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
  714. package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
  715. package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
  716. package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
  717. package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
  718. package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
  719. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
  720. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
  721. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
  722. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
  723. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
  724. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
  725. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
  726. package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
  727. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
  728. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
  729. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
  730. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
  731. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
  732. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
  733. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
  734. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
  735. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
  736. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
  737. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
  738. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
  739. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
  740. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
  741. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
  742. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
  743. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
  744. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
  745. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
  746. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
  747. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
  748. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
  749. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
  750. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
  751. package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
  752. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
  753. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
  754. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
  755. package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
  756. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
  757. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
  758. package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
  759. package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
  760. package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
  761. package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
  762. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
  763. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
  764. package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
  765. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
  766. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
  767. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
  768. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
  769. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
  770. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
  771. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
  772. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
  773. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
  774. package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
  775. package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
  776. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
  777. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
  778. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
  779. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
  780. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
  781. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
  782. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
  783. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
  784. package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
  785. package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
  786. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
  787. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
  788. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
  789. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
  790. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
  791. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
  792. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
  793. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
  794. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
  795. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
  796. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
  797. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
  798. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
  799. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
  800. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
  801. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
  802. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
  803. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
  804. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
  805. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
  806. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
  807. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
  808. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
  809. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
  810. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
  811. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
  812. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
  813. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  814. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
  815. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
  816. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
  817. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
  818. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
  819. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
  820. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
  821. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
  822. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
  823. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
  824. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
  825. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
  826. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
  827. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
  828. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
  829. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
  830. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
  831. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
  832. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
  833. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
  834. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
  835. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
  836. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
  837. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
  838. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
  839. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
  840. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
  841. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
  842. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
  843. package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
  844. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
  845. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
  846. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
  847. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
  848. package/deps/rocksdb/rocksdb.gyp +425 -446
  849. package/package.json +8 -8
  850. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  851. package/prebuilds/darwin-x86/node.napi.node +0 -0
  852. package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
  853. package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
  854. package/deps/rocksdb/rocksdb/hdfs/README +0 -23
  855. package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
  856. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
  857. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
  858. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
  859. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
  860. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
  861. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
  862. package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
  863. package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
  864. package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
  865. package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
  866. package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
  867. package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
  868. package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
  869. package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
  870. package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
  871. package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
  872. package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
  873. package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
  874. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
  875. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
  876. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
  877. package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
  878. package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
  879. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
  880. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
  881. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
  882. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
  883. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
  884. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
  885. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
  886. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
  887. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
  888. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
  889. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
  890. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
  891. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
  892. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
  893. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
  894. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
  895. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
  896. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
  897. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
  898. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
  899. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
  900. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
  901. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
  902. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
  903. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
  904. package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
  905. package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
  906. package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
  907. package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
  908. package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
  909. 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(