@nxtedition/rocksdb 6.0.1 → 7.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/BUILDING.md +12 -4
  2. package/binding.cc +421 -40
  3. package/deps/rocksdb/build_version.cc +4 -10
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +26 -3
  5. package/deps/rocksdb/rocksdb/Makefile +73 -91
  6. package/deps/rocksdb/rocksdb/TARGETS +27 -2
  7. package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
  8. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
  9. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
  10. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
  12. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  13. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  14. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  15. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  16. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  17. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  18. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  19. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  20. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  21. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  22. package/deps/rocksdb/rocksdb/common.mk +30 -0
  23. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  24. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  25. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  26. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  27. package/deps/rocksdb/rocksdb/db/builder.cc +22 -7
  28. package/deps/rocksdb/rocksdb/db/c.cc +71 -0
  29. package/deps/rocksdb/rocksdb/db/c_test.c +28 -2
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +12 -5
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +54 -16
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +14 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +85 -18
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +23 -22
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +151 -32
  46. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  48. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  49. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  50. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +404 -32
  51. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  52. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  53. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  54. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  55. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  56. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  57. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +11 -20
  58. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +15 -1
  59. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +12 -9
  60. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +42 -10
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +14 -4
  67. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  68. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  69. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  70. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  71. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  72. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  73. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  74. package/deps/rocksdb/rocksdb/db/db_options_test.cc +28 -12
  75. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  76. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  77. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
  78. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +11 -6
  79. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  80. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  81. package/deps/rocksdb/rocksdb/db/db_test.cc +60 -42
  82. package/deps/rocksdb/rocksdb/db/db_test2.cc +244 -111
  83. package/deps/rocksdb/rocksdb/db/db_test_util.cc +101 -19
  84. package/deps/rocksdb/rocksdb/db/db_test_util.h +52 -2
  85. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  86. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  87. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +5 -175
  88. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
  89. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
  90. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  91. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  92. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  93. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  94. package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
  95. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +91 -12
  96. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -2
  97. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
  98. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  99. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  100. package/deps/rocksdb/rocksdb/db/flush_job.cc +28 -15
  101. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  102. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  103. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  104. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +14 -1
  105. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
  106. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  107. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  108. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  109. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  110. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  111. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  112. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  113. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  114. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  115. package/deps/rocksdb/rocksdb/db/repair.cc +13 -2
  116. package/deps/rocksdb/rocksdb/db/repair_test.cc +37 -15
  117. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  118. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
  119. package/deps/rocksdb/rocksdb/db/table_cache.cc +20 -130
  120. package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
  121. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
  122. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  123. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +133 -133
  124. package/deps/rocksdb/rocksdb/db/version_edit.cc +22 -2
  125. package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
  126. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
  127. package/deps/rocksdb/rocksdb/db/version_set.cc +207 -214
  128. package/deps/rocksdb/rocksdb/db/version_set.h +14 -3
  129. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
  130. package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
  131. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  132. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  133. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  134. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  135. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  136. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  137. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -6
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +44 -6
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  144. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  145. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +374 -275
  146. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  147. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  148. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  149. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  150. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  151. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  152. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  153. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  154. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  155. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  156. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  157. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  158. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  159. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  160. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  161. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
  162. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +44 -22
  163. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  164. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
  165. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  166. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  167. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +60 -40
  168. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +1 -0
  169. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
  170. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +49 -1
  171. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  172. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  173. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  174. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  175. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  176. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  177. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  178. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  179. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  180. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -3
  181. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
  182. package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
  183. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
  184. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  185. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  187. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  188. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +378 -103
  191. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  192. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  193. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  194. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  195. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  196. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  197. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  198. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  199. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  200. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  201. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  202. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  203. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  204. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  205. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +7 -8
  206. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  207. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  208. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  209. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  210. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
  211. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  212. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  213. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  214. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  215. package/deps/rocksdb/rocksdb/options/cf_options.cc +47 -38
  216. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  217. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  218. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  219. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  220. package/deps/rocksdb/rocksdb/options/db_options.cc +46 -17
  221. package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
  222. package/deps/rocksdb/rocksdb/options/options.cc +7 -0
  223. package/deps/rocksdb/rocksdb/options/options_helper.cc +86 -39
  224. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  225. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +12 -7
  226. package/deps/rocksdb/rocksdb/options/options_test.cc +222 -68
  227. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  228. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  229. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  230. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  231. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  232. package/deps/rocksdb/rocksdb/src.mk +6 -1
  233. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  234. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  235. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  236. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  237. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +23 -8
  238. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  239. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +81 -7
  240. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
  241. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +94 -726
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +44 -73
  246. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -5
  247. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  248. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +2 -11
  249. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
  250. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
  251. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  252. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
  253. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
  254. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  255. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  256. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  258. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
  259. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
  260. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +8 -4
  261. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  262. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
  263. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +65 -7
  264. package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
  265. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  266. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  267. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  268. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  269. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  270. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  271. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
  272. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  273. package/deps/rocksdb/rocksdb/table/multiget_context.h +60 -13
  274. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  275. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  276. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  277. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
  278. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
  279. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  280. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  281. package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
  282. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  283. package/deps/rocksdb/rocksdb/table/unique_id.cc +84 -25
  284. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +37 -4
  285. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -1
  286. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  287. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  288. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  289. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  290. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  291. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +277 -105
  292. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  293. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  294. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  295. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  296. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  297. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  298. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +26 -4
  299. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  300. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  301. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
  302. package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
  303. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  304. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  305. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  306. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  307. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  308. package/deps/rocksdb/rocksdb/util/compression.h +56 -7
  309. package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
  310. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  311. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  312. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  313. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  314. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  315. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  316. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  317. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  318. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  319. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
  320. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  321. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  322. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  323. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  324. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  325. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  326. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  327. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  328. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  329. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  330. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  331. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  332. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  333. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  334. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  335. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  336. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  337. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  338. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  339. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  340. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  341. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  342. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  343. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  344. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  345. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  346. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  347. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  348. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  349. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  350. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  351. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  352. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  353. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  354. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  355. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  356. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  357. package/deps/rocksdb/rocksdb.gyp +20 -13
  358. package/index.js +187 -3
  359. package/iterator.js +1 -0
  360. package/package-lock.json +23687 -0
  361. package/package.json +2 -30
  362. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  363. package/snapshot.js +23 -0
  364. package/deps/liburing/liburing/README +0 -46
  365. package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
  366. package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
  367. package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
  368. package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
  369. package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
  370. package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
  371. package/deps/liburing/liburing/test/Makefile +0 -312
  372. package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
  373. package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
  374. package/deps/liburing/liburing/test/accept-link.c +0 -251
  375. package/deps/liburing/liburing/test/accept-reuse.c +0 -164
  376. package/deps/liburing/liburing/test/accept-test.c +0 -79
  377. package/deps/liburing/liburing/test/accept.c +0 -476
  378. package/deps/liburing/liburing/test/across-fork.c +0 -283
  379. package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
  380. package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
  381. package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
  382. package/deps/liburing/liburing/test/close-opath.c +0 -122
  383. package/deps/liburing/liburing/test/config +0 -10
  384. package/deps/liburing/liburing/test/connect.c +0 -398
  385. package/deps/liburing/liburing/test/cq-full.c +0 -96
  386. package/deps/liburing/liburing/test/cq-overflow.c +0 -294
  387. package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
  388. package/deps/liburing/liburing/test/cq-ready.c +0 -94
  389. package/deps/liburing/liburing/test/cq-size.c +0 -58
  390. package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
  391. package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
  392. package/deps/liburing/liburing/test/defer.c +0 -307
  393. package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
  394. package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
  395. package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
  396. package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
  397. package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
  398. package/deps/liburing/liburing/test/eventfd.c +0 -112
  399. package/deps/liburing/liburing/test/fadvise.c +0 -202
  400. package/deps/liburing/liburing/test/fallocate.c +0 -249
  401. package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
  402. package/deps/liburing/liburing/test/file-register.c +0 -843
  403. package/deps/liburing/liburing/test/file-update.c +0 -173
  404. package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
  405. package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
  406. package/deps/liburing/liburing/test/fixed-link.c +0 -90
  407. package/deps/liburing/liburing/test/fsync.c +0 -224
  408. package/deps/liburing/liburing/test/hardlink.c +0 -136
  409. package/deps/liburing/liburing/test/helpers.c +0 -135
  410. package/deps/liburing/liburing/test/helpers.h +0 -67
  411. package/deps/liburing/liburing/test/io-cancel.c +0 -537
  412. package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
  413. package/deps/liburing/liburing/test/io_uring_register.c +0 -664
  414. package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
  415. package/deps/liburing/liburing/test/iopoll.c +0 -366
  416. package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
  417. package/deps/liburing/liburing/test/lfs-openat.c +0 -273
  418. package/deps/liburing/liburing/test/link-timeout.c +0 -1107
  419. package/deps/liburing/liburing/test/link.c +0 -496
  420. package/deps/liburing/liburing/test/link_drain.c +0 -229
  421. package/deps/liburing/liburing/test/madvise.c +0 -195
  422. package/deps/liburing/liburing/test/mkdir.c +0 -108
  423. package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
  424. package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
  425. package/deps/liburing/liburing/test/nop.c +0 -115
  426. package/deps/liburing/liburing/test/open-close.c +0 -146
  427. package/deps/liburing/liburing/test/openat2.c +0 -240
  428. package/deps/liburing/liburing/test/personality.c +0 -204
  429. package/deps/liburing/liburing/test/pipe-eof.c +0 -81
  430. package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
  431. package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
  432. package/deps/liburing/liburing/test/poll-cancel.c +0 -135
  433. package/deps/liburing/liburing/test/poll-link.c +0 -227
  434. package/deps/liburing/liburing/test/poll-many.c +0 -208
  435. package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
  436. package/deps/liburing/liburing/test/poll-ring.c +0 -48
  437. package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
  438. package/deps/liburing/liburing/test/poll.c +0 -109
  439. package/deps/liburing/liburing/test/probe.c +0 -137
  440. package/deps/liburing/liburing/test/read-write.c +0 -876
  441. package/deps/liburing/liburing/test/register-restrictions.c +0 -633
  442. package/deps/liburing/liburing/test/rename.c +0 -134
  443. package/deps/liburing/liburing/test/ring-leak.c +0 -173
  444. package/deps/liburing/liburing/test/ring-leak2.c +0 -249
  445. package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
  446. package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
  447. package/deps/liburing/liburing/test/runtests.sh +0 -170
  448. package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
  449. package/deps/liburing/liburing/test/self.c +0 -91
  450. package/deps/liburing/liburing/test/send_recv.c +0 -291
  451. package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
  452. package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
  453. package/deps/liburing/liburing/test/shared-wq.c +0 -84
  454. package/deps/liburing/liburing/test/short-read.c +0 -75
  455. package/deps/liburing/liburing/test/shutdown.c +0 -163
  456. package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
  457. package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
  458. package/deps/liburing/liburing/test/socket-rw.c +0 -147
  459. package/deps/liburing/liburing/test/splice.c +0 -511
  460. package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
  461. package/deps/liburing/liburing/test/sq-full.c +0 -45
  462. package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
  463. package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
  464. package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
  465. package/deps/liburing/liburing/test/sq-space_left.c +0 -159
  466. package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
  467. package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
  468. package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
  469. package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
  470. package/deps/liburing/liburing/test/statx.c +0 -172
  471. package/deps/liburing/liburing/test/stdout.c +0 -232
  472. package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
  473. package/deps/liburing/liburing/test/submit-reuse.c +0 -239
  474. package/deps/liburing/liburing/test/symlink.c +0 -116
  475. package/deps/liburing/liburing/test/teardowns.c +0 -58
  476. package/deps/liburing/liburing/test/thread-exit.c +0 -131
  477. package/deps/liburing/liburing/test/timeout-new.c +0 -246
  478. package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
  479. package/deps/liburing/liburing/test/timeout.c +0 -1354
  480. package/deps/liburing/liburing/test/unlink.c +0 -111
  481. package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
  482. package/deps/rocksdb/rocksdb/README.md +0 -32
  483. package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
  484. package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
  485. package/deps/rocksdb/rocksdb/port/README +0 -10
  486. package/deps/rocksdb/rocksdb/python.mk +0 -9
  487. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
  488. package/prebuilds/darwin-x64/node.napi.node +0 -0
  489. package/prebuilds/linux-arm64/node.napi.node +0 -0
  490. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -24,7 +24,7 @@ class CompactorCommand : public LDBCommand {
24
24
 
25
25
  static void Help(std::string& ret);
26
26
 
27
- virtual void DoCommand() override;
27
+ void DoCommand() override;
28
28
 
29
29
  private:
30
30
  bool null_from_;
@@ -43,10 +43,11 @@ class DBFileDumperCommand : public LDBCommand {
43
43
 
44
44
  static void Help(std::string& ret);
45
45
 
46
- virtual void DoCommand() override;
46
+ void DoCommand() override;
47
47
 
48
48
  private:
49
49
  bool decode_blob_index_;
50
+ bool dump_uncompressed_blobs_;
50
51
  };
51
52
 
52
53
  class DBLiveFilesMetadataDumperCommand : public LDBCommand {
@@ -60,7 +61,7 @@ class DBLiveFilesMetadataDumperCommand : public LDBCommand {
60
61
 
61
62
  static void Help(std::string& ret);
62
63
 
63
- virtual void DoCommand() override;
64
+ void DoCommand() override;
64
65
 
65
66
  private:
66
67
  bool sort_by_filename_;
@@ -78,7 +79,7 @@ class DBDumperCommand : public LDBCommand {
78
79
 
79
80
  static void Help(std::string& ret);
80
81
 
81
- virtual void DoCommand() override;
82
+ void DoCommand() override;
82
83
 
83
84
  private:
84
85
  /**
@@ -107,6 +108,8 @@ class DBDumperCommand : public LDBCommand {
107
108
  bool count_delim_;
108
109
  bool print_stats_;
109
110
  std::string path_;
111
+ bool decode_blob_index_;
112
+ bool dump_uncompressed_blobs_;
110
113
 
111
114
  static const std::string ARG_COUNT_ONLY;
112
115
  static const std::string ARG_COUNT_DELIM;
@@ -124,7 +127,7 @@ class InternalDumpCommand : public LDBCommand {
124
127
 
125
128
  static void Help(std::string& ret);
126
129
 
127
- virtual void DoCommand() override;
130
+ void DoCommand() override;
128
131
 
129
132
  private:
130
133
  bool has_from_;
@@ -137,6 +140,7 @@ class InternalDumpCommand : public LDBCommand {
137
140
  bool count_delim_;
138
141
  bool print_stats_;
139
142
  bool is_input_key_hex_;
143
+ bool decode_blob_index_;
140
144
 
141
145
  static const std::string ARG_DELIM;
142
146
  static const std::string ARG_COUNT_ONLY;
@@ -156,9 +160,10 @@ class DBLoaderCommand : public LDBCommand {
156
160
  const std::vector<std::string>& flags);
157
161
 
158
162
  static void Help(std::string& ret);
159
- virtual void DoCommand() override;
160
163
 
161
- virtual void OverrideBaseOptions() override;
164
+ void DoCommand() override;
165
+
166
+ void OverrideBaseOptions() override;
162
167
 
163
168
  private:
164
169
  bool disable_wal_;
@@ -179,9 +184,10 @@ class ManifestDumpCommand : public LDBCommand {
179
184
  const std::vector<std::string>& flags);
180
185
 
181
186
  static void Help(std::string& ret);
182
- virtual void DoCommand() override;
183
187
 
184
- virtual bool NoDBOpen() override { return true; }
188
+ void DoCommand() override;
189
+
190
+ bool NoDBOpen() override { return true; }
185
191
 
186
192
  private:
187
193
  bool verbose_;
@@ -259,9 +265,10 @@ class ListColumnFamiliesCommand : public LDBCommand {
259
265
  const std::vector<std::string>& flags);
260
266
 
261
267
  static void Help(std::string& ret);
262
- virtual void DoCommand() override;
263
268
 
264
- virtual bool NoDBOpen() override { return true; }
269
+ void DoCommand() override;
270
+
271
+ bool NoDBOpen() override { return true; }
265
272
  };
266
273
 
267
274
  class CreateColumnFamilyCommand : public LDBCommand {
@@ -273,9 +280,10 @@ class CreateColumnFamilyCommand : public LDBCommand {
273
280
  const std::vector<std::string>& flags);
274
281
 
275
282
  static void Help(std::string& ret);
276
- virtual void DoCommand() override;
277
283
 
278
- virtual bool NoDBOpen() override { return false; }
284
+ void DoCommand() override;
285
+
286
+ bool NoDBOpen() override { return false; }
279
287
 
280
288
  private:
281
289
  std::string new_cf_name_;
@@ -290,9 +298,10 @@ class DropColumnFamilyCommand : public LDBCommand {
290
298
  const std::vector<std::string>& flags);
291
299
 
292
300
  static void Help(std::string& ret);
293
- virtual void DoCommand() override;
294
301
 
295
- virtual bool NoDBOpen() override { return false; }
302
+ void DoCommand() override;
303
+
304
+ bool NoDBOpen() override { return false; }
296
305
 
297
306
  private:
298
307
  std::string cf_name_to_drop_;
@@ -306,11 +315,11 @@ class ReduceDBLevelsCommand : public LDBCommand {
306
315
  const std::map<std::string, std::string>& options,
307
316
  const std::vector<std::string>& flags);
308
317
 
309
- virtual void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
318
+ void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
310
319
 
311
- virtual void DoCommand() override;
320
+ void DoCommand() override;
312
321
 
313
- virtual bool NoDBOpen() override { return true; }
322
+ bool NoDBOpen() override { return true; }
314
323
 
315
324
  static void Help(std::string& msg);
316
325
 
@@ -338,9 +347,9 @@ class ChangeCompactionStyleCommand : public LDBCommand {
338
347
  const std::map<std::string, std::string>& options,
339
348
  const std::vector<std::string>& flags);
340
349
 
341
- virtual void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
350
+ void OverrideBaseCFOptions(ColumnFamilyOptions* cf_opts) override;
342
351
 
343
- virtual void DoCommand() override;
352
+ void DoCommand() override;
344
353
 
345
354
  static void Help(std::string& msg);
346
355
 
@@ -360,10 +369,11 @@ class WALDumperCommand : public LDBCommand {
360
369
  const std::map<std::string, std::string>& options,
361
370
  const std::vector<std::string>& flags);
362
371
 
363
- virtual bool NoDBOpen() override { return true; }
372
+ bool NoDBOpen() override { return true; }
364
373
 
365
374
  static void Help(std::string& ret);
366
- virtual void DoCommand() override;
375
+
376
+ void DoCommand() override;
367
377
 
368
378
  private:
369
379
  bool print_header_;
@@ -385,7 +395,7 @@ class GetCommand : public LDBCommand {
385
395
  const std::map<std::string, std::string>& options,
386
396
  const std::vector<std::string>& flags);
387
397
 
388
- virtual void DoCommand() override;
398
+ void DoCommand() override;
389
399
 
390
400
  static void Help(std::string& ret);
391
401
 
@@ -401,7 +411,7 @@ class ApproxSizeCommand : public LDBCommand {
401
411
  const std::map<std::string, std::string>& options,
402
412
  const std::vector<std::string>& flags);
403
413
 
404
- virtual void DoCommand() override;
414
+ void DoCommand() override;
405
415
 
406
416
  static void Help(std::string& ret);
407
417
 
@@ -418,11 +428,11 @@ class BatchPutCommand : public LDBCommand {
418
428
  const std::map<std::string, std::string>& options,
419
429
  const std::vector<std::string>& flags);
420
430
 
421
- virtual void DoCommand() override;
431
+ void DoCommand() override;
422
432
 
423
433
  static void Help(std::string& ret);
424
434
 
425
- virtual void OverrideBaseOptions() override;
435
+ void OverrideBaseOptions() override;
426
436
 
427
437
  private:
428
438
  /**
@@ -439,7 +449,7 @@ class ScanCommand : public LDBCommand {
439
449
  const std::map<std::string, std::string>& options,
440
450
  const std::vector<std::string>& flags);
441
451
 
442
- virtual void DoCommand() override;
452
+ void DoCommand() override;
443
453
 
444
454
  static void Help(std::string& ret);
445
455
 
@@ -460,7 +470,23 @@ class DeleteCommand : public LDBCommand {
460
470
  const std::map<std::string, std::string>& options,
461
471
  const std::vector<std::string>& flags);
462
472
 
463
- virtual void DoCommand() override;
473
+ void DoCommand() override;
474
+
475
+ static void Help(std::string& ret);
476
+
477
+ private:
478
+ std::string key_;
479
+ };
480
+
481
+ class SingleDeleteCommand : public LDBCommand {
482
+ public:
483
+ static std::string Name() { return "singledelete"; }
484
+
485
+ SingleDeleteCommand(const std::vector<std::string>& params,
486
+ const std::map<std::string, std::string>& options,
487
+ const std::vector<std::string>& flags);
488
+
489
+ void DoCommand() override;
464
490
 
465
491
  static void Help(std::string& ret);
466
492
 
@@ -476,7 +502,7 @@ class DeleteRangeCommand : public LDBCommand {
476
502
  const std::map<std::string, std::string>& options,
477
503
  const std::vector<std::string>& flags);
478
504
 
479
- virtual void DoCommand() override;
505
+ void DoCommand() override;
480
506
 
481
507
  static void Help(std::string& ret);
482
508
 
@@ -493,11 +519,11 @@ class PutCommand : public LDBCommand {
493
519
  const std::map<std::string, std::string>& options,
494
520
  const std::vector<std::string>& flags);
495
521
 
496
- virtual void DoCommand() override;
522
+ void DoCommand() override;
497
523
 
498
524
  static void Help(std::string& ret);
499
525
 
500
- virtual void OverrideBaseOptions() override;
526
+ void OverrideBaseOptions() override;
501
527
 
502
528
  private:
503
529
  std::string key_;
@@ -518,7 +544,7 @@ class DBQuerierCommand : public LDBCommand {
518
544
 
519
545
  static void Help(std::string& ret);
520
546
 
521
- virtual void DoCommand() override;
547
+ void DoCommand() override;
522
548
 
523
549
  private:
524
550
  static const char* HELP_CMD;
@@ -535,9 +561,9 @@ class CheckConsistencyCommand : public LDBCommand {
535
561
  const std::map<std::string, std::string>& options,
536
562
  const std::vector<std::string>& flags);
537
563
 
538
- virtual void DoCommand() override;
564
+ void DoCommand() override;
539
565
 
540
- virtual bool NoDBOpen() override { return true; }
566
+ bool NoDBOpen() override { return true; }
541
567
 
542
568
  static void Help(std::string& ret);
543
569
  };
@@ -550,7 +576,7 @@ class CheckPointCommand : public LDBCommand {
550
576
  const std::map<std::string, std::string>& options,
551
577
  const std::vector<std::string>& flags);
552
578
 
553
- virtual void DoCommand() override;
579
+ void DoCommand() override;
554
580
 
555
581
  static void Help(std::string& ret);
556
582
 
@@ -567,11 +593,11 @@ class RepairCommand : public LDBCommand {
567
593
  const std::map<std::string, std::string>& options,
568
594
  const std::vector<std::string>& flags);
569
595
 
570
- virtual void DoCommand() override;
596
+ void DoCommand() override;
571
597
 
572
- virtual bool NoDBOpen() override { return true; }
598
+ bool NoDBOpen() override { return true; }
573
599
 
574
- virtual void OverrideBaseOptions() override;
600
+ void OverrideBaseOptions() override;
575
601
 
576
602
  static void Help(std::string& ret);
577
603
 
@@ -611,7 +637,7 @@ class BackupCommand : public BackupEngineCommand {
611
637
  BackupCommand(const std::vector<std::string>& params,
612
638
  const std::map<std::string, std::string>& options,
613
639
  const std::vector<std::string>& flags);
614
- virtual void DoCommand() override;
640
+ void DoCommand() override;
615
641
  static void Help(std::string& ret);
616
642
  };
617
643
 
@@ -621,8 +647,8 @@ class RestoreCommand : public BackupEngineCommand {
621
647
  RestoreCommand(const std::vector<std::string>& params,
622
648
  const std::map<std::string, std::string>& options,
623
649
  const std::vector<std::string>& flags);
624
- virtual void DoCommand() override;
625
- virtual bool NoDBOpen() override { return true; }
650
+ void DoCommand() override;
651
+ bool NoDBOpen() override { return true; }
626
652
  static void Help(std::string& ret);
627
653
  };
628
654
 
@@ -634,11 +660,11 @@ class WriteExternalSstFilesCommand : public LDBCommand {
634
660
  const std::map<std::string, std::string>& options,
635
661
  const std::vector<std::string>& flags);
636
662
 
637
- virtual void DoCommand() override;
663
+ void DoCommand() override;
638
664
 
639
- virtual bool NoDBOpen() override { return false; }
665
+ bool NoDBOpen() override { return false; }
640
666
 
641
- virtual void OverrideBaseOptions() override;
667
+ void OverrideBaseOptions() override;
642
668
 
643
669
  static void Help(std::string& ret);
644
670
 
@@ -654,11 +680,11 @@ class IngestExternalSstFilesCommand : public LDBCommand {
654
680
  const std::map<std::string, std::string>& options,
655
681
  const std::vector<std::string>& flags);
656
682
 
657
- virtual void DoCommand() override;
683
+ void DoCommand() override;
658
684
 
659
- virtual bool NoDBOpen() override { return false; }
685
+ bool NoDBOpen() override { return false; }
660
686
 
661
- virtual void OverrideBaseOptions() override;
687
+ void OverrideBaseOptions() override;
662
688
 
663
689
  static void Help(std::string& ret);
664
690
 
@@ -706,9 +732,9 @@ class UnsafeRemoveSstFileCommand : public LDBCommand {
706
732
 
707
733
  static void Help(std::string& ret);
708
734
 
709
- virtual void DoCommand() override;
735
+ void DoCommand() override;
710
736
 
711
- virtual bool NoDBOpen() override { return true; }
737
+ bool NoDBOpen() override { return true; }
712
738
 
713
739
  private:
714
740
  uint64_t sst_file_number_;
@@ -244,7 +244,7 @@ class FileChecksumTestHelper {
244
244
  live_files[i].file_checksum_func_name != stored_func_name) {
245
245
  return Status::Corruption(
246
246
  "Checksum does not match! The file: " +
247
- ToString(live_files[i].file_number) +
247
+ std::to_string(live_files[i].file_number) +
248
248
  ". In Manifest, checksum name: " + stored_func_name +
249
249
  " and checksum " + stored_checksum +
250
250
  ". However, expected checksum name: " +
@@ -937,7 +937,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
937
937
 
938
938
  // Create three SST files
939
939
  for (size_t i = 0; i < 3; ++i) {
940
- ASSERT_OK(db->Put(WriteOptions(), ToString(i), ToString(i)));
940
+ ASSERT_OK(db->Put(WriteOptions(), std::to_string(i), std::to_string(i)));
941
941
  ASSERT_OK(db->Flush(FlushOptions()));
942
942
  }
943
943
 
@@ -985,7 +985,8 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
985
985
  ColumnFamilyOptions cf_opts;
986
986
  ASSERT_OK(db->CreateColumnFamily(cf_opts, "cf1", &cf_handle));
987
987
  for (size_t i = 3; i < 5; ++i) {
988
- ASSERT_OK(db->Put(WriteOptions(), cf_handle, ToString(i), ToString(i)));
988
+ ASSERT_OK(db->Put(WriteOptions(), cf_handle, std::to_string(i),
989
+ std::to_string(i)));
989
990
  ASSERT_OK(db->Flush(FlushOptions(), cf_handle));
990
991
  }
991
992
 
@@ -1048,7 +1049,7 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1048
1049
  Temperature::kWarm, Temperature::kCold};
1049
1050
  std::map<uint64_t, Temperature> number_to_temp;
1050
1051
  for (size_t i = 0; i < kTestTemps.size(); ++i) {
1051
- ASSERT_OK(db->Put(WriteOptions(), ToString(i), ToString(i)));
1052
+ ASSERT_OK(db->Put(WriteOptions(), std::to_string(i), std::to_string(i)));
1052
1053
  ASSERT_OK(db->Flush(FlushOptions()));
1053
1054
 
1054
1055
  std::map<uint64_t, Temperature> current_temps;
@@ -1069,8 +1070,8 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1069
1070
 
1070
1071
  for (size_t i = 0; i < kTestTemps.size(); ++i) {
1071
1072
  std::string val;
1072
- ASSERT_OK(db->Get(ReadOptions(), ToString(i), &val));
1073
- ASSERT_EQ(val, ToString(i));
1073
+ ASSERT_OK(db->Get(ReadOptions(), std::to_string(i), &val));
1074
+ ASSERT_EQ(val, std::to_string(i));
1074
1075
  }
1075
1076
 
1076
1077
  // Still all unknown
@@ -1101,8 +1102,8 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1101
1102
 
1102
1103
  for (size_t i = 0; i < kTestTemps.size(); ++i) {
1103
1104
  std::string val;
1104
- ASSERT_OK(db->Get(ReadOptions(), ToString(i), &val));
1105
- ASSERT_EQ(val, ToString(i));
1105
+ ASSERT_OK(db->Get(ReadOptions(), std::to_string(i), &val));
1106
+ ASSERT_EQ(val, std::to_string(i));
1106
1107
  }
1107
1108
 
1108
1109
  requests.clear();
@@ -50,7 +50,10 @@ void LDBCommandRunner::PrintHelp(const LDBOptions& ldb_options,
50
50
  " with 'put','get','scan','dump','query','batchput'"
51
51
  " : DB supports ttl and value is internally timestamp-suffixed\n");
52
52
  ret.append(" --" + LDBCommand::ARG_TRY_LOAD_OPTIONS +
53
- " : Try to load option file from DB.\n");
53
+ " : Try to load option file from DB. Default to true if " +
54
+ LDBCommand::ARG_DB +
55
+ " is specified and not creating a new DB and not open as TTL DB. "
56
+ "Can be set to false explicitly.\n");
54
57
  ret.append(" --" + LDBCommand::ARG_DISABLE_CONSISTENCY_CHECKS +
55
58
  " : Set options.force_consistency_checks = false.\n");
56
59
  ret.append(" --" + LDBCommand::ARG_IGNORE_UNKNOWN_OPTIONS +
@@ -70,8 +70,8 @@ public:
70
70
 
71
71
  int FilesOnLevel(int level) {
72
72
  std::string property;
73
- EXPECT_TRUE(db_->GetProperty("rocksdb.num-files-at-level" + ToString(level),
74
- &property));
73
+ EXPECT_TRUE(db_->GetProperty(
74
+ "rocksdb.num-files-at-level" + std::to_string(level), &property));
75
75
  return atoi(property.c_str());
76
76
  }
77
77
 
@@ -10,7 +10,9 @@
10
10
  #include <cinttypes>
11
11
  #include <iostream>
12
12
 
13
+ #include "options/options_helper.h"
13
14
  #include "port/port.h"
15
+ #include "rocksdb/convenience.h"
14
16
  #include "rocksdb/utilities/ldb_cmd.h"
15
17
  #include "table/sst_file_dumper.h"
16
18
 
@@ -30,6 +32,16 @@ static const std::vector<std::pair<CompressionType, const char*>>
30
32
  namespace {
31
33
 
32
34
  void print_help(bool to_stderr) {
35
+ std::string supported_compressions;
36
+ for (CompressionType ct : GetSupportedCompressions()) {
37
+ if (!supported_compressions.empty()) {
38
+ supported_compressions += ", ";
39
+ }
40
+ std::string str;
41
+ Status s = GetStringFromCompressionType(&str, ct);
42
+ assert(s.ok());
43
+ supported_compressions += str;
44
+ }
33
45
  fprintf(
34
46
  to_stderr ? stderr : stdout,
35
47
  R"(sst_dump --file=<data_dir_OR_sst_file> [--command=check|scan|raw|recompress|identify]
@@ -88,6 +100,7 @@ void print_help(bool to_stderr) {
88
100
  kSnappyCompression>
89
101
  Can be combined with --command=recompress to run recompression for this
90
102
  list of compression types
103
+ Supported compression types: %s
91
104
 
92
105
  --parse_internal_key=<0xKEY>
93
106
  Convenience option to parse an internal key on the command line. Dumps the
@@ -109,7 +122,11 @@ void print_help(bool to_stderr) {
109
122
 
110
123
  --compression_max_dict_buffer_bytes=<int64_t>
111
124
  Limit on buffer size from which we collect samples for dictionary generation.
112
- )");
125
+
126
+ --compression_use_zstd_finalize_dict
127
+ Use zstd's finalizeDictionary() API instead of zstd's dictionary trainer to generate dictionary.
128
+ )",
129
+ supported_compressions.c_str());
113
130
  }
114
131
 
115
132
  // arg_name would include all prefix, e.g. "--my_arg="
@@ -174,6 +191,8 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
174
191
  ROCKSDB_NAMESPACE::CompressionOptions().zstd_max_train_bytes;
175
192
  uint64_t compression_max_dict_buffer_bytes =
176
193
  ROCKSDB_NAMESPACE::CompressionOptions().max_dict_buffer_bytes;
194
+ bool compression_use_zstd_finalize_dict =
195
+ !ROCKSDB_NAMESPACE::CompressionOptions().use_zstd_dict_trainer;
177
196
 
178
197
  int64_t tmp_val;
179
198
 
@@ -268,7 +287,7 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
268
287
  } else if (ParseIntArg(argv[i], "--compression_max_dict_bytes=",
269
288
  "compression_max_dict_bytes must be numeric",
270
289
  &tmp_val)) {
271
- if (tmp_val < 0 || tmp_val > port::kMaxUint32) {
290
+ if (tmp_val < 0 || tmp_val > std::numeric_limits<uint32_t>::max()) {
272
291
  fprintf(stderr, "compression_max_dict_bytes must be a uint32_t: '%s'\n",
273
292
  argv[i]);
274
293
  print_help(/*to_stderr*/ true);
@@ -278,7 +297,7 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
278
297
  } else if (ParseIntArg(argv[i], "--compression_zstd_max_train_bytes=",
279
298
  "compression_zstd_max_train_bytes must be numeric",
280
299
  &tmp_val)) {
281
- if (tmp_val < 0 || tmp_val > port::kMaxUint32) {
300
+ if (tmp_val < 0 || tmp_val > std::numeric_limits<uint32_t>::max()) {
282
301
  fprintf(stderr,
283
302
  "compression_zstd_max_train_bytes must be a uint32_t: '%s'\n",
284
303
  argv[i]);
@@ -297,6 +316,8 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
297
316
  return 1;
298
317
  }
299
318
  compression_max_dict_buffer_bytes = static_cast<uint64_t>(tmp_val);
319
+ } else if (strcmp(argv[i], "--compression_use_zstd_finalize_dict") == 0) {
320
+ compression_use_zstd_finalize_dict = true;
300
321
  } else if (strcmp(argv[i], "--help") == 0) {
301
322
  print_help(/*to_stderr*/ false);
302
323
  return 0;
@@ -425,7 +446,8 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
425
446
  set_block_size ? block_size : 16384,
426
447
  compression_types.empty() ? kCompressions : compression_types,
427
448
  compress_level_from, compress_level_to, compression_max_dict_bytes,
428
- compression_zstd_max_train_bytes, compression_max_dict_buffer_bytes);
449
+ compression_zstd_max_train_bytes, compression_max_dict_buffer_bytes,
450
+ !compression_use_zstd_finalize_dict);
429
451
  if (!st.ok()) {
430
452
  fprintf(stderr, "Failed to recompress: %s\n", st.ToString().c_str());
431
453
  exit(1);
@@ -190,7 +190,7 @@ uint64_t MultiplyCheckOverflow(uint64_t op1, uint64_t op2) {
190
190
  if (op1 == 0 || op2 == 0) {
191
191
  return 0;
192
192
  }
193
- if (port::kMaxUint64 / op1 < op2) {
193
+ if (std::numeric_limits<uint64_t>::max() / op1 < op2) {
194
194
  return op1;
195
195
  }
196
196
  return (op1 * op2);
@@ -281,7 +281,7 @@ class BlockCacheTracer {
281
281
  const Slice& block_key, const Slice& cf_name,
282
282
  const Slice& referenced_key);
283
283
 
284
- // GetId cycles from 1 to port::kMaxUint64.
284
+ // GetId cycles from 1 to std::numeric_limits<uint64_t>::max().
285
285
  uint64_t NextGetId();
286
286
 
287
287
  private:
@@ -0,0 +1,72 @@
1
+ // Copyright (c) Meta Platforms, Inc. and its affiliates. All Rights Reserved.
2
+ // This source code is licensed under both the GPLv2 (found in the
3
+ // COPYING file in the root directory) and Apache 2.0 License
4
+ // (found in the LICENSE.Apache file in the root directory).
5
+ //
6
+ #if USE_COROUTINES
7
+ #include "util/async_file_reader.h"
8
+
9
+ namespace ROCKSDB_NAMESPACE {
10
+ bool AsyncFileReader::MultiReadAsyncImpl(ReadAwaiter* awaiter) {
11
+ if (tail_) {
12
+ tail_->next_ = awaiter;
13
+ }
14
+ tail_ = awaiter;
15
+ if (!head_) {
16
+ head_ = awaiter;
17
+ }
18
+ num_reqs_ += awaiter->num_reqs_;
19
+ awaiter->io_handle_.resize(awaiter->num_reqs_);
20
+ awaiter->del_fn_.resize(awaiter->num_reqs_);
21
+ for (size_t i = 0; i < awaiter->num_reqs_; ++i) {
22
+ awaiter->file_
23
+ ->ReadAsync(
24
+ awaiter->read_reqs_[i], awaiter->opts_,
25
+ [](const FSReadRequest& req, void* cb_arg) {
26
+ FSReadRequest* read_req = static_cast<FSReadRequest*>(cb_arg);
27
+ read_req->status = req.status;
28
+ read_req->result = req.result;
29
+ },
30
+ &awaiter->read_reqs_[i], &awaiter->io_handle_[i],
31
+ &awaiter->del_fn_[i], Env::IOPriority::IO_TOTAL)
32
+ .PermitUncheckedError();
33
+ }
34
+ return true;
35
+ }
36
+
37
+ void AsyncFileReader::Wait() {
38
+ if (!head_) {
39
+ return;
40
+ }
41
+ ReadAwaiter* waiter;
42
+ std::vector<void*> io_handles;
43
+ io_handles.reserve(num_reqs_);
44
+ waiter = head_;
45
+ do {
46
+ for (size_t i = 0; i < waiter->num_reqs_; ++i) {
47
+ if (waiter->io_handle_[i]) {
48
+ io_handles.push_back(waiter->io_handle_[i]);
49
+ }
50
+ }
51
+ } while (waiter != tail_ && (waiter = waiter->next_));
52
+ if (io_handles.size() > 0) {
53
+ StopWatch sw(SystemClock::Default().get(), stats_, POLL_WAIT_MICROS);
54
+ fs_->Poll(io_handles, io_handles.size()).PermitUncheckedError();
55
+ }
56
+ do {
57
+ waiter = head_;
58
+ head_ = waiter->next_;
59
+
60
+ for (size_t i = 0; i < waiter->num_reqs_; ++i) {
61
+ if (waiter->io_handle_[i] && waiter->del_fn_[i]) {
62
+ waiter->del_fn_[i](waiter->io_handle_[i]);
63
+ }
64
+ }
65
+ waiter->awaiting_coro_.resume();
66
+ } while (waiter != tail_);
67
+ head_ = tail_ = nullptr;
68
+ RecordInHistogram(stats_, MULTIGET_IO_BATCH_SIZE, num_reqs_);
69
+ num_reqs_ = 0;
70
+ }
71
+ } // namespace ROCKSDB_NAMESPACE
72
+ #endif // USE_COROUTINES