@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
@@ -305,7 +305,8 @@ int RegisterTtlObjects(ObjectLibrary& library, const std::string& /*arg*/) {
305
305
  return static_cast<int>(library.GetFactoryCount(&num_types));
306
306
  }
307
307
  // Open the db inside DBWithTTLImpl because options needs pointer to its ttl
308
- DBWithTTLImpl::DBWithTTLImpl(DB* db) : DBWithTTL(db), closed_(false) {}
308
+ DBWithTTLImpl::DBWithTTLImpl(std::unique_ptr<DB>&& db)
309
+ : DBWithTTL(std::move(db)), closed_(false) {}
309
310
 
310
311
  DBWithTTLImpl::~DBWithTTLImpl() {
311
312
  if (!closed_) {
@@ -372,7 +373,7 @@ Status DBWithTTL::Open(
372
373
  DBWithTTLImpl::SanitizeOptions(
373
374
  ttls[i], &column_families_sanitized[i].options, clock);
374
375
  }
375
- DB* db;
376
+ std::unique_ptr<DB> db;
376
377
 
377
378
  Status st;
378
379
  if (read_only) {
@@ -382,7 +383,7 @@ Status DBWithTTL::Open(
382
383
  st = DB::Open(db_options, dbname, column_families_sanitized, handles, &db);
383
384
  }
384
385
  if (st.ok()) {
385
- *dbptr = new DBWithTTLImpl(db);
386
+ *dbptr = new DBWithTTLImpl(std::move(db));
386
387
  } else {
387
388
  *dbptr = nullptr;
388
389
  }
@@ -32,7 +32,7 @@ class DBWithTTLImpl : public DBWithTTL {
32
32
  SystemClock* clock);
33
33
 
34
34
  static void RegisterTtlClasses();
35
- explicit DBWithTTLImpl(DB* db);
35
+ explicit DBWithTTLImpl(std::unique_ptr<DB>&& db);
36
36
 
37
37
  virtual ~DBWithTTLImpl();
38
38
 
@@ -658,7 +658,7 @@ TEST_F(TtlTest, TtlFiftenYears) {
658
658
  }
659
659
 
660
660
  TEST_F(TtlTest, ColumnFamiliesTest) {
661
- DB* db;
661
+ std::unique_ptr<DB> db;
662
662
  Options options;
663
663
  options.create_if_missing = true;
664
664
  options.env = env_.get();
@@ -669,7 +669,7 @@ TEST_F(TtlTest, ColumnFamiliesTest) {
669
669
  "ttl_column_family", &handle));
670
670
 
671
671
  delete handle;
672
- delete db;
672
+ db.reset();
673
673
 
674
674
  std::vector<ColumnFamilyDescriptor> column_families;
675
675
  column_families.emplace_back(kDefaultColumnFamilyName,
@@ -165,9 +165,9 @@ struct WriteBatchIndexEntry {
165
165
  uint32_t column_family; // column family of the entry.
166
166
  // The following three fields are only maintained when the WBWI is created
167
167
  // with overwrite_key = true.
168
- uint32_t update_count; // The number of updates (1-based) for this key up to
169
- // this entry.
170
- bool has_single_del; // whether single del was issued for this key
168
+ uint32_t update_count; // The number of updates (1-based) for this key up to
169
+ // this entry.
170
+ bool has_single_del; // whether single del was issued for this key
171
171
  bool has_overwritten_single_del; // whether a single del for this key was
172
172
  // overwritten by another key
173
173
  // The following two fields are used when search_key is null.
@@ -364,7 +364,7 @@ class WBWIBaseTest : public testing::Test {
364
364
 
365
365
  if (db_ != nullptr) {
366
366
  ReleaseSnapshot();
367
- delete db_;
367
+ db_.reset();
368
368
  EXPECT_OK(DestroyDB(dbname_, options_));
369
369
  }
370
370
  }
@@ -435,7 +435,7 @@ class WBWIBaseTest : public testing::Test {
435
435
  }
436
436
 
437
437
  public:
438
- DB* db_;
438
+ std::unique_ptr<DB> db_;
439
439
  std::string dbname_;
440
440
  Options options_;
441
441
  WriteOptions write_opts_;
@@ -1594,21 +1594,21 @@ TEST_P(WriteBatchWithIndexTest, TestGetFromBatchAndDB) {
1594
1594
  ASSERT_OK(batch_->Put("a", "batch_->a"));
1595
1595
  ASSERT_OK(batch_->Delete("b"));
1596
1596
 
1597
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "a", &value));
1597
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "a", &value));
1598
1598
  ASSERT_EQ("batch_->a", value);
1599
1599
 
1600
- Status s = batch_->GetFromBatchAndDB(db_, read_opts_, "b", &value);
1600
+ Status s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "b", &value);
1601
1601
  ASSERT_TRUE(s.IsNotFound());
1602
1602
 
1603
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "c", &value));
1603
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "c", &value));
1604
1604
  ASSERT_EQ("c", value);
