@nxtedition/rocksdb 10.0.13 → 10.0.15

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 (700) hide show
  1. package/.tap/coverage/213879bb-47ae-470e-bb54-f4157d9f60e2.json +162898 -0
  2. package/.tap/processinfo/{4c642b53-6895-4ef0-9391-7c6b8d484262.json → 213879bb-47ae-470e-bb54-f4157d9f60e2.json} +117 -121
  3. package/.tap/test-results/node_modules/abstract-level/test/get-test.js.tap +0 -0
  4. package/.tap/test-results/test/abstract-level-test.js.tap +1705 -0
  5. package/.tap/test-results/test/batch-test.js.tap +12 -0
  6. package/.tap/test-results/test/chained-batch-gc-test.js.tap +11 -0
  7. package/.tap/test-results/test/cleanup-hanging-iterators-test.js.tap +58 -0
  8. package/.tap/test-results/test/clear-gc-test.js.tap +13 -0
  9. package/.tap/test-results/test/column-test.js.tap +55 -0
  10. package/.tap/test-results/test/common.js.tap +0 -0
  11. package/.tap/test-results/test/compression-test.js.tap +30 -0
  12. package/.tap/test-results/test/db-identity.js.tap +12 -0
  13. package/.tap/test-results/test/electron.js.tap +0 -0
  14. package/.tap/test-results/test/env-cleanup-hook-test.js.tap +2 -0
  15. package/.tap/test-results/test/env-cleanup-hook.js.tap +0 -0
  16. package/.tap/test-results/test/gc.js.tap +0 -0
  17. package/.tap/test-results/test/getproperty-test.js.tap +29 -0
  18. package/.tap/test-results/test/iterator-gc-test.js.tap +4 -0
  19. package/.tap/test-results/test/iterator-hwm-test.js.tap +24 -0
  20. package/.tap/test-results/test/iterator-recursion-test.js.tap +12 -0
  21. package/.tap/test-results/test/iterator-starvation-test.js.tap +2 -0
  22. package/.tap/test-results/test/iterator-test.js.tap +0 -0
  23. package/.tap/test-results/test/leak-tester-batch.js.tap +0 -0
  24. package/.tap/test-results/test/leak-tester-iterator.js.tap +0 -0
  25. package/.tap/test-results/test/leak-tester.js.tap +0 -0
  26. package/.tap/test-results/test/lock-test.js.tap +0 -0
  27. package/.tap/test-results/test/lock.js.tap +0 -0
  28. package/.tap/test-results/test/make.js.tap +0 -0
  29. package/.tap/test-results/test/max-rev-merge.js.tap +0 -12
  30. package/.tap/test-results/test/merge-operator-test.js.tap +0 -0
  31. package/.tap/test-results/test/mkdir-test.js.tap +0 -0
  32. package/.tap/test-results/test/segfault-test.js.tap +0 -0
  33. package/.tap/test-results/test/stack-blower.js.tap +0 -0
  34. package/binding.cc +42 -34
  35. package/deps/rocksdb/rocksdb/CMakeLists.txt +44 -14
  36. package/deps/rocksdb/rocksdb/Makefile +34 -17
  37. package/deps/rocksdb/rocksdb/TARGETS +27 -0
  38. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +95 -42
  39. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +0 -1
  40. package/deps/rocksdb/rocksdb/cache/cache_test.cc +5 -3
  41. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +381 -393
  42. package/deps/rocksdb/rocksdb/cache/clock_cache.h +88 -51
  43. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +14 -7
  44. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +1 -1
  45. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +21 -19
  46. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +8 -7
  47. package/deps/rocksdb/rocksdb/cache/lru_cache.h +1 -1
  48. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +89 -13
  49. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +16 -8
  50. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +6 -6
  51. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +15 -9
  52. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +16 -13
  53. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +306 -23
  54. package/deps/rocksdb/rocksdb/cache/typed_cache.h +3 -4
  55. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +30 -27
  56. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +8 -10
  57. package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.cc +20 -0
  58. package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.h +83 -0
  59. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +19 -16
  60. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -5
  61. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +18 -21
  62. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +5 -4
  63. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +7 -6
  64. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +56 -27
  65. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +11 -7
  66. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +20 -19
  67. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +106 -31
  68. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +5 -8
  69. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +4 -2
  70. package/deps/rocksdb/rocksdb/db/builder.cc +89 -44
  71. package/deps/rocksdb/rocksdb/db/builder.h +4 -6
  72. package/deps/rocksdb/rocksdb/db/c.cc +205 -57
  73. package/deps/rocksdb/rocksdb/db/c_test.c +141 -20
  74. package/deps/rocksdb/rocksdb/db/coalescing_iterator.cc +47 -0
  75. package/deps/rocksdb/rocksdb/db/coalescing_iterator.h +79 -0
  76. package/deps/rocksdb/rocksdb/db/column_family.cc +100 -36
  77. package/deps/rocksdb/rocksdb/db/column_family.h +46 -28
  78. package/deps/rocksdb/rocksdb/db/column_family_test.cc +168 -46
  79. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +51 -6
  80. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +72 -24
  81. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +11 -14
  82. package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +7 -0
  83. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +87 -8
  84. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -3
  85. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +310 -70
  86. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +78 -62
  87. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +0 -1
  88. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
  89. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +33 -96
  90. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +18 -10
  91. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +7 -8
  92. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +42 -22
  93. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +20 -16
  94. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +7 -3
  95. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +18 -17
  96. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +95 -10
  97. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +6 -7
  98. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +213 -34
  99. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +4 -4
  100. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +7 -8
  101. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +16 -16
  102. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +75 -142
  103. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +577 -34
  104. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +4 -4
  105. package/deps/rocksdb/rocksdb/db/convenience.cc +1 -1
  106. package/deps/rocksdb/rocksdb/db/corruption_test.cc +7 -38
  107. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +5 -5
  108. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +366 -136
  109. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +9 -10
  110. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +282 -6
  111. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +6 -6
  112. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +551 -150
  113. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +1 -1
  114. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +41 -13
  115. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +54 -17
  116. package/deps/rocksdb/rocksdb/db/db_follower_test.cc +527 -0
  117. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -58
  118. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +34 -45
  119. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +699 -580
  120. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +308 -230
  121. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +180 -107
  122. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -2
  123. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +10 -6
  124. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +36 -61
  125. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +347 -0
  126. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.h +54 -0
  127. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +206 -155
  128. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +5 -8
  129. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +41 -39
  130. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +26 -22
  131. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +14 -9
  132. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +126 -46
  133. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +21 -9
  134. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +294 -0
  135. package/deps/rocksdb/rocksdb/db/db_iter.cc +116 -78
  136. package/deps/rocksdb/rocksdb/db/db_iter.h +31 -7
  137. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +34 -14
  138. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +69 -8
  139. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +153 -18
  140. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +9 -11
  141. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +9 -1
  142. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +6 -2
  143. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +105 -0
  144. package/deps/rocksdb/rocksdb/db/db_options_test.cc +97 -111
  145. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +12 -3
  146. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +82 -30
  147. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +5 -7
  148. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +64 -22
  149. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +74 -0
  150. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +175 -47
  151. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +4 -3
  152. package/deps/rocksdb/rocksdb/db/db_test.cc +133 -109
  153. package/deps/rocksdb/rocksdb/db/db_test2.cc +227 -139
  154. package/deps/rocksdb/rocksdb/db/db_test_util.cc +42 -19
  155. package/deps/rocksdb/rocksdb/db/db_test_util.h +67 -24
  156. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +140 -2
  157. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +17 -19
  158. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +332 -87
  159. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +4 -4
  160. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +4 -4
  161. package/deps/rocksdb/rocksdb/db/db_write_test.cc +250 -30
  162. package/deps/rocksdb/rocksdb/db/dbformat.cc +41 -8
  163. package/deps/rocksdb/rocksdb/db/dbformat.h +100 -17
  164. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +48 -8
  165. package/deps/rocksdb/rocksdb/db/error_handler.cc +102 -116
  166. package/deps/rocksdb/rocksdb/db/error_handler.h +28 -6
  167. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +263 -99
  168. package/deps/rocksdb/rocksdb/db/event_helpers.cc +3 -1
  169. package/deps/rocksdb/rocksdb/db/experimental.cc +1073 -7
  170. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +261 -111
  171. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +263 -183
  172. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +31 -12
  173. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +698 -7
  174. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +5 -3
  175. package/deps/rocksdb/rocksdb/db/flush_job.cc +41 -41
  176. package/deps/rocksdb/rocksdb/db/flush_job.h +11 -8
  177. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -13
  178. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +19 -6
  179. package/deps/rocksdb/rocksdb/db/forward_iterator.h +12 -12
  180. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +83 -52
  181. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +169 -2
  182. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -6
  183. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -2
  184. package/deps/rocksdb/rocksdb/db/job_context.h +17 -0
  185. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -4
  186. package/deps/rocksdb/rocksdb/db/log_reader.cc +44 -20
  187. package/deps/rocksdb/rocksdb/db/log_reader.h +3 -0
  188. package/deps/rocksdb/rocksdb/db/log_test.cc +81 -17
  189. package/deps/rocksdb/rocksdb/db/log_writer.cc +135 -92
  190. package/deps/rocksdb/rocksdb/db/log_writer.h +11 -10
  191. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -3
  192. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +1 -1
  193. package/deps/rocksdb/rocksdb/db/memtable.cc +82 -62
  194. package/deps/rocksdb/rocksdb/db/memtable.h +17 -9
  195. package/deps/rocksdb/rocksdb/db/memtable_list.cc +19 -13
  196. package/deps/rocksdb/rocksdb/db/memtable_list.h +3 -1
  197. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +38 -5
  198. package/deps/rocksdb/rocksdb/db/merge_context.h +3 -0
  199. package/deps/rocksdb/rocksdb/db/merge_helper.cc +34 -156
  200. package/deps/rocksdb/rocksdb/db/merge_helper.h +52 -46
  201. package/deps/rocksdb/rocksdb/db/merge_test.cc +16 -11
  202. package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +289 -0
  203. package/deps/rocksdb/rocksdb/db/multi_cf_iterator_test.cc +918 -0
  204. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -6
  205. package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
  206. package/deps/rocksdb/rocksdb/db/output_validator.cc +8 -12
  207. package/deps/rocksdb/rocksdb/db/output_validator.h +1 -4
  208. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +23 -4
  209. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +2 -3
  210. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +1 -1
  211. package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +2 -2
  212. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -6
  213. package/deps/rocksdb/rocksdb/db/prefix_test.cc +21 -8
  214. package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +0 -2
  215. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +0 -1
  216. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +17 -4
  217. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +6 -3
  218. package/deps/rocksdb/rocksdb/db/repair.cc +35 -29
  219. package/deps/rocksdb/rocksdb/db/repair_test.cc +1 -2
  220. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +428 -156
  221. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +393 -227
  222. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +154 -82
  223. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +2 -2
  224. package/deps/rocksdb/rocksdb/db/table_cache.cc +9 -11
  225. package/deps/rocksdb/rocksdb/db/table_cache.h +2 -1
  226. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +8 -3
  227. package/deps/rocksdb/rocksdb/db/table_properties_collector.h +27 -26
  228. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +23 -23
  229. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +5 -5
  230. package/deps/rocksdb/rocksdb/db/version_builder.cc +6 -0
  231. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +62 -29
  232. package/deps/rocksdb/rocksdb/db/version_edit.cc +1 -2
  233. package/deps/rocksdb/rocksdb/db/version_edit.h +30 -11
  234. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +291 -116
  235. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +54 -11
  236. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +3 -1
  237. package/deps/rocksdb/rocksdb/db/version_set.cc +301 -141
  238. package/deps/rocksdb/rocksdb/db/version_set.h +90 -33
  239. package/deps/rocksdb/rocksdb/db/version_set_test.cc +817 -193
  240. package/deps/rocksdb/rocksdb/db/version_util.h +10 -5
  241. package/deps/rocksdb/rocksdb/db/wal_manager.cc +15 -11
  242. package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -1
  243. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +10 -9
  244. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +403 -28
  245. package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +2 -2
  246. package/deps/rocksdb/rocksdb/db/write_batch.cc +204 -18
  247. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +4 -0
  248. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +149 -5
  249. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +7 -7
  250. package/deps/rocksdb/rocksdb/db/write_stall_stats.h +7 -7
  251. package/deps/rocksdb/rocksdb/db/write_thread.cc +86 -47
  252. package/deps/rocksdb/rocksdb/db/write_thread.h +2 -0
  253. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +176 -68
  254. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +337 -125
  255. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +38 -9
  256. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +126 -34
  257. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +1 -1
  258. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +2 -2
  259. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +161 -1
  260. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +267 -9
  261. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +13 -7
  262. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +9 -9
  263. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +535 -86
  264. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +27 -5
  265. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +8 -15
  266. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +46 -21
  267. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +74 -4
  268. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +28 -11
  269. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +426 -151
  270. package/deps/rocksdb/rocksdb/env/composite_env.cc +1 -1
  271. package/deps/rocksdb/rocksdb/env/emulated_clock.h +6 -6
  272. package/deps/rocksdb/rocksdb/env/env.cc +21 -11
  273. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +9 -9
  274. package/deps/rocksdb/rocksdb/env/env_chroot.cc +3 -2
  275. package/deps/rocksdb/rocksdb/env/env_encryption.cc +3 -3
  276. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -2
  277. package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -10
  278. package/deps/rocksdb/rocksdb/env/env_test.cc +24 -18
  279. package/deps/rocksdb/rocksdb/env/file_system.cc +7 -6
  280. package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +3 -3
  281. package/deps/rocksdb/rocksdb/env/file_system_tracer.h +3 -3
  282. package/deps/rocksdb/rocksdb/env/fs_on_demand.cc +331 -0
  283. package/deps/rocksdb/rocksdb/env/fs_on_demand.h +139 -0
  284. package/deps/rocksdb/rocksdb/env/fs_posix.cc +14 -15
  285. package/deps/rocksdb/rocksdb/env/io_posix.cc +15 -10
  286. package/deps/rocksdb/rocksdb/env/io_posix.h +86 -92
  287. package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
  288. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +6 -6
  289. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +8 -6
  290. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +1 -1
  291. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +599 -592
  292. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +312 -200
  293. package/deps/rocksdb/rocksdb/file/file_util.cc +19 -14
  294. package/deps/rocksdb/rocksdb/file/file_util.h +34 -24
  295. package/deps/rocksdb/rocksdb/file/filename.cc +32 -17
  296. package/deps/rocksdb/rocksdb/file/filename.h +51 -53
  297. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +82 -441
  298. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +7 -6
  299. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -5
  300. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +9 -3
  301. package/deps/rocksdb/rocksdb/file/read_write_util.h +3 -3
  302. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +6 -2
  303. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +9 -4
  304. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +8 -4
  305. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +110 -89
  306. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +34 -17
  307. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +16 -0
  308. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +39 -189
  309. package/deps/rocksdb/rocksdb/include/rocksdb/attribute_groups.h +114 -0
  310. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +91 -6
  311. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +52 -7
  312. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -1
  313. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +27 -0
  314. package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +146 -0
  315. package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +2 -2
  316. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +254 -151
  317. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +39 -36
  318. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -1
  319. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +431 -0
  320. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +1 -1
  321. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +57 -23
  322. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +27 -57
  323. package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +74 -0
  324. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +2 -1
  325. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
  326. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +11 -11
  327. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -1
  328. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +146 -71
  329. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +6 -1
  330. package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +7 -4
  331. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +17 -13
  332. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +17 -19
  333. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +5 -5
  334. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +10 -8
  335. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +18 -2
  336. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +12 -2
  337. package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +3 -3
  338. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +118 -116
  339. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +4 -4
  340. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +26 -21
  341. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +18 -6
  342. package/deps/rocksdb/rocksdb/include/rocksdb/threadpool.h +1 -1
  343. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +5 -5
  344. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +8 -8
  345. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +12 -0
  346. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +4 -0
  347. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +3 -3
  348. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +8 -0
  349. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +1 -1
  350. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +4 -4
  351. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +3 -3
  352. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +5 -6
  353. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +159 -167
  354. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +1 -2
  355. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +52 -17
  356. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +3 -4
  357. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/types_util.h +36 -0
  358. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +118 -20
  359. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  360. package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +1 -1
  361. package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +87 -45
  362. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +26 -3
  363. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +22 -1
  364. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +7 -9
  365. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +5 -6
  366. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +2 -2
  367. package/deps/rocksdb/rocksdb/logging/env_logger.h +3 -3
  368. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -1
  369. package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -3
  370. package/deps/rocksdb/rocksdb/memory/arena.h +11 -0
  371. package/deps/rocksdb/rocksdb/memory/arena_test.cc +17 -2
  372. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +1 -1
  373. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +1 -0
  374. package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
  375. package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -1
  376. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +11 -10
  377. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +8 -7
  378. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +2 -2
  379. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +2 -2
  380. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
  381. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +3 -3
  382. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +2 -2
  383. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +3 -1
  384. package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +2 -2
  385. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +20 -10
  386. package/deps/rocksdb/rocksdb/monitoring/histogram.h +15 -15
  387. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +7 -3
  388. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +14 -14
  389. package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -1
  390. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +4 -0
  391. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +8 -1
  392. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -1
  393. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +5 -2
  394. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +64 -58
  395. package/deps/rocksdb/rocksdb/monitoring/statistics_impl.h +11 -12
  396. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
  397. package/deps/rocksdb/rocksdb/monitoring/thread_status_impl.cc +1 -1
  398. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +7 -1
  399. package/deps/rocksdb/rocksdb/options/cf_options.cc +20 -28
  400. package/deps/rocksdb/rocksdb/options/cf_options.h +7 -14
  401. package/deps/rocksdb/rocksdb/options/configurable.cc +20 -12
  402. package/deps/rocksdb/rocksdb/options/configurable_test.cc +4 -6
  403. package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -2
  404. package/deps/rocksdb/rocksdb/options/customizable.cc +1 -1
  405. package/deps/rocksdb/rocksdb/options/customizable_test.cc +3 -2
  406. package/deps/rocksdb/rocksdb/options/db_options.cc +22 -48
  407. package/deps/rocksdb/rocksdb/options/db_options.h +3 -3
  408. package/deps/rocksdb/rocksdb/options/offpeak_time_info.cc +59 -0
  409. package/deps/rocksdb/rocksdb/options/offpeak_time_info.h +37 -0
  410. package/deps/rocksdb/rocksdb/options/options.cc +14 -6
  411. package/deps/rocksdb/rocksdb/options/options_helper.cc +8 -13
  412. package/deps/rocksdb/rocksdb/options/options_helper.h +2 -3
  413. package/deps/rocksdb/rocksdb/options/options_parser.cc +35 -26
  414. package/deps/rocksdb/rocksdb/options/options_parser.h +4 -2
  415. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -3
  416. package/deps/rocksdb/rocksdb/options/options_test.cc +30 -23
  417. package/deps/rocksdb/rocksdb/port/lang.h +1 -1
  418. package/deps/rocksdb/rocksdb/port/port_example.h +7 -7
  419. package/deps/rocksdb/rocksdb/port/port_posix.cc +7 -7
  420. package/deps/rocksdb/rocksdb/port/port_posix.h +7 -7
  421. package/deps/rocksdb/rocksdb/port/stack_trace.cc +85 -24
  422. package/deps/rocksdb/rocksdb/port/win/env_win.cc +1 -2
  423. package/deps/rocksdb/rocksdb/port/win/io_win.cc +4 -4
  424. package/deps/rocksdb/rocksdb/port/win/io_win.h +13 -17
  425. package/deps/rocksdb/rocksdb/port/win/port_win.cc +3 -2
  426. package/deps/rocksdb/rocksdb/port/win/port_win.h +4 -4
  427. package/deps/rocksdb/rocksdb/src.mk +16 -1
  428. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -7
  429. package/deps/rocksdb/rocksdb/table/block_based/block.cc +39 -15
  430. package/deps/rocksdb/rocksdb/table/block_based/block.h +7 -7
  431. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +80 -40
  432. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +2 -3
  433. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +20 -5
  434. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +228 -122
  435. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +50 -9
  436. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +82 -25
  437. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +17 -20
  438. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +47 -13
  439. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +163 -50
  440. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +1 -2
  441. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +23 -23
  442. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -12
  443. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +1 -2
  444. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +6 -4
  445. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +32 -27
  446. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -1
  447. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +7 -10
  448. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +2 -2
  449. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
  450. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +25 -7
  451. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -5
  452. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +4 -6
  453. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +6 -6
  454. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -1
  455. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -5
  456. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +2 -2
  457. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -5
  458. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +138 -86
  459. package/deps/rocksdb/rocksdb/table/block_fetcher.h +22 -0
  460. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +26 -13
  461. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +11 -11
  462. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +11 -11
  463. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +10 -5
  464. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +6 -7
  465. package/deps/rocksdb/rocksdb/table/format.cc +15 -21
  466. package/deps/rocksdb/rocksdb/table/format.h +8 -0
  467. package/deps/rocksdb/rocksdb/table/get_context.cc +121 -78
  468. package/deps/rocksdb/rocksdb/table/get_context.h +11 -6
  469. package/deps/rocksdb/rocksdb/table/internal_iterator.h +12 -5
  470. package/deps/rocksdb/rocksdb/table/iterator.cc +4 -0
  471. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -1
  472. package/deps/rocksdb/rocksdb/table/merger_test.cc +1 -1
  473. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +5 -0
  474. package/deps/rocksdb/rocksdb/table/merging_iterator.h +4 -3
  475. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +15 -11
  476. package/deps/rocksdb/rocksdb/table/meta_blocks.h +8 -4
  477. package/deps/rocksdb/rocksdb/table/mock_table.cc +12 -8
  478. package/deps/rocksdb/rocksdb/table/mock_table.h +1 -3
  479. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +0 -1
  480. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -21
  481. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +4 -14
  482. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +7 -8
  483. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +7 -5
  484. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +15 -8
  485. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +1 -1
  486. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +75 -30
  487. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +7 -2
  488. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +76 -11
  489. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +358 -2
  490. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +93 -16
  491. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +12 -12
  492. package/deps/rocksdb/rocksdb/table/table_builder.h +12 -6
  493. package/deps/rocksdb/rocksdb/table/table_iterator.h +69 -0
  494. package/deps/rocksdb/rocksdb/table/table_properties.cc +1 -1
  495. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +8 -6
  496. package/deps/rocksdb/rocksdb/table/table_test.cc +732 -121
  497. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +3 -1
  498. package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
  499. package/deps/rocksdb/rocksdb/table/unique_id.cc +2 -2
  500. package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +2 -2
  501. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +5 -5
  502. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -6
  503. package/deps/rocksdb/rocksdb/test_util/testharness.cc +2 -4
  504. package/deps/rocksdb/rocksdb/test_util/testutil.cc +56 -32
  505. package/deps/rocksdb/rocksdb/test_util/testutil.h +57 -34
  506. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +18 -1
  507. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
  508. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  509. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +210 -112
  510. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +3 -3
  511. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +1 -1
  512. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +22 -27
  513. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +10 -4
  514. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +328 -59
  515. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +34 -2
  516. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +64 -17
  517. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +8 -1
  518. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +3 -2
  519. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +136 -10
  520. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -2
  521. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +50 -8
  522. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +51 -45
  523. package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +1 -1
  524. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +10 -10
  525. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +14 -4
  526. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +2 -1
  527. package/deps/rocksdb/rocksdb/unreleased_history/README.txt +2 -2
  528. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +2 -4
  529. package/deps/rocksdb/rocksdb/util/atomic.h +111 -0
  530. package/deps/rocksdb/rocksdb/util/autovector.h +5 -1
  531. package/deps/rocksdb/rocksdb/util/bloom_test.cc +12 -2
  532. package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
  533. package/deps/rocksdb/rocksdb/util/coding.h +34 -38
  534. package/deps/rocksdb/rocksdb/util/coding_test.cc +1 -1
  535. package/deps/rocksdb/rocksdb/util/comparator.cc +18 -5
  536. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -1
  537. package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +4 -4
  538. package/deps/rocksdb/rocksdb/util/crc32c.cc +3 -6
  539. package/deps/rocksdb/rocksdb/util/crc32c.h +3 -3
  540. package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +3 -4
  541. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -2
  542. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +2 -4
  543. package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -4
  544. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -2
  545. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +3 -3
  546. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +83 -59
  547. package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -3
  548. package/deps/rocksdb/rocksdb/util/hash.h +4 -4
  549. package/deps/rocksdb/rocksdb/util/log_write_bench.cc +3 -3
  550. package/deps/rocksdb/rocksdb/util/murmurhash.cc +1 -1
  551. package/deps/rocksdb/rocksdb/util/random.cc +3 -4
  552. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +23 -43
  553. package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +21 -16
  554. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +44 -24
  555. package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +2 -3
  556. package/deps/rocksdb/rocksdb/util/ribbon_config.cc +2 -10
  557. package/deps/rocksdb/rocksdb/util/ribbon_impl.h +2 -2
  558. package/deps/rocksdb/rocksdb/util/slice.cc +4 -5
  559. package/deps/rocksdb/rocksdb/util/slice_test.cc +70 -4
  560. package/deps/rocksdb/rocksdb/util/status.cc +1 -1
  561. package/deps/rocksdb/rocksdb/util/stderr_logger.cc +39 -7
  562. package/deps/rocksdb/rocksdb/util/stderr_logger.h +12 -2
  563. package/deps/rocksdb/rocksdb/util/string_util.cc +31 -18
  564. package/deps/rocksdb/rocksdb/util/string_util.h +9 -9
  565. package/deps/rocksdb/rocksdb/util/string_util_test.cc +36 -0
  566. package/deps/rocksdb/rocksdb/util/thread_list_test.cc +5 -5
  567. package/deps/rocksdb/rocksdb/util/thread_local.cc +1 -1
  568. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +3 -4
  569. package/deps/rocksdb/rocksdb/util/threadpool_imp.h +1 -1
  570. package/deps/rocksdb/rocksdb/util/udt_util_test.cc +4 -4
  571. package/deps/rocksdb/rocksdb/util/vector_iterator.h +12 -16
  572. package/deps/rocksdb/rocksdb/util/write_batch_util.h +5 -0
  573. package/deps/rocksdb/rocksdb/util/xxhash.h +116 -116
  574. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +4 -5
  575. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_impl.h +2 -2
  576. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -2
  577. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +33 -31
  578. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -22
  579. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +9 -7
  580. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +3 -6
  581. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +22 -55
  582. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +113 -74
  583. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +36 -24
  584. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +27 -11
  585. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -3
  586. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +68 -54
  587. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -6
  588. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +16 -16
  589. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +3 -2
  590. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +29 -9
  591. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +27 -14
  592. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +2 -4
  593. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +3 -3
  594. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +2 -4
  595. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +2 -4
  596. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +2 -4
  597. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +2 -4
  598. package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +2 -4
  599. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +8 -8
  600. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -7
  601. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -8
  602. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +2 -4
  603. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +9 -7
  604. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +7 -10
  605. package/deps/rocksdb/rocksdb/utilities/debug.cc +6 -2
  606. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +18 -11
  607. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +2 -2
  608. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +18 -25
  609. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +32 -23
  610. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +51 -48
  611. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +5 -3
  612. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -2
  613. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  614. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +2 -3
  615. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +3 -1
  616. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +7 -7
  617. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +10 -10
  618. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +5 -6
  619. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +5 -6
  620. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +1 -1
  621. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -8
  622. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +29 -21
  623. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +14 -15
  624. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -2
  625. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -1
  626. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_bench.cc +3 -3
  627. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -5
  628. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
  629. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +2 -2
  630. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +8 -8
  631. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +4 -4
  632. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +1 -1
  633. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +6 -9
  634. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +2 -2
  635. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +1 -1
  636. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +6 -6
  637. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +1 -2
  638. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +2 -3
  639. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  640. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +1 -1
  641. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
  642. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +5 -0
  643. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +1 -1
  644. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +3 -3
  645. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +1 -1
  646. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +4 -0
  647. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +4 -0
  648. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  649. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +4 -0
  650. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +12 -3
  651. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +17 -3
  652. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +3 -3
  653. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +1 -1
  654. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +3 -3
  655. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +4 -2
  656. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +1 -1
  657. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +1 -2
  658. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -3
  659. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +3 -4
  660. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +442 -10
  661. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +27 -9
  662. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +28 -7
  663. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +70 -12
  664. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +50 -22
  665. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -1
  666. package/deps/rocksdb/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +1 -1
  667. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +64 -3
  668. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +76 -17
  669. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +6 -6
  670. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +573 -77
  671. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -2
  672. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +65 -3
  673. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +13 -11
  674. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +1 -0
  675. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +14 -16
  676. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +37 -24
  677. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +23 -29
  678. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +4 -2
  679. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +31 -40
  680. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +8 -6
  681. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +3 -4
  682. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +34 -18
  683. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +21 -25
  684. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +26 -5
  685. package/deps/rocksdb/rocksdb/utilities/types_util.cc +88 -0
  686. package/deps/rocksdb/rocksdb/utilities/types_util_test.cc +98 -0
  687. package/deps/rocksdb/rocksdb/utilities/util_merge_operators_test.cc +1 -1
  688. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +463 -90
  689. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +259 -76
  690. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +70 -14
  691. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +609 -10
  692. package/deps/rocksdb/rocksdb.gyp +8 -4
  693. package/index.js +18 -4
  694. package/max_rev_operator.h +2 -0
  695. package/package.json +2 -2
  696. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  697. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  698. package/util.h +29 -5
  699. package/.tap/coverage/4c642b53-6895-4ef0-9391-7c6b8d484262.json +0 -14334
  700. package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +0 -57
