@nxtedition/rocksdb 15.4.1 → 15.5.0

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 (399) hide show
  1. package/binding.cc +24 -15
  2. package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
  3. package/deps/rocksdb/rocksdb/BUCK +42 -0
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
  5. package/deps/rocksdb/rocksdb/Makefile +59 -32
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
  7. package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
  8. package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
  9. package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
  10. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
  11. package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
  12. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
  13. package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
  14. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
  15. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
  16. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
  17. package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
  18. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
  24. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
  25. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
  26. package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
  27. package/deps/rocksdb/rocksdb/db/builder.h +7 -0
  28. package/deps/rocksdb/rocksdb/db/c.cc +373 -57
  29. package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
  51. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
  52. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
  53. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
  54. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
  55. package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
  56. package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
  57. package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
  58. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
  59. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
  60. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
  61. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
  62. package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
  63. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
  64. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
  65. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
  66. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
  71. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
  72. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
  73. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
  77. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
  78. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
  79. package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
  80. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
  81. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
  82. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
  83. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
  84. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
  85. package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
  86. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
  87. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
  88. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
  89. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
  90. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
  91. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
  92. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
  93. package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
  94. package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
  95. package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
  96. package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
  97. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
  98. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
  99. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
  100. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
  101. package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
  102. package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
  103. package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
  104. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
  105. package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
  106. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
  107. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
  108. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
  109. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
  110. package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
  111. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
  112. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
  113. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
  114. package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
  115. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
  116. package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
  117. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
  118. package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
  119. package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
  120. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
  121. package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
  122. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
  123. package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
  124. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
  125. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
  126. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
  127. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
  128. package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
  129. package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
  130. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
  131. package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
  132. package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
  133. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
  134. package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
  135. package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
  136. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
  137. package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
  138. package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
  139. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
  140. package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
  141. package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
  142. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
  143. package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
  144. package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
  145. package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
  146. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
  147. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
  148. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
  149. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
  150. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
  151. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
  152. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
  153. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
  154. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
  155. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
  156. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
  157. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
  158. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
  159. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
  160. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
  161. package/deps/rocksdb/rocksdb/env/env.cc +1 -0
  162. package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
  163. package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
  164. package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
  165. package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
  166. package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
  167. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
  168. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
  169. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
  170. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
  171. package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
  172. package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
  173. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
  174. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
  175. package/deps/rocksdb/rocksdb/folly.mk +22 -5
  176. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
  177. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
  178. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
  179. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
  180. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
  181. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
  182. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
  183. package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
  184. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
  185. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
  187. package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
  188. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
  191. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
  192. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
  193. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
  194. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
  195. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
  196. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
  197. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
  198. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
  199. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
  200. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
  201. package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
  202. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
  203. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
  204. package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
  205. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
  206. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
  207. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
  208. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
  209. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
  210. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  211. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
  212. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
  213. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
  214. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
  215. package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
  216. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
  217. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
  218. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
  219. package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
  220. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
  221. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
  222. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
  223. package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
  224. package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
  225. package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
  226. package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
  227. package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
  228. package/deps/rocksdb/rocksdb/options/options.cc +5 -1
  229. package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
  230. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
  231. package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
  232. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
  233. package/deps/rocksdb/rocksdb/port/lang.h +4 -0
  234. package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
  235. package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
  236. package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
  237. package/deps/rocksdb/rocksdb/src.mk +12 -0
  238. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
  239. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  240. package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
  241. package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
  246. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
  247. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
  248. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
  249. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
  250. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
  251. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
  252. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
  253. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
  254. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
  255. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
  256. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
  258. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
  259. package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
  260. package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
  261. package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
  262. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
  263. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
  264. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
  265. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
  266. package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
  267. package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
  268. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
  269. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
  270. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
  271. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
  272. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
  273. package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
  274. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
  275. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
  276. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
  277. package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
  278. package/deps/rocksdb/rocksdb/table/format.cc +27 -15
  279. package/deps/rocksdb/rocksdb/table/format.h +41 -15
  280. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
  281. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
  282. package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
  283. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
  284. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
  285. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
  286. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
  287. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
  288. package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
  289. package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
  290. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
  291. package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
  292. package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
  293. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
  294. package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
  295. package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
  296. package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
  297. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
  298. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
  299. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
  300. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
  301. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
  302. package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
  303. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
  304. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
  305. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
  306. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
  307. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
  308. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
  309. package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
  310. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
  311. package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
  312. package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
  313. package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
  314. package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
  315. package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
  316. package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
  317. package/deps/rocksdb/rocksdb/util/coding.h +14 -27
  318. package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
  319. package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
  320. package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
  321. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
  322. package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
  323. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
  324. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
  325. package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
  326. package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
  327. package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
  328. package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
  329. package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
  330. package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
  331. package/deps/rocksdb/rocksdb/util/math.h +3 -1
  332. package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
  333. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
  334. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
  335. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
  336. package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
  337. package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
  338. package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
  339. package/deps/rocksdb/rocksdb/util/status.cc +3 -1
  340. package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
  341. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
  342. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
  343. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
  344. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
  345. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
  346. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
  347. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
  348. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
  349. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
  350. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
  351. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
  352. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
  353. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
  354. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
  355. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
  356. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
  357. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
  358. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
  359. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
  360. package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
  361. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
  362. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
  363. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
  364. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
  365. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
  366. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
  367. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
  368. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
  369. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
  370. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
  371. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
  372. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
  373. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
  374. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
  375. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
  376. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
  377. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
  378. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
  379. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
  380. package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
  381. package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
  382. package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
  383. package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
  384. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
  385. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
  386. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
  387. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
  388. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
  389. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
  390. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
  391. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
  392. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
  393. package/deps/rocksdb/rocksdb.gyp +7 -0
  394. package/iterator.js +2 -2
  395. package/package.json +1 -1
  396. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  397. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  398. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include <cinttypes>