1605
1605
 
1606
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "x", &value);
1606
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "x", &value);
1607
1607
  ASSERT_TRUE(s.IsNotFound());
1608
1608
 
1609
1609
  ASSERT_OK(db_->Delete(write_opts_, "x"));
1610
1610
 
1611
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "x", &value);
1611
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "x", &value);
1612
1612
  ASSERT_TRUE(s.IsNotFound());
1613
1613
  }
1614
1614
 
@@ -1630,24 +1630,24 @@ TEST_P(WriteBatchWithIndexTest, TestGetFromBatchAndDBMerge) {
1630
1630
  ASSERT_OK(batch_->Merge("d", "d1"));
1631
1631
  ASSERT_OK(batch_->Merge("e", "e0"));
1632
1632
 
1633
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "a", &value));
1633
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "a", &value));
1634
1634
  ASSERT_EQ("a0,a1,a2", value);
1635
1635
 
1636
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "b", &value));
1636
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "b", &value));
1637
1637
  ASSERT_EQ("b0,b1,b2", value);
1638
1638
 
1639
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "c", &value));
1639
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "c", &value));
1640
1640
  ASSERT_EQ("c0", value);
1641
1641
 
1642
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "d", &value));
1642
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "d", &value));
1643
1643
  ASSERT_EQ("d0,d1", value);
1644
1644
 
1645
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "e", &value));
1645
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "e", &value));
1646
1646
  ASSERT_EQ("e0", value);
1647
1647
 
1648
1648
  ASSERT_OK(db_->Delete(write_opts_, "x"));
1649
1649
 
1650
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "x", &value);
1650
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "x", &value);
1651
1651
  ASSERT_TRUE(s.IsNotFound());
1652
1652
 
1653
1653
  const Snapshot* snapshot = db_->GetSnapshot();
@@ -1656,42 +1656,44 @@ TEST_P(WriteBatchWithIndexTest, TestGetFromBatchAndDBMerge) {
1656
1656
 
1657
1657
  ASSERT_OK(db_->Delete(write_opts_, "a"));
1658
1658
 
1659
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "a", &value));
1659
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "a", &value));
1660
1660
  ASSERT_EQ("a1,a2", value);
1661
1661
 
1662
- ASSERT_OK(
1663
- s = batch_->GetFromBatchAndDB(db_, snapshot_read_options, "a", &value));
1662
+ ASSERT_OK(s = batch_->GetFromBatchAndDB(db_.get(), snapshot_read_options, "a",
1663
+ &value));
1664
1664
  ASSERT_EQ("a0,a1,a2", value);
1665
1665
 
1666
1666
  ASSERT_OK(batch_->Delete("a"));
1667
1667
 
1668
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "a", &value);
1668
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "a", &value);
1669
1669
  ASSERT_TRUE(s.IsNotFound());
1670
1670
 
1671
- s = batch_->GetFromBatchAndDB(db_, snapshot_read_options, "a", &value);
1671
+ s = batch_->GetFromBatchAndDB(db_.get(), snapshot_read_options, "a", &value);
1672
1672
  ASSERT_TRUE(s.IsNotFound());
1673
1673
 
1674
1674
  ASSERT_OK(s = db_->Merge(write_opts_, "c", "c1"));
1675
1675
 
1676
- ASSERT_OK(s = batch_->GetFromBatchAndDB(db_, read_opts_, "c", &value));
1676
+ ASSERT_OK(s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "c", &value));
1677
1677
  ASSERT_EQ("c0,c1", value);
1678
1678
 
1679
- ASSERT_OK(
1680
- s = batch_->GetFromBatchAndDB(db_, snapshot_read_options, "c", &value));
1679
+ ASSERT_OK(s = batch_->GetFromBatchAndDB(db_.get(), snapshot_read_options, "c",
1680
+ &value));
1681
1681
  ASSERT_EQ("c0", value);
1682
1682
 
1683
1683
  ASSERT_OK(db_->Put(write_opts_, "e", "e1"));
1684
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "e", &value));
1684
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "e", &value));
1685
1685
  ASSERT_EQ("e1,e0", value);
1686
1686
 
