@nxtedition/rocksdb 5.2.21 → 5.2.26

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 (909) hide show
  1. package/binding.cc +216 -252
  2. package/binding.gyp +78 -72
  3. package/deps/rocksdb/build_version.cc +70 -4
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
  5. package/deps/rocksdb/rocksdb/Makefile +459 -469
  6. package/deps/rocksdb/rocksdb/README.md +4 -4
  7. package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
  8. package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
  9. package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
  10. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
  11. package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
  12. package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
  13. package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
  14. package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
  15. package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
  16. package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
  17. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
  18. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
  19. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
  20. package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
  21. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
  22. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
  23. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
  24. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
  25. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
  26. package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
  27. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
  28. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
  29. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
  30. package/deps/rocksdb/rocksdb/crash_test.mk +93 -0
  31. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
  32. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
  33. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
  34. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
  35. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
  36. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
  37. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
  38. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
  39. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
  40. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
  41. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
  42. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
  43. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
  44. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
  45. package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
  46. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
  47. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
  48. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
  49. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
  50. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
  51. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
  52. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
  53. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
  54. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
  55. package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
  56. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
  57. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
  58. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
  59. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
  60. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
  61. package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
  62. package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
  63. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
  64. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
  65. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
  66. package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
  67. package/deps/rocksdb/rocksdb/db/builder.h +16 -37
  68. package/deps/rocksdb/rocksdb/db/c.cc +413 -208
  69. package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
  70. package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
  71. package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
  72. package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
  73. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
  74. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
  75. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
  76. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
  77. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
  78. package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
  79. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
  80. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
  81. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
  82. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
  83. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
  84. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
  85. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
  86. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
  87. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
  88. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
  89. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
  90. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
  91. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
  92. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
  93. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
  94. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
  95. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
  96. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
  97. package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
  98. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  99. package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
  100. package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
  101. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
  102. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
  103. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
  104. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
  105. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
  106. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
  107. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
  108. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
  110. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
  111. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
  112. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
  113. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
  114. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
  115. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
  116. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
  117. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
  118. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
  119. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
  120. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
  121. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
  122. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
  123. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
  124. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
  125. package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
  126. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
  127. package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
  128. package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
  129. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
  130. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
  131. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
  132. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
  133. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
  134. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
  135. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
  136. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
  137. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
  138. package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
  139. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
  140. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
  141. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
  142. package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
  143. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
  144. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
  145. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
  146. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
  147. package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
  148. package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
  149. package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
  150. package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
  151. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
  152. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
  153. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
  154. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
  155. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
  156. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
  157. package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
  158. package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
  159. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
  160. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
  161. package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
  162. package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
  163. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
  164. package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
  165. package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
  166. package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
  167. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
  168. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
  169. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
  170. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
  171. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
  172. package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
  173. package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
  174. package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
  175. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
  176. package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
  177. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
  178. package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
  179. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
  180. package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
  181. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
  182. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
  183. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
  184. package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
  185. package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
  186. package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
  187. package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
  188. package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
  189. package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
  190. package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
  191. package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
  192. package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
  193. package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
  194. package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
  195. package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
  196. package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
  197. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
  198. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
  199. package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
  200. package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
  201. package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
  202. package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
  203. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
  204. package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
  205. package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
  206. package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
  207. package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
  208. package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
  209. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
  210. package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
  211. package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
  212. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
  213. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
  214. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
  215. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
  216. package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
  217. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
  218. package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
  219. package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
  220. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
  221. package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
  222. package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
  223. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
  224. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
  225. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
  226. package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
  227. package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
  228. package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
  229. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
  230. package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
  231. package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
  232. package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
  233. package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
  234. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
  235. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
  236. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
  237. package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
  238. package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
  239. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
  240. package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
  241. package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
  242. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
  243. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
  244. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
  245. package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
  246. package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
  247. package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
  248. package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
  249. package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
  250. package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
  251. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
  252. package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
  253. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
  254. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
  255. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
  256. package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
  257. package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
  258. package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
  259. package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
  260. package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
  261. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
  262. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
  263. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
  264. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
  265. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
  266. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
  267. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
  268. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
  269. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
  270. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
  271. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
  272. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
  273. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
  274. package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
  275. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
  276. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
  277. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
  278. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
  279. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
  280. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
  281. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
  282. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
  283. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
  284. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
  285. package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
  286. package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
  287. package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
  288. package/deps/rocksdb/rocksdb/env/env.cc +632 -42
  289. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
  290. package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
  291. package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
  292. package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
  293. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
  294. package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
  295. package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
  296. package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
  297. package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
  298. package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
  299. package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
  300. package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
  301. package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
  302. package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
  303. package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
  304. package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
  305. package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
  306. package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
  307. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
  308. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
  309. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
  310. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
  311. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
  312. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
  313. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
  314. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
  315. package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
  316. package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
  317. package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
  318. package/deps/rocksdb/rocksdb/file/filename.h +13 -8
  319. package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
  320. package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
  321. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
  322. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
  323. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
  324. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
  325. package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
  326. package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
  327. package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
  328. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
  329. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
  330. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
  331. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
  332. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
  333. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
  334. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
  335. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
  336. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
  337. package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
  338. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
  339. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
  340. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
  341. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
  342. package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
  343. package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
  344. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
  345. package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
  346. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
  347. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
  348. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
  349. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
  350. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
  351. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
  352. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
  353. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
  354. package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
  355. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
  356. package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
  357. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
  358. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
  359. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
  360. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
  361. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
  362. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
  363. package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
  364. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
  365. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
  366. package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
  367. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
  368. package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
  369. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
  370. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
  371. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
  372. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
  373. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
  374. package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
  375. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
  376. package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
  377. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
  378. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
  379. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
  380. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
  381. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
  382. package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
  383. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
  384. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
  385. package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
  386. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
  387. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
  388. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
  389. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
  390. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
  391. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
  392. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
  393. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
  394. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
  395. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
  396. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
  397. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
  398. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
  400. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
  401. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
  402. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
  403. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
  404. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
  405. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
  406. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
  407. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
  408. package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
  409. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
  410. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
  411. package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
  412. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
  413. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
  414. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
  415. package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
  416. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
  417. package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
  418. package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
  419. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  420. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
  421. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
  422. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
  423. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
  424. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
  425. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
  426. package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
  427. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
  428. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
  429. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
  430. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
  431. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
  432. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
  433. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
  434. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
  435. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
  436. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
  437. package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
  438. package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
  439. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
  440. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
  441. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
  442. package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
  443. package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
  444. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
  445. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
  446. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
  447. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
  448. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
  449. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
  450. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
  451. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
  452. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
  453. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
  454. package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
  455. package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
  456. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
  457. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
  458. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
  459. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
  460. package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
  461. package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
  462. package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
  463. package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
  464. package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
  465. package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
  466. package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
  467. package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
  468. package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
  469. package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
  470. package/deps/rocksdb/rocksdb/options/options.cc +49 -17
  471. package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
  472. package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
  473. package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
  474. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
  475. package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
  476. package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
  477. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
  478. package/deps/rocksdb/rocksdb/port/lang.h +52 -0
  479. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  480. package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
  481. package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
  482. package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
  483. package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
  484. package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
  485. package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
  486. package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
  487. package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
  488. package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
  489. package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
  490. package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
  491. package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
  492. package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
  493. package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
  494. package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
  495. package/deps/rocksdb/rocksdb/python.mk +9 -0
  496. package/deps/rocksdb/rocksdb/src.mk +82 -34
  497. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
  498. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
  499. package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
  500. package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
  501. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
  502. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
  503. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
  504. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
  505. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
  506. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
  507. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
  508. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
  509. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
  510. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
  511. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
  512. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
  513. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
  514. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
  515. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
  516. package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
  517. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
  518. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
  519. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
  520. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
  521. package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
  522. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
  523. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
  524. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
  525. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
  526. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
  527. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
  528. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
  529. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
  530. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
  531. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
  532. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  533. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
  534. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  535. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
  536. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
  537. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
  538. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
  539. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
  540. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
  541. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
  542. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
  543. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
  544. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
  545. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
  546. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
  547. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
  548. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
  549. package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
  550. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
  551. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
  552. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
  553. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
  554. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
  555. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
  556. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
  557. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
  558. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
  559. package/deps/rocksdb/rocksdb/table/format.cc +258 -104
  560. package/deps/rocksdb/rocksdb/table/format.h +120 -109
  561. package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
  562. package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
  563. package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
  564. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  565. package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
  566. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
  567. package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
  568. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
  569. package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
  570. package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
  571. package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
  572. package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
  573. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
  574. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
  575. package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
  576. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
  577. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
  578. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
  579. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
  580. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
  581. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
  582. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
  583. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
  584. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
  585. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
  586. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
  587. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
  588. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
  589. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
  590. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
  591. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
  592. package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
  593. package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
  594. package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
  595. package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
  596. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
  597. package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
  598. package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
  599. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
  600. package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
  601. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
  602. package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
  603. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
  604. package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
  605. package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
  606. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
  607. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
  608. package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
  609. package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
  610. package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
  611. package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
  612. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
  613. package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
  614. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
  615. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
  616. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
  617. package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
  618. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
  619. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
  620. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
  621. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
  622. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
  623. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
  624. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
  625. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
  626. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
  627. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  628. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
  629. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
  630. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
  631. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
  632. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
  633. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
  634. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
  635. package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
  636. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
  637. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
  638. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
  639. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
  640. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
  641. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
  642. package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
  643. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
  644. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
  645. package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
  646. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
  647. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
  648. package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
  649. package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
  650. package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
  651. package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
  652. package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
  653. package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
  654. package/deps/rocksdb/rocksdb/util/channel.h +2 -0
  655. package/deps/rocksdb/rocksdb/util/coding.h +1 -33
  656. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
  657. package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
  658. package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
  659. package/deps/rocksdb/rocksdb/util/compression.h +212 -7
  660. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
  661. package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
  662. package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
  663. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
  664. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
  665. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
  666. package/deps/rocksdb/rocksdb/util/defer.h +30 -1
  667. package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
  668. package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
  669. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
  670. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
  671. package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
  672. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
  673. package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
  674. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
  675. package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
  676. package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
  677. package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
  678. package/deps/rocksdb/rocksdb/util/hash.h +31 -1
  679. package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
  680. package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
  681. package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
  682. package/deps/rocksdb/rocksdb/util/heap.h +6 -1
  683. package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
  684. package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
  685. package/deps/rocksdb/rocksdb/util/math.h +74 -7
  686. package/deps/rocksdb/rocksdb/util/math128.h +13 -1
  687. package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
  688. package/deps/rocksdb/rocksdb/util/random.cc +9 -0
  689. package/deps/rocksdb/rocksdb/util/random.h +6 -0
  690. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
  691. package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
  692. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
  693. package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
  694. package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
  695. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
  696. package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
  697. package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
  698. package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
  699. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
  700. package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
  701. package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
  702. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
  703. package/deps/rocksdb/rocksdb/util/status.cc +32 -29
  704. package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
  705. package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
  706. package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
  707. package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
  708. package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
  709. package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
  710. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
  711. package/deps/rocksdb/rocksdb/util/timer.h +55 -46
  712. package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
  713. package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
  714. package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
  715. package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
  716. package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
  717. package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
  718. package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
  719. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
  720. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
  721. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
  722. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
  723. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
  724. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
  725. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
  726. package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
  727. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
  728. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
  729. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
  730. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
  731. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
  732. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
  733. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
  734. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
  735. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
  736. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
  737. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
  738. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
  739. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
  740. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
  741. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
  742. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
  743. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
  744. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
  745. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
  746. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
  747. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
  748. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
  749. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
  750. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
  751. package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
  752. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
  753. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
  754. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
  755. package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
  756. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
  757. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
  758. package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
  759. package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
  760. package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
  761. package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
  762. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
  763. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
  764. package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
  765. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
  766. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
  767. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
  768. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
  769. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
  770. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
  771. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
  772. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
  773. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
  774. package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
  775. package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
  776. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
  777. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
  778. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
  779. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
  780. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
  781. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
  782. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
  783. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
  784. package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
  785. package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
  786. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
  787. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
  788. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
  789. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
  790. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
  791. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
  792. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
  793. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
  794. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
  795. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
  796. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
  797. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
  798. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
  799. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
  800. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
  801. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
  802. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
  803. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
  804. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
  805. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
  806. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
  807. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
  808. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
  809. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
  810. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
  811. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
  812. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
  813. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  814. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
  815. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
  816. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
  817. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
  818. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
  819. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
  820. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
  821. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
  822. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
  823. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
  824. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
  825. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
  826. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
  827. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
  828. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
  829. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
  830. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
  831. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
  832. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
  833. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
  834. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
  835. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
  836. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
  837. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
  838. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
  839. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
  840. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
  841. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
  842. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
  843. package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
  844. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
  845. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
  846. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
  847. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
  848. package/deps/rocksdb/rocksdb.gyp +425 -446
  849. package/package.json +8 -8
  850. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  851. package/prebuilds/darwin-x86/node.napi.node +0 -0
  852. package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
  853. package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
  854. package/deps/rocksdb/rocksdb/hdfs/README +0 -23
  855. package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
  856. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
  857. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
  858. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
  859. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
  860. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
  861. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
  862. package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
  863. package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
  864. package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
  865. package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
  866. package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
  867. package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
  868. package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
  869. package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
  870. package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
  871. package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
  872. package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
  873. package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
  874. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
  875. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
  876. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
  877. package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
  878. package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
  879. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
  880. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
  881. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
  882. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
  883. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
  884. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
  885. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
  886. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
  887. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
  888. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
  889. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
  890. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
  891. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
  892. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
  893. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
  894. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
  895. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
  896. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
  897. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
  898. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
  899. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
  900. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
  901. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
  902. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
  903. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
  904. package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
  905. package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
  906. package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
  907. package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
  908. package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
  909. package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