9
9
  #include <iomanip>
10
+ #include <memory>
10
11
 
11
12
  #include "db/db_test_util.h"
12
13
  #include "db/version_edit.h"
@@ -99,7 +100,7 @@ TEST_F(LdbCmdTest, MemEnv) {
99
100
  opts.env = env.get();
100
101
  opts.create_if_missing = true;
101
102
 
102
- DB* db = nullptr;
103
+ std::unique_ptr<DB> db;
103
104
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
104
105
  ASSERT_OK(DB::Open(opts, dbname, &db));
105
106
 
@@ -113,7 +114,7 @@ TEST_F(LdbCmdTest, MemEnv) {
113
114
  fopts.wait = true;
114
115
  ASSERT_OK(db->Flush(fopts));
115
116
 
116
- delete db;
117
+ db.reset();
117
118
 
118
119
  char arg1[] = "./ldb";
119
120
  char arg2[1024];
@@ -285,7 +286,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumNoChecksum) {
285
286
  opts.env = env.get();
286
287
  opts.create_if_missing = true;
287
288
 
288
- DB* db = nullptr;
289
+ std::unique_ptr<DB> db;
289
290
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
290
291
  ASSERT_OK(DB::Open(opts, dbname, &db));
291
292
 
@@ -322,7 +323,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumNoChecksum) {
322
323
  }
323
324
  ASSERT_OK(db->Flush(fopts));
324
325
  ASSERT_OK(db->Close());
325
- delete db;
326
+ db.reset();
326
327
 
327
328
  char arg1[] = "./ldb";
328
329
  char arg2[1024];
@@ -337,7 +338,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumNoChecksum) {
337
338
  ASSERT_OK(DB::Open(opts, dbname, &db));
338
339
 
339
340
  // Verify each sst file checksum value and checksum name
340
- FileChecksumTestHelper fct_helper(opts, db, dbname);
341
+ FileChecksumTestHelper fct_helper(opts, db.get(), dbname);
341
342
  ASSERT_OK(fct_helper.VerifyEachFileChecksum());
342
343
 
343
344
  // Manually trigger compaction
@@ -350,11 +351,11 @@ TEST_F(LdbCmdTest, DumpFileChecksumNoChecksum) {
350
351
  CompactRangeOptions options;
351
352
  ASSERT_OK(db->CompactRange(options, &begin, &end));
352
353
  // Verify each sst file checksum after compaction
353
- FileChecksumTestHelper fct_helper_ac(opts, db, dbname);
354
+ FileChecksumTestHelper fct_helper_ac(opts, db.get(), dbname);
354
355
  ASSERT_OK(fct_helper_ac.VerifyEachFileChecksum());
355
356
 
356
357
  ASSERT_OK(db->Close());
357
- delete db;
358
+ db.reset();
358
359
 
359
360
  ASSERT_EQ(0,
360
361
  LDBCommandRunner::RunCommand(4, argv, opts, LDBOptions(), nullptr));
@@ -364,7 +365,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumNoChecksum) {
364
365
  // Verify the checksum information in memory is the same as that in Manifest;
365
366
  std::vector<LiveFileMetaData> live_files;
366
367
  db->GetLiveFilesMetaData(&live_files);
367
- delete db;
368
+ db.reset();
368
369
  ASSERT_OK(fct_helper_ac.VerifyChecksumInManifest(live_files));
369
370
  }
370
371
 
@@ -376,7 +377,7 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumNoChecksum) {
376
377
  opts.create_if_missing = true;
377
378
  opts.enable_blob_files = true;
378
379
 
379
- DB* db = nullptr;
380
+ std::unique_ptr<DB> db;
380
381
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
381
382
  ASSERT_OK(DB::Open(opts, dbname, &db));
382
383
 
@@ -413,7 +414,7 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumNoChecksum) {
413
414
  }
414
415
  ASSERT_OK(db->Flush(fopts));
415
416
  ASSERT_OK(db->Close());
416
- delete db;
417
+ db.reset();
417
418
 
418
419
  char arg1[] = "./ldb";
419
420
  std::string arg2_str = "--db=" + dbname;