1687
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, snapshot_read_options, "e", &value));
1687
+ ASSERT_OK(
1688
+ batch_->GetFromBatchAndDB(db_.get(), snapshot_read_options, "e", &value));
1688
1689
  ASSERT_EQ("e0", value);
1689
1690
 
1690
1691
  ASSERT_OK(s = db_->Delete(write_opts_, "e"));
1691
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "e", &value));
1692
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "e", &value));
1692
1693
  ASSERT_EQ("e0", value);
1693
1694
 
1694
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, snapshot_read_options, "e", &value));
1695
+ ASSERT_OK(
1696
+ batch_->GetFromBatchAndDB(db_.get(), snapshot_read_options, "e", &value));
1695
1697
  ASSERT_EQ("e0", value);
1696
1698
 
1697
1699
  db_->ReleaseSnapshot(snapshot);
@@ -1703,24 +1705,24 @@ TEST_F(WBWIOverwriteTest, TestGetFromBatchAndDBMerge2) {
1703
1705
 
1704
1706
  std::string value;
1705
1707
 
1706
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "A", &value);
1708
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "A", &value);
1707
1709
  ASSERT_TRUE(s.IsNotFound());
1708
1710
 
1709
1711
  ASSERT_OK(batch_->Merge("A", "xxx"));
1710
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "A", &value));
1712
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "A", &value));
1711
1713
  ASSERT_EQ(value, "xxx");
1712
1714
 
1713
1715
  ASSERT_OK(batch_->Merge("A", "yyy"));
1714
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "A", &value));
1716
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "A", &value));
1715
1717
  ASSERT_EQ(value, "xxx,yyy");
1716
1718
 
1717
1719
  ASSERT_OK(db_->Put(write_opts_, "A", "a0"));
1718
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "A", &value));
1720
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "A", &value));
1719
1721
  ASSERT_EQ(value, "a0,xxx,yyy");
1720
1722
 
1721
1723
  ASSERT_OK(batch_->Delete("A"));
1722
1724
 
1723
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "A", &value);
1725
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "A", &value);
1724
1726
  ASSERT_TRUE(s.IsNotFound());
1725
1727
  }
1726
1728
 
@@ -1735,7 +1737,7 @@ TEST_P(WriteBatchWithIndexTest, TestGetFromBatchAndDBMerge3) {
1735
1737
  ASSERT_OK(db_->Flush(flush_options, db_->DefaultColumnFamily()));
1736
1738
  ASSERT_OK(batch_->Merge("A", "2"));
1737
1739
 
1738
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "A", &value));
1740
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "A", &value));
1739
1741
  ASSERT_EQ(value, "1,2");
1740
1742
  }
1741
1743
 
@@ -1761,23 +1763,23 @@ TEST_P(WriteBatchWithIndexTest, TestPinnedGetFromBatchAndDB) {
1761
1763
  // Do it again with a flushed DB...
1762
1764
  ASSERT_OK(db_->Flush(FlushOptions(), db_->DefaultColumnFamily()));
1763
1765
  }
1764
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "a", &value));
1766
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "a", &value));
1765
1767
  ASSERT_EQ("a0,a1,a2", value.ToString());
1766
1768
 
1767
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "b", &value));
1769
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "b", &value));
1768
1770
  ASSERT_EQ("b0,b1,b2", value.ToString());
1769
1771
 
1770
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "c", &value));
1772
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "c", &value));
1771
1773
  ASSERT_EQ("c0", value.ToString());
1772
1774
 
1773
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "d", &value));
1775
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "d", &value));
1774
1776
  ASSERT_EQ("d0,d1", value.ToString());
1775
1777
 
1776
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "e", &value));
1778
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "e", &value));
1777
1779
  ASSERT_EQ("e0", value.ToString());
1778
1780
  ASSERT_OK(db_->Delete(write_opts_, "x"));
1779
1781
 
1780
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "x", &value);
1782
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "x", &value);
1781
1783
  ASSERT_TRUE(s.IsNotFound());
1782
1784
  }
1783
1785
  }