@@ -11,6 +11,7 @@
11
11
 
12
12
  #include "db/version_edit.h"
13
13
  #include "db/version_set.h"
14
+ #include "rocksdb/advanced_options.h"
14
15
  #include "test_util/testharness.h"
15
16
  #include "test_util/testutil.h"
16
17
  #include "util/string_util.h"
@@ -22,7 +23,7 @@ class VersionBuilderTest : public testing::Test {
22
23
  const Comparator* ucmp_;
23
24
  InternalKeyComparator icmp_;
24
25
  Options options_;
25
- ImmutableCFOptions ioptions_;
26
+ ImmutableOptions ioptions_;
26
27
  MutableCFOptions mutable_cf_options_;
27
28
  VersionStorageInfo vstorage_;
28
29
  uint32_t file_num_;
@@ -67,9 +68,11 @@ class VersionBuilderTest : public testing::Test {
67
68
  FileMetaData* f = new FileMetaData(
68
69
  file_number, path_id, file_size, GetInternalKey(smallest, smallest_seq),
69
70
  GetInternalKey(largest, largest_seq), smallest_seqno, largest_seqno,
70
- /* marked_for_compact */ false, oldest_blob_file_number,
71
- kUnknownOldestAncesterTime, kUnknownFileCreationTime,
72
- kUnknownFileChecksum, kUnknownFileChecksumFuncName);
71
+ /* marked_for_compact */ false, Temperature::kUnknown,
72
+ oldest_blob_file_number, kUnknownOldestAncesterTime,
73
+ kUnknownFileCreationTime, kUnknownFileChecksum,
74
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
75
+ kDisableUserTimestamp);
73
76
  f->compensated_file_size = file_size;
74
77
  f->num_entries = num_entries;
75
78
  f->num_deletions = num_deletions;
@@ -128,35 +131,20 @@ class VersionBuilderTest : public testing::Test {
128
131
  edit->AddFile(level, table_file_number, path_id, file_size,
129
132
  GetInternalKey(smallest), GetInternalKey(largest),
130
133
  smallest_seqno, largest_seqno, marked_for_compaction,
131
- blob_file_number, kUnknownOldestAncesterTime,
132
- kUnknownFileCreationTime, kUnknownFileChecksum,
133
- kUnknownFileChecksumFuncName);
134
+ Temperature::kUnknown, blob_file_number,
135
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
136
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
137
+ kDisableUserTimestamp, kDisableUserTimestamp);
134
138
  }
135
139
 
136
- static std::shared_ptr<BlobFileMetaData> GetBlobFileMetaData(
137
- const VersionStorageInfo::BlobFiles& blob_files,
138
- uint64_t blob_file_number) {
139
- const auto it = blob_files.find(blob_file_number);
140
+ void UpdateVersionStorageInfo(VersionStorageInfo* vstorage) {
141
+ assert(vstorage);
140
142
 
141
- if (it == blob_files.end()) {
142
- return std::shared_ptr<BlobFileMetaData>();
143
- }
144
-
145
- const auto& meta = it->second;
146
- assert(meta);
147
-
148
- return meta;
143
+ vstorage->PrepareForVersionAppend(ioptions_, mutable_cf_options_);
144
+ vstorage->SetFinalized();
149
145
  }
150
146
 
151
- void UpdateVersionStorageInfo() {
152
- vstorage_.UpdateFilesByCompactionPri(ioptions_.compaction_pri);
153
- vstorage_.UpdateNumNonEmptyLevels();
154
- vstorage_.GenerateFileIndexer();
155
- vstorage_.GenerateLevelFilesBrief();
156
- vstorage_.CalculateBaseBytes(ioptions_, mutable_cf_options_);
157
- vstorage_.GenerateLevel0NonOverlapping();
158
- vstorage_.SetFinalized();
159
- }
147
+ void UpdateVersionStorageInfo() { UpdateVersionStorageInfo(&vstorage_); }
160
148
  };