@@ -288,39 +288,37 @@ void CompactionJob::Prepare() {
288
288
 
289
289
  if (preserve_time_duration > 0) {
290
290
  const ReadOptions read_options(Env::IOActivity::kCompaction);
291
- // setup seqno_to_time_mapping_
292
- seqno_to_time_mapping_.SetMaxTimeDuration(preserve_time_duration);
291
+ // Setup seqno_to_time_mapping_ with relevant time range.
292
+ seqno_to_time_mapping_.SetMaxTimeSpan(preserve_time_duration);
293
293
  for (const auto& each_level : *c->inputs()) {
294
294
  for (const auto& fmd : each_level.files) {
295
295
  std::shared_ptr<const TableProperties> tp;
296
296
  Status s =
297
297
  cfd->current()->GetTableProperties(read_options, &tp, fmd, nullptr);
298
298
  if (s.ok()) {
299
- seqno_to_time_mapping_.Add(tp->seqno_to_time_mapping)
300
- .PermitUncheckedError();
301
- seqno_to_time_mapping_.Add(fmd->fd.smallest_seqno,
302
- fmd->oldest_ancester_time);
299
+ s = seqno_to_time_mapping_.DecodeFrom(tp->seqno_to_time_mapping);
300
+ }
301
+ if (!s.ok()) {
302
+ ROCKS_LOG_WARN(
303
+ db_options_.info_log,
304
+ "Problem reading or processing seqno-to-time mapping: %s",
305
+ s.ToString().c_str());
303
306
  }
304
307
  }
305
308
  }
306
309
 
307
- auto status = seqno_to_time_mapping_.Sort();
308
- if (!status.ok()) {
309
- ROCKS_LOG_WARN(db_options_.info_log,
310
- "Invalid sequence number to time mapping: Status: %s",
311
- status.ToString().c_str());
312
- }
313
310
  int64_t _current_time = 0;
314
- status = db_options_.clock->GetCurrentTime(&_current_time);
315
- if (!status.ok()) {
311
+ Status s = db_options_.clock->GetCurrentTime(&_current_time);
312
+ if (!s.ok()) {
316
313
  ROCKS_LOG_WARN(db_options_.info_log,
317
314
  "Failed to get current time in compaction: Status: %s",
318
- status.ToString().c_str());
315
+ s.ToString().c_str());
319
316
  // preserve all time information
320
317
  preserve_time_min_seqno_ = 0;
321
318
  preclude_last_level_min_seqno_ = 0;
319
+ seqno_to_time_mapping_.Enforce();
322
320
  } else {
323
- seqno_to_time_mapping_.TruncateOldEntries(_current_time);
321
+ seqno_to_time_mapping_.Enforce(_current_time);
324
322
  uint64_t preserve_time =
325
323
  static_cast<uint64_t>(_current_time) > preserve_time_duration
326
324
  ? _current_time - preserve_time_duration
@@ -344,6 +342,16 @@ void CompactionJob::Prepare() {
344
342
  1;
345
343
  }
346
344
  }
345
+ // For accuracy of the GetProximalSeqnoBeforeTime queries above, we only
346
+ // limit the capacity after them.
347
+ // Here If we set capacity to the per-SST limit, we could be throwing away
348
+ // fidelity when a compaction output file has a narrower seqno range than
349
+ // all the inputs. If we only limit capacity for each compaction output, we
350
+ // could be doing a lot of unnecessary recomputation in a large compaction
351
+ // (up to quadratic in number of files). Thus, we do soemthing in the
352
+ // middle: enforce a resonably large constant size limit substantially
353
+ // larger than kMaxSeqnoTimePairsPerSST.
354
+ seqno_to_time_mapping_.SetCapacity(kMaxSeqnoToTimeEntries);
347
355
  }
348
356
  }
