@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
@@ -0,0 +1,46 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
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
+ #include "db/wide/wide_columns_helper.h"
7
+
8
+ #include <algorithm>
9
+
10
+ #include "db/wide/wide_column_serialization.h"
11
+
12
+ namespace ROCKSDB_NAMESPACE {
13
+ void WideColumnsHelper::DumpWideColumns(const WideColumns& columns,
14
+ std::ostream& os, bool hex) {
15
+ if (columns.empty()) {
16
+ return;
17
+ }
18
+ if (hex) {
19
+ os << std::hex;
20
+ }
21
+ auto it = columns.begin();
22
+ os << *it;
23
+ for (++it; it != columns.end(); ++it) {
24
+ os << ' ' << *it;
25
+ }
26
+ }
27
+
28
+ Status WideColumnsHelper::DumpSliceAsWideColumns(const Slice& value,
29
+ std::ostream& os, bool hex) {
30
+ WideColumns columns;
31
+ Slice value_copy = value;
32
+ const Status s = WideColumnSerialization::Deserialize(value_copy, columns);
33
+ if (s.ok()) {
34
+ DumpWideColumns(columns, os, hex);
35
+ }
36
+ return s;
37
+ }
38
+
39
+ void WideColumnsHelper::SortColumns(WideColumns& columns) {
40
+ std::sort(columns.begin(), columns.end(),
41
+ [](const WideColumn& lhs, const WideColumn& rhs) {
42
+ return lhs.name().compare(rhs.name()) < 0;
43
+ });
44
+ }
45
+
46
+ } // namespace ROCKSDB_NAMESPACE
@@ -0,0 +1,40 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
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
+ #pragma once
7
+ #include <ostream>
8
+ #include <string>
9
+
10
+ #include "rocksdb/rocksdb_namespace.h"
11
+ #include "rocksdb/wide_columns.h"
12
+
13
+ namespace ROCKSDB_NAMESPACE {
14
+
15
+ class WideColumnsHelper {
16
+ public:
17
+ static void DumpWideColumns(const WideColumns& columns, std::ostream& os,
18
+ bool hex);
19
+
20
+ static Status DumpSliceAsWideColumns(const Slice& value, std::ostream& os,
21
+ bool hex);
22
+
23
+ static bool HasDefaultColumn(const WideColumns& columns) {
24
+ return !columns.empty() && columns.front().name() == kDefaultWideColumnName;
25
+ }
26
+
27
+ static bool HasDefaultColumnOnly(const WideColumns& columns) {
28
+ return columns.size() == 1 &&
29
+ columns.front().name() == kDefaultWideColumnName;
30
+ }
31
+
32
+ static const Slice& GetDefaultColumn(const WideColumns& columns) {
33
+ assert(HasDefaultColumn(columns));
34
+ return columns.front().value();
35
+ }
36
+
37
+ static void SortColumns(WideColumns& columns);
38
+ };
39
+
40
+ } // namespace ROCKSDB_NAMESPACE
@@ -0,0 +1,39 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
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
+ #include "db/wide/wide_columns_helper.h"
7
+
8
+ #include "db/wide/wide_column_serialization.h"
9
+ #include "test_util/testharness.h"
10
+ #include "util/coding.h"
11
+
12
+ namespace ROCKSDB_NAMESPACE {
13
+
14
+ TEST(WideColumnsHelperTest, DumpWideColumns) {
15
+ WideColumns columns{{"foo", "bar"}, {"hello", "world"}};
16
+ std::ostringstream oss;
17
+ WideColumnsHelper::DumpWideColumns(columns, oss, false /* hex */);
18
+ EXPECT_EQ("foo:bar hello:world", oss.str());
19
+ }
20
+
21
+ TEST(WideColumnsHelperTest, DumpSliceAsWideColumns) {
22
+ WideColumns columns{{"foo", "bar"}, {"hello", "world"}};
23
+ std::string output;
24
+ ASSERT_OK(WideColumnSerialization::Serialize(columns, output));
25
+ Slice input(output);
26
+
27
+ std::ostringstream oss;
28
+ ASSERT_OK(
29
+ WideColumnsHelper::DumpSliceAsWideColumns(input, oss, false /* hex */));
30
+
31
+ EXPECT_EQ("foo:bar hello:world", oss.str());
32
+ }
33
+ } // namespace ROCKSDB_NAMESPACE
34
+
35
+ int main(int argc, char** argv) {
36
+ ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
37
+ ::testing::InitGoogleTest(&argc, argv);
38
+ return RUN_ALL_TESTS();
39
+ }
@@ -57,6 +57,7 @@
57
57
  #include "db/snapshot_impl.h"