161
149
 
162
150
  void UnrefFilesInVersion(VersionStorageInfo* new_vstorage) {
@@ -183,14 +171,16 @@ TEST_F(VersionBuilderTest, ApplyAndSaveTo) {
183
171
  Add(3, 27U, "171", "179", 100U);
184
172
  Add(3, 28U, "191", "220", 100U);
185
173
  Add(3, 29U, "221", "300", 100U);
174
+
186
175
  UpdateVersionStorageInfo();
187
176
 
188
177
  VersionEdit version_edit;
189
178
  version_edit.AddFile(2, 666, 0, 100U, GetInternalKey("301"),
190
179
  GetInternalKey("350"), 200, 200, false,
191
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
192
- kUnknownFileCreationTime, kUnknownFileChecksum,
193
- kUnknownFileChecksumFuncName);
180
+ Temperature::kUnknown, kInvalidBlobFileNumber,
181
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
182
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
183
+ kDisableUserTimestamp, kDisableUserTimestamp);
194
184
  version_edit.DeleteFile(3, 27U);
195
185
 
196
186
  EnvOptions env_options;
@@ -205,6 +195,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveTo) {
205
195
  ASSERT_OK(version_builder.Apply(&version_edit));
206
196
  ASSERT_OK(version_builder.SaveTo(&new_vstorage));
207
197
 
198
+ UpdateVersionStorageInfo(&new_vstorage);
199
+
208
200
  ASSERT_EQ(400U, new_vstorage.NumLevelBytes(2));
209
201
  ASSERT_EQ(300U, new_vstorage.NumLevelBytes(3));
210
202
 
@@ -223,14 +215,16 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic) {
223
215
 
224
216
  Add(5, 26U, "150", "170", 100U);
225
217
  Add(5, 27U, "171", "179", 100U);
218
+
226
219
  UpdateVersionStorageInfo();
227
220
 
228
221
  VersionEdit version_edit;
229
222
  version_edit.AddFile(3, 666, 0, 100U, GetInternalKey("301"),
230
223
  GetInternalKey("350"), 200, 200, false,
231
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
232
- kUnknownFileCreationTime, kUnknownFileChecksum,
233
- kUnknownFileChecksumFuncName);
224
+ Temperature::kUnknown, kInvalidBlobFileNumber,
225
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
226
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
227
+ kDisableUserTimestamp, kDisableUserTimestamp);
234
228
  version_edit.DeleteFile(0, 1U);
235
229
  version_edit.DeleteFile(0, 88U);
236
230
 
@@ -246,6 +240,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic) {
246
240
  ASSERT_OK(version_builder.Apply(&version_edit));
247
241
  ASSERT_OK(version_builder.SaveTo(&new_vstorage));
248
242
 
243
+ UpdateVersionStorageInfo(&new_vstorage);
244
+
249
245
  ASSERT_EQ(0U, new_vstorage.NumLevelBytes(0));
250
246
  ASSERT_EQ(100U, new_vstorage.NumLevelBytes(3));
251
247
  ASSERT_EQ(300U, new_vstorage.NumLevelBytes(4));
@@ -266,14 +262,16 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic2) {
266
262
 
267
263
  Add(5, 26U, "150", "170", 100U);
268
264
  Add(5, 27U, "171", "179", 100U);
265
+
269
266
  UpdateVersionStorageInfo();
270
267
 
271
268
  VersionEdit version_edit;
272
269
  version_edit.AddFile(4, 666, 0, 100U, GetInternalKey("301"),
273
270
  GetInternalKey("350"), 200, 200, false,
274
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
275
- kUnknownFileCreationTime, kUnknownFileChecksum,
276
- kUnknownFileChecksumFuncName);
271
+ Temperature::kUnknown, kInvalidBlobFileNumber,
272
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
273
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
274
+ kDisableUserTimestamp, kDisableUserTimestamp);
277
275
  version_edit.DeleteFile(0, 1U);
278
276
  version_edit.DeleteFile(0, 88U);
279
277
  version_edit.DeleteFile(4, 6U);
@@ -292,6 +290,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic2) {
292
290
  ASSERT_OK(version_builder.Apply(&version_edit));
293
291
  ASSERT_OK(version_builder.SaveTo(&new_vstorage));
294
292
 
293
+ UpdateVersionStorageInfo(&new_vstorage);
294
+
295
295
  ASSERT_EQ(0U, new_vstorage.NumLevelBytes(0));
296
296
  ASSERT_EQ(100U, new_vstorage.NumLevelBytes(4));
297
297
  ASSERT_EQ(200U, new_vstorage.NumLevelBytes(5));
@@ -305,29 +305,34 @@ TEST_F(VersionBuilderTest, ApplyMultipleAndSaveTo) {
305
305
  VersionEdit version_edit;
306
306
  version_edit.AddFile(2, 666, 0, 100U, GetInternalKey("301"),
307
307
  GetInternalKey("350"), 200, 200, false,
308
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
309
- kUnknownFileCreationTime, kUnknownFileChecksum,
310
- kUnknownFileChecksumFuncName);
308
+ Temperature::kUnknown, kInvalidBlobFileNumber,
309
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
310
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
311
+ kDisableUserTimestamp, kDisableUserTimestamp);
311
312
  version_edit.AddFile(2, 676, 0, 100U, GetInternalKey("401"),
312
313
  GetInternalKey("450"), 200, 200, false,
313
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
314
- kUnknownFileCreationTime, kUnknownFileChecksum,
315
- kUnknownFileChecksumFuncName);
314
+ Temperature::kUnknown, kInvalidBlobFileNumber,
315
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
316
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
317
+ kDisableUserTimestamp, kDisableUserTimestamp);
316
318
  version_edit.AddFile(2, 636, 0, 100U, GetInternalKey("601"),
317
319
  GetInternalKey("650"), 200, 200, false,
318
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
319
- kUnknownFileCreationTime, kUnknownFileChecksum,
320
- kUnknownFileChecksumFuncName);
320
+ Temperature::kUnknown, kInvalidBlobFileNumber,
321
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
322
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
323
+ kDisableUserTimestamp, kDisableUserTimestamp);
321
324
  version_edit.AddFile(2, 616, 0, 100U, GetInternalKey("501"),
322
325
  GetInternalKey("550"), 200, 200, false,
323
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
324
- kUnknownFileCreationTime, kUnknownFileChecksum,
325
- kUnknownFileChecksumFuncName);
326
+ Temperature::kUnknown, kInvalidBlobFileNumber,
327
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
328
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
329
+ kDisableUserTimestamp, kDisableUserTimestamp);
326
330
  version_edit.AddFile(2, 606, 0, 100U, GetInternalKey("701"),
327
331
  GetInternalKey("750"), 200, 200, false,
328
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
329
- kUnknownFileCreationTime, kUnknownFileChecksum,
330
- kUnknownFileChecksumFuncName);
332
+ Temperature::kUnknown, kInvalidBlobFileNumber,
333
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
334
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
335
+ kDisableUserTimestamp, kDisableUserTimestamp);
331
336
 
332
337
  EnvOptions env_options;
333
338
  constexpr TableCache* table_cache = nullptr;
@@ -341,6 +346,8 @@ TEST_F(VersionBuilderTest, ApplyMultipleAndSaveTo) {
341
346
  ASSERT_OK(version_builder.Apply(&version_edit));
342
347
  ASSERT_OK(version_builder.SaveTo(&new_vstorage));
343
348
 
349
+ UpdateVersionStorageInfo(&new_vstorage);
350
+
344
351
  ASSERT_EQ(500U, new_vstorage.NumLevelBytes(2));
345
352
 
346
353
  UnrefFilesInVersion(&new_vstorage);
@@ -362,48 +369,57 @@ TEST_F(VersionBuilderTest, ApplyDeleteAndSaveTo) {
362
369
  VersionEdit version_edit;
363
370
  version_edit.AddFile(2, 666, 0, 100U, GetInternalKey("301"),
364
371
  GetInternalKey("350"), 200, 200, false,
365
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
366
- kUnknownFileCreationTime, kUnknownFileChecksum,
367
- kUnknownFileChecksumFuncName);
372
+ Temperature::kUnknown, kInvalidBlobFileNumber,
373
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
374
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
375
+ kDisableUserTimestamp, kDisableUserTimestamp);
368
376
  version_edit.AddFile(2, 676, 0, 100U, GetInternalKey("401"),
369
377
  GetInternalKey("450"), 200, 200, false,
370
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
371
- kUnknownFileCreationTime, kUnknownFileChecksum,
372
- kUnknownFileChecksumFuncName);
378
+ Temperature::kUnknown, kInvalidBlobFileNumber,
379
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
380
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
381
+ kDisableUserTimestamp, kDisableUserTimestamp);
373
382
  version_edit.AddFile(2, 636, 0, 100U, GetInternalKey("601"),
374
383
  GetInternalKey("650"), 200, 200, false,
375
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
376
- kUnknownFileCreationTime, kUnknownFileChecksum,
377
- kUnknownFileChecksumFuncName);
384
+ Temperature::kUnknown, kInvalidBlobFileNumber,
385
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
386
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
387
+ kDisableUserTimestamp, kDisableUserTimestamp);
378
388
  version_edit.AddFile(2, 616, 0, 100U, GetInternalKey("501"),
379
389
  GetInternalKey("550"), 200, 200, false,
380
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
381
- kUnknownFileCreationTime, kUnknownFileChecksum,
382
- kUnknownFileChecksumFuncName);
390
+ Temperature::kUnknown, kInvalidBlobFileNumber,
391
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
392
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
393
+ kDisableUserTimestamp, kDisableUserTimestamp);
383
394
  version_edit.AddFile(2, 606, 0, 100U, GetInternalKey("701"),
384
395
  GetInternalKey("750"), 200, 200, false,
385
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
386
- kUnknownFileCreationTime, kUnknownFileChecksum,
387
- kUnknownFileChecksumFuncName);
396
+ Temperature::kUnknown, kInvalidBlobFileNumber,
397
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
398
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
399
+ kDisableUserTimestamp, kDisableUserTimestamp);
388
400
  ASSERT_OK(version_builder.Apply(&version_edit));