@@ -427,7 +428,7 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumNoChecksum) {
427
428
  ASSERT_OK(DB::Open(opts, dbname, &db));
428
429
 
429
430
  // Verify each sst and blob file checksum value and checksum name
430
- FileChecksumTestHelper fct_helper(opts, db, dbname);
431
+ FileChecksumTestHelper fct_helper(opts, db.get(), dbname);
431
432
  ASSERT_OK(fct_helper.VerifyEachFileChecksum());
432
433
 
433
434
  // Manually trigger compaction
@@ -443,11 +444,11 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumNoChecksum) {
443
444
  CompactRangeOptions options;
444
445
  ASSERT_OK(db->CompactRange(options, &begin, &end));
445
446
  // Verify each sst file checksum after compaction
446
- FileChecksumTestHelper fct_helper_ac(opts, db, dbname);
447
+ FileChecksumTestHelper fct_helper_ac(opts, db.get(), dbname);
447
448
  ASSERT_OK(fct_helper_ac.VerifyEachFileChecksum());
448
449
 
449
450
  ASSERT_OK(db->Close());
450
- delete db;
451
+ db.reset();
451
452
 
452
453
  ASSERT_EQ(0,
453
454
  LDBCommandRunner::RunCommand(4, argv, opts, LDBOptions(), nullptr));
@@ -461,7 +462,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumCRC32) {
461
462
  opts.create_if_missing = true;
462
463
  opts.file_checksum_gen_factory = GetFileChecksumGenCrc32cFactory();
463
464
 
464
- DB* db = nullptr;
465
+ std::unique_ptr<DB> db;
465
466
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
466
467
  ASSERT_OK(DB::Open(opts, dbname, &db));
467
468
 
@@ -498,7 +499,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumCRC32) {
498
499
  }
499
500
  ASSERT_OK(db->Flush(fopts));
500
501
  ASSERT_OK(db->Close());
501
- delete db;
502
+ db.reset();
502
503
 
503
504
  char arg1[] = "./ldb";
504
505
  char arg2[1024];