@@ -2595,7 +2597,7 @@ TEST_P(WriteBatchWithIndexTest, MultiGetTest) {
2595
2597
  std::vector<PinnableSlice> values(keys.size());
2596
2598
  std::vector<Status> statuses(keys.size());
2597
2599
 
2598
- batch_->MultiGetFromBatchAndDB(db_, read_opts_, cf0, key_slices.size(),
2600
+ batch_->MultiGetFromBatchAndDB(db_.get(), read_opts_, cf0, key_slices.size(),
2599
2601
  key_slices.data(), values.data(),
2600
2602
  statuses.data(), false);
2601
2603
  for (size_t i = 0; i < keys.size(); ++i) {
@@ -2674,7 +2676,7 @@ TEST_P(WriteBatchWithIndexTest, MultiGetTest2) {
2674
2676
  int random = rnd.Uniform(num_keys);
2675
2677
  key_slices.emplace_back(keys[random]);
2676
2678
  }
2677
- batch_->MultiGetFromBatchAndDB(db_, read_opts_, cf0, keys_per_pass,
2679
+ batch_->MultiGetFromBatchAndDB(db_.get(), read_opts_, cf0, keys_per_pass,
2678
2680
  key_slices.data(), values.data(),
2679
2681
  statuses.data(), false);
2680
2682
  for (size_t i = 0; i < keys_per_pass; i++) {
@@ -2827,9 +2829,9 @@ TEST_P(WriteBatchWithIndexTest, GetFromBatchAndDBAfterMerge) {
2827
2829
  ASSERT_OK(db_->Put(write_opts_, "o", "aa"));
2828
2830
  ASSERT_OK(batch_->Merge("o", "bb")); // Merging bb under key "o"
2829
2831
  ASSERT_OK(batch_->Merge("m", "cc")); // Merging bc under key "m"
2830
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "o", &value));
2832
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "o", &value));
2831
2833
  ASSERT_EQ(value, "aa,bb");
2832
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "m", &value));
2834
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "m", &value));
2833
2835
  ASSERT_EQ(value, "cc");
2834
2836
  }
2835
2837
 
@@ -2843,19 +2845,19 @@ TEST_P(WriteBatchWithIndexTest, GetAfterPut) {
2843
2845
  ASSERT_OK(batch_->Put("key", "aa")); // Writing aa under key
2844
2846
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2845
2847
  ASSERT_EQ(value, "aa");
2846
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2848
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2847
2849
  ASSERT_EQ(value, "aa");
2848
2850
 
2849
2851
  ASSERT_OK(batch_->Merge("key", "bb")); // Merging bb under key
2850
2852
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2851
2853
  ASSERT_EQ(value, "aa,bb");
2852
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2854
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2853
2855
  ASSERT_EQ(value, "aa,bb");
2854
2856
 
2855
2857
  ASSERT_OK(batch_->Merge("key", "cc")); // Merging cc under key
2856
2858
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2857
2859
  ASSERT_EQ(value, "aa,bb,cc");
2858
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2860
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2859
2861
  ASSERT_EQ(value, "aa,bb,cc");
2860
2862
  }
2861
2863
 
@@ -2868,25 +2870,25 @@ TEST_P(WriteBatchWithIndexTest, GetAfterMergePut) {
2868
2870
  ASSERT_OK(batch_->Merge("key", "aa")); // Merging aa under key
2869
2871
  Status s = batch_->GetFromBatch(cf0, options_, "key", &value);
2870
2872
  ASSERT_EQ(s.code(), Status::Code::kMergeInProgress);
2871
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2873
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2872
2874
  ASSERT_EQ(value, "orig,aa");
2873
2875
 
2874
2876
  ASSERT_OK(batch_->Merge("key", "bb")); // Merging bb under key
2875
2877
  s = batch_->GetFromBatch(cf0, options_, "key", &value);
2876
2878
  ASSERT_EQ(s.code(), Status::Code::kMergeInProgress);
2877
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2879
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2878
2880
  ASSERT_EQ(value, "orig,aa,bb");
2879
2881
 
2880
2882
  ASSERT_OK(batch_->Put("key", "cc")); // Writing cc under key
2881
2883
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2882
2884
  ASSERT_EQ(value, "cc");
2883
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2885
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2884
2886
  ASSERT_EQ(value, "cc");
2885
2887
 
2886
2888
  ASSERT_OK(batch_->Merge("key", "dd")); // Merging dd under key
2887
2889
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2888
2890
  ASSERT_EQ(value, "cc,dd");
2889
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2891
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2890
2892
  ASSERT_EQ(value, "cc,dd");
2891
2893
  }
2892
2894
 