389
401
 
390
402
  VersionEdit version_edit2;
391
403
  version_edit.AddFile(2, 808, 0, 100U, GetInternalKey("901"),
392
404
  GetInternalKey("950"), 200, 200, false,
393
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
394
- kUnknownFileCreationTime, kUnknownFileChecksum,
395
- kUnknownFileChecksumFuncName);
405
+ Temperature::kUnknown, kInvalidBlobFileNumber,
406
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
407
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
408
+ kDisableUserTimestamp, kDisableUserTimestamp);
396
409
  version_edit2.DeleteFile(2, 616);
397
410
  version_edit2.DeleteFile(2, 636);
398
411
  version_edit.AddFile(2, 806, 0, 100U, GetInternalKey("801"),
399
412
  GetInternalKey("850"), 200, 200, false,
400
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
401
- kUnknownFileCreationTime, kUnknownFileChecksum,
402
- kUnknownFileChecksumFuncName);
413
+ Temperature::kUnknown, kInvalidBlobFileNumber,
414
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
415
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
416
+ kDisableUserTimestamp, kDisableUserTimestamp);
403
417
 
404
418
  ASSERT_OK(version_builder.Apply(&version_edit2));
405
419
  ASSERT_OK(version_builder.SaveTo(&new_vstorage));
406
420
 
421
+ UpdateVersionStorageInfo(&new_vstorage);
422
+
407
423
  ASSERT_EQ(300U, new_vstorage.NumLevelBytes(2));
408
424
 
409
425
  UnrefFilesInVersion(&new_vstorage);
@@ -414,8 +430,11 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionIncorrectLevel) {
414
430
  constexpr uint64_t file_number = 2345;
415
431
  constexpr char smallest[] = "bar";
416
432
  constexpr char largest[] = "foo";
433
+ constexpr uint64_t file_size = 100;
417
434
 
418
- Add(level, file_number, smallest, largest);
435
+ Add(level, file_number, smallest, largest, file_size);
436
+
437
+ UpdateVersionStorageInfo();
419
438
 
420
439
  EnvOptions env_options;
421
440
  constexpr TableCache* table_cache = nullptr;
@@ -438,6 +457,8 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionIncorrectLevel) {
438
457
  }
439
458
 
440
459
  TEST_F(VersionBuilderTest, ApplyFileDeletionNotInLSMTree) {
460
+ UpdateVersionStorageInfo();
461
+
441
462
  EnvOptions env_options;
442
463
  constexpr TableCache* table_cache = nullptr;
443
464
  constexpr VersionSet* version_set = nullptr;
@@ -478,6 +499,8 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionAndAddition) {
478
499
  largest_seq, num_entries, num_deletions, sampled, smallest_seqno,
479
500
  largest_seqno);
480
501
 
502
+ UpdateVersionStorageInfo();
503
+
481
504
  EnvOptions env_options;
482
505
  constexpr TableCache* table_cache = nullptr;
483
506
  constexpr VersionSet* version_set = nullptr;
@@ -498,9 +521,11 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionAndAddition) {
498
521
  addition.AddFile(level, file_number, path_id, file_size,
499
522
  GetInternalKey(smallest, smallest_seq),
500
523
  GetInternalKey(largest, largest_seq), smallest_seqno,
501
- largest_seqno, marked_for_compaction, kInvalidBlobFileNumber,
502
- kUnknownOldestAncesterTime, kUnknownFileCreationTime,
503
- kUnknownFileChecksum, kUnknownFileChecksumFuncName);
524
+ largest_seqno, marked_for_compaction, Temperature::kUnknown,
525
+ kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
526
+ kUnknownFileCreationTime, kUnknownFileChecksum,
527
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
528
+ kDisableUserTimestamp);
504
529
 
505
530
  ASSERT_OK(builder.Apply(&addition));
506
531
 
@@ -510,6 +535,9 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionAndAddition) {
510
535
  force_consistency_checks);
511
536
 
512
537
  ASSERT_OK(builder.SaveTo(&new_vstorage));
538
+
539
+ UpdateVersionStorageInfo(&new_vstorage);
540
+
513
541
  ASSERT_EQ(new_vstorage.GetFileLocation(file_number).GetLevel(), level);
514
542
 
515
543
  UnrefFilesInVersion(&new_vstorage);
@@ -520,8 +548,11 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyInBase) {
520
548
  constexpr uint64_t file_number = 2345;
521
549
  constexpr char smallest[] = "bar";
522
550
  constexpr char largest[] = "foo";
551
+ constexpr uint64_t file_size = 10000;
552
+
553
+ Add(level, file_number, smallest, largest, file_size);
523
554
 
524
- Add(level, file_number, smallest, largest);
555
+ UpdateVersionStorageInfo();
525
556
 
526
557
  EnvOptions env_options;
527
558
  constexpr TableCache* table_cache = nullptr;
@@ -534,7 +565,6 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyInBase) {
534
565
 
535
566
  constexpr int new_level = 2;
536
567
  constexpr uint32_t path_id = 0;
537
- constexpr uint64_t file_size = 10000;
538
568
  constexpr SequenceNumber smallest_seqno = 100;
539
569
  constexpr SequenceNumber largest_seqno = 1000;
540
570
  constexpr bool marked_for_compaction = false;
@@ -542,9 +572,10 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyInBase) {
542
572
  edit.AddFile(new_level, file_number, path_id, file_size,
543
573
  GetInternalKey(smallest), GetInternalKey(largest),
544
574
  smallest_seqno, largest_seqno, marked_for_compaction,
545
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
546
- kUnknownFileCreationTime, kUnknownFileChecksum,
547
- kUnknownFileChecksumFuncName);
575
+ Temperature::kUnknown, kInvalidBlobFileNumber,
576
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
577
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
578
+ kDisableUserTimestamp, kDisableUserTimestamp);
548
579
 
549
580
  const Status s = builder.Apply(&edit);
550
581
  ASSERT_TRUE(s.IsCorruption());
@@ -554,6 +585,8 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyInBase) {
554
585
  }
555
586
 
556
587
  TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
588
+ UpdateVersionStorageInfo();
589
+
557
590
  EnvOptions env_options;
558
591
  constexpr TableCache* table_cache = nullptr;
559
592
  constexpr VersionSet* version_set = nullptr;
@@ -575,9 +608,11 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
575
608
 
576
609
  edit.AddFile(level, file_number, path_id, file_size, GetInternalKey(smallest),
577
610
  GetInternalKey(largest), smallest_seqno, largest_seqno,
578
- marked_for_compaction, kInvalidBlobFileNumber,
579
- kUnknownOldestAncesterTime, kUnknownFileCreationTime,
580
- kUnknownFileChecksum, kUnknownFileChecksumFuncName);
611
+ marked_for_compaction, Temperature::kUnknown,
612
+ kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
613
+ kUnknownFileCreationTime, kUnknownFileChecksum,
614
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
615
+ kDisableUserTimestamp);
581
616
 
582
617
  ASSERT_OK(builder.Apply(&edit));
583
618
 
@@ -588,9 +623,10 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
588
623
  other_edit.AddFile(new_level, file_number, path_id, file_size,
589
624
  GetInternalKey(smallest), GetInternalKey(largest),
590
625
  smallest_seqno, largest_seqno, marked_for_compaction,
591
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
592
- kUnknownFileCreationTime, kUnknownFileChecksum,
593
- kUnknownFileChecksumFuncName);
626
+ Temperature::kUnknown, kInvalidBlobFileNumber,
627
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
628
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
629
+ kDisableUserTimestamp, kDisableUserTimestamp);
594
630
 
595
631
  const Status s = builder.Apply(&other_edit);
596
632
  ASSERT_TRUE(s.IsCorruption());