@@ -513,7 +514,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumCRC32) {
513
514
  ASSERT_OK(DB::Open(opts, dbname, &db));
514
515
 
515
516
  // Verify each sst file checksum value and checksum name
516
- FileChecksumTestHelper fct_helper(opts, db, dbname);
517
+ FileChecksumTestHelper fct_helper(opts, db.get(), dbname);
517
518
  ASSERT_OK(fct_helper.VerifyEachFileChecksum());
518
519
 
519
520
  // Manually trigger compaction
@@ -526,11 +527,11 @@ TEST_F(LdbCmdTest, DumpFileChecksumCRC32) {
526
527
  CompactRangeOptions options;
527
528
  ASSERT_OK(db->CompactRange(options, &begin, &end));
528
529
  // Verify each sst file checksum after compaction
529
- FileChecksumTestHelper fct_helper_ac(opts, db, dbname);
530
+ FileChecksumTestHelper fct_helper_ac(opts, db.get(), dbname);
530
531
  ASSERT_OK(fct_helper_ac.VerifyEachFileChecksum());
531
532
 
532
533
  ASSERT_OK(db->Close());
533
- delete db;
534
+ db.reset();
534
535
 
535
536
  ASSERT_EQ(0,
536
537
  LDBCommandRunner::RunCommand(4, argv, opts, LDBOptions(), nullptr));
@@ -543,7 +544,7 @@ TEST_F(LdbCmdTest, DumpFileChecksumCRC32) {
543
544
  ASSERT_OK(fct_helper_ac.VerifyChecksumInManifest(live_files));
544
545
 
545
546
  ASSERT_OK(db->Close());
546
- delete db;
547
+ db.reset();
547
548
  }
548
549
 
549
550
  TEST_F(LdbCmdTest, BlobDBDumpFileChecksumCRC32) {
@@ -555,7 +556,7 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumCRC32) {
555
556
  opts.file_checksum_gen_factory = GetFileChecksumGenCrc32cFactory();
556
557
  opts.enable_blob_files = true;
557
558
 
558
- DB* db = nullptr;
559
+ std::unique_ptr<DB> db;
559
560
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
560
561
  ASSERT_OK(DB::Open(opts, dbname, &db));
561
562
 
@@ -592,7 +593,7 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumCRC32) {
592
593
  }
593
594
  ASSERT_OK(db->Flush(fopts));
594
595
  ASSERT_OK(db->Close());
595
- delete db;
596
+ db.reset();
596
597
 
597
598
  char arg1[] = "./ldb";
598
599
  std::string arg2_str = "--db=" + dbname;
@@ -606,7 +607,7 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumCRC32) {
606
607
  ASSERT_OK(DB::Open(opts, dbname, &db));
607
608
 
608
609
  // Verify each sst and blob file checksum value and checksum name
609
- FileChecksumTestHelper fct_helper(opts, db, dbname);
610
+ FileChecksumTestHelper fct_helper(opts, db.get(), dbname);
610
611
  ASSERT_OK(fct_helper.VerifyEachFileChecksum());
611
612
 
612
613
  // Manually trigger compaction
@@ -622,11 +623,11 @@ TEST_F(LdbCmdTest, BlobDBDumpFileChecksumCRC32) {
622
623
  CompactRangeOptions options;
623
624
  ASSERT_OK(db->CompactRange(options, &begin, &end));
624
625
  // Verify each sst file checksum after compaction
625
- FileChecksumTestHelper fct_helper_ac(opts, db, dbname);
626
+ FileChecksumTestHelper fct_helper_ac(opts, db.get(), dbname);
626
627
  ASSERT_OK(fct_helper_ac.VerifyEachFileChecksum());
627
628
 
628
629
  ASSERT_OK(db->Close());
629
- delete db;
630
+ db.reset();
630
631
 
631
632
  ASSERT_EQ(0,
632
633
  LDBCommandRunner::RunCommand(4, argv, opts, LDBOptions(), nullptr));
@@ -678,7 +679,7 @@ TEST_F(LdbCmdTest, ListFileTombstone) {
678
679
  opts.env = env.get();
679
680
  opts.create_if_missing = true;
680
681
 
681
- DB* db = nullptr;
682
+ std::unique_ptr<DB> db;
682
683
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
683
684
  ASSERT_OK(DB::Open(opts, dbname, &db));
684
685
 
@@ -694,7 +695,7 @@ TEST_F(LdbCmdTest, ListFileTombstone) {
694
695
  ASSERT_OK(db->DeleteRange(wopts, db->DefaultColumnFamily(), "bar", "foo2"));
695
696
  ASSERT_OK(db->Flush(fopts));
696
697
 
697
- delete db;
698
+ db.reset();
698
699
 
699
700
  {
700
701
  char arg1[] = "./ldb";
@@ -771,7 +772,7 @@ TEST_F(LdbCmdTest, DisableConsistencyChecks) {
771
772
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
772
773
 
773
774
  {
774
- DB* db = nullptr;
775
+ std::unique_ptr<DB> db;
775
776
  ASSERT_OK(DB::Open(opts, dbname, &db));
776
777
 
777
778
  WriteOptions wopts;
@@ -785,8 +786,6 @@ TEST_F(LdbCmdTest, DisableConsistencyChecks) {
785
786
  ASSERT_OK(db->Put(wopts, "foo2", "3"));
786
787
  ASSERT_OK(db->Put(wopts, "bar2", "4"));
787
788
  ASSERT_OK(db->Flush(fopts));
788
-
789
- delete db;
790
789
  }
791
790
 
792
791
  {
@@ -890,7 +889,7 @@ TEST_F(LdbCmdTest, LoadCFOptionsAndOverride) {
890
889
  opts.env = env.get();
891
890
  opts.create_if_missing = true;
892
891
 
893
- DB* db = nullptr;
892
+ std::unique_ptr<DB> db;
894
893
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
895
894
  ASSERT_OK(DestroyDB(dbname, opts));
896
895
  ASSERT_OK(DB::Open(opts, dbname, &db));
@@ -901,7 +900,7 @@ TEST_F(LdbCmdTest, LoadCFOptionsAndOverride) {
901
900
  ASSERT_OK(db->CreateColumnFamily(cf_opts, "cf1", &cf_handle));
902
901
 
903
902
  delete cf_handle;
904
- delete db;
903
+ db.reset();
905
904
 
906
905
  char arg1[] = "./ldb";
907
906
  char arg2[1024];
@@ -933,7 +932,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
933
932
  opts.level0_file_num_compaction_trigger = 10;
934
933
  opts.create_if_missing = true;
935
934
 
936
- DB* db = nullptr;
935
+ std::unique_ptr<DB> db;
937
936
  std::string dbname = test::PerThreadDBPath(Env::Default(), "ldb_cmd_test");
938
937
  ASSERT_OK(DestroyDB(dbname, opts));
939
938
  ASSERT_OK(DB::Open(opts, dbname, &db));
@@ -957,8 +956,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
957
956
  uint64_t to_remove = numbers[1];
958
957
 
959
958
  // Close for unsafe_remove_sst_file
960
- delete db;
961
- db = nullptr;
959
+ db.reset();
962
960
 
963
961
  char arg1[] = "./ldb";
964
962
  char arg2[1024];
@@ -1007,8 +1005,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
1007
1005
 
1008
1006
  // Close for unsafe_remove_sst_file
1009
1007
  delete cf_handle;
1010
- delete db;
1011
- db = nullptr;
1008
+ db.reset();
1012
1009
 
1013
1010
  snprintf(arg4, sizeof(arg4), "%" PRIu64, to_remove);
1014
1011
  ASSERT_EQ(0,
@@ -1049,8 +1046,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
1049
1046
  for (auto& h : handles) {
1050
1047
  delete h;
1051
1048
  }
1052
- delete db;
1053
- db = nullptr;
1049
+ db.reset();
1054
1050
 
1055
1051
  snprintf(arg4, sizeof(arg4), "%" PRIu64, to_remove);
1056
1052
  ASSERT_EQ(0,
@@ -1066,7 +1062,7 @@ TEST_F(LdbCmdTest, UnsafeRemoveSstFile) {
1066
1062
  for (auto& h : handles) {
1067
1063
  delete h;
1068
1064
  }
1069
- delete db;
1065
+ db.reset();
1070
1066
  }
1071
1067
 
1072
1068
  TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
@@ -1078,7 +1074,7 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1078
1074
  opts.create_if_missing = true;
1079
1075
  opts.env = env.get();
1080
1076
 
1081
- DB* db = nullptr;
1077
+ std::unique_ptr<DB> db;
1082
1078
  std::string dbname = test::PerThreadDBPath(env.get(), "ldb_cmd_test");
1083
1079
  ASSERT_OK(DestroyDB(dbname, opts));
1084
1080
  ASSERT_OK(DB::Open(opts, dbname, &db));
@@ -1102,8 +1098,7 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1102
1098
  }
1103
1099
 
1104
1100
  // Close & reopen
1105
- delete db;
1106
- db = nullptr;
1101
+ db.reset();
1107
1102
  test_fs->PopRequestedSstFileTemperatures();
1108
1103
  ASSERT_OK(DB::Open(opts, dbname, &db));
1109
1104
 
@@ -1122,8 +1117,7 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1122
1117
  }
1123
1118
 
1124
1119
  // Close for update_manifest
1125
- delete db;
1126
- db = nullptr;
1120
+ db.reset();
1127
1121
 
1128
1122
  char arg1[] = "./ldb";
1129
1123
  char arg2[1024];
@@ -1151,7 +1145,7 @@ TEST_F(LdbCmdTest, FileTemperatureUpdateManifest) {
1151
1145
  for (auto& r : requests) {
1152
1146
  ASSERT_EQ(r.second, number_to_temp[r.first]);
1153
1147
  }
1154
- delete db;
1148
+ db.reset();
1155
1149
  }
1156
1150
 
1157
1151
  TEST_F(LdbCmdTest, RenameDbAndLoadOptions) {
@@ -1231,7 +1225,7 @@ TEST_F(LdbCmdTest, CustomComparator) {
1231
1225
  opts.comparator = &my_comparator;
1232
1226
 
1233
1227
  std::string dbname = test::PerThreadDBPath(env, "ldb_cmd_test");
1234
- DB* db = nullptr;
1228
+ std::unique_ptr<DB> db;
1235
1229
 
1236
1230
  std::vector<ColumnFamilyDescriptor> cfds = {
1237
1231
  {kDefaultColumnFamilyName, opts}, {"cf1", opts}, {"cf2", opts}};
@@ -1243,7 +1237,7 @@ TEST_F(LdbCmdTest, CustomComparator) {
1243
1237
  for (auto& h : handles) {
1244
1238
  ASSERT_OK(db->DestroyColumnFamilyHandle(h));
1245
1239
  }
1246
- delete db;
1240
+ db.reset();
1247
1241
 
1248
1242
  char arg1[] = "./ldb";
1249
1243
  std::string arg2 = "--db=" + dbname;
@@ -52,6 +52,13 @@ void LDBCommandRunner::PrintHelp(const LDBOptions& ldb_options,
52
52
  ret.append(" --" + LDBCommand::ARG_TTL +
53
53
  " with 'put','get','scan','dump','query','batchput'"
54
54
  " : DB supports ttl and value is internally timestamp-suffixed\n");
55
+ ret.append(" --" + LDBCommand::ARG_USE_TXN +
56
+ " : Open database as TransactionDB. Required for databases "
57
+ "created with WritePrepared or WriteUnprepared transactions.\n");
58
+ ret.append(" --" + LDBCommand::ARG_TXN_WRITE_POLICY +
59
+ "=<0|1|2> : Transaction write policy. "
60
+ "0=WRITE_COMMITTED (default), 1=WRITE_PREPARED, "
61
+ "2=WRITE_UNPREPARED\n");
55
62
  ret.append(" --" + LDBCommand::ARG_TRY_LOAD_OPTIONS +
56
63
  " : Try to load option file from DB. Default to true if " +
57
64
  LDBCommand::ARG_DB +
@@ -68,6 +75,8 @@ void LDBCommandRunner::PrintHelp(const LDBOptions& ldb_options,
68
75
  ret.append(" --" + LDBCommand::ARG_COMPRESSION_MAX_DICT_BYTES +
69
76
  "=<int,e.g.:16384>\n");
70
77
  ret.append(" --" + LDBCommand::ARG_BLOCK_SIZE + "=<block_size_in_bytes>\n");
78
+ ret.append(" --" + LDBCommand::ARG_UNIFORM_CV_THRESHOLD +
79
+ "=<double,e.g.:0.2>\n");
71
80
  ret.append(" --" + LDBCommand::ARG_AUTO_COMPACTION + "=<true|false>\n");
72
81
  ret.append(" --" + LDBCommand::ARG_DB_WRITE_BUFFER_SIZE +
73
82
  "=<int,e.g.:16777216>\n");
@@ -21,7 +21,7 @@ class ReduceLevelTest : public testing::Test {
21
21
  ReduceLevelTest() {
22
22
  dbname_ = test::PerThreadDBPath("db_reduce_levels_test");
23
23
  EXPECT_OK(DestroyDB(dbname_, Options()));
24
- db_ = nullptr;
24
+ db_.reset();
25
25
  }
26
26
 
27
27
  Status OpenDB(bool create_if_missing, int levels);
@@ -46,12 +46,12 @@ class ReduceLevelTest : public testing::Test {
46
46
  if (db_ == nullptr) {
47
47
  return Status::InvalidArgument("DB not opened.");
48
48
  }
49
- DBImpl* db_impl = static_cast_with_check<DBImpl>(db_);
49
+ DBImpl* db_impl = static_cast_with_check<DBImpl>(db_.get());
50
50
  return db_impl->TEST_FlushMemTable();
51
51
  }
52
52
 
53
53
  void MoveL0FileToLevel(int level) {
54
- DBImpl* db_impl = static_cast_with_check<DBImpl>(db_);
54
+ DBImpl* db_impl = static_cast_with_check<DBImpl>(db_.get());
55
55
  for (int i = 0; i < level; ++i) {
56
56
  ASSERT_OK(db_impl->TEST_CompactRange(i, nullptr, nullptr));
57
57
  }
@@ -59,8 +59,7 @@ class ReduceLevelTest : public testing::Test {
59
59
 
60
60
  void CloseDB() {
61
61
  if (db_ != nullptr) {
62
- delete db_;
63
- db_ = nullptr;
62
+ db_.reset();
64
63
  }
65
64
  }
66
65
 
@@ -75,7 +74,7 @@ class ReduceLevelTest : public testing::Test {
75
74
 
76
75
  private:
77
76
  std::string dbname_;
78
- DB* db_;
77
+ std::unique_ptr<DB> db_;
79
78
  };
80
79
 
81
80
  Status ReduceLevelTest::OpenDB(bool create_if_missing, int num_levels) {
@@ -523,7 +523,7 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
523
523
  bbto.block_size = block_size;
524
524
  bbto.enable_index_compression = enable_index_compression;
525
525
  // Maximize compression features available
526
- bbto.format_version = kLatestFormatVersion;
526
+ bbto.format_version = kLatestBbtFormatVersion;
527
527
  options.table_factory = std::make_shared<BlockBasedTableFactory>(bbto);
528
528
  }
529
529
  options.compression_opts.max_dict_bytes = compression_max_dict_bytes;
@@ -16,19 +16,20 @@
16
16
  namespace ROCKSDB_NAMESPACE {
17
17
 
18
18
  Status DefaultHooks::Open(const Options& db_options, const std::string& name,
19
- DB** dbptr) {
19
+ std::unique_ptr<DB>* dbptr) {
20
20
  return DB::Open(db_options, name, dbptr);
21
21
  };
22
22
 
23
23
  Status DefaultHooks::Open(
24
24
  const DBOptions& db_options, const std::string& name,
25
25
  const std::vector<ColumnFamilyDescriptor>& column_families,
26
- std::vector<ColumnFamilyHandle*>* handles, DB** dbptr) {
26
+ std::vector<ColumnFamilyHandle*>* handles, std::unique_ptr<DB>* dbptr) {
27
27
  return DB::Open(db_options, name, column_families, handles, dbptr);
28
28
  };
29
29
 
30
30
  Status DefaultHooks::OpenForReadOnly(const Options& options,
31
- const std::string& name, DB** dbptr,
31
+ const std::string& name,
32
+ std::unique_ptr<DB>* dbptr,
32
33
  bool error_if_wal_file_exists = false) {
33
34
  return DB::OpenForReadOnly(options, name, dbptr, error_if_wal_file_exists);
34
35
  };
@@ -36,7 +37,7 @@ Status DefaultHooks::OpenForReadOnly(const Options& options,
36
37
  Status DefaultHooks::OpenForReadOnly(
37
38
  const Options& options, const std::string& name,
38
39
  const std::vector<ColumnFamilyDescriptor>& column_families,
39
- std::vector<ColumnFamilyHandle*>* handles, DB** dbptr) {
40
+ std::vector<ColumnFamilyHandle*>* handles, std::unique_ptr<DB>* dbptr) {
40
41
  return DB::OpenForReadOnly(options, name, column_families, handles, dbptr);
41
42
  };
42
43
  Status DefaultHooks::OpenTransactionDB(
@@ -72,7 +73,7 @@ Status DefaultHooks::OpenOptimisticTransactionDB(
72
73
  Status DefaultHooks::OpenAsSecondary(const Options& options,
73
74
  const std::string& name,
74
75
  const std::string& secondary_path,
75
- DB** dbptr) {
76
+ std::unique_ptr<DB>* dbptr) {
76
77
  return DB::OpenAsSecondary(options, name, secondary_path, dbptr);
77
78
  }
78
79
  Status DefaultHooks::OpenAsFollower(const Options& options,
@@ -69,7 +69,7 @@ class TraceAnalyzerTest : public testing::Test {
69
69
  ro.iterate_lower_bound = &lower_bound;
70
70
  WriteOptions wo;
71
71
  TraceOptions trace_opt;
72
- DB* db_ = nullptr;
72
+ std::unique_ptr<DB> db_;
73
73
  std::string value;
74
74
  std::unique_ptr<TraceWriter> trace_writer;
75
75
  Iterator* single_iter = nullptr;
@@ -125,7 +125,7 @@ class TraceAnalyzerTest : public testing::Test {
125
125
  ASSERT_OK(env_->NewWritableFile(whole_path, &whole_f, env_options_));
126
126
  std::string whole_str = "0x61\n0x62\n0x63\n0x64\n0x65\n0x66\n";
127
127
  ASSERT_OK(whole_f->Append(whole_str));
128
- delete db_;
128
+ db_.reset();
129
129
  ASSERT_OK(DestroyDB(dbname_, options));
130
130
  }
131
131
 
@@ -786,7 +786,7 @@ TEST_F(TraceAnalyzerTest, Iterator) {
786
786
  }
787
787
 
788
788
  TEST_F(TraceAnalyzerTest, ExistsPreviousTraceWriteError) {
789
- DB* db_ = nullptr;
789
+ std::unique_ptr<DB> db_;
790
790
  Options options;
791
791
  options.create_if_missing = true;
792
792
 
@@ -823,7 +823,7 @@ TEST_F(TraceAnalyzerTest, ExistsPreviousTraceWriteError) {
823
823
  ASSERT_TRUE(s.ToString().find("Tracing has seen error") != std::string::npos);
824
824
  ASSERT_TRUE(s.ToString().find("Injected") != std::string::npos);
825
825
 
826
- delete db_;
826
+ db_.reset();
827
827
  ASSERT_OK(DestroyDB(dbname_, options));
828
828
  }
829
829
 
@@ -145,13 +145,11 @@ class WriteStress {
145
145
  }
146
146
 
147
147
  // open DB
148
- DB* db;
149
- Status s = DB::Open(options, FLAGS_db, &db);
148
+ Status s = DB::Open(options, FLAGS_db, &db_);
150
149
  if (!s.ok()) {
151
150
  fprintf(stderr, "Can't open database: %s\n", s.ToString().c_str());
152
151
  std::abort();
153
152
  }
154
- db_.reset(db);
155
153
  }
156
154
 
157
155
  void WriteThread() {
@@ -13,28 +13,28 @@ namespace ROCKSDB_NAMESPACE {
13
13
 
14
14
  // Background:
15
15
  // std::atomic is somewhat easy to misuse:
16
- // * Implicit conversion to T using std::memory_order_seq_cst, along with
17
- // memory order parameter defaults, make it easy to accidentally mix sequential
18
- // consistency ordering with acquire/release memory ordering. See
19
- // "The single total order might not be consistent with happens-before" at
20
- // https://en.cppreference.com/w/cpp/atomic/memory_order
16
+ // * Implicit conversion to T makes it easy to use an unnecessarily strong
17
+ // memory ordering (std::memory_order_seq_cst) and to hide atomic operations
18
+ // that should be evident on reading the code.
19
+ // * Similarly, defaulting to std::memory_order_seq_cst for atomic operations
20
+ // makes it easy to use unnecessarily strong orderings. (It's always safe if
21
+ // some ordering is safe, but it's better to be intentional and thoughtful when
22
+ // carefully optimizing code with atomics.) Legitimate needs for seq_cst vs.
23
+ // acq_rel are rare, such as drawing inferences across two atomics in
24
+ // implementing hazard pointers.
21
25
  // * It's easy to use nonsensical (UB) combinations like store with
22
- // std::memory_order_acquire.
23
- // * It is unlikely that anything in RocksDB will need std::memory_order_seq_cst
24
- // because sequential consistency for the user, potentially writing from
25
- // multiple threads, is provided by explicit versioning with sequence numbers.
26
- // If threads A & B update separate atomics, it's typically OK if threads C & D
27
- // see those updates in different orders.
26
+ // std::memory_order_acquire. Getting these right in development is an
27
+ // unnecessary cognitive overhead even if they are caught by UBSAN.
28
28
  //
29
- // For such reasons, we provide wrappers below to make safe usage easier.
29
+ // For such reasons, we provide wrappers below to make clear and explicit
30
+ // usage of atomics easier.
30
31
 
31
- // Wrapper around std::atomic to avoid certain bugs (see Background above).
32
+ // Wrapper around std::atomic for better code clarity (see Background above).
32
33
  //
33
- // This relaxed-only wrapper is intended for atomics that do not need
34
- // ordering constraints with other data reads/writes aside from those
35
- // necessary for computing data values or given by other happens-before
36
- // relationships. For example, a cross-thread counter that never returns
37
- // the same result can be a RelaxedAtomic.
34
+ // This relaxed-only wrapper is intended for atomics that are not used to
35
+ // synchronize other data across threads (only the atomic data), so can always
36
+ // used relaxed memory ordering. For example, a cross-thread counter that never
37
+ // returns the same result can be a RelaxedAtomic.
38
38
  template <typename T>
39
39
  class RelaxedAtomic {
40
40
  public:
@@ -72,14 +72,21 @@ class RelaxedAtomic {
72
72
  std::atomic<T> v_;
73
73
  };
74
74
 
75
- // Wrapper around std::atomic to avoid certain bugs (see Background above).
75
+ // A reasonably general-purpose wrapper around std::atomic for better code
76
+ // clarity (see Background above).
76
77
  //
77
- // Except for some unusual cases requiring sequential consistency, this is
78
- // a general-purpose atomic. Relaxed operations can be mixed in as appropriate.
78
+ // Operations use std::memory_order_acq_rel by default (or just acquire or just
79
+ // release for read-only and write-only operations), but relaxed operations are
80
+ // also available and can be mixed in when appropriate.
81
+ //
82
+ // Future: add std::memory_order_seqcst variants like StoreSeqCst if/when
83
+ // there's a need for them (rare). No distinct type is needed because the
84
+ // distinction between acq_rel and seq_cst is more about where it is used in
85
+ // combination with other atomics than the atomic itself.
79
86
  template <typename T>
80
- class AcqRelAtomic : public RelaxedAtomic<T> {
87
+ class Atomic : public RelaxedAtomic<T> {
81
88
  public:
82
- explicit AcqRelAtomic(T initial = {}) : RelaxedAtomic<T>(initial) {}
89
+ explicit Atomic(T initial = {}) : RelaxedAtomic<T>(initial) {}
83
90
  void Store(T desired) {
84
91
  RelaxedAtomic<T>::v_.store(desired, std::memory_order_release);
85
92
  }
@@ -64,9 +64,9 @@ std::unique_ptr<Compressor> AutoSkipCompressorWrapper::Clone() const {
64
64
  }
65
65
 
66
66
  std::unique_ptr<Compressor> AutoSkipCompressorWrapper::MaybeCloneSpecialized(
67
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const {
67
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
68
68
  auto clone =
69
- wrapped_->CloneMaybeSpecialized(block_type, std::move(dict_samples));
69
+ wrapped_->CloneMaybeSpecialized(block_type, std::move(dict_config));
70
70
  return std::make_unique<AutoSkipCompressorWrapper>(std::move(clone), opts_);
71
71
  }
72
72
 
@@ -189,11 +189,10 @@ const char* CostAwareCompressor::Name() const { return "CostAwareCompressor"; }
189
189
  std::unique_ptr<Compressor> CostAwareCompressor::Clone() const {
190
190
  return std::make_unique<CostAwareCompressor>(opts_);
191
191
  }
192
- size_t CostAwareCompressor::GetMaxSampleSizeIfWantDict(
192
+ Compressor::DictConfig CostAwareCompressor::GetDictGuidance(
193
193
  CacheEntryRole block_type) const {
194
194
  auto idx = allcompressors_index_.back();
195
- return allcompressors_[idx.first][idx.second]->GetMaxSampleSizeIfWantDict(
196
- block_type);
195
+ return allcompressors_[idx.first][idx.second]->GetDictGuidance(block_type);
197
196
  }
198
197
 
199
198
  Slice CostAwareCompressor::GetSerializedDict() const {
@@ -205,12 +204,12 @@ CompressionType CostAwareCompressor::GetPreferredCompressionType() const {
205
204
  return kZSTD;
206
205
  }
207
206
  std::unique_ptr<Compressor> CostAwareCompressor::MaybeCloneSpecialized(
208
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const {
207
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const {
209
208
  // TODO: full dictionary compression support. Currently this just falls
210
209
  // back on a non-multi compressor when asked to use a dictionary.
211
210
  auto idx = allcompressors_index_.back();
212
211
  return allcompressors_[idx.first][idx.second]->MaybeCloneSpecialized(
213
- block_type, std::move(dict_samples));
212
+ block_type, std::move(dict_config));
214
213
  }
215
214
  Status CostAwareCompressor::CompressBlock(Slice uncompressed_data,
216
215
  char* compressed_output,
@@ -66,7 +66,7 @@ class AutoSkipCompressorWrapper : public CompressorWrapper {
66
66
 
67
67
  std::unique_ptr<Compressor> Clone() const override;
68
68
  std::unique_ptr<Compressor> MaybeCloneSpecialized(
69
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const override;
69
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const override;
70
70
  Status CompressBlock(Slice uncompressed_data, char* compressed_output,
71
71
  size_t* compressed_output_size,
72
72
  CompressionType* out_compression_type,
@@ -153,12 +153,12 @@ class CostAwareCompressor : public Compressor {
153
153
  explicit CostAwareCompressor(const CompressionOptions& opts);
154
154
  const char* Name() const override;
155
155
  std::unique_ptr<Compressor> Clone() const override;
156
- size_t GetMaxSampleSizeIfWantDict(CacheEntryRole block_type) const override;
156
+ DictConfig GetDictGuidance(CacheEntryRole block_type) const override;
157
157
  Slice GetSerializedDict() const override;
158
158
  CompressionType GetPreferredCompressionType() const override;
159
159
  ManagedWorkingArea ObtainWorkingArea() override;
160
160
  std::unique_ptr<Compressor> MaybeCloneSpecialized(
161
- CacheEntryRole block_type, DictSampleArgs&& dict_samples) const override;
161
+ CacheEntryRole block_type, DictConfigArgs&& dict_config) const override;
162
162
 
163
163
  Status CompressBlock(Slice uncompressed_data, char* compressed_output,
164
164
  size_t* compressed_output_size,