@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
@@ -118,7 +118,7 @@ static std::string PrintContents(WriteBatch* b,
118
118
  break;
119
119
  }
120
120
  state.append("@");
121
- state.append(ToString(ikey.sequence));
121
+ state.append(std::to_string(ikey.sequence));
122
122
  }
123
123
  EXPECT_OK(iter->status());
124
124
  }
@@ -253,7 +253,7 @@ namespace {
253
253
  if (column_family_id == 0) {
254
254
  seen += "Put(" + key.ToString() + ", " + value.ToString() + ")";
255
255
  } else {
256
- seen += "PutCF(" + ToString(column_family_id) + ", " +
256
+ seen += "PutCF(" + std::to_string(column_family_id) + ", " +
257
257
  key.ToString() + ", " + value.ToString() + ")";
258
258
  }
259
259
  return Status::OK();
@@ -262,7 +262,7 @@ namespace {
262
262
  if (column_family_id == 0) {
263
263
  seen += "Delete(" + key.ToString() + ")";
264
264
  } else {
265
- seen += "DeleteCF(" + ToString(column_family_id) + ", " +
265
+ seen += "DeleteCF(" + std::to_string(column_family_id) + ", " +
266
266
  key.ToString() + ")";
267
267
  }
268
268
  return Status::OK();
@@ -272,7 +272,7 @@ namespace {
272
272
  if (column_family_id == 0) {
273
273
  seen += "SingleDelete(" + key.ToString() + ")";
274
274
  } else {
275
- seen += "SingleDeleteCF(" + ToString(column_family_id) + ", " +
275
+ seen += "SingleDeleteCF(" + std::to_string(column_family_id) + ", " +
276
276
  key.ToString() + ")";
277
277
  }
278
278
  return Status::OK();
@@ -283,7 +283,7 @@ namespace {
283
283
  seen += "DeleteRange(" + begin_key.ToString() + ", " +
284
284
  end_key.ToString() + ")";
285
285
  } else {
286
- seen += "DeleteRangeCF(" + ToString(column_family_id) + ", " +
286
+ seen += "DeleteRangeCF(" + std::to_string(column_family_id) + ", " +
287
287
  begin_key.ToString() + ", " + end_key.ToString() + ")";
288
288
  }
289
289
  return Status::OK();
@@ -293,7 +293,7 @@ namespace {
293
293
  if (column_family_id == 0) {
294
294
  seen += "Merge(" + key.ToString() + ", " + value.ToString() + ")";
295
295
  } else {
296
- seen += "MergeCF(" + ToString(column_family_id) + ", " +
296
+ seen += "MergeCF(" + std::to_string(column_family_id) + ", " +
297
297
  key.ToString() + ", " + value.ToString() + ")";
298
298
  }
299
299
  return Status::OK();
@@ -52,7 +52,7 @@ class WriteController {
52
52
  bool IsStopped() const;
53
53
  bool NeedsDelay() const { return total_delayed_.load() > 0; }
54
54
  bool NeedSpeedupCompaction() const {
55
- return IsStopped() || NeedsDelay() || total_compaction_pressure_ > 0;
55
+ return IsStopped() || NeedsDelay() || total_compaction_pressure_.load() > 0;
56
56
  }
57
57
  // return how many microseconds the caller needs to sleep after the call
58
58
  // num_bytes: how many number of bytes to put into the DB.
@@ -18,11 +18,9 @@
18
18
 
19
19
  ROCKSDB_NAMESPACE::Env* db_stress_listener_env = nullptr;
20
20
  ROCKSDB_NAMESPACE::Env* db_stress_env = nullptr;
21
- #ifndef NDEBUG
22
21
  // If non-null, injects read error at a rate specified by the
23
22
  // read_fault_one_in or write_fault_one_in flag
24
23
  std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
25
- #endif // NDEBUG
26
24
  enum ROCKSDB_NAMESPACE::CompressionType compression_type_e =
27
25
  ROCKSDB_NAMESPACE::kSnappyCompression;
28
26
  enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e =
@@ -67,6 +67,7 @@
67
67
  #include "util/random.h"
68
68
  #include "util/string_util.h"
69
69
  #include "utilities/blob_db/blob_db.h"
70
+ #include "utilities/fault_injection_fs.h"
70
71
  #include "utilities/merge_operators.h"
71
72
 
72
73
  using GFLAGS_NAMESPACE::ParseCommandLineFlags;
@@ -107,6 +108,7 @@ DECLARE_double(memtable_prefix_bloom_size_ratio);
107
108
  DECLARE_bool(memtable_whole_key_filtering);
108
109
  DECLARE_int32(open_files);
109
110
  DECLARE_int64(compressed_cache_size);
111
+ DECLARE_int32(compressed_cache_numshardbits);
110
112
  DECLARE_int32(compaction_style);
111
113
  DECLARE_int32(num_levels);
112
114
  DECLARE_int32(level0_file_num_compaction_trigger);
@@ -134,7 +136,9 @@ DECLARE_int32(set_in_place_one_in);
134
136
  DECLARE_int64(cache_size);
135
137
  DECLARE_int32(cache_numshardbits);
136
138
  DECLARE_bool(cache_index_and_filter_blocks);
137
- DECLARE_bool(reserve_table_reader_memory);
139
+ DECLARE_bool(charge_compression_dictionary_building_buffer);
140
+ DECLARE_bool(charge_filter_construction);
141
+ DECLARE_bool(charge_table_reader);
138
142
  DECLARE_int32(top_level_index_pinning);
139
143
  DECLARE_int32(partition_pinning);
140
144
  DECLARE_int32(unpartitioned_pinning);
@@ -166,6 +170,8 @@ DECLARE_bool(mock_direct_io);
166
170
  DECLARE_bool(statistics);
167
171
  DECLARE_bool(sync);
168
172
  DECLARE_bool(use_fsync);
173
+ DECLARE_uint64(bytes_per_sync);
174
+ DECLARE_uint64(wal_bytes_per_sync);
169
175
  DECLARE_int32(kill_random_test);
170
176
  DECLARE_string(kill_exclude_prefixes);
171
177
  DECLARE_bool(disable_wal);
@@ -215,6 +221,7 @@ DECLARE_int32(compression_max_dict_bytes);
215
221
  DECLARE_int32(compression_zstd_max_train_bytes);
216
222
  DECLARE_int32(compression_parallel_threads);
217
223
  DECLARE_uint64(compression_max_dict_buffer_bytes);
224
+ DECLARE_bool(compression_use_zstd_dict_trainer);
218
225
  DECLARE_string(checksum_type);
219
226
  DECLARE_string(env_uri);
220
227
  DECLARE_string(fs_uri);
@@ -286,6 +293,7 @@ DECLARE_uint64(wp_commit_cache_bits);
286
293
  DECLARE_bool(adaptive_readahead);
287
294
  DECLARE_bool(async_io);
288
295
  DECLARE_string(wal_compression);
296
+ DECLARE_bool(verify_sst_unique_id_in_manifest);
289
297
 
290
298
  constexpr long KB = 1024;
291
299
  constexpr int kRandomValueMaxFactor = 3;
@@ -294,12 +302,7 @@ constexpr int kValueMaxLen = 100;
294
302
  // wrapped posix environment
295
303
  extern ROCKSDB_NAMESPACE::Env* db_stress_env;
296
304
  extern ROCKSDB_NAMESPACE::Env* db_stress_listener_env;
297
- #ifndef NDEBUG
298
- namespace ROCKSDB_NAMESPACE {
299
- class FaultInjectionTestFS;
300
- } // namespace ROCKSDB_NAMESPACE
301
305
  extern std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
302
- #endif
303
306
 
304
307
  extern enum ROCKSDB_NAMESPACE::CompressionType compression_type_e;
305
308
  extern enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e;
@@ -46,11 +46,12 @@ class DbStressCompactionFilter : public CompactionFilter {
46
46
  // Reaching here means we acquired the lock.
47
47
 
48
48
  bool key_exists = state_->Exists(cf_id_, key_num);
49
+ const bool allow_overwrite = state_->AllowsOverwrite(key_num);
49
50
 
50
51
  key_mutex->Unlock();
51
52
 
52
53
  if (!key_exists) {
53
- return Decision::kRemove;
54
+ return allow_overwrite ? Decision::kRemove : Decision::kPurge;
54
55
  }
55
56
  return Decision::kKeep;
56
57
  }
@@ -58,15 +58,16 @@ void ThreadBody(void* v) {
58
58
 
59
59
  bool RunStressTest(StressTest* stress) {
60
60
  SystemClock* clock = db_stress_env->GetSystemClock().get();
61
- stress->InitDb();
62
61
  SharedState shared(db_stress_env, stress);
62
+ stress->InitDb(&shared);
63
63
  stress->FinishInitDb(&shared);
64
64
 
65
- #ifndef NDEBUG
66
65
  if (FLAGS_sync_fault_injection) {
67
66
  fault_fs_guard->SetFilesystemDirectWritable(false);
68
67
  }
69
- #endif
68
+ if (FLAGS_write_fault_one_in) {
69
+ fault_fs_guard->EnableWriteErrorInjection();
70
+ }
70
71
 
71
72
  uint32_t n = FLAGS_threads;
72
73
  uint64_t now = clock->NowMicros();
@@ -187,9 +187,15 @@ DEFINE_int32(open_files, ROCKSDB_NAMESPACE::Options().max_open_files,
187
187
  "Maximum number of files to keep open at the same time "
188
188
  "(use default if == 0)");
189
189
 
190
- DEFINE_int64(compressed_cache_size, -1,
190
+ DEFINE_int64(compressed_cache_size, 0,
191
191
  "Number of bytes to use as a cache of compressed data."
192
- " Negative means use default settings.");
192
+ " 0 means use default settings.");
193
+
194
+ DEFINE_int32(
195
+ compressed_cache_numshardbits, -1,
196
+ "Number of shards for the compressed block cache is 2 ** "
197
+ "compressed_cache_numshardbits. Negative value means default settings. "
198
+ "This is applied only if compressed_cache_size is greater than 0.");
193
199
 
194
200
  DEFINE_int32(compaction_style, ROCKSDB_NAMESPACE::Options().compaction_style,
195
201
  "");
@@ -304,10 +310,20 @@ DEFINE_int32(cache_numshardbits, 6,
304
310
  DEFINE_bool(cache_index_and_filter_blocks, false,
305
311
  "True if indexes/filters should be cached in block cache.");
306
312
 
307
- DEFINE_bool(reserve_table_reader_memory, false,
308
- "A dynamically updating charge to block cache, loosely based on "
309
- "the actual memory usage of table reader, will occur to account "
310
- "the memory, if block cache available.");
313
+ DEFINE_bool(charge_compression_dictionary_building_buffer, false,
314
+ "Setting for "
315
+ "CacheEntryRoleOptions::charged of"
316
+ "CacheEntryRole::kCompressionDictionaryBuildingBuffer");
317
+
318
+ DEFINE_bool(charge_filter_construction, false,
319
+ "Setting for "
320
+ "CacheEntryRoleOptions::charged of"
321
+ "CacheEntryRole::kFilterConstruction");
322
+
323
+ DEFINE_bool(charge_table_reader, false,
324
+ "Setting for "
325
+ "CacheEntryRoleOptions::charged of"
326
+ "CacheEntryRole::kBlockBasedTableReader");
311
327
 
312
328
  DEFINE_int32(
313
329
  top_level_index_pinning,
@@ -516,6 +532,15 @@ DEFINE_bool(sync, false, "Sync all writes to disk");
516
532
 
517
533
  DEFINE_bool(use_fsync, false, "If true, issue fsync instead of fdatasync");
518
534
 
535
+ DEFINE_uint64(bytes_per_sync, ROCKSDB_NAMESPACE::Options().bytes_per_sync,
536
+ "If nonzero, sync SST file data incrementally after every "
537
+ "`bytes_per_sync` bytes are written");
538
+
539
+ DEFINE_uint64(wal_bytes_per_sync,
540
+ ROCKSDB_NAMESPACE::Options().wal_bytes_per_sync,
541
+ "If nonzero, sync WAL file data incrementally after every "
542
+ "`bytes_per_sync` bytes are written");
543
+
519
544
  DEFINE_int32(kill_random_test, 0,
520
545
  "If non-zero, kill at various points in source code with "
521
546
  "probability 1/this");
@@ -727,6 +752,13 @@ DEFINE_uint64(compression_max_dict_buffer_bytes, 0,
727
752
  "Buffering limit for SST file data to sample for dictionary "
728
753
  "compression.");
729
754
 
755
+ DEFINE_bool(
756
+ compression_use_zstd_dict_trainer, true,
757
+ "Use zstd's trainer to generate dictionary. If the options is false, "
758
+ "zstd's finalizeDictionary() API is used to generate dictionary. "
759
+ "ZSTD 1.4.5+ is required. If ZSTD 1.4.5+ is not linked with the binary, "
760
+ "this flag will have the default value true.");
761
+
730
762
  DEFINE_string(bottommost_compression_type, "disable",
731
763
  "Algorithm to use to compress bottommost level of the database. "
732
764
  "\"disable\" means disabling the feature");
@@ -927,4 +959,10 @@ DEFINE_bool(
927
959
  DEFINE_string(wal_compression, "none",
928
960
  "Algorithm to use for WAL compression. none to disable.");
929
961
 
962
+ DEFINE_bool(
963
+ verify_sst_unique_id_in_manifest, false,
964
+ "Enable DB options `verify_sst_unique_id_in_manifest`, if true, during "
965
+ "DB-open try verifying the SST unique id between MANIFEST and SST "
966
+ "properties.");
967
+
930
968
  #endif // GFLAGS
@@ -173,7 +173,10 @@ void DbStressListener::VerifyTableFileUniqueId(
173
173
  const TableProperties& new_file_properties, const std::string& file_path) {
174
174
  // Verify unique ID
175
175
  std::string id;
176
- Status s = GetUniqueIdFromTableProperties(new_file_properties, &id);
176
+ // Unit tests verify that GetUniqueIdFromTableProperties returns just a
177
+ // substring of this, and we're only going to pull out 64 bits, so using
178
+ // GetExtendedUniqueIdFromTableProperties is arguably stronger testing here.
179
+ Status s = GetExtendedUniqueIdFromTableProperties(new_file_properties, &id);
177
180
  if (!s.ok()) {
178
181
  fprintf(stderr, "Error getting SST unique id for %s: %s\n",
179
182
  file_path.c_str(), s.ToString().c_str());
@@ -12,16 +12,6 @@
12
12
  #include "db_stress_tool/db_stress_shared_state.h"
13
13
 
14
14
  namespace ROCKSDB_NAMESPACE {
15
- const uint32_t SharedState::UNKNOWN_SENTINEL = 0xfffffffe;
16
- const uint32_t SharedState::DELETION_SENTINEL = 0xffffffff;
17
- #if defined(ROCKSDB_SUPPORT_THREAD_LOCAL)
18
- #if defined(OS_SOLARIS)
19
- __thread bool SharedState::ignore_read_error;
20
- #else
21
15
  thread_local bool SharedState::ignore_read_error;
22
- #endif // OS_SOLARIS
23
- #else
24
- bool SharedState::ignore_read_error;
25
- #endif // ROCKSDB_SUPPORT_THREAD_LOCAL
26
16
  } // namespace ROCKSDB_NAMESPACE
27
17
  #endif // GFLAGS
@@ -45,23 +45,15 @@ class SharedState {
45
45
  public:
46
46
  // indicates a key may have any value (or not be present) as an operation on
47
47
  // it is incomplete.
48
- static const uint32_t UNKNOWN_SENTINEL;
48
+ static constexpr uint32_t UNKNOWN_SENTINEL = 0xfffffffe;
49
49
  // indicates a key should definitely be deleted
50
- static const uint32_t DELETION_SENTINEL;
50
+ static constexpr uint32_t DELETION_SENTINEL = 0xffffffff;
51
51
 
52
52
  // Errors when reading filter blocks are ignored, so we use a thread
53
53
  // local variable updated via sync points to keep track of errors injected
54
54
  // while reading filter blocks in order to ignore the Get/MultiGet result
55
55
  // for those calls
56
- #if defined(ROCKSDB_SUPPORT_THREAD_LOCAL)
57
- #if defined(OS_SOLARIS)
58
- static __thread bool ignore_read_error;
59
- #else
60
56
  static thread_local bool ignore_read_error;
61
- #endif // OS_SOLARIS
62
- #else
63
- static bool ignore_read_error;
64
- #endif // ROCKSDB_SUPPORT_THREAD_LOCAL
65
57
 
66
58
  SharedState(Env* /*env*/, StressTest* stress_test)
67
59
  : cv_(&mu_),
@@ -81,36 +73,9 @@ class SharedState {
81
73
  stress_test_(stress_test),
82
74
  verification_failure_(false),
83
75
  should_stop_test_(false),
84
- no_overwrite_ids_(FLAGS_column_families),
76
+ no_overwrite_ids_(GenerateNoOverwriteIds()),
85
77
  expected_state_manager_(nullptr),
86
78
  printing_verification_results_(false) {
87
- // Pick random keys in each column family that will not experience
88
- // overwrite
89
-
90
- fprintf(stdout, "Choosing random keys with no overwrite\n");
91
- Random64 rnd(seed_);
92
- // Start with the identity permutation. Subsequent iterations of
93
- // for loop below will start with perm of previous for loop
94
- int64_t* permutation = new int64_t[max_key_];
95
- for (int64_t i = 0; i < max_key_; i++) {
96
- permutation[i] = i;
97
- }
98
- // Now do the Knuth shuffle
99
- int64_t num_no_overwrite_keys = (max_key_ * FLAGS_nooverwritepercent) / 100;
100
- // Only need to figure out first num_no_overwrite_keys of permutation
101
- no_overwrite_ids_.reserve(num_no_overwrite_keys);
102
- for (int64_t i = 0; i < num_no_overwrite_keys; i++) {
103
- int64_t rand_index = i + rnd.Next() % (max_key_ - i);
104
- // Swap i and rand_index;
105
- int64_t temp = permutation[i];
106
- permutation[i] = permutation[rand_index];
107
- permutation[rand_index] = temp;
108
- // Fill no_overwrite_ids_ with the first num_no_overwrite_keys of
109
- // permutation
110
- no_overwrite_ids_.insert(permutation[i]);
111
- }
112
- delete[] permutation;
113
-
114
79
  Status status;
115
80
  // TODO: We should introduce a way to explicitly disable verification
116
81
  // during shutdown. When that is disabled and FLAGS_expected_values_dir
@@ -160,13 +125,21 @@ class SharedState {
160
125
  for (int i = 0; i < FLAGS_column_families; ++i) {
161
126
  key_locks_[i].reset(new port::Mutex[num_locks]);
162
127
  }
163
- #ifndef NDEBUG
164
128
  if (FLAGS_read_fault_one_in) {
129
+ #ifdef NDEBUG
130
+ // Unsupported in release mode because it relies on
131
+ // `IGNORE_STATUS_IF_ERROR` to distinguish faults not expected to lead to
132
+ // failure.
133
+ fprintf(stderr,
134
+ "Cannot set nonzero value for --read_fault_one_in in "
135
+ "release mode.");
136
+ exit(1);
137
+ #else // NDEBUG
165
138
  SyncPoint::GetInstance()->SetCallBack("FaultInjectionIgnoreError",
166
139
  IgnoreReadErrorCallback);
167
140
  SyncPoint::GetInstance()->EnableProcessing();
141
+ #endif // NDEBUG
168
142
  }
169
- #endif // NDEBUG
170
143
  }
171
144
 
172
145
  ~SharedState() {
@@ -293,7 +266,7 @@ class SharedState {
293
266
  pending);
294
267
  }
295
268
 
296
- bool AllowsOverwrite(int64_t key) {
269
+ bool AllowsOverwrite(int64_t key) const {
297
270
  return no_overwrite_ids_.find(key) == no_overwrite_ids_.end();
298
271
  }
299
272
 
@@ -335,6 +308,36 @@ class SharedState {
335
308
  ignore_read_error = true;
336
309
  }
337
310
 
311
+ // Pick random keys in each column family that will not experience overwrite.
312
+ std::unordered_set<int64_t> GenerateNoOverwriteIds() const {
313
+ fprintf(stdout, "Choosing random keys with no overwrite\n");
314
+ // Start with the identity permutation. Subsequent iterations of
315
+ // for loop below will start with perm of previous for loop
316
+ std::vector<int64_t> permutation(max_key_);
317
+ for (int64_t i = 0; i < max_key_; ++i) {
318
+ permutation[i] = i;
319
+ }
320
+ // Now do the Knuth shuffle
321
+ const int64_t num_no_overwrite_keys =
322
+ (max_key_ * FLAGS_nooverwritepercent) / 100;
323
+ // Only need to figure out first num_no_overwrite_keys of permutation
324
+ std::unordered_set<int64_t> ret;
325
+ ret.reserve(num_no_overwrite_keys);
326
+ Random64 rnd(seed_);
327
+ for (int64_t i = 0; i < num_no_overwrite_keys; i++) {
328
+ assert(i < max_key_);
329
+ int64_t rand_index = i + rnd.Next() % (max_key_ - i);
330
+ // Swap i and rand_index;
331
+ int64_t temp = permutation[i];
332
+ permutation[i] = permutation[rand_index];
333
+ permutation[rand_index] = temp;
334
+ // Fill no_overwrite_ids_ with the first num_no_overwrite_keys of
335
+ // permutation
336
+ ret.insert(permutation[i]);
337
+ }
338
+ return ret;
339
+ }
340
+
338
341
  port::Mutex mu_;
339
342
  port::CondVar cv_;
340
343
  const uint32_t seed_;
@@ -355,7 +358,7 @@ class SharedState {
355
358
  std::atomic<bool> should_stop_test_;
356
359
 
357
360
  // Keys that should not be overwritten
358
- std::unordered_set<size_t> no_overwrite_ids_;
361
+ const std::unordered_set<int64_t> no_overwrite_ids_;
359
362
 
360
363
  std::unique_ptr<ExpectedStateManager> expected_state_manager_;
361
364
  // Cannot store `port::Mutex` directly in vector since it is not copyable