@@ -600,6 +636,8 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
600
636
  }
601
637
 
602
638
  TEST_F(VersionBuilderTest, ApplyFileAdditionAndDeletion) {
639
+ UpdateVersionStorageInfo();
640
+
603
641
  constexpr int level = 1;
604
642
  constexpr uint64_t file_number = 2345;
605
643
  constexpr uint32_t path_id = 0;
@@ -622,9 +660,10 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAndDeletion) {
622
660
  addition.AddFile(level, file_number, path_id, file_size,
623
661
  GetInternalKey(smallest), GetInternalKey(largest),
624
662
  smallest_seqno, largest_seqno, marked_for_compaction,
625
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
626
- kUnknownFileCreationTime, kUnknownFileChecksum,
627
- kUnknownFileChecksumFuncName);
663
+ Temperature::kUnknown, kInvalidBlobFileNumber,
664
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
665
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
666
+ kDisableUserTimestamp, kDisableUserTimestamp);
628
667
 
629
668
  ASSERT_OK(builder.Apply(&addition));
630
669
 
@@ -640,12 +679,17 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAndDeletion) {
640
679
  force_consistency_checks);
641
680
 
642
681
  ASSERT_OK(builder.SaveTo(&new_vstorage));
682
+
683
+ UpdateVersionStorageInfo(&new_vstorage);
684
+
643
685
  ASSERT_FALSE(new_vstorage.GetFileLocation(file_number).IsValid());
644
686
 
645
687
  UnrefFilesInVersion(&new_vstorage);
646
688
  }
647
689
 
648
690
  TEST_F(VersionBuilderTest, ApplyBlobFileAddition) {
691
+ UpdateVersionStorageInfo();
692
+
649
693
  EnvOptions env_options;
650
694
  constexpr TableCache* table_cache = nullptr;
651
695
  constexpr VersionSet* version_set = nullptr;
@@ -659,7 +703,9 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAddition) {
659
703
  constexpr uint64_t total_blob_count = 5678;
660
704
  constexpr uint64_t total_blob_bytes = 999999;
661
705
  constexpr char checksum_method[] = "SHA1";
662
- constexpr char checksum_value[] = "bdb7f34a59dfa1592ce7f52e99f98c570c525cbd";
706
+ constexpr char checksum_value[] =
707
+ "\xbd\xb7\xf3\x4a\x59\xdf\xa1\x59\x2c\xe7\xf5\x2e\x99\xf9\x8c\x57\x0c\x52"
708
+ "\x5c\xbd";
663
709
 
664
710
  edit.AddBlobFile(blob_file_number, total_blob_count, total_blob_bytes,
665
711
  checksum_method, checksum_value);
@@ -677,10 +723,12 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAddition) {
677
723
 
678
724
  ASSERT_OK(builder.SaveTo(&new_vstorage));
679
725
 
726
+ UpdateVersionStorageInfo(&new_vstorage);
727
+
680
728
  const auto& new_blob_files = new_vstorage.GetBlobFiles();
681
729
  ASSERT_EQ(new_blob_files.size(), 1);
682
730
 
683
- const auto new_meta = GetBlobFileMetaData(new_blob_files, blob_file_number);
731
+ const auto new_meta = new_vstorage.GetBlobFileMetaData(blob_file_number);
684
732
 
685
733
  ASSERT_NE(new_meta, nullptr);
686
734
  ASSERT_EQ(new_meta->GetBlobFileNumber(), blob_file_number);
@@ -703,7 +751,9 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAdditionAlreadyInBase) {
703
751
  constexpr uint64_t total_blob_count = 5678;
704
752
  constexpr uint64_t total_blob_bytes = 999999;
705
753
  constexpr char checksum_method[] = "SHA1";
706
- constexpr char checksum_value[] = "bdb7f34a59dfa1592ce7f52e99f98c570c525cbd";
754
+ constexpr char checksum_value[] =
755
+ "\xbd\xb7\xf3\x4a\x59\xdf\xa1\x59\x2c\xe7\xf5\x2e\x99\xf9\x8c\x57\x0c\x52"
756
+ "\x5c\xbd";
707
757
  constexpr uint64_t garbage_blob_count = 123;
708
758
  constexpr uint64_t garbage_blob_bytes = 456789;
709
759
 
@@ -711,6 +761,8 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAdditionAlreadyInBase) {
711
761
  checksum_value, BlobFileMetaData::LinkedSsts(), garbage_blob_count,
712
762
  garbage_blob_bytes);
713
763
 
764
+ UpdateVersionStorageInfo();
765
+
714
766
  EnvOptions env_options;
715
767
  constexpr TableCache* table_cache = nullptr;
716
768
  constexpr VersionSet* version_set = nullptr;
@@ -731,6 +783,8 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAdditionAlreadyInBase) {
731
783
  TEST_F(VersionBuilderTest, ApplyBlobFileAdditionAlreadyApplied) {
732
784
  // Attempt to add the same blob file twice using version edits.
733
785
 
786
+ UpdateVersionStorageInfo();
787
+
734
788
  EnvOptions env_options;
735
789
  constexpr TableCache* table_cache = nullptr;
736
790
  constexpr VersionSet* version_set = nullptr;
@@ -744,7 +798,9 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAdditionAlreadyApplied) {
744
798
  constexpr uint64_t total_blob_count = 5678;
745
799
  constexpr uint64_t total_blob_bytes = 999999;
746
800
  constexpr char checksum_method[] = "SHA1";
747
- constexpr char checksum_value[] = "bdb7f34a59dfa1592ce7f52e99f98c570c525cbd";
801
+ constexpr char checksum_value[] =
802
+ "\xbd\xb7\xf3\x4a\x59\xdf\xa1\x59\x2c\xe7\xf5\x2e\x99\xf9\x8c\x57\x0c\x52"
803
+ "\x5c\xbd";
748
804
 
749
805
  edit.AddBlobFile(blob_file_number, total_blob_count, total_blob_bytes,
750
806
  checksum_method, checksum_value);
@@ -764,7 +820,9 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileInBase) {
764
820
  constexpr uint64_t total_blob_count = 5678;
765
821
  constexpr uint64_t total_blob_bytes = 999999;
766
822
  constexpr char checksum_method[] = "SHA1";
767
- constexpr char checksum_value[] = "bdb7f34a59dfa1592ce7f52e99f98c570c525cbd";
823
+ constexpr char checksum_value[] =
824
+ "\xbd\xb7\xf3\x4a\x59\xdf\xa1\x59\x2c\xe7\xf5\x2e\x99\xf9\x8c\x57\x0c\x52"
825
+ "\x5c\xbd";
768
826
  constexpr uint64_t garbage_blob_count = 123;
769
827
  constexpr uint64_t garbage_blob_bytes = 456789;
770
828
 
@@ -772,13 +830,14 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileInBase) {
772
830
  checksum_value, BlobFileMetaData::LinkedSsts{table_file_number},
773
831
  garbage_blob_count, garbage_blob_bytes);
774
832
 
775
- const auto meta =
776
- GetBlobFileMetaData(vstorage_.GetBlobFiles(), blob_file_number);
833
+ const auto meta = vstorage_.GetBlobFileMetaData(blob_file_number);
777
834
  ASSERT_NE(meta, nullptr);
778
835
 
779
836
  // Add dummy table file to ensure the blob file is referenced.
780
837
  AddDummyFile(table_file_number, blob_file_number);
781
838
 
839
+ UpdateVersionStorageInfo();
840
+
782
841
  EnvOptions env_options;
783
842
  constexpr TableCache* table_cache = nullptr;
784
843
  constexpr VersionSet* version_set = nullptr;
@@ -803,10 +862,12 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileInBase) {
803
862
 
804
863
  ASSERT_OK(builder.SaveTo(&new_vstorage));
805
864
 
865
+ UpdateVersionStorageInfo(&new_vstorage);
866
+
806
867
  const auto& new_blob_files = new_vstorage.GetBlobFiles();
807
868
  ASSERT_EQ(new_blob_files.size(), 1);
808
869
 
809
- const auto new_meta = GetBlobFileMetaData(new_blob_files, blob_file_number);
870
+ const auto new_meta = new_vstorage.GetBlobFileMetaData(blob_file_number);
810
871
 
811
872
  ASSERT_NE(new_meta, nullptr);
812
873
  ASSERT_EQ(new_meta->GetSharedMeta(), meta->GetSharedMeta());
@@ -828,6 +889,8 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileInBase) {
828
889
  TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileAdditionApplied) {
829
890
  // Increase the amount of garbage for a blob file added using a version edit.
830
891
 
892
+ UpdateVersionStorageInfo();
893
+
831
894
  EnvOptions env_options;
832
895
  constexpr TableCache* table_cache = nullptr;
833
896
  constexpr VersionSet* version_set = nullptr;
@@ -841,7 +904,9 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileAdditionApplied) {
841
904
  constexpr uint64_t total_blob_count = 5678;
842
905
  constexpr uint64_t total_blob_bytes = 999999;
843
906
  constexpr char checksum_method[] = "SHA1";
844
- constexpr char checksum_value[] = "bdb7f34a59dfa1592ce7f52e99f98c570c525cbd";
907
+ constexpr char checksum_value[] =
908
+ "\xbd\xb7\xf3\x4a\x59\xdf\xa1\x59\x2c\xe7\xf5\x2e\x99\xf9\x8c\x57\x0c\x52"
909
+ "\x5c\xbd";
845
910
 
846
911
  addition.AddBlobFile(blob_file_number, total_blob_count, total_blob_bytes,
847
912
  checksum_method, checksum_value);
@@ -869,10 +934,12 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileAdditionApplied) {
869
934
 
870
935
  ASSERT_OK(builder.SaveTo(&new_vstorage));
871
936
 
937
+ UpdateVersionStorageInfo(&new_vstorage);
938
+
872
939
  const auto& new_blob_files = new_vstorage.GetBlobFiles();
873
940
  ASSERT_EQ(new_blob_files.size(), 1);
874
941
 
875
- const auto new_meta = GetBlobFileMetaData(new_blob_files, blob_file_number);
942
+ const auto new_meta = new_vstorage.GetBlobFileMetaData(blob_file_number);
876
943
 
877
944
  ASSERT_NE(new_meta, nullptr);
878
945
  ASSERT_EQ(new_meta->GetBlobFileNumber(), blob_file_number);
@@ -892,6 +959,8 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileNotFound) {
892
959
  // Attempt to increase the amount of garbage for a blob file that is
893
960
  // neither in the base version, nor was it added using a version edit.
894
961
 
962
+ UpdateVersionStorageInfo();
963
+
895
964
  EnvOptions env_options;
896
965
  constexpr TableCache* table_cache = nullptr;
897
966
  constexpr VersionSet* version_set = nullptr;
@@ -913,11 +982,76 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileNotFound) {
913
982
  ASSERT_TRUE(std::strstr(s.getState(), "Blob file #1234 not found"));
914
983
  }
