@nxtedition/rocksdb 9.0.0 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/binding.cc +0 -21
  2. package/deps/rocksdb/rocksdb/CMakeLists.txt +13 -9
  3. package/deps/rocksdb/rocksdb/Makefile +15 -6
  4. package/deps/rocksdb/rocksdb/README.md +29 -0
  5. package/deps/rocksdb/rocksdb/TARGETS +17 -2
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
  7. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +74 -15
  8. package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
  9. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
  10. package/deps/rocksdb/rocksdb/cache/cache_test.cc +16 -4
  11. package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
  12. package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
  13. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2024 -14
  14. package/deps/rocksdb/rocksdb/cache/clock_cache.h +349 -23
  15. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +126 -51
  16. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +9 -0
  17. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +182 -7
  18. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +31 -14
  19. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -33
  20. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +293 -17
  21. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +21 -5
  22. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +10 -0
  23. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -3
  24. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
  25. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
  26. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
  27. package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
  28. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +25 -11
  29. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
  30. package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -1
  31. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +2 -1
  32. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +8 -0
  33. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
  34. package/deps/rocksdb/rocksdb/db/builder.cc +3 -3
  35. package/deps/rocksdb/rocksdb/db/c.cc +64 -0
  36. package/deps/rocksdb/rocksdb/db/c_test.c +36 -0
  37. package/deps/rocksdb/rocksdb/db/column_family.cc +23 -15
  38. package/deps/rocksdb/rocksdb/db/column_family.h +9 -0
  39. package/deps/rocksdb/rocksdb/db/column_family_test.cc +101 -5
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +36 -23
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +24 -10
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +3 -5
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +42 -18
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +7 -3
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +8 -6
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +1 -1
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +61 -0
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +146 -64
  51. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +13 -39
  52. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -0
  53. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +29 -7
  54. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +8 -3
  55. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +59 -0
  56. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
  57. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +186 -2
  58. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -0
  59. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +17 -5
  60. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +519 -240
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +104 -43
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +169 -66
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -1
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +12 -4
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -14
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +85 -53
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -7
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +99 -82
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +4 -14
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +24 -21
  71. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
  72. package/deps/rocksdb/rocksdb/db/db_iter.cc +83 -55
  73. package/deps/rocksdb/rocksdb/db/db_iter.h +10 -2
  74. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
  75. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
  76. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
  77. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +187 -1
  78. package/deps/rocksdb/rocksdb/db/db_options_test.cc +258 -0
  79. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +258 -0
  80. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +1 -0
  81. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
  82. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
  83. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
  84. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +3 -1
  85. package/deps/rocksdb/rocksdb/db/db_test.cc +134 -30
  86. package/deps/rocksdb/rocksdb/db/db_test2.cc +3 -0
  87. package/deps/rocksdb/rocksdb/db/db_test_util.cc +11 -6
  88. package/deps/rocksdb/rocksdb/db/db_test_util.h +5 -2
  89. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -0
  90. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +12 -0
  91. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +337 -1
  92. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
  93. package/deps/rocksdb/rocksdb/db/error_handler.cc +51 -34
  94. package/deps/rocksdb/rocksdb/db/error_handler.h +7 -6
  95. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +58 -0
  96. package/deps/rocksdb/rocksdb/db/flush_job.cc +17 -19
  97. package/deps/rocksdb/rocksdb/db/flush_job.h +3 -3
  98. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +2 -1
  99. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +2 -0
  100. package/deps/rocksdb/rocksdb/db/memtable.cc +18 -70
  101. package/deps/rocksdb/rocksdb/db/memtable_list.cc +1 -1
  102. package/deps/rocksdb/rocksdb/db/memtable_list.h +11 -1
  103. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +1 -1
  104. package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
  105. package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
  106. package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
  107. package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
  108. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +3 -0
  109. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
  110. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +2 -0
  111. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
  112. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
  113. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
  114. package/deps/rocksdb/rocksdb/db/repair.cc +4 -3
  115. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +454 -70
  116. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
  117. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
  118. package/deps/rocksdb/rocksdb/db/table_cache.cc +32 -19
  119. package/deps/rocksdb/rocksdb/db/table_cache.h +12 -6
  120. package/deps/rocksdb/rocksdb/db/version_edit.h +10 -4
  121. package/deps/rocksdb/rocksdb/db/version_set.cc +75 -73
  122. package/deps/rocksdb/rocksdb/db/version_set.h +8 -8
  123. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
  124. package/deps/rocksdb/rocksdb/db/version_set_test.cc +22 -11
  125. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
  126. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
  127. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
  128. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
  129. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
  130. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
  131. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
  132. package/deps/rocksdb/rocksdb/db/write_batch.cc +44 -20
  133. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
  134. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
  135. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
  136. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
  137. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +15 -10
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +108 -58
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +36 -14
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +1 -1
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +195 -130
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -2
  144. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +12 -12
  145. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
  146. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
  147. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -6
  148. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +14 -11
  149. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +44 -38
  150. package/deps/rocksdb/rocksdb/env/env.cc +5 -0
  151. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +1 -0
  152. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +50 -29
  153. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +32 -2
  154. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +513 -30
  155. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +8 -0
  156. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +38 -13
  157. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +14 -7
  158. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +42 -0
  159. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +65 -12
  160. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
  161. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +26 -0
  162. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +37 -4
  163. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +2 -0
  164. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +1 -0
  165. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
  166. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
  167. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +4 -0
  168. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
  169. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
  170. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -5
  171. package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
  172. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
  173. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +79 -8
  174. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +16 -0
  175. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
  176. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
  177. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +14 -3
  178. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +2 -0
  179. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
  180. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
  181. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
  182. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +9 -0
  183. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  184. package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +53 -2
  185. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +0 -2
  186. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -2
  187. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
  188. package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
  189. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
  190. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +6 -0
  191. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
  192. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +4 -0
  193. package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -0
  194. package/deps/rocksdb/rocksdb/options/db_options.cc +47 -2
  195. package/deps/rocksdb/rocksdb/options/db_options.h +3 -0
  196. package/deps/rocksdb/rocksdb/options/options_helper.cc +12 -0
  197. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -1
  198. package/deps/rocksdb/rocksdb/options/options_test.cc +6 -1
  199. package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
  200. package/deps/rocksdb/rocksdb/port/README +10 -0
  201. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  202. package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
  203. package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
  204. package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -0
  205. package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
  206. package/deps/rocksdb/rocksdb/src.mk +7 -1
  207. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1 -1
  208. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +3 -1
  209. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +275 -61
  210. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +96 -4
  211. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +179 -62
  212. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +35 -22
  213. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
  214. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +14 -9
  215. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +3 -1
  216. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
  217. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -12
  218. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +10 -5
  219. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +39 -18
  220. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
  221. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
  222. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
  223. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
  224. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +10 -8
  225. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -2
  226. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -2
  227. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
  228. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +3 -2
  229. package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
  230. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +6 -2
  231. package/deps/rocksdb/rocksdb/table/get_context.cc +52 -89
  232. package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
  233. package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
  234. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
  235. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +12 -0
  236. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +33 -6
  237. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
  238. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +2 -4
  239. package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
  240. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
  241. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
  242. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
  243. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +26 -43
  244. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +213 -28
  245. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
  246. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +0 -1
  247. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -10
  248. package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
  249. package/deps/rocksdb/rocksdb/util/cast_util.h +10 -0
  250. package/deps/rocksdb/rocksdb/util/comparator.cc +26 -1
  251. package/deps/rocksdb/rocksdb/util/compression.h +9 -3
  252. package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
  253. package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
  254. package/deps/rocksdb/rocksdb/util/overload.h +23 -0
  255. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
  256. package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
  257. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
  258. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
  259. package/deps/rocksdb/rocksdb/util/status.cc +1 -0
  260. package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
  261. package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
  262. package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -0
  263. package/deps/rocksdb/rocksdb/util/udt_util.cc +42 -0
  264. package/deps/rocksdb/rocksdb/util/udt_util.h +19 -0
  265. package/deps/rocksdb/rocksdb/util/udt_util_test.cc +14 -0
  266. package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
  267. package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
  268. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +2 -1
  269. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
  270. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +19 -15
  271. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
  272. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +5 -0
  273. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
  274. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +9 -0
  275. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
  276. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
  277. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +41 -0
  278. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
  279. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -0
  280. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +155 -0
  281. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
  282. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +81 -1
  283. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +2 -6
  284. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +7 -5
  285. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +2 -1
  286. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +3 -2
  287. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +57 -27
  288. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
  289. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
  290. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +105 -8
  291. package/deps/rocksdb/rocksdb.gyp +4 -2
  292. package/index.js +0 -8
  293. package/package.json +1 -1
  294. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  295. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
  296. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
  297. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
  298. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
  299. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
  300. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
  301. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
  302. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
  303. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
  304. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