@@ -2898,30 +2900,30 @@ TEST_P(WriteBatchWithIndexTest, GetAfterMergeDelete) {
2898
2900
  ASSERT_OK(batch_->Merge("key", "aa")); // Merging aa under key
2899
2901
  Status s = batch_->GetFromBatch(cf0, options_, "key", &value);
2900
2902
  ASSERT_EQ(s.code(), Status::Code::kMergeInProgress);
2901
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2903
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2902
2904
  ASSERT_EQ(value, "aa");
2903
2905
 
2904
2906
  ASSERT_OK(batch_->Merge("key", "bb")); // Merging bb under key
2905
2907
  s = batch_->GetFromBatch(cf0, options_, "key", &value);
2906
2908
  ASSERT_EQ(s.code(), Status::Code::kMergeInProgress);
2907
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2909
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2908
2910
  ASSERT_EQ(value, "aa,bb");
2909
2911
 
2910
2912
  ASSERT_OK(batch_->Delete("key")); // Delete key from batch
2911
2913
  s = batch_->GetFromBatch(cf0, options_, "key", &value);
2912
2914
  ASSERT_TRUE(s.IsNotFound());
2913
- s = batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value);
2915
+ s = batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value);
2914
2916
  ASSERT_TRUE(s.IsNotFound());
2915
2917
 
2916
2918
  ASSERT_OK(batch_->Merge("key", "cc")); // Merging cc under key
2917
2919
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2918
2920
  ASSERT_EQ(value, "cc");
2919
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2921
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2920
2922
  ASSERT_EQ(value, "cc");
2921
2923
  ASSERT_OK(batch_->Merge("key", "dd")); // Merging dd under key
2922
2924
  ASSERT_OK(batch_->GetFromBatch(cf0, options_, "key", &value));
2923
2925
  ASSERT_EQ(value, "cc,dd");
2924
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "key", &value));
2926
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "key", &value));
2925
2927
  ASSERT_EQ(value, "cc,dd");
2926
2928
  }
2927
2929
 
@@ -2947,9 +2949,9 @@ TEST_P(WriteBatchWithIndexTest, TestBadMergeOperator) {
2947
2949
  ASSERT_OK(batch_->Put("b", "b0"));
2948
2950
 
2949
2951
  ASSERT_OK(batch_->Merge("a", "a1"));
2950
- ASSERT_NOK(batch_->GetFromBatchAndDB(db_, read_opts_, "a", &value));
2952
+ ASSERT_NOK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "a", &value));
2951
2953
  ASSERT_NOK(batch_->GetFromBatch(column_family, options_, "a", &value));
2952
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, "b", &value));
2954
+ ASSERT_OK(batch_->GetFromBatchAndDB(db_.get(), read_opts_, "b", &value));
2953
2955
  ASSERT_OK(batch_->GetFromBatch(column_family, options_, "b", &value));
2954
2956
  }
2955
2957
 