915
984
 
985
+ TEST_F(VersionBuilderTest, BlobFileGarbageOverflow) {
986
+ // Test that VersionEdits that would result in the count/total size of garbage
987
+ // exceeding the count/total size of all blobs are rejected.
988
+
989
+ UpdateVersionStorageInfo();
990
+
991
+ EnvOptions env_options;
992
+ constexpr TableCache* table_cache = nullptr;
993
+ constexpr VersionSet* version_set = nullptr;
994
+
995
+ VersionBuilder builder(env_options, &ioptions_, table_cache, &vstorage_,
996
+ version_set);
997
+
998
+ VersionEdit addition;
999
+
1000
+ constexpr uint64_t blob_file_number = 1234;
1001
+ constexpr uint64_t total_blob_count = 5678;
1002
+ constexpr uint64_t total_blob_bytes = 999999;
1003
+ constexpr char checksum_method[] = "SHA1";
1004
+ constexpr char checksum_value[] =
1005
+ "\xbd\xb7\xf3\x4a\x59\xdf\xa1\x59\x2c\xe7\xf5\x2e\x99\xf9\x8c\x57\x0c\x52"
1006
+ "\x5c\xbd";
1007
+
1008
+ addition.AddBlobFile(blob_file_number, total_blob_count, total_blob_bytes,
1009
+ checksum_method, checksum_value);
1010
+
1011
+ // Add dummy table file to ensure the blob file is referenced.
1012
+ constexpr uint64_t table_file_number = 1;
1013
+ AddDummyFileToEdit(&addition, table_file_number, blob_file_number);
1014
+
1015
+ ASSERT_OK(builder.Apply(&addition));
1016
+
1017
+ {
1018
+ // Garbage blob count overflow
1019
+ constexpr uint64_t garbage_blob_count = 5679;
1020
+ constexpr uint64_t garbage_blob_bytes = 999999;
1021
+
1022
+ VersionEdit garbage;
1023
+
1024
+ garbage.AddBlobFileGarbage(blob_file_number, garbage_blob_count,
1025
+ garbage_blob_bytes);
1026
+
1027
+ const Status s = builder.Apply(&garbage);
1028
+ ASSERT_TRUE(s.IsCorruption());
1029
+ ASSERT_TRUE(
1030
+ std::strstr(s.getState(), "Garbage overflow for blob file #1234"));
1031
+ }
1032
+
1033
+ {
1034
+ // Garbage blob bytes overflow
1035
+ constexpr uint64_t garbage_blob_count = 5678;
1036
+ constexpr uint64_t garbage_blob_bytes = 1000000;
1037
+
1038
+ VersionEdit garbage;
1039
+
1040
+ garbage.AddBlobFileGarbage(blob_file_number, garbage_blob_count,
1041
+ garbage_blob_bytes);
1042
+
1043
+ const Status s = builder.Apply(&garbage);
1044
+ ASSERT_TRUE(s.IsCorruption());
1045
+ ASSERT_TRUE(
1046
+ std::strstr(s.getState(), "Garbage overflow for blob file #1234"));
1047
+ }
1048
+ }
1049
+
916
1050
  TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
917
1051
  // Add three blob files to base version.
918
- for (uint64_t i = 3; i >= 1; --i) {
919
- const uint64_t table_file_number = i;
920
- const uint64_t blob_file_number = i;
1052
+ for (uint64_t i = 1; i <= 3; ++i) {
1053
+ const uint64_t table_file_number = 2 * i;
1054
+ const uint64_t blob_file_number = 2 * i + 1;
921
1055
  const uint64_t total_blob_count = i * 1000;
922
1056
  const uint64_t total_blob_bytes = i * 1000000;
923
1057
  const uint64_t garbage_blob_count = i * 100;
@@ -928,11 +1062,20 @@ TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
928
1062
  /* checksum_value */ std::string(),
929
1063
  BlobFileMetaData::LinkedSsts{table_file_number}, garbage_blob_count,
930
1064
  garbage_blob_bytes);
1065
+ }
1066
+
1067
+ // Add dummy table files to ensure the blob files are referenced.
1068
+ // Note: files are added to L0, so they have to be added in reverse order
1069
+ // (newest first).
1070
+ for (uint64_t i = 3; i >= 1; --i) {
1071
+ const uint64_t table_file_number = 2 * i;
1072
+ const uint64_t blob_file_number = 2 * i + 1;
931
1073
 
932
- // Add dummy table file to ensure the blob file is referenced.
933
1074
  AddDummyFile(table_file_number, blob_file_number);
934
1075
  }
935
1076
 
1077
+ UpdateVersionStorageInfo();
1078
+
936
1079
  EnvOptions env_options;
937
1080
  constexpr TableCache* table_cache = nullptr;
938
1081
  constexpr VersionSet* version_set = nullptr;
@@ -947,16 +1090,16 @@ TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
947
1090
  // blob file is all garbage after the edit and will not be part of the new
948
1091
  // version. The corresponding dummy table file is also removed for
949
1092
  // consistency.