349
357
 
@@ -396,7 +404,9 @@ void CompactionJob::AcquireSubcompactionResources(
396
404
 
397
405
  void CompactionJob::ShrinkSubcompactionResources(uint64_t num_extra_resources) {
398
406
  // Do nothing when we have zero resources to shrink
399
- if (num_extra_resources == 0) return;
407
+ if (num_extra_resources == 0) {
408
+ return;
409
+ }
400
410
  db_mutex_->Lock();
401
411
  // We cannot release threads more than what we reserved before
402
412
  int extra_num_subcompaction_threads_released = env_->ReleaseThreads(
@@ -442,14 +452,6 @@ void CompactionJob::ReleaseSubcompactionResources() {
442
452
  ShrinkSubcompactionResources(extra_num_subcompaction_threads_reserved_);
443
453
  }
444
454
 
445
- struct RangeWithSize {
446
- Range range;
447
- uint64_t size;
448
-
449
- RangeWithSize(const Slice& a, const Slice& b, uint64_t s = 0)
450
- : range(a, b), size(s) {}
451
- };
452
-
453
455
  void CompactionJob::GenSubcompactionBoundaries() {
454
456
  // The goal is to find some boundary keys so that we can evenly partition
455
457
  // the compaction input data into max_subcompactions ranges.
@@ -476,7 +478,8 @@ void CompactionJob::GenSubcompactionBoundaries() {
476
478
  // overlap with N-1 other ranges. Since we requested a relatively large number
477
479
  // (128) of ranges from each input files, even N range overlapping would
478
480
  // cause relatively small inaccuracy.
479
- const ReadOptions read_options(Env::IOActivity::kCompaction);
481
+ ReadOptions read_options(Env::IOActivity::kCompaction);
482
+ read_options.rate_limiter_priority = GetRateLimiterPriority();
480
483
  auto* c = compact_->compaction;
481
484
  if (c->max_subcompactions() <= 1 &&
482
485
  !(c->immutable_options()->compaction_pri == kRoundRobin &&
@@ -583,7 +586,9 @@ void CompactionJob::GenSubcompactionBoundaries() {
583
586
 
584
587
  TEST_SYNC_POINT_CALLBACK("CompactionJob::GenSubcompactionBoundaries:0",
585
588
  &num_planned_subcompactions);
586
- if (num_planned_subcompactions == 1) return;
589
+ if (num_planned_subcompactions == 1) {
590
+ return;
591
+ }
587
592
 
588
593
  // Group the ranges into subcompactions
589
594
  uint64_t target_range_size = std::max(
@@ -640,7 +645,7 @@ Status CompactionJob::Run() {
640
645
 
641
646
  // Always schedule the first subcompaction (whether or not there are also
642
647
  // others) in the current thread to be efficient with resources
643
- ProcessKeyValueCompaction(&compact_->sub_compact_states[0]);
648
+ ProcessKeyValueCompaction(compact_->sub_compact_states.data());
644
649
 
645
650
  // Wait for all other threads (if there are any) to finish execution
646
651
  for (auto& thread : thread_pool) {
@@ -728,8 +733,9 @@ Status CompactionJob::Run() {
728
733
  // use_direct_io_for_flush_and_compaction is true, we will regard this
729
734
  // verification as user reads since the goal is to cache it here for
730
735
  // further user reads
731
- const ReadOptions verify_table_read_options(
732
- Env::IOActivity::kCompaction);
736
+ ReadOptions verify_table_read_options(Env::IOActivity::kCompaction);
737
+ verify_table_read_options.rate_limiter_priority =
738
+ GetRateLimiterPriority();
733
739
  InternalIterator* iter = cfd->table_cache()->NewIterator(
734
740
  verify_table_read_options, file_options_,
735
741
  cfd->internal_comparator(), files_output[file_idx]->meta,
@@ -750,7 +756,6 @@ Status CompactionJob::Run() {
750
756
 
751
757
  if (s.ok() && paranoid_file_checks_) {
752
758
  OutputValidator validator(cfd->internal_comparator(),
753
- /*_enable_order_check=*/true,
754
759
  /*_enable_hash=*/true);
755
760
  for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
756
761
  s = validator.Add(iter->key(), iter->value());
@@ -821,24 +826,27 @@ Status CompactionJob::Run() {
821
826
  // input keys. So the number of keys it processed is not suitable for
822
827
  // verification here.
823
828
  // TODO: support verification when trim_ts_ is non-empty.
824
- if (!(ts_sz > 0 && !trim_ts_.empty()) &&
825
- db_options_.compaction_verify_record_count) {
829
+ if (!(ts_sz > 0 && !trim_ts_.empty())) {
826
830
  assert(compaction_stats_.stats.num_input_records > 0);
827
831
  // TODO: verify the number of range deletion entries.
828
832
  uint64_t expected =
829
833
  compaction_stats_.stats.num_input_records - num_input_range_del;
830
834
  uint64_t actual = compaction_job_stats_->num_input_records;
831
835
  if (expected != actual) {
836
+ char scratch[2345];
837
+ compact_->compaction->Summary(scratch, sizeof(scratch));
832
838
  std::string msg =
833
- "Total number of input records: " + std::to_string(expected) +
834
- ", but processed " + std::to_string(actual) + " records.";
839
+ "Compaction number of input keys does not match "
840
+ "number of keys processed. Expected " +
841
+ std::to_string(expected) + " but processed " +
842
+ std::to_string(actual) + ". Compaction summary: " + scratch;
835
843
  ROCKS_LOG_WARN(
836
- db_options_.info_log, "[%s] [JOB %d] Compaction %s",
844
+ db_options_.info_log, "[%s] [JOB %d] Compaction with status: %s",
837
845
  compact_->compaction->column_family_data()->GetName().c_str(),
838
846
  job_context_->job_id, msg.c_str());
839
- status = Status::Corruption(
840
- "Compaction number of input keys does not match number of keys "
841
- "processed.");
847
+ if (db_options_.compaction_verify_record_count) {
848
+ status = Status::Corruption(msg);
849
+ }
842
850
  }
843
851
  }
844
852
  }
@@ -1130,6 +1138,9 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
1130
1138
  // (b) CompactionFilter::Decision::kRemoveAndSkipUntil.
1131
1139
  read_options.total_order_seek = true;
1132
1140
 
1141
+ const WriteOptions write_options(Env::IOPriority::IO_LOW,
1142
+ Env::IOActivity::kCompaction);
1143
+
1133
1144
  // Remove the timestamps from boundaries because boundaries created in
1134
1145
  // GenSubcompactionBoundaries doesn't strip away the timestamp.
1135
1146
  size_t ts_sz = cfd->user_comparator()->timestamp_size();
@@ -1264,18 +1275,17 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
1264
1275
  ? new BlobFileBuilder(
1265
1276
  versions_, fs_.get(),
1266
1277
  sub_compact->compaction->immutable_options(),
1267
- mutable_cf_options, &file_options_, db_id_, db_session_id_,
1268
- job_id_, cfd->GetID(), cfd->GetName(), Env::IOPriority::IO_LOW,
1278
+ mutable_cf_options, &file_options_, &write_options, db_id_,
1279
+ db_session_id_, job_id_, cfd->GetID(), cfd->GetName(),
1269
1280
  write_hint_, io_tracer_, blob_callback_,
1270
1281
  BlobFileCreationReason::kCompaction, &blob_file_paths,
1271
1282
  sub_compact->Current().GetBlobFileAdditionsPtr())
1272
1283
  : nullptr);
1273
1284
 
1274
1285
  TEST_SYNC_POINT("CompactionJob::Run():Inprogress");
1275
- TEST_SYNC_POINT_CALLBACK(
1276
- "CompactionJob::Run():PausingManualCompaction:1",
1277
- reinterpret_cast<void*>(
1278
- const_cast<std::atomic<bool>*>(&manual_compaction_canceled_)));
1286
+ TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():PausingManualCompaction:1",
1287
+ static_cast<void*>(const_cast<std::atomic<bool>*>(
1288
+ &manual_compaction_canceled_)));
1279
1289
 
1280
1290
  const std::string* const full_history_ts_low =
1281
1291
  full_history_ts_low_.empty() ? nullptr : &full_history_ts_low_;
@@ -1323,8 +1333,7 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
1323
1333
  Status status;
1324
1334
  TEST_SYNC_POINT_CALLBACK(
1325
1335
  "CompactionJob::ProcessKeyValueCompaction()::Processing",
1326
- reinterpret_cast<void*>(
1327
- const_cast<Compaction*>(sub_compact->compaction)));
1336
+ static_cast<void*>(const_cast<Compaction*>(sub_compact->compaction)));
1328
1337
  uint64_t last_cpu_micros = prev_cpu_micros;
1329
1338
  while (status.ok() && !cfd->IsDropped() && c_iter->Valid()) {
1330
1339
  // Invariant: c_iter.status() is guaranteed to be OK if c_iter->Valid()
@@ -1355,10 +1364,9 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
1355
1364
  break;
1356
1365
  }
1357
1366
 
1358
- TEST_SYNC_POINT_CALLBACK(
1359
- "CompactionJob::Run():PausingManualCompaction:2",
1360
- reinterpret_cast<void*>(
1361
- const_cast<std::atomic<bool>*>(&manual_compaction_canceled_)));
1367
+ TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():PausingManualCompaction:2",
1368
+ static_cast<void*>(const_cast<std::atomic<bool>*>(
1369
+ &manual_compaction_canceled_)));
1362
1370
  c_iter->Next();
1363
1371
  if (c_iter->status().IsManualCompactionPaused()) {
1364
1372
  break;
@@ -1710,6 +1718,8 @@ Status CompactionJob::InstallCompactionResults(
1710
1718
  db_mutex_->AssertHeld();
1711
1719
 
1712
1720
  const ReadOptions read_options(Env::IOActivity::kCompaction);
1721
+ const WriteOptions write_options(Env::IOActivity::kCompaction);
1722
+
1713
1723
  auto* compaction = compact_->compaction;
1714
1724
  assert(compaction);
1715
1725
 
@@ -1792,8 +1802,9 @@ Status CompactionJob::InstallCompactionResults(
1792
1802
  };
1793
1803
 
1794
1804
  return versions_->LogAndApply(
1795
- compaction->column_family_data(), mutable_cf_options, read_options, edit,
1796
- db_mutex_, db_directory_, /*new_descriptor_log=*/false,
1805
+ compaction->column_family_data(), mutable_cf_options, read_options,
1806
+ write_options, edit, db_mutex_, db_directory_,
1807
+ /*new_descriptor_log=*/false,
1797
1808
  /*column_family_options=*/nullptr, manifest_wcb);
1798
1809
  }
1799
1810
 
@@ -1843,13 +1854,14 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
1843
1854
  // Pass temperature of the last level files to FileSystem.
1844
1855
  FileOptions fo_copy = file_options_;
1845
1856
  Temperature temperature = sub_compact->compaction->output_temperature();
1846
- // only set for the last level compaction and also it's not output to
1847
- // penultimate level (when preclude_last_level feature is enabled)
1848
- if (temperature == Temperature::kUnknown &&
1857
+ Temperature last_level_temp =
1858
+ sub_compact->compaction->mutable_cf_options()->last_level_temperature;
1859
+ // Here last_level_temperature supersedes default_write_temperature, when
1860
+ // enabled and applicable
1861
+ if (last_level_temp != Temperature::kUnknown &&
1849
1862
  sub_compact->compaction->is_last_level() &&
1850
1863
  !sub_compact->IsCurrentPenultimateLevel()) {
1851
- temperature =
1852
- sub_compact->compaction->mutable_cf_options()->last_level_temperature;
1864
+ temperature = last_level_temp;
1853
1865
  }
1854
1866
  fo_copy.temperature = temperature;
1855
1867
 
@@ -1900,6 +1912,8 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
1900
1912
  sub_compact->start.has_value() ? &tmp_start : nullptr,
1901
1913
  sub_compact->end.has_value() ? &tmp_end : nullptr);
1902
1914
  if (oldest_ancester_time == std::numeric_limits<uint64_t>::max()) {
1915
+ // TODO: fix DBSSTTest.GetTotalSstFilesSize and use
1916
+ // kUnknownOldestAncesterTime
1903
1917
  oldest_ancester_time = current_time;
1904
1918
  }
1905
1919
 
@@ -1927,8 +1941,6 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
1927
1941
  }
1928
1942
 
1929
1943
  outputs.AddOutput(std::move(meta), cfd->internal_comparator(),
1930
- sub_compact->compaction->mutable_cf_options()
1931
- ->check_flush_compaction_key_order,
1932
1944
  paranoid_file_checks_);
1933
1945
  }
1934
1946
 
@@ -1941,13 +1953,17 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
1941
1953
  sub_compact->compaction->immutable_options()->listeners;
1942
1954
  outputs.AssignFileWriter(new WritableFileWriter(
1943
1955
  std::move(writable_file), fname, fo_copy, db_options_.clock, io_tracer_,
1944
- db_options_.stats, listeners, db_options_.file_checksum_gen_factory.get(),
1956
+ db_options_.stats, Histograms::SST_WRITE_MICROS, listeners,
1957
+ db_options_.file_checksum_gen_factory.get(),
1945
1958
  tmp_set.Contains(FileType::kTableFile), false));
1946
1959
 
1947
1960
  // TODO(hx235): pass in the correct `oldest_key_time` instead of `0`
1961
+ const ReadOptions read_options(Env::IOActivity::kCompaction);
1962
+ const WriteOptions write_options(Env::IOActivity::kCompaction);
1948
1963
  TableBuilderOptions tboptions(
1949
1964
  *cfd->ioptions(), *(sub_compact->compaction->mutable_cf_options()),
1950
- cfd->internal_comparator(), cfd->int_tbl_prop_collector_factories(),
1965
+ read_options, write_options, cfd->internal_comparator(),
1966
+ cfd->internal_tbl_prop_coll_factories(),
1951
1967
  sub_compact->compaction->output_compression(),
1952
1968
  sub_compact->compaction->output_compression_opts(), cfd->GetID(),
1953
1969
  cfd->GetName(), sub_compact->compaction->output_level(),
@@ -41,7 +41,6 @@
41
41
  #include "rocksdb/env.h"
42
42
  #include "rocksdb/memtablerep.h"
43
43
  #include "rocksdb/transaction_log.h"
44
- #include "table/scoped_arena_iterator.h"
45
44
  #include "util/autovector.h"
46
45
  #include "util/stop_watch.h"
47
46
  #include "util/thread_local.h"
@@ -46,7 +46,6 @@
46
46
  #include "table/block_based/block_based_table_factory.h"
47
47
  #include "table/mock_table.h"
48
48
  #include "table/plain/plain_table_factory.h"
49
- #include "table/scoped_arena_iterator.h"
50
49
  #include "test_util/sync_point.h"
51
50
  #include "test_util/testharness.h"
52
51
  #include "test_util/testutil.h"
@@ -131,7 +130,7 @@ class CompactionJobStatsTest : public testing::Test,
131
130
  ColumnFamilyOptions cf_opts(options);
132
131
  size_t cfi = handles_.size();
133
132
  handles_.resize(cfi + cfs.size());
134
- for (auto cf : cfs) {
133
+ for (const auto& cf : cfs) {
135
134
  ASSERT_OK(db_->CreateColumnFamily(cf_opts, cf, &handles_[cfi++]));
136
135
  }
137
136
  }
@@ -160,7 +159,7 @@ class CompactionJobStatsTest : public testing::Test,
160
159
  EXPECT_EQ(cfs.size(), options.size());
161
160
  std::vector<ColumnFamilyDescriptor> column_families;
162
161
  for (size_t i = 0; i < cfs.size(); ++i) {
163
- column_families.push_back(ColumnFamilyDescriptor(cfs[i], options[i]));
162
+ column_families.emplace_back(cfs[i], options[i]);
164
163
  }
165
164
  DBOptions db_opts = DBOptions(options[0]);
166
165
  return DB::Open(db_opts, dbname_, column_families, &handles_, &db_);
@@ -215,7 +215,9 @@ class CompactionJobTestBase : public testing::Test {
215
215
  dbname_, &db_options_, env_options_, table_cache_.get(),
216
216
  &write_buffer_manager_, &write_controller_,
217
217
  /*block_cache_tracer=*/nullptr,
218
- /*io_tracer=*/nullptr, /*db_id*/ "", /*db_session_id*/ "")),
218
+ /*io_tracer=*/nullptr, /*db_id=*/"", /*db_session_id=*/"",
219
+ /*daily_offpeak_time_utc=*/"",
220
+ /*error_handler=*/nullptr, /*read_only=*/false)),
219
221
  shutting_down_(false),
220
222
  mock_table_factory_(new mock::MockTableFactory()),
221
223
  error_handler_(nullptr, db_options_, &mutex_),
@@ -293,17 +295,20 @@ class CompactionJobTestBase : public testing::Test {
293
295
  Status s = WritableFileWriter::Create(fs_, table_name, FileOptions(),
294
296
  &file_writer, nullptr);
295
297
  ASSERT_OK(s);
298
+ const ReadOptions read_options;
299
+ const WriteOptions write_options;
296
300
  std::unique_ptr<TableBuilder> table_builder(
297
301
  cf_options_.table_factory->NewTableBuilder(
298
302
  TableBuilderOptions(*cfd_->ioptions(), mutable_cf_options_,
303
+ read_options, write_options,
299
304
  cfd_->internal_comparator(),
300
- cfd_->int_tbl_prop_collector_factories(),
305
+ cfd_->internal_tbl_prop_coll_factories(),
301
306
  CompressionType::kNoCompression,
302
307
  CompressionOptions(), 0 /* column_family_id */,
303
308
  kDefaultColumnFamilyName, -1 /* level */),
304
309
  file_writer.get()));
305
310
  // Build table.
306
- for (auto kv : contents) {
311
+ for (const auto& kv : contents) {
307
312
  std::string key;
308
313
  std::string value;
309
314
  std::tie(key, value) = kv;
@@ -322,7 +327,7 @@ class CompactionJobTestBase : public testing::Test {
322
327
  SequenceNumber smallest_seqno = kMaxSequenceNumber;
323
328
  SequenceNumber largest_seqno = 0;
324
329
  uint64_t oldest_blob_file_number = kInvalidBlobFileNumber;
325
- for (auto kv : contents) {
330
+ for (const auto& kv : contents) {
326
331
  ParsedInternalKey key;
327
332
  std::string skey;
328
333
  std::string value;
@@ -392,7 +397,7 @@ class CompactionJobTestBase : public testing::Test {
392
397
  mutex_.Lock();
393
398
  EXPECT_OK(versions_->LogAndApply(
394
399
  versions_->GetColumnFamilySet()->GetDefault(), mutable_cf_options_,
395
- read_options_, &edit, &mutex_, nullptr));
400
+ read_options_, write_options_, &edit, &mutex_, nullptr));
396
401
  mutex_.Unlock();
397
402
  }
398
403
 
@@ -540,13 +545,14 @@ class CompactionJobTestBase : public testing::Test {
540
545
  ASSERT_OK(s);
541
546
  db_options_.info_log = info_log;
542
547
 
543
- versions_.reset(
544
- new VersionSet(dbname_, &db_options_, env_options_, table_cache_.get(),
545
- &write_buffer_manager_, &write_controller_,
546
- /*block_cache_tracer=*/nullptr, /*io_tracer=*/nullptr,
547
- /*db_id*/ "", /*db_session_id*/ ""));
548
+ versions_.reset(new VersionSet(
549
+ dbname_, &db_options_, env_options_, table_cache_.get(),
550
+ &write_buffer_manager_, &write_controller_,
551
+ /*block_cache_tracer=*/nullptr, /*io_tracer=*/nullptr,
552
+ /*db_id=*/"", /*db_session_id=*/"", /*daily_offpeak_time_utc=*/"",
553
+ /*error_handler=*/nullptr, /*read_only=*/false));
548
554
  compaction_job_stats_.Reset();
549
- ASSERT_OK(SetIdentityFile(env_, dbname_));
555
+ ASSERT_OK(SetIdentityFile(WriteOptions(), env_, dbname_));
550
556
 
551
557
  VersionEdit new_db;
552
558
  new_db.SetLogNumber(0);
@@ -565,11 +571,11 @@ class CompactionJobTestBase : public testing::Test {
565
571
  log::Writer log(std::move(file_writer), 0, false);
566
572
  std::string record;
567
573
  new_db.EncodeTo(&record);
568
- s = log.AddRecord(record);
574
+ s = log.AddRecord(WriteOptions(), record);
569
575
  }
570
576
  ASSERT_OK(s);
571
577
  // Make "CURRENT" file that points to the new manifest file.
572
- s = SetCurrentFile(fs_.get(), dbname_, 1, nullptr);
578
+ s = SetCurrentFile(WriteOptions(), fs_.get(), dbname_, 1, nullptr);
573
579
 
574
580
  ASSERT_OK(s);
575
581
 
@@ -733,6 +739,7 @@ class CompactionJobTestBase : public testing::Test {
733
739
  MutableCFOptions mutable_cf_options_;
734
740
  MutableDBOptions mutable_db_options_;
735
741
  const ReadOptions read_options_;
742
+ const WriteOptions write_options_;
736
743
  std::shared_ptr<Cache> table_cache_;
737
744
  WriteController write_controller_;
738
745
  WriteBufferManager write_buffer_manager_;
@@ -1466,7 +1473,7 @@ TEST_F(CompactionJobTest, OldestBlobFileNumber) {
1466
1473
  }
1467
1474
 
1468
1475
  TEST_F(CompactionJobTest, VerifyPenultimateLevelOutput) {
1469
- cf_options_.bottommost_temperature = Temperature::kCold;
1476
+ cf_options_.last_level_temperature = Temperature::kCold;
1470
1477
  SyncPoint::GetInstance()->SetCallBack(
1471
1478
  "Compaction::SupportsPerKeyPlacement:Enabled", [&](void* arg) {
1472
1479
  auto supports_per_key_placement = static_cast<bool*>(arg);
@@ -1524,13 +1531,15 @@ TEST_F(CompactionJobTest, VerifyPenultimateLevelOutput) {
1524
1531
  {files0, files1, files2, files3}, input_levels,
1525
1532
  /*verify_func=*/[&](Compaction& comp) {
1526
1533
  for (char c = 'a'; c <= 'z'; c++) {
1527
- std::string c_str;
1528
- c_str = c;
1529
- const Slice key(c_str);
1530
1534
  if (c == 'a') {
1531
- ASSERT_FALSE(comp.WithinPenultimateLevelOutputRange(key));
1535
+ ParsedInternalKey pik("a", 0U, kTypeValue);
1536
+ ASSERT_FALSE(comp.WithinPenultimateLevelOutputRange(pik));
1532
1537
  } else {
1533
- ASSERT_TRUE(comp.WithinPenultimateLevelOutputRange(key));
1538
+ std::string c_str{c};
1539
+ // WithinPenultimateLevelOutputRange checks internal key range.
1540
+ // 'z' is the last key, so set seqno properly.
1541
+ ParsedInternalKey pik(c_str, c == 'z' ? 12U : 0U, kTypeValue);
1542
+ ASSERT_TRUE(comp.WithinPenultimateLevelOutputRange(pik));
1534
1543
  }
1535
1544
  }
1536
1545
  });
@@ -1743,23 +1752,9 @@ TEST_F(CompactionJobTest, ResultSerialization) {
1743
1752
  }
1744
1753
  }
1745
1754
 
1746
- class CompactionJobDynamicFileSizeTest
1747
- : public CompactionJobTestBase,
1748
- public ::testing::WithParamInterface<bool> {
1749
- public:
1750
- CompactionJobDynamicFileSizeTest()
1751
- : CompactionJobTestBase(
1752
- test::PerThreadDBPath("compaction_job_dynamic_file_size_test"),
1753
- BytewiseComparator(), [](uint64_t /*ts*/) { return ""; },
1754
- /*test_io_priority=*/false, TableTypeForTest::kMockTable) {}
1755
- };
1756
-
1757
- TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytes) {
1755
+ TEST_F(CompactionJobTest, CutForMaxCompactionBytes) {
1758
1756
  // dynamic_file_size option should have no impact on cutting for max
1759
1757
  // compaction bytes.
1760
- bool enable_dyanmic_file_size = GetParam();
1761
- cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
1762
-
1763
1758
  NewDB();
1764
1759
  mutable_cf_options_.target_file_size_base = 80;
1765
1760
  mutable_cf_options_.max_compaction_bytes = 21;
@@ -1833,10 +1828,7 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytes) {
1833
1828
  {expected_file1, expected_file2});
1834
1829
  }
1835
1830
 
1836
- TEST_P(CompactionJobDynamicFileSizeTest, CutToSkipGrandparentFile) {
1837
- bool enable_dyanmic_file_size = GetParam();
1838
- cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
1839
-
1831
+ TEST_F(CompactionJobTest, CutToSkipGrandparentFile) {
1840
1832
  NewDB();
1841
1833
  // Make sure the grandparent level file size (10) qualifies skipping.
1842
1834
  // Currently, it has to be > 1/8 of target file size.
@@ -1871,28 +1863,15 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToSkipGrandparentFile) {
1871
1863
  mock::MakeMockFile({{KeyStr("x", 4U, kTypeValue), "val"},
1872
1864
  {KeyStr("z", 6U, kTypeValue), "val3"}});
1873
1865
 
1874
- auto expected_file_disable_dynamic_file_size =
1875
- mock::MakeMockFile({{KeyStr("a", 5U, kTypeValue), "val2"},
1876
- {KeyStr("c", 3U, kTypeValue), "val"},
1877
- {KeyStr("x", 4U, kTypeValue), "val"},
1878
- {KeyStr("z", 6U, kTypeValue), "val3"}});
1879
-
1880
1866
  SetLastSequence(6U);
1881
1867
  const std::vector<int> input_levels = {0, 1};
1882
1868
  auto lvl0_files = cfd_->current()->storage_info()->LevelFiles(0);
1883
1869
  auto lvl1_files = cfd_->current()->storage_info()->LevelFiles(1);
1884
- if (enable_dyanmic_file_size) {
1885
1870
  RunCompaction({lvl0_files, lvl1_files}, input_levels,
1886
1871
  {expected_file1, expected_file2});
1887
- } else {
1888
- RunCompaction({lvl0_files, lvl1_files}, input_levels,
1889
- {expected_file_disable_dynamic_file_size});
1890
- }
1891
1872
  }
1892
1873
 
1893
- TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundary) {
1894
- bool enable_dyanmic_file_size = GetParam();
1895
- cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
1874
+ TEST_F(CompactionJobTest, CutToAlignGrandparentBoundary) {
1896
1875
  NewDB();
1897
1876
 
1898
1877
  // MockTable has 1 byte per entry by default and each file is 10 bytes.
@@ -1959,40 +1938,15 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundary) {
1959
1938
  }
1960
1939
  expected_file2.emplace_back(KeyStr("s", 4U, kTypeValue), "val");
1961
1940
 
1962
- mock::KVVector expected_file_disable_dynamic_file_size1;
1963
- for (char i = 0; i < 10; i++) {
1964
- expected_file_disable_dynamic_file_size1.emplace_back(
1965
- KeyStr(std::string(1, ch + i), i + 10, kTypeValue),
1966
- "val" + std::to_string(i));
1967
- }
1968
-
1969
- mock::KVVector expected_file_disable_dynamic_file_size2;
1970
- for (char i = 10; i < 12; i++) {
1971
- expected_file_disable_dynamic_file_size2.emplace_back(
1972
- KeyStr(std::string(1, ch + i), i + 10, kTypeValue),
1973
- "val" + std::to_string(i));
1974
- }
1975
-
1976
- expected_file_disable_dynamic_file_size2.emplace_back(
1977
- KeyStr("s", 4U, kTypeValue), "val");
1978
-
1979
1941
  SetLastSequence(22U);
1980
1942
  const std::vector<int> input_levels = {0, 1};
1981
1943
  auto lvl0_files = cfd_->current()->storage_info()->LevelFiles(0);
1982
1944
  auto lvl1_files = cfd_->current()->storage_info()->LevelFiles(1);
1983
- if (enable_dyanmic_file_size) {
1984
1945
  RunCompaction({lvl0_files, lvl1_files}, input_levels,
1985
1946
  {expected_file1, expected_file2});
1986
- } else {
1987
- RunCompaction({lvl0_files, lvl1_files}, input_levels,
1988
- {expected_file_disable_dynamic_file_size1,
1989
- expected_file_disable_dynamic_file_size2});
1990
- }
1991
1947
  }
1992
1948
 
1993
- TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
1994
- bool enable_dyanmic_file_size = GetParam();
1995
- cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
1949
+ TEST_F(CompactionJobTest, CutToAlignGrandparentBoundarySameKey) {
1996
1950
  NewDB();
1997
1951
 
1998
1952
  // MockTable has 1 byte per entry by default and each file is 10 bytes.
@@ -2029,13 +1983,9 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
2029
1983
  AddMockFile(file5, 2);
2030
1984
 
2031
1985
  mock::KVVector expected_file1;
2032
- mock::KVVector expected_file_disable_dynamic_file_size;
2033
-
2034
1986
  for (int i = 0; i < 8; i++) {
2035
1987
  expected_file1.emplace_back(KeyStr("a", 100 - i, kTypeValue),
2036
1988
  "val" + std::to_string(100 - i));
2037
- expected_file_disable_dynamic_file_size.emplace_back(
2038
- KeyStr("a", 100 - i, kTypeValue), "val" + std::to_string(100 - i));
2039
1989
  }
2040
1990
 
2041
1991
  // make sure `b` is cut in a separated file (so internally it's not using
@@ -2044,9 +1994,6 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
2044
1994
  auto expected_file2 =
2045
1995
  mock::MakeMockFile({{KeyStr("b", 90U, kTypeValue), "valb"}});
2046
1996
 
2047
- expected_file_disable_dynamic_file_size.emplace_back(
2048
- KeyStr("b", 90U, kTypeValue), "valb");
2049
-
2050
1997
  SetLastSequence(122U);
2051
1998
  const std::vector<int> input_levels = {0, 1};
2052
1999
  auto lvl0_files = cfd_->current()->storage_info()->LevelFiles(0);
@@ -2057,20 +2004,13 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
2057
2004
  for (int i = 80; i <= 100; i++) {
2058
2005
  snapshots.emplace_back(i);
2059
2006
  }
2060
- if (enable_dyanmic_file_size) {
2061
2007
  RunCompaction({lvl0_files, lvl1_files}, input_levels,
2062
2008
  {expected_file1, expected_file2}, snapshots);
2063
- } else {
2064
- RunCompaction({lvl0_files, lvl1_files}, input_levels,
2065
- {expected_file_disable_dynamic_file_size}, snapshots);
2066
- }
2067
2009
  }
2068
2010
 
2069
- TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytesSameKey) {
2011
+ TEST_F(CompactionJobTest, CutForMaxCompactionBytesSameKey) {
2070
2012
  // dynamic_file_size option should have no impact on cutting for max
2071
2013
  // compaction bytes.
2072
- bool enable_dyanmic_file_size = GetParam();
2073
- cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
2074
2014
 
2075
2015
  NewDB();
2076
2016
  mutable_cf_options_.target_file_size_base = 80;
@@ -2127,9 +2067,6 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytesSameKey) {
2127
2067
  {expected_file1, expected_file2, expected_file3}, snapshots);
2128
2068
  }
2129
2069
 
2130
- INSTANTIATE_TEST_CASE_P(CompactionJobDynamicFileSizeTest,
2131
- CompactionJobDynamicFileSizeTest, testing::Bool());
2132
-
2133
2070
  class CompactionJobTimestampTest : public CompactionJobTestBase {
2134
2071
  public:
2135
2072
  CompactionJobTimestampTest()