@@ -2972,7 +2974,7 @@ TEST_P(WriteBatchWithIndexTest, ColumnFamilyWithTimestamp) {
2972
2974
  {
2973
2975
  std::string value;
2974
2976
  ASSERT_TRUE(
2975
- batch_->GetFromBatchAndDB(db_, ReadOptions(), &cf2, "key", &value)
2977
+ batch_->GetFromBatchAndDB(db_.get(), ReadOptions(), &cf2, "key", &value)
2976
2978
  .IsInvalidArgument());
2977
2979
  }
2978
2980
  {
@@ -2982,7 +2984,7 @@ TEST_P(WriteBatchWithIndexTest, ColumnFamilyWithTimestamp) {
2982
2984
  {PinnableSlice(), PinnableSlice()}};
2983
2985
  std::array<Status, num_keys> statuses{{Status(), Status()}};
2984
2986
  constexpr bool sorted_input = false;
2985
- batch_->MultiGetFromBatchAndDB(db_, ReadOptions(), &cf2, num_keys,
2987
+ batch_->MultiGetFromBatchAndDB(db_.get(), ReadOptions(), &cf2, num_keys,
2986
2988
  keys.data(), pinnable_vals.data(),
2987
2989
  statuses.data(), sorted_input);
2988
2990
  for (const auto& s : statuses) {
@@ -3143,13 +3145,15 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchOnly) {
3143
3145
  // GetFromBatchAndDB
3144
3146
  {
3145
3147
  PinnableSlice value;
3146
- ASSERT_TRUE(batch_->GetFromBatchAndDB(db_, read_opts_, delete_key, &value)
3147
- .IsNotFound());
3148
+ ASSERT_TRUE(
3149
+ batch_->GetFromBatchAndDB(db_.get(), read_opts_, delete_key, &value)
3150
+ .IsNotFound());
3148
3151
  }
3149
3152
 
3150
3153
  for (size_t i = 1; i < num_keys; ++i) {
3151
3154
  PinnableSlice value;
3152
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, keys[i], &value));
3155
+ ASSERT_OK(
3156
+ batch_->GetFromBatchAndDB(db_.get(), read_opts_, keys[i], &value));
3153
3157
  ASSERT_EQ(value, expected[i].front().value());
3154
3158
  }
3155
3159
 
@@ -3159,9 +3163,9 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchOnly) {
3159
3163
  std::array<Status, num_keys> statuses;
3160
3164
  constexpr bool sorted_input = false;
3161
3165
 
3162
- batch_->MultiGetFromBatchAndDB(db_, read_opts_, db_->DefaultColumnFamily(),
3163
- num_keys, keys.data(), values.data(),
3164
- statuses.data(), sorted_input);
3166
+ batch_->MultiGetFromBatchAndDB(
3167
+ db_.get(), read_opts_, db_->DefaultColumnFamily(), num_keys,
3168
+ keys.data(), values.data(), statuses.data(), sorted_input);
3165
3169
 
3166
3170
  ASSERT_TRUE(statuses[0].IsNotFound());
3167
3171
 
@@ -3175,7 +3179,7 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchOnly) {
3175
3179
  {
3176
3180
  PinnableWideColumns columns;
3177
3181
  ASSERT_TRUE(batch_
3178
- ->GetEntityFromBatchAndDB(db_, read_opts_,
3182
+ ->GetEntityFromBatchAndDB(db_.get(), read_opts_,
3179
3183
  db_->DefaultColumnFamily(),
3180
3184
  delete_key, &columns)
3181
3185
  .IsNotFound());
@@ -3184,7 +3188,7 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchOnly) {
3184
3188
  for (size_t i = 1; i < num_keys; ++i) {
3185
3189
  PinnableWideColumns columns;
3186
3190
  ASSERT_OK(batch_->GetEntityFromBatchAndDB(
3187
- db_, read_opts_, db_->DefaultColumnFamily(), keys[i], &columns));
3191
+ db_.get(), read_opts_, db_->DefaultColumnFamily(), keys[i], &columns));
3188
3192
  ASSERT_EQ(columns.columns(), expected[i]);
3189
3193
  }
3190
3194
 
@@ -3195,8 +3199,8 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchOnly) {
3195
3199
  constexpr bool sorted_input = false;
3196
3200
 
3197
3201
  batch_->MultiGetEntityFromBatchAndDB(
3198
- db_, read_opts_, db_->DefaultColumnFamily(), num_keys, keys.data(),
3199
- results.data(), statuses.data(), sorted_input);
3202
+ db_.get(), read_opts_, db_->DefaultColumnFamily(), num_keys,
3203
+ keys.data(), results.data(), statuses.data(), sorted_input);
3200
3204
 
3201
3205
  ASSERT_TRUE(statuses[0].IsNotFound());
3202
3206
 
@@ -3293,14 +3297,15 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchAndDB) {
3293
3297
  // GetFromBatchAndDB
3294
3298
  for (size_t i = 0; i < num_keys - 1; ++i) {
3295
3299
  PinnableSlice value;
3296
- ASSERT_OK(batch_->GetFromBatchAndDB(db_, read_opts_, keys[i], &value));
3300
+ ASSERT_OK(
3301
+ batch_->GetFromBatchAndDB(db_.get(), read_opts_, keys[i], &value));
3297
3302
  ASSERT_EQ(value, expected[i].front().value());
3298
3303
  }
3299
3304
 
3300
3305
  {
3301
3306
  PinnableSlice value;
3302
3307
  ASSERT_TRUE(
3303
- batch_->GetFromBatchAndDB(db_, read_opts_, no_merge_c_key, &value)
3308
+ batch_->GetFromBatchAndDB(db_.get(), read_opts_, no_merge_c_key, &value)
3304
3309
  .IsNotFound());
3305
3310
  }
3306
3311
 
@@ -3310,9 +3315,9 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchAndDB) {
3310
3315
  std::array<Status, num_keys> statuses;
3311
3316
  constexpr bool sorted_input = false;
3312
3317
 
3313
- batch_->MultiGetFromBatchAndDB(db_, read_opts_, db_->DefaultColumnFamily(),
3314
- num_keys, keys.data(), values.data(),
3315
- statuses.data(), sorted_input);
3318
+ batch_->MultiGetFromBatchAndDB(
3319
+ db_.get(), read_opts_, db_->DefaultColumnFamily(), num_keys,
3320
+ keys.data(), values.data(), statuses.data(), sorted_input);
3316
3321
 
3317
3322
  for (size_t i = 0; i < num_keys - 1; ++i) {
3318
3323
  ASSERT_OK(statuses[i]);
@@ -3326,14 +3331,14 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchAndDB) {
3326
3331
  for (size_t i = 0; i < num_keys - 1; ++i) {
3327
3332
  PinnableWideColumns columns;
3328
3333
  ASSERT_OK(batch_->GetEntityFromBatchAndDB(
3329
- db_, read_opts_, db_->DefaultColumnFamily(), keys[i], &columns));
3334
+ db_.get(), read_opts_, db_->DefaultColumnFamily(), keys[i], &columns));
3330
3335
  ASSERT_EQ(columns.columns(), expected[i]);
3331
3336
  }