950
- edit.AddBlobFileGarbage(/* blob_file_number */ 2,
1093
+ edit.AddBlobFileGarbage(/* blob_file_number */ 5,
951
1094
  /* garbage_blob_count */ 200,
952
1095
  /* garbage_blob_bytes */ 100000);
953
- edit.AddBlobFileGarbage(/* blob_file_number */ 3,
1096
+ edit.AddBlobFileGarbage(/* blob_file_number */ 7,
954
1097
  /* garbage_blob_count */ 2700,
955
1098
  /* garbage_blob_bytes */ 2940000);
956
- edit.DeleteFile(/* level */ 0, /* file_number */ 3);
1099
+ edit.DeleteFile(/* level */ 0, /* file_number */ 6);
957
1100
 
958
1101
  // Add a fourth blob file.
959
- edit.AddBlobFile(/* blob_file_number */ 4, /* total_blob_count */ 4000,
1102
+ edit.AddBlobFile(/* blob_file_number */ 9, /* total_blob_count */ 4000,
960
1103
  /* total_blob_bytes */ 4000000,
961
1104
  /* checksum_method */ std::string(),
962
1105
  /* checksum_value */ std::string());
@@ -970,35 +1113,37 @@ TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
970
1113
 
971
1114
  ASSERT_OK(builder.SaveTo(&new_vstorage));
972
1115
 
1116
+ UpdateVersionStorageInfo(&new_vstorage);
1117
+
973
1118
  const auto& new_blob_files = new_vstorage.GetBlobFiles();
974
1119
  ASSERT_EQ(new_blob_files.size(), 3);
975
1120
 
976
- const auto meta1 = GetBlobFileMetaData(new_blob_files, 1);
1121
+ const auto meta3 = new_vstorage.GetBlobFileMetaData(/* blob_file_number */ 3);
977
1122
 
978
- ASSERT_NE(meta1, nullptr);
979
- ASSERT_EQ(meta1->GetBlobFileNumber(), 1);
980
- ASSERT_EQ(meta1->GetTotalBlobCount(), 1000);
981
- ASSERT_EQ(meta1->GetTotalBlobBytes(), 1000000);
982
- ASSERT_EQ(meta1->GetGarbageBlobCount(), 100);
983
- ASSERT_EQ(meta1->GetGarbageBlobBytes(), 20000);
1123
+ ASSERT_NE(meta3, nullptr);
1124
+ ASSERT_EQ(meta3->GetBlobFileNumber(), 3);
1125
+ ASSERT_EQ(meta3->GetTotalBlobCount(), 1000);
1126
+ ASSERT_EQ(meta3->GetTotalBlobBytes(), 1000000);
1127
+ ASSERT_EQ(meta3->GetGarbageBlobCount(), 100);
1128
+ ASSERT_EQ(meta3->GetGarbageBlobBytes(), 20000);
984
1129
 
985
- const auto meta2 = GetBlobFileMetaData(new_blob_files, 2);
1130
+ const auto meta5 = new_vstorage.GetBlobFileMetaData(/* blob_file_number */ 5);
986
1131
 
987
- ASSERT_NE(meta2, nullptr);
988
- ASSERT_EQ(meta2->GetBlobFileNumber(), 2);
989
- ASSERT_EQ(meta2->GetTotalBlobCount(), 2000);
990
- ASSERT_EQ(meta2->GetTotalBlobBytes(), 2000000);
991
- ASSERT_EQ(meta2->GetGarbageBlobCount(), 400);
992
- ASSERT_EQ(meta2->GetGarbageBlobBytes(), 140000);
1132
+ ASSERT_NE(meta5, nullptr);
1133
+ ASSERT_EQ(meta5->GetBlobFileNumber(), 5);
1134
+ ASSERT_EQ(meta5->GetTotalBlobCount(), 2000);
1135
+ ASSERT_EQ(meta5->GetTotalBlobBytes(), 2000000);
1136
+ ASSERT_EQ(meta5->GetGarbageBlobCount(), 400);
1137
+ ASSERT_EQ(meta5->GetGarbageBlobBytes(), 140000);
993
1138
 
994
- const auto meta4 = GetBlobFileMetaData(new_blob_files, 4);
1139
+ const auto meta9 = new_vstorage.GetBlobFileMetaData(/* blob_file_number */ 9);
995
1140
 
996
- ASSERT_NE(meta4, nullptr);
997
- ASSERT_EQ(meta4->GetBlobFileNumber(), 4);
998
- ASSERT_EQ(meta4->GetTotalBlobCount(), 4000);
999
- ASSERT_EQ(meta4->GetTotalBlobBytes(), 4000000);
1000
- ASSERT_EQ(meta4->GetGarbageBlobCount(), 0);
1001
- ASSERT_EQ(meta4->GetGarbageBlobBytes(), 0);
1141
+ ASSERT_NE(meta9, nullptr);
1142
+ ASSERT_EQ(meta9->GetBlobFileNumber(), 9);
1143
+ ASSERT_EQ(meta9->GetTotalBlobCount(), 4000);
1144
+ ASSERT_EQ(meta9->GetTotalBlobBytes(), 4000000);
1145
+ ASSERT_EQ(meta9->GetGarbageBlobCount(), 0);
1146
+ ASSERT_EQ(meta9->GetGarbageBlobBytes(), 0);
1002
1147
 
1003
1148
  // Delete the first table file, which makes the first blob file obsolete
1004
1149
  // since it's at the head and unreferenced.
@@ -1006,7 +1151,7 @@ TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
1006
1151
  &new_vstorage, version_set);
1007
1152
 
1008
1153
  VersionEdit second_edit;
1009
- second_edit.DeleteFile(/* level */ 0, /* file_number */ 1);
1154
+ second_edit.DeleteFile(/* level */ 0, /* file_number */ 2);
1010
1155
 
1011
1156
  ASSERT_OK(second_builder.Apply(&second_edit));
1012
1157
 
@@ -1016,12 +1161,15 @@ TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
1016
1161
 
1017
1162
  ASSERT_OK(second_builder.SaveTo(&newer_vstorage));
1018
1163
 
1164
+ UpdateVersionStorageInfo(&newer_vstorage);
1165
+
1019
1166
  const auto& newer_blob_files = newer_vstorage.GetBlobFiles();
1020
1167
  ASSERT_EQ(newer_blob_files.size(), 2);
1021
1168
 
1022
- const auto newer_meta1 = GetBlobFileMetaData(newer_blob_files, 1);
1169
+ const auto newer_meta3 =
1170
+ newer_vstorage.GetBlobFileMetaData(/* blob_file_number */ 3);
1023
1171
 
1024
- ASSERT_EQ(newer_meta1, nullptr);
1172
+ ASSERT_EQ(newer_meta3, nullptr);
1025
1173
 
1026
1174
  UnrefFilesInVersion(&newer_vstorage);
1027
1175
  UnrefFilesInVersion(&new_vstorage);
@@ -1050,6 +1198,8 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
1050
1198
  BlobFileMetaData::LinkedSsts{base_table_file_number},
1051
1199
  garbage_blob_count, garbage_blob_bytes);
1052
1200
 
1201
+ UpdateVersionStorageInfo();
1202
+
1053
1203
  EnvOptions env_options;
1054
1204
  constexpr TableCache* table_cache = nullptr;
1055
1205
  constexpr VersionSet* version_set = nullptr;
@@ -1077,11 +1227,12 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
1077
1227
  constexpr uint64_t total_blob_count = 234;
1078
1228
  constexpr uint64_t total_blob_bytes = 1 << 22;
1079
1229
 
1080
- edit.AddFile(level, table_file_number, path_id, file_size,
1081
- GetInternalKey(smallest), GetInternalKey(largest),
1082
- smallest_seqno, largest_seqno, marked_for_compaction,
1083
- blob_file_number, kUnknownOldestAncesterTime,
1084
- kUnknownFileCreationTime, checksum_value, checksum_method);
1230
+ edit.AddFile(
1231
+ level, table_file_number, path_id, file_size, GetInternalKey(smallest),
1232
+ GetInternalKey(largest), smallest_seqno, largest_seqno,
1233
+ marked_for_compaction, Temperature::kUnknown, blob_file_number,
1234
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime, checksum_value,
1235
+ checksum_method, kDisableUserTimestamp, kDisableUserTimestamp);
1085
1236
  edit.AddBlobFile(blob_file_number, total_blob_count, total_blob_bytes,
1086
1237
  checksum_method, checksum_value);
1087
1238
 
@@ -1094,11 +1245,13 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
1094
1245
 
1095
1246
  ASSERT_OK(builder.SaveTo(&new_vstorage));
1096
1247
 
1248
+ UpdateVersionStorageInfo(&new_vstorage);
1249
+
1097
1250
  const auto& new_blob_files = new_vstorage.GetBlobFiles();
1098
1251
  ASSERT_EQ(new_blob_files.size(), 2);
1099
1252
 
1100
1253
  const auto base_meta =
1101
- GetBlobFileMetaData(new_blob_files, base_blob_file_number);
1254
+ new_vstorage.GetBlobFileMetaData(base_blob_file_number);
1102
1255
 
1103
1256
  ASSERT_NE(base_meta, nullptr);
1104
1257
  ASSERT_EQ(base_meta->GetBlobFileNumber(), base_blob_file_number);
@@ -1109,7 +1262,7 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
1109
1262
  ASSERT_EQ(base_meta->GetChecksumMethod(), checksum_method);
1110
1263
  ASSERT_EQ(base_meta->GetChecksumValue(), checksum_value);
1111
1264
 
1112
- const auto added_meta = GetBlobFileMetaData(new_blob_files, blob_file_number);
1265
+ const auto added_meta = new_vstorage.GetBlobFileMetaData(blob_file_number);
1113
1266
 
1114
1267
  ASSERT_NE(added_meta, nullptr);
1115
1268
  ASSERT_EQ(added_meta->GetBlobFileNumber(), blob_file_number);
@@ -1163,17 +1316,21 @@ TEST_F(VersionBuilderTest, CheckConsistencyForBlobFiles) {
1163
1316
  /* file_size */ 100, /* smallest */ GetInternalKey("701"),
1164
1317
  /* largest */ GetInternalKey("750"), /* smallest_seqno */ 200,
1165
1318
  /* largest_seqno */ 200, /* marked_for_compaction */ false,
1319
+ Temperature::kUnknown,
1166
1320
  /* oldest_blob_file_number */ 16, kUnknownOldestAncesterTime,
1167
1321
  kUnknownFileCreationTime, kUnknownFileChecksum,
1168
- kUnknownFileChecksumFuncName);
1322
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
1323
+ kDisableUserTimestamp);
1169
1324
 