58
58
  #include "db/trim_history_scheduler.h"
59
59
  #include "db/wide/wide_column_serialization.h"
60
+ #include "db/wide/wide_columns_helper.h"
60
61
  #include "db/write_batch_internal.h"
61
62
  #include "monitoring/perf_context_imp.h"
62
63
  #include "monitoring/statistics_impl.h"
@@ -948,10 +949,7 @@ Status WriteBatchInternal::PutEntity(WriteBatch* b, uint32_t column_family_id,
948
949
  }
949
950
 
950
951
  WideColumns sorted_columns(columns);
951
- std::sort(sorted_columns.begin(), sorted_columns.end(),
952
- [](const WideColumn& lhs, const WideColumn& rhs) {
953
- return lhs.name().compare(rhs.name()) < 0;
954
- });
952
+ WideColumnsHelper::SortColumns(sorted_columns);
955
953
 
956
954
  std::string entity;
957
955
  const Status s = WideColumnSerialization::Serialize(sorted_columns, entity);
@@ -2485,13 +2483,15 @@ class MemTableInserter : public WriteBatch::Handler {
2485
2483
  }
2486
2484
 
2487
2485
  if (perform_merge) {
2488
- // 1) Get the existing value
2489
- std::string get_value;
2486
+ // 1) Get the existing value. Use the wide column APIs to make sure we
2487
+ // don't lose any columns in the process.
2488
+ PinnableWideColumns existing;
2490
2489
 
2491
2490
  // Pass in the sequence number so that we also include previous merge
2492
2491
  // operations in the same batch.
2493
2492
  SnapshotImpl read_from_snapshot;
2494
2493
  read_from_snapshot.number_ = sequence_;
2494
+
2495
2495
  // TODO: plumb Env::IOActivity
2496
2496
  ReadOptions read_options;
2497
2497
  read_options.snapshot = &read_from_snapshot;
@@ -2500,26 +2500,47 @@ class MemTableInserter : public WriteBatch::Handler {
2500
2500
  if (cf_handle == nullptr) {
2501
2501
  cf_handle = db_->DefaultColumnFamily();
2502
2502
  }
2503
- Status get_status = db_->Get(read_options, cf_handle, key, &get_value);
2503
+
2504
+ Status get_status =
2505
+ db_->GetEntity(read_options, cf_handle, key, &existing);
2504
2506
  if (!get_status.ok()) {
2505
2507
  // Failed to read a key we know exists. Store the delta in memtable.
2506
2508
  perform_merge = false;
2507
2509
  } else {
2508
- Slice get_value_slice = Slice(get_value);
2509
-
2510
2510
  // 2) Apply this merge
2511
2511
  auto merge_operator = moptions->merge_operator;
2512
2512
  assert(merge_operator);
2513
2513
 
2514
+ const auto& columns = existing.columns();
2515
+
2516
+ Status merge_status;
2514
2517
  std::string new_value;
2515
- // `op_failure_scope` (an output parameter) is not provided (set to
2516
- // nullptr) since a failure must be propagated regardless of its value.
2517
- Status merge_status = MergeHelper::TimedFullMerge(
2518
- merge_operator, key, &get_value_slice, {value}, &new_value,
2519
- moptions->info_log, moptions->statistics,
2520
- SystemClock::Default().get(), /* result_operand */ nullptr,
2521
- /* update_num_ops_stats */ false,
2522
- /* op_failure_scope */ nullptr);
2518
+ ValueType new_value_type;
2519
+
2520
+ if (WideColumnsHelper::HasDefaultColumnOnly(columns)) {
2521
+ // `op_failure_scope` (an output parameter) is not provided (set to
2522
+ // nullptr) since a failure must be propagated regardless of its
2523
+ // value.
2524
+ merge_status = MergeHelper::TimedFullMerge(
2525
+ merge_operator, key, MergeHelper::kPlainBaseValue,
2526
+ WideColumnsHelper::GetDefaultColumn(columns), {value},
2527
+ moptions->info_log, moptions->statistics,
2528
+ SystemClock::Default().get(),
2529
+ /* update_num_ops_stats */ false, &new_value,
2530
+ /* result_operand */ nullptr, &new_value_type,
2531
+ /* op_failure_scope */ nullptr);
2532
+ } else {
2533
+ // `op_failure_scope` (an output parameter) is not provided (set to
2534
+ // nullptr) since a failure must be propagated regardless of its
2535
+ // value.
2536
+ merge_status = MergeHelper::TimedFullMerge(
2537
+ merge_operator, key, MergeHelper::kWideBaseValue, columns,
2538
+ {value}, moptions->info_log, moptions->statistics,
2539
+ SystemClock::Default().get(),
2540
+ /* update_num_ops_stats */ false, &new_value,
2541
+ /* result_operand */ nullptr, &new_value_type,
2542
+ /* op_failure_scope */ nullptr);
2543
+ }
2523
2544
 
2524
2545
  if (!merge_status.ok()) {
2525
2546
  // Failed to merge!
@@ -2528,15 +2549,18 @@ class MemTableInserter : public WriteBatch::Handler {
2528
2549
  } else {
2529
2550
  // 3) Add value to memtable
2530
2551
  assert(!concurrent_memtable_writes_);
2552
+ assert(new_value_type == kTypeValue ||
2553
+ new_value_type == kTypeWideColumnEntity);
2554
+
2531
2555
  if (kv_prot_info != nullptr) {
2532
2556
  auto merged_kv_prot_info =
2533
2557
  kv_prot_info->StripC(column_family_id).ProtectS(sequence_);
2534
2558
  merged_kv_prot_info.UpdateV(value, new_value);
2535
- merged_kv_prot_info.UpdateO(kTypeMerge, kTypeValue);
2536
- ret_status = mem->Add(sequence_, kTypeValue, key, new_value,
2559
+ merged_kv_prot_info.UpdateO(kTypeMerge, new_value_type);
2560
+ ret_status = mem->Add(sequence_, new_value_type, key, new_value,
2537
2561
  &merged_kv_prot_info);
2538
2562
  } else {
2539
- ret_status = mem->Add(sequence_, kTypeValue, key, new_value,
2563
+ ret_status = mem->Add(sequence_, new_value_type, key, new_value,
2540
2564
  nullptr /* kv_prot_info */);
2541
2565
  }
2542
2566
  }
@@ -9,6 +9,7 @@ add_executable(db_stress${ARTIFACT_SUFFIX}
9
9
  db_stress_shared_state.cc
10
10
  db_stress_stat.cc
11
11
  db_stress_test_base.cc
12
+ db_stress_wide_merge_operator.cc
12
13
  db_stress_tool.cc
13
14
  expected_state.cc
14
15
  expected_value.cc
@@ -52,11 +52,11 @@ class BatchedOpsStressTest : public StressTest {
52
52
  const std::string k = num + key_body;
53
53
  const std::string v = value_body + num;
54
54
 
55
- if (FLAGS_use_merge) {
56
- batch.Merge(cfh, k, v);
57
- } else if (FLAGS_use_put_entity_one_in > 0 &&
58
- (value_base % FLAGS_use_put_entity_one_in) == 0) {
55
+ if (FLAGS_use_put_entity_one_in > 0 &&
56
+ (value_base % FLAGS_use_put_entity_one_in) == 0) {
59
57
  batch.PutEntity(cfh, k, GenerateWideColumns(value_base, v));
58
+ } else if (FLAGS_use_merge) {
59
+ batch.Merge(cfh, k, v);
60
60
  } else {
61
61
  batch.Put(cfh, k, v);
62
62
  }
@@ -36,18 +36,15 @@ class CfConsistencyStressTest : public StressTest {
36
36
 
37
37
  WriteBatch batch;
38
38
 
39
- const bool use_put_entity = !FLAGS_use_merge &&
40
- FLAGS_use_put_entity_one_in > 0 &&
41
- (value_base % FLAGS_use_put_entity_one_in) == 0;
42
-
43
39
  for (auto cf : rand_column_families) {
44
40
  ColumnFamilyHandle* const cfh = column_families_[cf];
45
41
  assert(cfh);
46
42
 
47
- if (FLAGS_use_merge) {
48
- batch.Merge(cfh, k, v);
49
- } else if (use_put_entity) {
43
+ if (FLAGS_use_put_entity_one_in > 0 &&
44
+ (value_base % FLAGS_use_put_entity_one_in) == 0) {
50
45
  batch.PutEntity(cfh, k, GenerateWideColumns(value_base, v));
46
+ } else if (FLAGS_use_merge) {
47
+ batch.Merge(cfh, k, v);
51
48
  } else {
52
49
  batch.Put(cfh, k, v);
53
50
  }
@@ -13,6 +13,7 @@
13
13
 
14
14
  #include <cmath>
15
15
 
16
+ #include "rocksdb/secondary_cache.h"
16
17
  #include "util/file_checksum_helper.h"
17
18
  #include "util/xxhash.h"
18
19
 
@@ -21,6 +22,8 @@ ROCKSDB_NAMESPACE::Env* db_stress_env = nullptr;
21
22
  // If non-null, injects read error at a rate specified by the
22
23
  // read_fault_one_in or write_fault_one_in flag
23
24
  std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
25
+ std::shared_ptr<ROCKSDB_NAMESPACE::SecondaryCache> compressed_secondary_cache;
26
+ std::shared_ptr<ROCKSDB_NAMESPACE::Cache> block_cache;
24
27
  enum ROCKSDB_NAMESPACE::CompressionType compression_type_e =
25
28
  ROCKSDB_NAMESPACE::kSnappyCompression;
26
29
  enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e =
@@ -148,6 +151,88 @@ void DbVerificationThread(void* v) {
148
151
  }
149
152
  }
150
153
 
154
+ void CompressedCacheSetCapacityThread(void* v) {
155
+ assert(FLAGS_compressed_secondary_cache_size > 0 ||
156
+ FLAGS_compressed_secondary_cache_ratio > 0.0);
157
+ auto* thread = reinterpret_cast<ThreadState*>(v);
158
+ SharedState* shared = thread->shared;
159
+ while (true) {
160
+ {
161
+ MutexLock l(shared->GetMutex());
162
+ if (shared->ShouldStopBgThread()) {
163
+ shared->IncBgThreadsFinished();
164
+ if (shared->BgThreadsFinished()) {
165
+ shared->GetCondVar()->SignalAll();
166
+ }
167
+ return;
168
+ }
169
+ }
170
+ db_stress_env->SleepForMicroseconds(FLAGS_secondary_cache_update_interval);
171
+ if (FLAGS_compressed_secondary_cache_size > 0) {
172
+ Status s = compressed_secondary_cache->SetCapacity(0);
173
+ size_t capacity;
174
+ if (s.ok()) {
175
+ s = compressed_secondary_cache->GetCapacity(capacity);
176
+ assert(capacity == 0);
177
+ }
178
+ db_stress_env->SleepForMicroseconds(10 * 1000 * 1000);
179
+ if (s.ok()) {
180
+ s = compressed_secondary_cache->SetCapacity(
181
+ FLAGS_compressed_secondary_cache_size);
182
+ }
183
+ if (s.ok()) {
184
+ s = compressed_secondary_cache->GetCapacity(capacity);
185
+ assert(capacity == FLAGS_compressed_secondary_cache_size);
186
+ }
187
+ if (!s.ok()) {
188
+ fprintf(stderr, "Compressed cache Set/GetCapacity returned error: %s\n",
189
+ s.ToString().c_str());
190
+ }
191
+ } else if (FLAGS_compressed_secondary_cache_ratio > 0.0) {
192
+ if (thread->rand.OneIn(2)) {
193
+ size_t capacity = block_cache->GetCapacity();
194
+ size_t adjustment;
195
+ if (FLAGS_use_write_buffer_manager && FLAGS_db_write_buffer_size > 0) {
196
+ adjustment = (capacity - FLAGS_db_write_buffer_size);
197
+ } else {
198
+ adjustment = capacity;
199
+ }
200
+ // Lower by upto 50% of usable block cache capacity
201
+ adjustment = (adjustment * thread->rand.Uniform(50)) / 100;
202
+ block_cache->SetCapacity(capacity - adjustment);
203
+ fprintf(stderr, "New cache capacity = %lu\n",
204
+ block_cache->GetCapacity());
205
+ db_stress_env->SleepForMicroseconds(10 * 1000 * 1000);
206
+ block_cache->SetCapacity(capacity);
207
+ } else {
208
+ Status s;
209
+ double new_comp_cache_ratio =
210
+ (double)thread->rand.Uniform(
211
+ FLAGS_compressed_secondary_cache_ratio * 100) /
212
+ 100;
213
+ if (new_comp_cache_ratio == 0.0) {
214
+ new_comp_cache_ratio = 0.05;
215
+ }
216
+ fprintf(stderr, "New comp cache ratio = %f\n", new_comp_cache_ratio);
217
+
218
+ s = UpdateTieredCache(block_cache, /*capacity*/ -1,
219
+ new_comp_cache_ratio);
220
+ if (s.ok()) {
221
+ db_stress_env->SleepForMicroseconds(10 * 1000 * 1000);
222
+ }
223
+ if (s.ok()) {
224
+ s = UpdateTieredCache(block_cache, /*capacity*/ -1,
225
+ FLAGS_compressed_secondary_cache_ratio);
226
+ }
227
+ if (!s.ok()) {
228
+ fprintf(stderr, "UpdateTieredCache returned error: %s\n",
229
+ s.ToString().c_str());
230
+ }
231
+ }
232
+ }
233
+ }
234
+ }
235
+
151
236
  void PrintKeyValue(int cf, uint64_t key, const char* value, size_t sz) {
152
237
  if (!FLAGS_verbose) {
153
238
  return;
@@ -270,10 +355,7 @@ WideColumns GenerateExpectedWideColumns(uint32_t value_base,
270
355
 
271
356
  WideColumns columns = GenerateWideColumns(value_base, slice);
272
357
 
273
- std::sort(columns.begin(), columns.end(),
274
- [](const WideColumn& lhs, const WideColumn& rhs) {
275
- return lhs.name().compare(rhs.name()) < 0;
276
- });
358
+ WideColumnsHelper::SortColumns(columns);
277
359
 
278
360
  return columns;
279
361
  }
@@ -296,15 +378,11 @@ bool VerifyWideColumns(const Slice& value, const WideColumns& columns) {
296
378
  }
297
379
 
298
380
  bool VerifyWideColumns(const WideColumns& columns) {
299
- if (columns.empty()) {
300
- return false;
301
- }
302
-
303
- if (columns.front().name() != kDefaultWideColumnName) {
381
+ if (!WideColumnsHelper::HasDefaultColumn(columns)) {
304
382
  return false;
305
383
  }
306
384
 
307
- const Slice& value_of_default = columns.front().value();
385
+ const Slice& value_of_default = WideColumnsHelper::GetDefaultColumn(columns);
308
386
 
309
387
  return VerifyWideColumns(value_of_default, columns);
310
388
  }
@@ -37,6 +37,7 @@
37
37
 
38
38
  #include "db/db_impl/db_impl.h"
39
39
  #include "db/version_set.h"
40
+ #include "db/wide/wide_columns_helper.h"
40
41
  #include "db_stress_tool/db_stress_env_wrapper.h"
41
42
  #include "db_stress_tool/db_stress_listener.h"
42
43
  #include "db_stress_tool/db_stress_shared_state.h"
@@ -107,11 +108,14 @@ DECLARE_int32(max_write_buffer_number);
107
108
  DECLARE_int32(min_write_buffer_number_to_merge);
108
109
  DECLARE_int32(max_write_buffer_number_to_maintain);
109
110
  DECLARE_int64(max_write_buffer_size_to_maintain);
111
+ DECLARE_bool(use_write_buffer_manager);
110
112
  DECLARE_double(memtable_prefix_bloom_size_ratio);
111
113
  DECLARE_bool(memtable_whole_key_filtering);
112
114
  DECLARE_int32(open_files);
113
- DECLARE_int64(compressed_cache_size);
114
- DECLARE_int32(compressed_cache_numshardbits);
115
+ DECLARE_uint64(compressed_secondary_cache_size);
116
+ DECLARE_int32(compressed_secondary_cache_numshardbits);
117
+ DECLARE_int32(secondary_cache_update_interval);
118
+ DECLARE_double(compressed_secondary_cache_ratio);
115
119
  DECLARE_int32(compaction_style);
116
120
  DECLARE_int32(compaction_pri);
117
121
  DECLARE_int32(num_levels);
@@ -158,7 +162,7 @@ DECLARE_double(experimental_mempurge_threshold);
158
162
  DECLARE_bool(enable_write_thread_adaptive_yield);
159
163
  DECLARE_int32(reopen);
160
164
  DECLARE_double(bloom_bits);
161
- DECLARE_int32(ribbon_starting_level);
165
+ DECLARE_int32(bloom_before_level);
162
166
  DECLARE_bool(partition_filters);
163
167
  DECLARE_bool(optimize_filters_for_memory);
164
168
  DECLARE_bool(detect_filter_construct_corruption);
@@ -254,6 +258,7 @@ DECLARE_int32(verify_db_one_in);
254
258
  DECLARE_int32(continuous_verification_interval);
255
259
  DECLARE_int32(get_property_one_in);
256
260
  DECLARE_string(file_checksum_impl);
261
+ DECLARE_bool(verification_only);
257
262
 
258
263
  // Options for transaction dbs.
259
264
  // Use TransactionDB (a.k.a. Pessimistic Transaction DB)
@@ -346,6 +351,7 @@ DECLARE_uint64(initial_auto_readahead_size);
346
351
  DECLARE_uint64(max_auto_readahead_size);
347
352
  DECLARE_uint64(num_file_reads_for_auto_readahead);
348
353
  DECLARE_bool(use_io_uring);
354
+ DECLARE_bool(auto_readahead_size);
349
355
 
350
356
  constexpr long KB = 1024;
351
357
  constexpr int kRandomValueMaxFactor = 3;
@@ -355,6 +361,9 @@ constexpr int kValueMaxLen = 100;
355
361
  extern ROCKSDB_NAMESPACE::Env* db_stress_env;
356
362
  extern ROCKSDB_NAMESPACE::Env* db_stress_listener_env;
357
363
  extern std::shared_ptr<ROCKSDB_NAMESPACE::FaultInjectionTestFS> fault_fs_guard;
364
+ extern std::shared_ptr<ROCKSDB_NAMESPACE::SecondaryCache>
365
+ compressed_secondary_cache;
366
+ extern std::shared_ptr<ROCKSDB_NAMESPACE::Cache> block_cache;
358
367
 
359
368
  extern enum ROCKSDB_NAMESPACE::CompressionType compression_type_e;
360
369
  extern enum ROCKSDB_NAMESPACE::CompressionType bottommost_compression_type_e;
@@ -627,13 +636,7 @@ inline std::string WideColumnsToHex(const WideColumns& columns) {
627
636
 
628
637
  std::ostringstream oss;
629
638
 
630
- oss << std::hex;
631
-
632
- auto it = columns.begin();
633
- oss << *it;
634
- for (++it; it != columns.end(); ++it) {
635
- oss << ' ' << *it;
636
- }
639
+ WideColumnsHelper::DumpWideColumns(columns, oss, true);
637
640
 
638
641
  return oss.str();
639
642
  }
@@ -653,6 +656,8 @@ extern void PoolSizeChangeThread(void* v);
653
656
 
654
657
  extern void DbVerificationThread(void* v);
655
658
 
659
+ extern void CompressedCacheSetCapacityThread(void* v);
660
+
656
661
  extern void TimestampedSnapshotsThread(void* v);
657
662
 
658
663
  extern void PrintKeyValue(int cf, uint64_t key, const char* value, size_t sz);