@@ -27,34 +27,39 @@ void ThreadBody(void* v) {
27
27
  if (shared->AllInitialized()) {
28
28
  shared->GetCondVar()->SignalAll();
29
29
  }
30
- while (!shared->Started()) {
31
- shared->GetCondVar()->Wait();
32
- }
33
30
  }
34
- thread->shared->GetStressTest()->OperateDb(thread);
35
-
36
- {
37
- MutexLock l(shared->GetMutex());
38
- shared->IncOperated();
39
- if (shared->AllOperated()) {
40
- shared->GetCondVar()->SignalAll();
31
+ if (!FLAGS_verification_only) {
32
+ {
33
+ MutexLock l(shared->GetMutex());
34
+ while (!shared->Started()) {
35
+ shared->GetCondVar()->Wait();
36
+ }
41
37
  }
42
- while (!shared->VerifyStarted()) {
43
- shared->GetCondVar()->Wait();
38
+ thread->shared->GetStressTest()->OperateDb(thread);
39
+ {
40
+ MutexLock l(shared->GetMutex());
41
+ shared->IncOperated();
42
+ if (shared->AllOperated()) {
43
+ shared->GetCondVar()->SignalAll();
44
+ }
45
+ while (!shared->VerifyStarted()) {
46
+ shared->GetCondVar()->Wait();
47
+ }
44
48
  }
45
- }
46
49
 
47
- if (!FLAGS_skip_verifydb) {
48
- thread->shared->GetStressTest()->VerifyDb(thread);
49
- }
50
+ if (!FLAGS_skip_verifydb) {
51
+ thread->shared->GetStressTest()->VerifyDb(thread);
52
+ }
50
53
 
51
- {
52
- MutexLock l(shared->GetMutex());
53
- shared->IncDone();
54
- if (shared->AllDone()) {
55
- shared->GetCondVar()->SignalAll();
54
+ {
55
+ MutexLock l(shared->GetMutex());
56
+ shared->IncDone();
57
+ if (shared->AllDone()) {
58
+ shared->GetCondVar()->SignalAll();
59
+ }
56
60
  }
57
61
  }
62
+
58
63
  ThreadStatusUtil::UnregisterThread();
59
64
  }
60
65
  bool RunStressTestImpl(SharedState* shared) {
@@ -76,12 +81,30 @@ bool RunStressTestImpl(SharedState* shared) {
76
81
  stress->InitDb(shared);
77
82
  stress->FinishInitDb(shared);
78
83
 
79
- if (FLAGS_sync_fault_injection) {
80
- fault_fs_guard->SetFilesystemDirectWritable(false);
81
- }
82
84
  if (FLAGS_write_fault_one_in) {
85
+ if (!FLAGS_sync_fault_injection) {
86
+ // unsynced WAL loss is not supported without sync_fault_injection
87
+ fault_fs_guard->SetDirectWritableTypes({kWalFile});
88
+ }
89
+ IOStatus error_msg;
90
+ if (FLAGS_inject_error_severity <= 1 || FLAGS_inject_error_severity > 2) {
91
+ error_msg = IOStatus::IOError("Retryable injected write error");
92
+ error_msg.SetRetryable(true);
93
+ } else if (FLAGS_inject_error_severity == 2) {
94
+ error_msg = IOStatus::IOError("Fatal injected write error");
95
+ error_msg.SetDataLoss(true);
96
+ }
97
+ // TODO: inject write error for other file types including
98
+ // MANIFEST, CURRENT, and WAL files.
99
+ fault_fs_guard->SetRandomWriteError(
100
+ shared->GetSeed(), FLAGS_write_fault_one_in, error_msg,
101
+ /*inject_for_all_file_types=*/false, {FileType::kTableFile});
102
+ fault_fs_guard->SetFilesystemDirectWritable(false);
83
103
  fault_fs_guard->EnableWriteErrorInjection();
84
104
  }
105
+ if (FLAGS_sync_fault_injection) {
106
+ fault_fs_guard->SetFilesystemDirectWritable(false);
107
+ }
85
108
 
86
109
  uint32_t n = FLAGS_threads;
87
110
  uint64_t now = clock->NowMicros();
@@ -98,6 +121,11 @@ bool RunStressTestImpl(SharedState* shared) {
98
121
  shared->IncBgThreads();
99
122
  }
100
123
 
124
+ if (FLAGS_compressed_secondary_cache_size > 0 ||
125
+ FLAGS_compressed_secondary_cache_ratio > 0.0) {
126
+ shared->IncBgThreads();
127
+ }
128
+
101
129
  std::vector<ThreadState*> threads(n);
102
130
  for (uint32_t i = 0; i < n; i++) {
103
131
  threads[i] = new ThreadState(i, shared);
@@ -115,6 +143,13 @@ bool RunStressTestImpl(SharedState* shared) {
115
143
  &continuous_verification_thread);
116
144
  }
117
145
 
146
+ ThreadState compressed_cache_set_capacity_thread(0, shared);
147
+ if (FLAGS_compressed_secondary_cache_size > 0 ||
148
+ FLAGS_compressed_secondary_cache_ratio > 0.0) {
149
+ db_stress_env->StartThread(CompressedCacheSetCapacityThread,
150
+ &compressed_cache_set_capacity_thread);
151
+ }
152
+
118
153
  // Each thread goes through the following states:
119
154
  // initializing -> wait for others to init -> read/populate/depopulate
120
155
  // wait for others to operate -> verify -> done
@@ -141,45 +176,55 @@ bool RunStressTestImpl(SharedState* shared) {
141
176
  }
142
177
  }
143
178
 
144
- // This is after the verification step to avoid making all those `Get()`s
145
- // and `MultiGet()`s contend on the DB-wide trace mutex.
146
- if (!FLAGS_expected_values_dir.empty()) {
147
- stress->TrackExpectedState(shared);
148
- }
149
-
150
- now = clock->NowMicros();
151
- fprintf(stdout, "%s Starting database operations\n",
152
- clock->TimeToString(now / 1000000).c_str());
179
+ if (!FLAGS_verification_only) {
180
+ // This is after the verification step to avoid making all those `Get()`s
181
+ // and `MultiGet()`s contend on the DB-wide trace mutex.
182
+ if (!FLAGS_expected_values_dir.empty()) {
183
+ stress->TrackExpectedState(shared);
184
+ }
185
+ now = clock->NowMicros();
186
+ fprintf(stdout, "%s Starting database operations\n",
187
+ clock->TimeToString(now / 1000000).c_str());
153
188
 
154
- shared->SetStart();
155
- shared->GetCondVar()->SignalAll();
156
- while (!shared->AllOperated()) {
157
- shared->GetCondVar()->Wait();
158
- }
189
+ shared->SetStart();
190
+ shared->GetCondVar()->SignalAll();
191
+ while (!shared->AllOperated()) {
192
+ shared->GetCondVar()->Wait();
193
+ }
159
194
 
160
- now = clock->NowMicros();
161
- if (FLAGS_test_batches_snapshots) {
162
- fprintf(stdout, "%s Limited verification already done during gets\n",
163
- clock->TimeToString((uint64_t)now / 1000000).c_str());
164
- } else if (FLAGS_skip_verifydb) {
165
- fprintf(stdout, "%s Verification skipped\n",
166
- clock->TimeToString((uint64_t)now / 1000000).c_str());
167
- } else {
168
- fprintf(stdout, "%s Starting verification\n",
169
- clock->TimeToString((uint64_t)now / 1000000).c_str());
170
- }
195
+ now = clock->NowMicros();
196
+ if (FLAGS_test_batches_snapshots) {
197
+ fprintf(stdout, "%s Limited verification already done during gets\n",
198
+ clock->TimeToString((uint64_t)now / 1000000).c_str());
199
+ } else if (FLAGS_skip_verifydb) {
200
+ fprintf(stdout, "%s Verification skipped\n",
201
+ clock->TimeToString((uint64_t)now / 1000000).c_str());
202
+ } else {
203
+ fprintf(stdout, "%s Starting verification\n",
204
+ clock->TimeToString((uint64_t)now / 1000000).c_str());
205
+ }
171
206
 
172
- shared->SetStartVerify();
173
- shared->GetCondVar()->SignalAll();
174
- while (!shared->AllDone()) {
175
- shared->GetCondVar()->Wait();
207
+ shared->SetStartVerify();
208
+ shared->GetCondVar()->SignalAll();
209
+ while (!shared->AllDone()) {
210
+ shared->GetCondVar()->Wait();
211
+ }
176
212
  }
177
213
  }
178
214
 
179
- for (unsigned int i = 1; i < n; i++) {
180
- threads[0]->stats.Merge(threads[i]->stats);
215
+ // If we are running verification_only
216
+ // stats will be empty and trying to report them will
217
+ // emit no ops or writes error. To avoid this, merging and reporting stats
218
+ // are not executed when running with verification_only
219
+ // TODO: We need to create verification stats (e.g. how many keys
220
+ // are verified by which method) and report them here instead of operation
221
+ // stats.
222
+ if (!FLAGS_verification_only) {
223
+ for (unsigned int i = 1; i < n; i++) {
224
+ threads[0]->stats.Merge(threads[i]->stats);
225
+ }
226
+ threads[0]->stats.Report("Stress Test");
181
227
  }
182
- threads[0]->stats.Report("Stress Test");
183
228
 
184
229
  for (unsigned int i = 0; i < n; i++) {
185
230
  delete threads[i];
@@ -191,10 +236,15 @@ bool RunStressTestImpl(SharedState* shared) {
191
236
  fprintf(stdout, "%s Verification successful\n",
192
237
  clock->TimeToString(now / 1000000).c_str());
193
238
  }
194
- stress->PrintStatistics();
239
+
240
+ if (!FLAGS_verification_only) {
241
+ stress->PrintStatistics();
242
+ }
195
243
 
196
244
  if (FLAGS_compaction_thread_pool_adjust_interval > 0 ||
197
- FLAGS_continuous_verification_interval > 0) {
245
+ FLAGS_continuous_verification_interval > 0 ||
246
+ FLAGS_compressed_secondary_cache_size > 0 ||
247
+ FLAGS_compressed_secondary_cache_ratio > 0.0) {
198
248
  MutexLock l(shared->GetMutex());
199
249
  shared->SetShouldStopBgThread();
200
250
  while (!shared->BgThreadsFinished()) {
@@ -136,6 +136,9 @@ DEFINE_uint64(db_write_buffer_size,
136
136
  ROCKSDB_NAMESPACE::Options().db_write_buffer_size,
137
137
  "Number of bytes to buffer in all memtables before compacting");
138
138
 
139
+ DEFINE_bool(use_write_buffer_manager, false,
140
+ "Charge WriteBufferManager memory to the block cache");
141
+
139
142
  DEFINE_int32(
140
143
  write_buffer_size,
141
144
  static_cast<int32_t>(ROCKSDB_NAMESPACE::Options().write_buffer_size),
@@ -198,15 +201,23 @@ DEFINE_int32(open_files, ROCKSDB_NAMESPACE::Options().max_open_files,
198
201
  "Maximum number of files to keep open at the same time "
199
202
  "(use default if == 0)");
200
203
 
201
- DEFINE_int64(compressed_cache_size, 0,
202
- "Number of bytes to use as a cache of compressed data."
203
- " 0 means use default settings.");
204
+ DEFINE_uint64(compressed_secondary_cache_size, 0,
205
+ "Number of bytes to use as a cache of compressed data."
206
+ " 0 means use default settings.");
204
207
 
205
- DEFINE_int32(
206
- compressed_cache_numshardbits, -1,
207
- "Number of shards for the compressed block cache is 2 ** "
208
- "compressed_cache_numshardbits. Negative value means default settings. "
209
- "This is applied only if compressed_cache_size is greater than 0.");
208
+ DEFINE_int32(compressed_secondary_cache_numshardbits, -1,
209
+ "Number of shards for the compressed secondary cache is 2 ** "
210
+ "compressed_secondary_cache_numshardbits. "
211
+ "Negative value means default settings. This is applied only "
212
+ "if compressed_secondary_cache_size is greater than 0.");
213
+
214
+ DEFINE_double(compressed_secondary_cache_ratio, 0.0,
215
+ "Fraction of block cache memory budget to use for compressed "
216
+ "secondary cache");
217
+
218
+ DEFINE_int32(secondary_cache_update_interval, 30 * 1000 * 1000,
219
+ "Interval between modification of secondary cache parameters, in "
220
+ "microseconds");
210
221
 
211
222
  DEFINE_int32(compaction_style, ROCKSDB_NAMESPACE::Options().compaction_style,
212
223
  "");
@@ -526,10 +537,11 @@ DEFINE_double(bloom_bits, 10,
526
537
  "Negative means use default settings.");
527
538
 
528
539
  DEFINE_int32(
529
- ribbon_starting_level, 999,
540
+ bloom_before_level, 999,
530
541
  "Use Bloom filter on levels below specified and Ribbon beginning on level "
531
- "specified. Flush is considered level -1. 999 or more -> always Bloom. 0 "
532
- "-> Ribbon except Bloom for flush. -1 -> always Ribbon.");
542
+ "specified. Flush is considered level -1. Setting -1 -> always Ribbon. "
543
+ "0 -> Ribbon except Bloom for flush. INT_MAX (typically 2147483647) -> "
544
+ "always Bloom.");
533
545
 
534
546
  DEFINE_bool(partition_filters, false,
535
547
  "use partitioned filters "
@@ -1006,7 +1018,8 @@ DEFINE_string(file_checksum_impl, "none",
1006
1018
  "\"none\" for null.");
1007
1019
 
1008
1020
  DEFINE_int32(write_fault_one_in, 0,
1009
- "On non-zero, enables fault injection on write");
1021
+ "On non-zero, enables fault injection on write. Currently only"
1022
+ "injects write error when writing to SST files.");
1010
1023
 
1011
1024
  DEFINE_uint64(user_timestamp_size, 0,
1012
1025
  "Number of bytes for a user-defined timestamp. Currently, only "
@@ -1021,14 +1034,17 @@ DEFINE_string(secondary_cache_uri, "",
1021
1034
  DEFINE_int32(secondary_cache_fault_one_in, 0,
1022
1035
  "On non-zero, enables fault injection in secondary cache inserts"
1023
1036
  " and lookups");
1037
+ DEFINE_double(tiered_cache_percent_compressed, 0.0,
1038
+ "Percentage of total block cache budget to allocate to the "
1039
+ "compressed cache");
1024
1040
  DEFINE_int32(open_write_fault_one_in, 0,
1025
1041
  "On non-zero, enables fault injection on file writes "
1026
1042
  "during DB reopen.");
1027
1043
  DEFINE_int32(open_read_fault_one_in, 0,
1028
1044
  "On non-zero, enables fault injection on file reads "
1029
1045
  "during DB reopen.");
1030
- DEFINE_int32(injest_error_severity, 1,
1031
- "The severity of the injested IO Error. 1 is soft error (e.g. "
1046
+ DEFINE_int32(inject_error_severity, 1,
1047
+ "The severity of the injected IO Error. 1 is soft error (e.g. "
1032
1048
  "retryable error), 2 is fatal error, and the default is "
1033
1049
  "retryable error.");
1034
1050
  DEFINE_int32(prepopulate_block_cache,
@@ -1110,6 +1126,9 @@ DEFINE_uint64(stats_dump_period_sec,
1110
1126
  "Gap between printing stats to log in seconds");
1111
1127
 
1112
1128
  DEFINE_bool(use_io_uring, false, "Enable the use of IO uring on Posix");
1129
+
1130
+ DEFINE_bool(verification_only, false,
1131
+ "If true, tests will only execute verification step");
1113
1132
  extern "C" bool RocksDbIOUringEnable() { return FLAGS_use_io_uring; }
1114
1133
 
1115
1134
  DEFINE_uint32(memtable_max_range_deletions, 0,
@@ -1120,4 +1139,7 @@ DEFINE_uint32(bottommost_file_compaction_delay, 0,
1120
1139
  "Delay kBottommostFiles compaction by this amount of seconds."
1121
1140
  "See more in option comment.");
1122
1141
 
1142
+ DEFINE_bool(auto_readahead_size, false,
1143
+ "Does auto tuning of readahead_size when enabled during scans.");
1144
+
1123
1145
  #endif // GFLAGS
@@ -9,6 +9,7 @@
9
9
  #include <mutex>
10
10
  #include <unordered_set>
11
11
 
12
+ #include "db_stress_tool/db_stress_shared_state.h"
12
13
  #include "file/filename.h"
13
14
  #include "file/writable_file_writer.h"
14
15
  #include "rocksdb/db.h"
@@ -19,9 +20,12 @@
19
20
  #include "rocksdb/unique_id.h"
20
21
  #include "util/gflags_compat.h"
21
22
  #include "util/random.h"
23
+ #include "utilities/fault_injection_fs.h"
22
24
 
23
25
  DECLARE_int32(compact_files_one_in);
24
26
 
27
+ extern std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
28
+
25
29
  namespace ROCKSDB_NAMESPACE {
26
30
 
27
31
  // Verify across process executions that all seen IDs are unique
@@ -67,11 +71,23 @@ class DbStressListener : public EventListener {
67
71
  VerifyFilePath(info.file_path);
68
72
  // pretending doing some work here
69
73
  RandomSleep();
74
+ if (FLAGS_read_fault_one_in) {
75
+ (void)fault_fs_guard->GetAndResetErrorCount();
76
+ fault_fs_guard->DisableErrorInjection();
77
+ }
70
78
  }
71
79
 
72
80
  void OnFlushBegin(DB* /*db*/,
73
81
  const FlushJobInfo& /*flush_job_info*/) override {
74
82
  RandomSleep();
83
+ if (FLAGS_read_fault_one_in) {
84
+ // Hardcoded to inject retryable error as a non-retryable error would put
85
+ // the DB in read-only mode and then it would crash on the next write.
86
+ fault_fs_guard->SetThreadLocalReadErrorContext(
87
+ static_cast<uint32_t>(FLAGS_seed), FLAGS_read_fault_one_in,
88
+ true /* retryable */);
89
+ fault_fs_guard->EnableErrorInjection();
90
+ }
75
91
  }
76
92
 
77
93
  void OnTableFileDeleted(const TableFileDeletionInfo& /*info*/) override {
@@ -95,6 +111,24 @@ class DbStressListener : public EventListener {
95
111
  RandomSleep();
96
112
  }
97
113
 
114
+ void OnSubcompactionBegin(const SubcompactionJobInfo& /* si */) override {
115
+ if (FLAGS_read_fault_one_in) {
116
+ // Hardcoded to inject retryable error as a non-retryable error would put
117
+ // the DB in read-only mode and then it would crash on the next write.
118
+ fault_fs_guard->SetThreadLocalReadErrorContext(
119
+ static_cast<uint32_t>(FLAGS_seed), FLAGS_read_fault_one_in,
120
+ true /* retryable */);
121
+ fault_fs_guard->EnableErrorInjection();
122
+ }
123
+ }
124
+
125
+ void OnSubcompactionCompleted(const SubcompactionJobInfo& /* si */) override {
126
+ if (FLAGS_read_fault_one_in) {
127
+ (void)fault_fs_guard->GetAndResetErrorCount();
128
+ fault_fs_guard->DisableErrorInjection();
129
+ }
130
+ }
131
+
98
132
  void OnTableFileCreationStarted(
99
133
  const TableFileCreationBriefInfo& /*info*/) override {
100
134
  ++num_pending_file_creations_;
@@ -35,7 +35,7 @@ DECLARE_int32(open_metadata_write_fault_one_in);
35
35
  DECLARE_int32(open_write_fault_one_in);
36
36
  DECLARE_int32(open_read_fault_one_in);
37
37
 
38
- DECLARE_int32(injest_error_severity);
38
+ DECLARE_int32(inject_error_severity);
39
39
 
40
40
  namespace ROCKSDB_NAMESPACE {
41
41
  class StressTest;