1170
1325
  edit.AddFile(/* level */ 1, /* file_number */ 700, /* path_id */ 0,
1171
1326
  /* file_size */ 100, /* smallest */ GetInternalKey("801"),
1172
1327
  /* largest */ GetInternalKey("850"), /* smallest_seqno */ 200,
1173
1328
  /* largest_seqno */ 200, /* marked_for_compaction */ false,
1329
+ Temperature::kUnknown,
1174
1330
  /* oldest_blob_file_number */ 1000, kUnknownOldestAncesterTime,
1175
1331
  kUnknownFileCreationTime, kUnknownFileChecksum,
1176
- kUnknownFileChecksumFuncName);
1332
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
1333
+ kDisableUserTimestamp);
1177
1334
  edit.AddBlobFile(/* blob_file_number */ 1000, /* total_blob_count */ 2000,
1178
1335
  /* total_blob_bytes */ 200000,
1179
1336
  /* checksum_method */ std::string(),
@@ -1189,6 +1346,8 @@ TEST_F(VersionBuilderTest, CheckConsistencyForBlobFiles) {
1189
1346
 
1190
1347
  ASSERT_OK(builder.SaveTo(&new_vstorage));
1191
1348
 
1349
+ UpdateVersionStorageInfo(&new_vstorage);
1350
+
1192
1351
  UnrefFilesInVersion(&new_vstorage);
1193
1352
  }
1194
1353
 
@@ -1375,7 +1534,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1375
1534
 
1376
1535
  for (size_t i = 0; i < 5; ++i) {
1377
1536
  const auto meta =
1378
- GetBlobFileMetaData(blob_files, /* blob_file_number */ i + 1);
1537
+ vstorage_.GetBlobFileMetaData(/* blob_file_number */ i + 1);
1379
1538
  ASSERT_NE(meta, nullptr);
1380
1539
  ASSERT_EQ(meta->GetLinkedSsts(), expected_linked_ssts[i]);
1381
1540
  }
@@ -1389,9 +1548,11 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1389
1548
  /* file_size */ 100, /* smallest */ GetInternalKey("21", 2100),
1390
1549
  /* largest */ GetInternalKey("21", 2100), /* smallest_seqno */ 2100,
1391
1550
  /* largest_seqno */ 2100, /* marked_for_compaction */ false,
1551
+ Temperature::kUnknown,
1392
1552
  /* oldest_blob_file_number */ 1, kUnknownOldestAncesterTime,
1393
1553
  kUnknownFileCreationTime, kUnknownFileChecksum,
1394
- kUnknownFileChecksumFuncName);
1554
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
1555
+ kDisableUserTimestamp);
1395
1556
 
1396
1557
  // Add an SST that does not reference any blob files.
1397
1558
  edit.AddFile(
@@ -1399,9 +1560,10 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1399
1560
  /* file_size */ 100, /* smallest */ GetInternalKey("22", 2200),
1400
1561
  /* largest */ GetInternalKey("22", 2200), /* smallest_seqno */ 2200,
1401
1562
  /* largest_seqno */ 2200, /* marked_for_compaction */ false,
1402
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
1563
+ Temperature::kUnknown, kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
1403
1564
  kUnknownFileCreationTime, kUnknownFileChecksum,
1404
- kUnknownFileChecksumFuncName);
1565
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
1566
+ kDisableUserTimestamp);
1405
1567
 
1406
1568
  // Delete a file that references a blob file.
1407
1569
  edit.DeleteFile(/* level */ 1, /* file_number */ 6);
@@ -1412,8 +1574,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1412
1574
  // Trivially move a file that references a blob file. Note that we save
1413
1575
  // the original BlobFileMetaData object so we can check that no new object
1414
1576
  // gets created.
1415
- auto meta3 =
1416
- GetBlobFileMetaData(vstorage_.GetBlobFiles(), /* blob_file_number */ 3);
1577
+ auto meta3 = vstorage_.GetBlobFileMetaData(/* blob_file_number */ 3);
1417
1578
 
1418
1579
  edit.DeleteFile(/* level */ 1, /* file_number */ 3);
1419
1580
  edit.AddFile(/* level */ 2, /* file_number */ 3, /* path_id */ 0,
@@ -1421,9 +1582,11 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1421
1582
  /* largest */ GetInternalKey("03", 300),
1422
1583
  /* smallest_seqno */ 300,
1423
1584
  /* largest_seqno */ 300, /* marked_for_compaction */ false,
1585
+ Temperature::kUnknown,
1424
1586
  /* oldest_blob_file_number */ 3, kUnknownOldestAncesterTime,
1425
1587
  kUnknownFileCreationTime, kUnknownFileChecksum,
1426
- kUnknownFileChecksumFuncName);
1588
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
1589
+ kDisableUserTimestamp);
1427
1590
 
1428
1591
  // Trivially move a file that does not reference any blob files.
1429
1592
  edit.DeleteFile(/* level */ 1, /* file_number */ 13);
@@ -1432,9 +1595,10 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1432
1595
  /* largest */ GetInternalKey("13", 1300),
1433
1596
  /* smallest_seqno */ 1300,
1434
1597
  /* largest_seqno */ 1300, /* marked_for_compaction */ false,
1435
- kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
1436
- kUnknownFileCreationTime, kUnknownFileChecksum,
1437
- kUnknownFileChecksumFuncName);
1598
+ Temperature::kUnknown, kInvalidBlobFileNumber,
1599
+ kUnknownOldestAncesterTime, kUnknownFileCreationTime,
1600
+ kUnknownFileChecksum, kUnknownFileChecksumFuncName,
1601
+ kDisableUserTimestamp, kDisableUserTimestamp);
1438
1602
 
1439
1603
  // Add one more SST file that references a blob file, then promptly
1440
1604
  // delete it in a second version edit before the new version gets saved.
@@ -1444,9 +1608,11 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1444
1608
  /* largest */ GetInternalKey("23", 2300),
1445
1609
  /* smallest_seqno */ 2300,
1446
1610
  /* largest_seqno */ 2300, /* marked_for_compaction */ false,
1611
+ Temperature::kUnknown,
1447
1612
  /* oldest_blob_file_number */ 5, kUnknownOldestAncesterTime,
1448
1613
  kUnknownFileCreationTime, kUnknownFileChecksum,
1449
- kUnknownFileChecksumFuncName);
1614
+ kUnknownFileChecksumFuncName, kDisableUserTimestamp,
1615
+ kDisableUserTimestamp);
1450
1616
 
1451
1617
  VersionEdit edit2;
1452
1618
 
@@ -1469,6 +1635,8 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1469
1635
 
1470
1636
  ASSERT_OK(builder.SaveTo(&new_vstorage));
1471
1637
 
1638
+ UpdateVersionStorageInfo(&new_vstorage);
1639
+
1472
1640
  {
1473
1641
  const auto& blob_files = new_vstorage.GetBlobFiles();
1474
1642
  ASSERT_EQ(blob_files.size(), 5);
@@ -1478,14 +1646,15 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1478
1646
 
1479
1647
  for (size_t i = 0; i < 5; ++i) {
1480
1648
  const auto meta =
1481
- GetBlobFileMetaData(blob_files, /* blob_file_number */ i + 1);
1649
+ new_vstorage.GetBlobFileMetaData(/* blob_file_number */ i + 1);
1482
1650
  ASSERT_NE(meta, nullptr);
1483
1651
  ASSERT_EQ(meta->GetLinkedSsts(), expected_linked_ssts[i]);
1484
1652
  }
1485
1653
 
1486
1654
  // Make sure that no new BlobFileMetaData got created for the blob file
1487
1655
  // affected by the trivial move.
1488
- ASSERT_EQ(GetBlobFileMetaData(blob_files, /* blob_file_number */ 3), meta3);
1656
+ ASSERT_EQ(new_vstorage.GetBlobFileMetaData(/* blob_file_number */ 3),
1657
+ meta3);
1489
1658
  }
1490
1659
 
1491
1660
  UnrefFilesInVersion(&new_vstorage);
@@ -1493,6 +1662,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
1493
1662
 
1494
1663
  TEST_F(VersionBuilderTest, CheckConsistencyForFileDeletedTwice) {
1495
1664
  Add(0, 1U, "150", "200", 100U);
1665
+
1496
1666
  UpdateVersionStorageInfo();
1497
1667
 
1498
1668
  VersionEdit version_edit;
@@ -1510,6 +1680,8 @@ TEST_F(VersionBuilderTest, CheckConsistencyForFileDeletedTwice) {
1510
1680
  ASSERT_OK(version_builder.Apply(&version_edit));
1511
1681
  ASSERT_OK(version_builder.SaveTo(&new_vstorage));
1512
1682
 
1683
+ UpdateVersionStorageInfo(&new_vstorage);
1684
+
1513
1685
  VersionBuilder version_builder2(env_options, &ioptions_, table_cache,
1514
1686
  &new_vstorage, version_set);
1515
1687
  VersionStorageInfo new_vstorage2(&icmp_, ucmp_, options_.num_levels,