3332
3337
 
3333
3338
  {
3334
3339
  PinnableWideColumns columns;
3335
3340
  ASSERT_TRUE(batch_
3336
- ->GetEntityFromBatchAndDB(db_, read_opts_,
3341
+ ->GetEntityFromBatchAndDB(db_.get(), read_opts_,
3337
3342
  db_->DefaultColumnFamily(),
3338
3343
  no_merge_c_key, &columns)
3339
3344
  .IsNotFound());
@@ -3346,8 +3351,8 @@ TEST_P(WriteBatchWithIndexTest, WideColumnsBatchAndDB) {
3346
3351
  constexpr bool sorted_input = false;
3347
3352
 
3348
3353
  batch_->MultiGetEntityFromBatchAndDB(
3349
- db_, read_opts_, db_->DefaultColumnFamily(), num_keys, keys.data(),
3350
- results.data(), statuses.data(), sorted_input);
3354
+ db_.get(), read_opts_, db_->DefaultColumnFamily(), num_keys,
3355
+ keys.data(), results.data(), statuses.data(), sorted_input);
3351
3356
 
3352
3357
  for (size_t i = 0; i < num_keys - 1; ++i) {
3353
3358
  ASSERT_OK(statuses[i]);
@@ -3551,15 +3556,15 @@ TEST_P(WriteBatchWithIndexTest, EntityReadSanityChecks) {
3551
3556
  constexpr ColumnFamilyHandle* column_family = nullptr;
3552
3557
  PinnableWideColumns columns;
3553
3558
  ASSERT_TRUE(batch_
3554
- ->GetEntityFromBatchAndDB(db_, ReadOptions(), column_family,
3555
- foo, &columns)
3559
+ ->GetEntityFromBatchAndDB(db_.get(), ReadOptions(),
3560
+ column_family, foo, &columns)
3556
3561
  .IsInvalidArgument());
3557
3562
  }
3558
3563
 
3559
3564
  {
3560
3565
  constexpr PinnableWideColumns* columns = nullptr;
3561
3566
  ASSERT_TRUE(batch_
3562
- ->GetEntityFromBatchAndDB(db_, ReadOptions(),
3567
+ ->GetEntityFromBatchAndDB(db_.get(), ReadOptions(),
3563
3568
  db_->DefaultColumnFamily(), foo,
3564
3569
  columns)
3565
3570
  .IsInvalidArgument());
@@ -3571,7 +3576,7 @@ TEST_P(WriteBatchWithIndexTest, EntityReadSanityChecks) {
3571
3576
 
3572
3577
  PinnableWideColumns columns;
3573
3578
  ASSERT_TRUE(batch_
3574
- ->GetEntityFromBatchAndDB(db_, read_options,
3579
+ ->GetEntityFromBatchAndDB(db_.get(), read_options,
3575
3580
  db_->DefaultColumnFamily(), foo,
3576
3581
  &columns)
3577
3582
  .IsInvalidArgument());
@@ -3599,9 +3604,9 @@ TEST_P(WriteBatchWithIndexTest, EntityReadSanityChecks) {
3599
3604
  std::array<Status, num_keys> statuses;
3600
3605
  constexpr bool sorted_input = false;
3601
3606
 
3602
- batch_->MultiGetEntityFromBatchAndDB(db_, ReadOptions(), column_family,
3603
- num_keys, keys.data(), results.data(),
3604
- statuses.data(), sorted_input);
3607
+ batch_->MultiGetEntityFromBatchAndDB(
3608
+ db_.get(), ReadOptions(), column_family, num_keys, keys.data(),
3609
+ results.data(), statuses.data(), sorted_input);
3605
3610
 
3606
3611
  ASSERT_TRUE(statuses[0].IsInvalidArgument());
3607
3612
  ASSERT_TRUE(statuses[1].IsInvalidArgument());
@@ -3614,7 +3619,7 @@ TEST_P(WriteBatchWithIndexTest, EntityReadSanityChecks) {
3614
3619
  constexpr bool sorted_input = false;
3615
3620
 
3616
3621
  batch_->MultiGetEntityFromBatchAndDB(
3617
- db_, ReadOptions(), db_->DefaultColumnFamily(), num_keys, keys,
3622
+ db_.get(), ReadOptions(), db_->DefaultColumnFamily(), num_keys, keys,
3618
3623
  results.data(), statuses.data(), sorted_input);
3619
3624
 
3620
3625
  ASSERT_TRUE(statuses[0].IsInvalidArgument());
@@ -3628,8 +3633,8 @@ TEST_P(WriteBatchWithIndexTest, EntityReadSanityChecks) {
3628
3633
  constexpr bool sorted_input = false;
3629
3634
 
3630
3635
  batch_->MultiGetEntityFromBatchAndDB(
3631
- db_, ReadOptions(), db_->DefaultColumnFamily(), num_keys, keys.data(),
3632
- results, statuses.data(), sorted_input);
3636
+ db_.get(), ReadOptions(), db_->DefaultColumnFamily(), num_keys,
3637
+ keys.data(), results, statuses.data(), sorted_input);
3633
3638
 
3634
3639
  ASSERT_TRUE(statuses[0].IsInvalidArgument());
3635
3640
  ASSERT_TRUE(statuses[1].IsInvalidArgument());
@@ -3645,8 +3650,8 @@ TEST_P(WriteBatchWithIndexTest, EntityReadSanityChecks) {
3645
3650
  constexpr bool sorted_input = false;
3646
3651
 
3647
3652
  batch_->MultiGetEntityFromBatchAndDB(
3648
- db_, read_options, db_->DefaultColumnFamily(), num_keys, keys.data(),
3649
- results.data(), statuses.data(), sorted_input);
3653
+ db_.get(), read_options, db_->DefaultColumnFamily(), num_keys,
3654
+ keys.data(), results.data(), statuses.data(), sorted_input);
3650
3655
  ASSERT_TRUE(statuses[0].IsInvalidArgument());
3651
3656
  ASSERT_TRUE(statuses[1].IsInvalidArgument());
3652
3657
  }
@@ -249,6 +249,7 @@
249
249
  "rocksdb/db/version_edit.cc",
250
250
  "rocksdb/db/version_edit_handler.cc",
251
251
  "rocksdb/db/version_set.cc",
252
+ "rocksdb/db/version_util.cc",
252
253
  "rocksdb/db/wal_edit.cc",
253
254
  "rocksdb/db/wal_manager.cc",
254
255
  "rocksdb/db/wide/wide_column_serialization.cc",
@@ -307,6 +308,7 @@
307
308
  "rocksdb/monitoring/statistics.cc",
308
309
  "rocksdb/monitoring/thread_status_impl.cc",
309
310
  "rocksdb/monitoring/thread_status_updater.cc",
311
+ "rocksdb/monitoring/thread_status_updater_debug.cc",
310
312
  "rocksdb/monitoring/thread_status_util.cc",
311
313
  "rocksdb/monitoring/thread_status_util_debug.cc",
312
314
  "rocksdb/options/cf_options.cc",
@@ -339,6 +341,7 @@
339
341
  "rocksdb/table/block_based/hash_index_reader.cc",
340
342
  "rocksdb/table/block_based/index_builder.cc",
341
343
  "rocksdb/table/block_based/index_reader_common.cc",
344
+ "rocksdb/table/block_based/multi_scan_index_iterator.cc",
342
345
  "rocksdb/table/block_based/parsed_full_filter_block.cc",
343
346
  "rocksdb/table/block_based/partitioned_filter_block.cc",
344
347
  "rocksdb/table/block_based/partitioned_index_iterator.cc",
@@ -402,6 +405,7 @@
402
405
  "rocksdb/util/data_structure.cc",
403
406
  "rocksdb/util/dynamic_bloom.cc",
404
407
  "rocksdb/util/hash.cc",
408
+ "rocksdb/util/io_dispatcher_imp.cc",
405
409
  "rocksdb/util/murmurhash.cc",
406
410
  "rocksdb/util/random.cc",
407
411
  "rocksdb/util/rate_limiter.cc",
@@ -459,6 +463,9 @@
459
463
  "rocksdb/utilities/persistent_cache/volatile_tier_impl.cc",
460
464
  "rocksdb/utilities/secondary_index/secondary_index_iterator.cc",
461
465
  "rocksdb/utilities/secondary_index/simple_secondary_index.cc",
466
+ "rocksdb/utilities/trie_index/bitvector.cc",
467
+ "rocksdb/utilities/trie_index/louds_trie.cc",
468
+ "rocksdb/utilities/trie_index/trie_index_factory.cc",
462
469
  "rocksdb/utilities/simulator_cache/cache_simulator.cc",
463
470
  "rocksdb/utilities/simulator_cache/sim_cache.cc",
464
471
  "rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc",