@nxtedition/rocksdb 13.5.7 → 13.5.9

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 (509) hide show
  1. package/binding.cc +248 -70
  2. package/binding.gyp +2 -2
  3. package/deps/rocksdb/rocksdb/BUCK +12 -0
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -0
  5. package/deps/rocksdb/rocksdb/Makefile +28 -23
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +0 -1
  7. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +1 -2
  8. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +43 -39
  9. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -0
  10. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +0 -1
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +2 -3
  12. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -2
  13. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +1 -3
  14. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +11 -1
  15. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +13 -5
  16. package/deps/rocksdb/rocksdb/crash_test.mk +61 -15
  17. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +136 -45
  18. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +34 -16
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +10 -7
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -2
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +1 -0
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +12 -9
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +3 -4
  24. package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +2 -2
  25. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +3 -4
  26. package/deps/rocksdb/rocksdb/db/builder.cc +22 -8
  27. package/deps/rocksdb/rocksdb/db/builder.h +5 -4
  28. package/deps/rocksdb/rocksdb/db/c.cc +556 -15
  29. package/deps/rocksdb/rocksdb/db/c_test.c +133 -12
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +114 -50
  31. package/deps/rocksdb/rocksdb/db/column_family.h +53 -36
  32. package/deps/rocksdb/rocksdb/db/column_family_test.cc +6 -6
  33. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +0 -1
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +95 -70
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +71 -51
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -86
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +26 -68
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +0 -122
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +453 -258
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +117 -92
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +0 -1
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +38 -38
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +24 -17
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +34 -45
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +32 -31
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -3
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +1 -1
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +2 -1
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +10 -10
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +2 -1
  51. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +82 -34
  52. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +267 -179
  53. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +4 -1
  54. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +273 -89
  55. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +300 -14
  56. package/deps/rocksdb/rocksdb/db/compaction/compaction_state.cc +4 -4
  57. package/deps/rocksdb/rocksdb/db/compaction/compaction_state.h +2 -2
  58. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +28 -23
  59. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +69 -51
  60. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +522 -245
  61. package/deps/rocksdb/rocksdb/db/convenience.cc +15 -4
  62. package/deps/rocksdb/rocksdb/db/corruption_test.cc +1 -3
  63. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +0 -2
  64. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +196 -17
  65. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +74 -62
  66. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +48 -0
  67. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +682 -250
  68. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +0 -1
  69. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +3 -4
  70. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +11 -16
  71. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +57 -0
  72. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +2 -2
  73. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -1
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +540 -490
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +347 -188
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +584 -217
  77. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +13 -9
  78. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -7
  79. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +40 -36
  80. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -3
  81. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +751 -372
  82. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +35 -32
  83. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +24 -2
  84. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +125 -63
  85. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +2 -2
  86. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +311 -196
  87. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +15 -5
  88. package/deps/rocksdb/rocksdb/db/db_iter.cc +42 -29
  89. package/deps/rocksdb/rocksdb/db/db_iter.h +96 -31
  90. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +3 -4
  91. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +168 -228
  92. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +454 -0
  93. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +8 -8
  94. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +0 -1
  95. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +90 -0
  96. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +60 -2
  97. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +7 -3
  98. package/deps/rocksdb/rocksdb/db/db_options_test.cc +85 -27
  99. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -1
  100. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +0 -2
  101. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +114 -2
  102. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +0 -1
  103. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +0 -1
  104. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +51 -3
  105. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +0 -1
  106. package/deps/rocksdb/rocksdb/db/db_test.cc +325 -18
  107. package/deps/rocksdb/rocksdb/db/db_test2.cc +644 -20
  108. package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
  109. package/deps/rocksdb/rocksdb/db/db_test_util.h +9 -0
  110. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +64 -45
  111. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +203 -14
  112. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +259 -30
  113. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +0 -1
  114. package/deps/rocksdb/rocksdb/db/db_write_test.cc +75 -1
  115. package/deps/rocksdb/rocksdb/db/dbformat.h +70 -6
  116. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +0 -190
  117. package/deps/rocksdb/rocksdb/db/error_handler.cc +22 -7
  118. package/deps/rocksdb/rocksdb/db/error_handler.h +16 -1
  119. package/deps/rocksdb/rocksdb/db/event_helpers.cc +41 -26
  120. package/deps/rocksdb/rocksdb/db/experimental.cc +4 -3
  121. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +464 -78
  122. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +166 -69
  123. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +54 -25
  124. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -3
  125. package/deps/rocksdb/rocksdb/db/flush_job.cc +98 -81
  126. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -9
  127. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +80 -84
  128. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  129. package/deps/rocksdb/rocksdb/db/forward_iterator.h +2 -2
  130. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +12 -19
  131. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +0 -2
  132. package/deps/rocksdb/rocksdb/db/internal_stats.cc +41 -15
  133. package/deps/rocksdb/rocksdb/db/internal_stats.h +63 -52
  134. package/deps/rocksdb/rocksdb/db/job_context.h +59 -24
  135. package/deps/rocksdb/rocksdb/db/listener_test.cc +69 -10
  136. package/deps/rocksdb/rocksdb/db/log_format.h +11 -2
  137. package/deps/rocksdb/rocksdb/db/log_reader.cc +147 -34
  138. package/deps/rocksdb/rocksdb/db/log_reader.h +40 -11
  139. package/deps/rocksdb/rocksdb/db/log_test.cc +16 -3
  140. package/deps/rocksdb/rocksdb/db/log_writer.cc +102 -55
  141. package/deps/rocksdb/rocksdb/db/log_writer.h +21 -2
  142. package/deps/rocksdb/rocksdb/db/malloc_stats.h +0 -2
  143. package/deps/rocksdb/rocksdb/db/memtable.cc +16 -47
  144. package/deps/rocksdb/rocksdb/db/memtable.h +76 -12
  145. package/deps/rocksdb/rocksdb/db/memtable_list.cc +23 -20
  146. package/deps/rocksdb/rocksdb/db/memtable_list.h +9 -11
  147. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +18 -37
  148. package/deps/rocksdb/rocksdb/db/merge_context.h +2 -1
  149. package/deps/rocksdb/rocksdb/db/merge_test.cc +8 -0
  150. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +3 -5
  151. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +15 -7
  152. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +6 -3
  153. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +22 -4
  154. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +41 -1
  155. package/deps/rocksdb/rocksdb/db/prefix_test.cc +0 -1
  156. package/deps/rocksdb/rocksdb/db/repair.cc +29 -34
  157. package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -1
  158. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +14 -15
  159. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +1 -3
  160. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +47 -1
  161. package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -3
  162. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +1 -3
  163. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +2 -1
  164. package/deps/rocksdb/rocksdb/db/version_builder.cc +2 -2
  165. package/deps/rocksdb/rocksdb/db/version_edit.cc +8 -37
  166. package/deps/rocksdb/rocksdb/db/version_edit.h +32 -1
  167. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +26 -18
  168. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -5
  169. package/deps/rocksdb/rocksdb/db/version_set.cc +282 -197
  170. package/deps/rocksdb/rocksdb/db/version_set.h +54 -57
  171. package/deps/rocksdb/rocksdb/db/version_set_test.cc +28 -35
  172. package/deps/rocksdb/rocksdb/db/version_util.h +2 -3
  173. package/deps/rocksdb/rocksdb/db/wal_manager.cc +3 -2
  174. package/deps/rocksdb/rocksdb/db/wal_manager.h +0 -1
  175. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +0 -1
  176. package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +1 -0
  177. package/deps/rocksdb/rocksdb/db/write_batch.cc +22 -8
  178. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +5 -4
  179. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +7 -6
  180. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -4
  181. package/deps/rocksdb/rocksdb/db/write_thread.h +3 -3
  182. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +13 -5
  183. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -2
  184. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_service.h +39 -0
  185. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compression_manager.h +65 -0
  186. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +45 -22
  187. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +7 -4
  188. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +22 -5
  189. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +28 -3
  190. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -38
  191. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -3
  192. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +80 -32
  193. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +51 -2
  194. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +23 -1
  195. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +305 -15
  196. package/deps/rocksdb/rocksdb/env/env.cc +32 -2
  197. package/deps/rocksdb/rocksdb/env/env_encryption.cc +0 -2
  198. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -4
  199. package/deps/rocksdb/rocksdb/env/env_posix.cc +4 -2
  200. package/deps/rocksdb/rocksdb/env/env_test.cc +0 -1
  201. package/deps/rocksdb/rocksdb/env/fs_posix.cc +20 -11
  202. package/deps/rocksdb/rocksdb/env/fs_readonly.h +0 -2
  203. package/deps/rocksdb/rocksdb/env/fs_remap.cc +0 -2
  204. package/deps/rocksdb/rocksdb/env/fs_remap.h +0 -2
  205. package/deps/rocksdb/rocksdb/env/io_posix.cc +6 -4
  206. package/deps/rocksdb/rocksdb/env/io_posix.h +3 -2
  207. package/deps/rocksdb/rocksdb/env/mock_env.cc +0 -1
  208. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +2 -2
  209. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +0 -2
  210. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +0 -2
  211. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +30 -21
  212. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +16 -0
  213. package/deps/rocksdb/rocksdb/file/file_util.cc +32 -14
  214. package/deps/rocksdb/rocksdb/file/file_util.h +22 -5
  215. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +229 -76
  216. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +21 -12
  217. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +10 -7
  218. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +12 -8
  219. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +1 -2
  220. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +0 -2
  221. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +3 -3
  222. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +598 -0
  223. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_iterator.h +36 -0
  224. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +70 -11
  225. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +232 -11
  226. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -1
  227. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -1
  228. package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +149 -15
  229. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +17 -2
  230. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +132 -34
  231. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +158 -79
  232. package/deps/rocksdb/rocksdb/include/rocksdb/db_bench_tool.h +2 -1
  233. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +4 -5
  234. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -3
  235. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +5 -0
  236. package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +275 -0
  237. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +2 -1
  238. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +50 -5
  239. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +10 -0
  240. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +13 -0
  241. package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +0 -1
  242. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +5 -2
  243. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +13 -0
  244. package/deps/rocksdb/rocksdb/include/rocksdb/multi_scan.h +237 -0
  245. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +230 -39
  246. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +15 -0
  247. package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +31 -11
  248. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +41 -0
  249. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +1 -1
  250. package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +0 -1
  251. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +5 -1
  252. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +0 -1
  253. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +18 -3
  254. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +2 -0
  255. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +20 -8
  256. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +19 -2
  257. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -1
  258. package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +124 -0
  259. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +1 -0
  260. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +26 -1
  261. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +55 -6
  262. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +3 -5
  263. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -2
  264. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +1 -2
  265. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +0 -1
  266. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +1 -2
  267. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +0 -1
  268. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +96 -8
  269. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index_faiss.h +117 -0
  270. package/deps/rocksdb/rocksdb/{utilities/secondary_index/faiss_ivf_index.h → include/rocksdb/utilities/secondary_index_simple.h} +11 -14
  271. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +26 -11
  272. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +16 -3
  273. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -2
  274. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +63 -7
  275. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -1
  276. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +28 -12
  277. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +3 -3
  278. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +0 -2
  279. package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +1 -2
  280. package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
  281. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +0 -1
  282. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +0 -1
  283. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +3 -1
  284. package/deps/rocksdb/rocksdb/memtable/skiplist.h +2 -2
  285. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +2 -4
  286. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +69 -8
  287. package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +32 -9
  288. package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +58 -45
  289. package/deps/rocksdb/rocksdb/monitoring/histogram.h +1 -1
  290. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -3
  291. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +5 -0
  292. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
  293. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +3 -2
  294. package/deps/rocksdb/rocksdb/options/cf_options.cc +44 -13
  295. package/deps/rocksdb/rocksdb/options/cf_options.h +21 -7
  296. package/deps/rocksdb/rocksdb/options/configurable.cc +5 -5
  297. package/deps/rocksdb/rocksdb/options/configurable_test.h +1 -2
  298. package/deps/rocksdb/rocksdb/options/customizable.cc +0 -1
  299. package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -11
  300. package/deps/rocksdb/rocksdb/options/db_options.cc +18 -15
  301. package/deps/rocksdb/rocksdb/options/db_options.h +2 -2
  302. package/deps/rocksdb/rocksdb/options/options.cc +296 -305
  303. package/deps/rocksdb/rocksdb/options/options_helper.cc +188 -62
  304. package/deps/rocksdb/rocksdb/options/options_helper.h +3 -3
  305. package/deps/rocksdb/rocksdb/options/options_parser.cc +2 -4
  306. package/deps/rocksdb/rocksdb/options/options_parser.h +0 -1
  307. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +17 -4
  308. package/deps/rocksdb/rocksdb/options/options_test.cc +101 -76
  309. package/deps/rocksdb/rocksdb/port/lang.h +2 -1
  310. package/deps/rocksdb/rocksdb/port/port_posix.cc +2 -1
  311. package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -4
  312. package/deps/rocksdb/rocksdb/port/win/env_win.cc +3 -2
  313. package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +99 -1
  314. package/deps/rocksdb/rocksdb/port/win/xpress_win.h +6 -0
  315. package/deps/rocksdb/rocksdb/src.mk +17 -11
  316. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +0 -1
  317. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1094 -929
  318. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +6 -19
  319. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +76 -22
  320. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +2 -0
  321. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +221 -131
  322. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +12 -9
  323. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +23 -24
  324. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -38
  325. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +7 -4
  326. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +5 -5
  327. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +10 -12
  328. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -4
  329. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +35 -43
  330. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +2 -1
  331. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
  332. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -2
  333. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +0 -4
  334. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +0 -1
  335. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +3 -3
  336. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -3
  337. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -4
  338. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +1 -1
  339. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -5
  340. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +4 -4
  341. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +37 -35
  342. package/deps/rocksdb/rocksdb/table/block_fetcher.h +11 -7
  343. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +4 -3
  344. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +31 -5
  345. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +2 -1
  346. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -1
  347. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +0 -1
  348. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +0 -1
  349. package/deps/rocksdb/rocksdb/table/external_table.cc +483 -0
  350. package/deps/rocksdb/rocksdb/table/format.cc +62 -44
  351. package/deps/rocksdb/rocksdb/table/format.h +35 -12
  352. package/deps/rocksdb/rocksdb/table/internal_iterator.h +3 -13
  353. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  354. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +6 -0
  355. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +150 -141
  356. package/deps/rocksdb/rocksdb/table/meta_blocks.h +5 -0
  357. package/deps/rocksdb/rocksdb/table/multiget_context.h +3 -2
  358. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +8 -0
  359. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +0 -1
  360. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +0 -2
  361. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +0 -2
  362. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +0 -1
  363. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +6 -6
  364. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
  365. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +86 -7
  366. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +88 -2
  367. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +0 -1
  368. package/deps/rocksdb/rocksdb/table/table_builder.h +10 -1
  369. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +3 -2
  370. package/deps/rocksdb/rocksdb/table/table_test.cc +899 -22
  371. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -4
  372. package/deps/rocksdb/rocksdb/test_util/testutil.h +132 -1
  373. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +0 -1
  374. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +0 -2
  375. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +163 -77
  376. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +0 -2
  377. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +0 -1
  378. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +0 -1
  379. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +120 -52
  380. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +1 -0
  381. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
  382. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +0 -2
  383. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +2 -2
  384. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +0 -2
  385. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +2 -1
  386. package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +94 -0
  387. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +0 -1
  388. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +0 -1
  389. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +1 -1
  390. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +2 -1
  391. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +3 -5
  392. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +1 -1
  393. package/deps/rocksdb/rocksdb/util/async_file_reader.h +15 -8
  394. package/deps/rocksdb/rocksdb/util/auto_skip_compressor.cc +131 -0
  395. package/deps/rocksdb/rocksdb/util/auto_skip_compressor.h +90 -0
  396. package/deps/rocksdb/rocksdb/util/autovector.h +1 -1
  397. package/deps/rocksdb/rocksdb/util/autovector_test.cc +2 -2
  398. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +0 -2
  399. package/deps/rocksdb/rocksdb/util/compression.cc +936 -4
  400. package/deps/rocksdb/rocksdb/util/compression.h +348 -232
  401. package/deps/rocksdb/rocksdb/util/compression_test.cc +229 -0
  402. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +10 -10
  403. package/deps/rocksdb/rocksdb/util/crc32c_ppc.c +1 -0
  404. package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -0
  405. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +1 -3
  406. package/deps/rocksdb/rocksdb/util/ppc-opcode.h +5 -5
  407. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +108 -0
  408. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +67 -0
  409. package/deps/rocksdb/rocksdb/util/slice_test.cc +83 -0
  410. package/deps/rocksdb/rocksdb/util/string_util.cc +0 -2
  411. package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
  412. package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
  413. package/deps/rocksdb/rocksdb/util/udt_util.cc +18 -5
  414. package/deps/rocksdb/rocksdb/util/udt_util.h +10 -7
  415. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +650 -154
  416. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +438 -144
  417. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -1
  418. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +0 -1
  419. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -1
  420. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +16 -17
  421. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +2 -1
  422. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -1
  423. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +0 -1
  424. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +7 -8
  425. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +4 -3
  426. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -1
  427. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +0 -1
  428. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +2 -2
  429. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
  430. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +0 -48
  431. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -1
  432. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -1
  433. package/deps/rocksdb/rocksdb/utilities/debug.cc +7 -14
  434. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +0 -1
  435. package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +0 -2
  436. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +0 -1
  437. package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +0 -2
  438. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -3
  439. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +10 -9
  440. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +0 -1
  441. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +0 -1
  442. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +1 -0
  443. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +0 -2
  444. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +0 -1
  445. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +0 -1
  446. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -1
  447. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -2
  448. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -2
  449. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -1
  450. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -2
  451. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +0 -2
  452. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -2
  453. package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +0 -2
  454. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -2
  455. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -1
  456. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -2
  457. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -1
  458. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -2
  459. package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +183 -32
  460. package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +258 -12
  461. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_helper.h +33 -0
  462. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_iterator.cc +99 -0
  463. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +280 -120
  464. package/deps/rocksdb/rocksdb/utilities/secondary_index/simple_secondary_index.cc +79 -0
  465. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +52 -16
  466. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +10 -6
  467. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +55 -0
  468. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +0 -1
  469. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -2
  470. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +0 -1
  471. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +37 -12
  472. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -0
  473. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +0 -2
  474. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -2
  475. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
  476. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +1 -1
  477. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  478. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +2 -1
  479. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +2 -2
  480. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -1
  481. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +0 -2
  482. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +1 -3
  483. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +36 -10
  484. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -7
  485. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +4 -5
  486. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -4
  487. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +1 -2
  488. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -2
  489. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -1
  490. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1118 -37
  491. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +4 -7
  492. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +0 -2
  493. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +0 -2
  494. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -3
  495. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1
  496. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +0 -2
  497. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +1 -2
  498. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +1 -2
  499. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -1
  500. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +0 -3
  501. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +125 -127
  502. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +45 -23
  503. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +54 -22
  504. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +477 -58
  505. package/deps/rocksdb/rocksdb.gyp +9 -4
  506. package/index.js +50 -9
  507. package/package.json +8 -1
  508. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  509. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
@@ -11,6 +11,7 @@
11
11
 
12
12
  #include "cache/cache_reservation_manager.h"
13
13
  #include "db/forward_iterator.h"
14
+ #include "env/fs_readonly.h"
14
15
  #include "env/mock_env.h"
15
16
  #include "port/lang.h"
16
17
  #include "rocksdb/cache.h"
@@ -122,7 +123,6 @@ DBTestBase::~DBTestBase() {
122
123
  }
123
124
 
124
125
  bool DBTestBase::ShouldSkipOptions(int option_config, int skip_mask) {
125
-
126
126
  if ((skip_mask & kSkipUniversalCompaction) &&
127
127
  (option_config == kUniversalCompaction ||
128
128
  option_config == kUniversalCompactionMultiLevel ||
@@ -592,7 +592,6 @@ Options DBTestBase::GetOptions(
592
592
  options_override.level_compaction_dynamic_level_bytes;
593
593
  options.env = env_;
594
594
  options.create_if_missing = true;
595
- options.fail_if_options_file_error = true;
596
595
  return options;
597
596
  }
598
597
 
@@ -717,6 +716,17 @@ Status DBTestBase::ReadOnlyReopen(const Options& options) {
717
716
  return DB::OpenForReadOnly(options, dbname_, &db_);
718
717
  }
719
718
 
719
+ Status DBTestBase::EnforcedReadOnlyReopen(const Options& options) {
720
+ Close();
721
+ Options options_copy = options;
722
+ MaybeInstallTimeElapseOnlySleep(options_copy);
723
+ auto fs_read_only =
724
+ std::make_shared<ReadOnlyFileSystem>(env_->GetFileSystem());
725
+ env_read_only_ = std::make_shared<CompositeEnvWrapper>(env_, fs_read_only);
726
+ options_copy.env = env_read_only_.get();
727
+ return DB::OpenForReadOnly(options_copy, dbname_, &db_);
728
+ }
729
+
720
730
  Status DBTestBase::TryReopen(const Options& options) {
721
731
  Close();
722
732
  last_options_.table_factory.reset();
@@ -1208,7 +1218,6 @@ std::string DBTestBase::FilesPerLevel(int cf) {
1208
1218
  return result;
1209
1219
  }
1210
1220
 
1211
-
1212
1221
  std::vector<uint64_t> DBTestBase::GetBlobFileNumbers() {
1213
1222
  VersionSet* const versions = dbfull()->GetVersionSet();
1214
1223
  assert(versions);
@@ -1667,7 +1676,7 @@ void DBTestBase::VerifyDBFromMap(
1667
1676
  data_iter = true_data.begin();
1668
1677
  for (iter->SeekToFirst(); iter->Valid(); iter->Next(), ++data_iter) {
1669
1678
  ASSERT_EQ(iter->key().ToString(), data_iter->first);
1670
- ASSERT_EQ(iter->value().ToString(), data_iter->second);
1679
+ ASSERT_EQ(iter->value().ToString(), data_iter->second);
1671
1680
  iter_cnt++;
1672
1681
  total_reads++;
1673
1682
  }
@@ -1683,7 +1692,7 @@ void DBTestBase::VerifyDBFromMap(
1683
1692
  auto data_rev = true_data.rbegin();
1684
1693
  for (iter->SeekToLast(); iter->Valid(); iter->Prev(), data_rev++) {
1685
1694
  ASSERT_EQ(iter->key().ToString(), data_rev->first);
1686
- ASSERT_EQ(iter->value().ToString(), data_rev->second);
1695
+ ASSERT_EQ(iter->value().ToString(), data_rev->second);
1687
1696
  iter_cnt++;
1688
1697
  total_reads++;
1689
1698
  }
@@ -1765,7 +1774,6 @@ void DBTestBase::VerifyDBInternal(
1765
1774
  iter->~InternalIterator();
1766
1775
  }
1767
1776
 
1768
-
1769
1777
  uint64_t DBTestBase::GetNumberOfSstFilesForColumnFamily(
1770
1778
  DB* db, std::string column_family_name) {
1771
1779
  std::vector<LiveFileMetaData> metadata;
@@ -1062,6 +1062,7 @@ class DBTestBase : public testing::Test {
1062
1062
  MockEnv* mem_env_;
1063
1063
  Env* encrypted_env_;
1064
1064
  SpecialEnv* env_;
1065
+ std::shared_ptr<Env> env_read_only_;
1065
1066
  std::shared_ptr<Env> env_guard_;
1066
1067
  DB* db_;
1067
1068
  std::vector<ColumnFamilyHandle*> handles_;
@@ -1106,6 +1107,11 @@ class DBTestBase : public testing::Test {
1106
1107
  return std::string(buf);
1107
1108
  }
1108
1109
 
1110
+ // Expects valid key created by Key().
1111
+ static int IdFromKey(const std::string& key) {
1112
+ return std::stoi(key.substr(3));
1113
+ }
1114
+
1109
1115
  static bool ShouldSkipOptions(int option_config, int skip_mask = kNoSkip);
1110
1116
 
1111
1117
  // Switch to a fresh database with the next option configuration to
@@ -1173,6 +1179,9 @@ class DBTestBase : public testing::Test {
1173
1179
 
1174
1180
  Status ReadOnlyReopen(const Options& options);
1175
1181
 
1182
+ // With a filesystem wrapper that fails on attempted write
1183
+ Status EnforcedReadOnlyReopen(const Options& options);
1184
+
1176
1185
  Status TryReopen(const Options& options);
1177
1186
 
1178
1187
  bool IsDirectIOSupported();
@@ -1672,55 +1672,75 @@ TEST_P(DBTestUniversalCompaction, ConcurrentBottomPriLowPriCompactions) {
1672
1672
  }
1673
1673
  const int kNumFilesTrigger = 3;
1674
1674
  Env::Default()->SetBackgroundThreads(1, Env::Priority::BOTTOM);
1675
- Options options = CurrentOptions();
1676
- options.compaction_style = kCompactionStyleUniversal;
1677
- options.max_background_compactions = 2;
1678
- options.num_levels = num_levels_;
1679
- options.write_buffer_size = 100 << 10; // 100KB
1680
- options.target_file_size_base = 32 << 10; // 32KB
1681
- options.level0_file_num_compaction_trigger = kNumFilesTrigger;
1682
- // Trigger compaction if size amplification exceeds 110%
1683
- options.compaction_options_universal.max_size_amplification_percent = 110;
1684
- DestroyAndReopen(options);
1685
-
1686
- // Need to get a token to enable compaction parallelism up to
1687
- // `max_background_compactions` jobs.
1688
- auto pressure_token =
1689
- dbfull()->TEST_write_controler().GetCompactionPressureToken();
1690
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency(
1691
- {// wait for the full compaction to be picked before adding files intended
1692
- // for the second one.
1693
- {"DBImpl::BackgroundCompaction:ForwardToBottomPriPool",
1694
- "DBTestUniversalCompaction:ConcurrentBottomPriLowPriCompactions:0"},
1695
- // the full (bottom-pri) compaction waits until a partial (low-pri)
1696
- // compaction has started to verify they can run in parallel.
1697
- {"DBImpl::BackgroundCompaction:NonTrivial",
1698
- "DBImpl::BGWorkBottomCompaction"}});
1699
- SyncPoint::GetInstance()->EnableProcessing();
1700
1675
 
1701
- Random rnd(301);
1702
- for (int i = 0; i < 2; ++i) {
1703
- for (int num = 0; num < kNumFilesTrigger; num++) {
1704
- int key_idx = 0;
1705
- GenerateNewFile(&rnd, &key_idx, true /* no_wait */);
1706
- // use no_wait above because that one waits for flush and compaction. We
1707
- // don't want to wait for compaction because the full compaction is
1708
- // intentionally blocked while more files are flushed.
1709
- ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable());
1676
+ for (bool universal_reduce_file_locking : {true, false}) {
1677
+ Options options = CurrentOptions();
1678
+ options.compaction_style = kCompactionStyleUniversal;
1679
+ options.compaction_options_universal.reduce_file_locking =
1680
+ universal_reduce_file_locking;
1681
+ options.max_background_compactions = 2;
1682
+ options.num_levels = num_levels_;
1683
+ options.write_buffer_size = 100 << 10; // 100KB
1684
+ options.target_file_size_base = 32 << 10; // 32KB
1685
+ options.level0_file_num_compaction_trigger = kNumFilesTrigger;
1686
+ // Trigger compaction if size amplification exceeds 110%
1687
+ options.compaction_options_universal.max_size_amplification_percent = 110;
1688
+ DestroyAndReopen(options);
1689
+
1690
+ // Need to get a token to enable compaction parallelism up to
1691
+ // `max_background_compactions` jobs.
1692
+ auto pressure_token =
1693
+ dbfull()->TEST_write_controler().GetCompactionPressureToken();
1694
+ if (universal_reduce_file_locking) {
1695
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency(
1696
+ {// Wait for the full compaction to be repicked before adding files
1697
+ // intended for the second compaction.
1698
+ {"DBImpl::BackgroundCompaction():AfterPickCompactionBottomPri",
1699
+ "DBTestUniversalCompaction:ConcurrentBottomPriLowPriCompactions:0"},
1700
+ // Wait for the second compaction to run before running the full
1701
+ // compaction to verify they can run in parallel
1702
+ {"DBImpl::BackgroundCompaction:NonTrivial:BeforeRun",
1703
+ "DBImpl::BackgroundCompaction:NonTrivial:BeforeRunBottomPri"}});
1704
+ } else {
1705
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency(
1706
+ {// Wait for the full compaction to be forwarded before adding files
1707
+ // intended for the second compaction.
1708
+ {"DBImpl::BackgroundCompaction:ForwardToBottomPriPool",
1709
+ "DBTestUniversalCompaction:ConcurrentBottomPriLowPriCompactions:0"},
1710
+ // Wait for the second compaction to run before running the full
1711
+ // compaction to verify they can run in parallel
1712
+ {"DBImpl::BackgroundCompaction:NonTrivial:BeforeRun",
1713
+ "DBImpl::BackgroundCompaction:NonTrivial:BeforeRunBottomPri"}});
1710
1714
  }
1711
- if (i == 0) {
1712
- TEST_SYNC_POINT(
1713
- "DBTestUniversalCompaction:ConcurrentBottomPriLowPriCompactions:0");
1715
+
1716
+ SyncPoint::GetInstance()->EnableProcessing();
1717
+
1718
+ Random rnd(301);
1719
+ for (int i = 0; i < 2; ++i) {
1720
+ for (int num = 0; num < kNumFilesTrigger; num++) {
1721
+ int key_idx = 0;
1722
+ GenerateNewFile(&rnd, &key_idx, true /* no_wait */);
1723
+ // use no_wait above because that one waits for flush and compaction. We
1724
+ // don't want to wait for compaction because the full compaction is
1725
+ // intentionally blocked while more files are flushed.
1726
+ ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable());
1727
+ }
1728
+ if (i == 0) {
1729
+ TEST_SYNC_POINT(
1730
+ "DBTestUniversalCompaction:ConcurrentBottomPriLowPriCompactions:0");
1731
+ }
1714
1732
  }
1733
+ ASSERT_OK(dbfull()->TEST_WaitForCompact());
1734
+
1735
+ // First compaction should output to bottom level. Second should output to
1736
+ // L0 since older L0 files pending compaction prevent it from being placed
1737
+ // lower.
1738
+ ASSERT_EQ(NumSortedRuns(), 2);
1739
+ ASSERT_GT(NumTableFilesAtLevel(0), 0);
1740
+ ASSERT_GT(NumTableFilesAtLevel(num_levels_ - 1), 0);
1741
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
1715
1742
  }
1716
- ASSERT_OK(dbfull()->TEST_WaitForCompact());
1717
1743
 
1718
- // First compaction should output to bottom level. Second should output to L0
1719
- // since older L0 files pending compaction prevent it from being placed lower.
1720
- ASSERT_EQ(NumSortedRuns(), 2);
1721
- ASSERT_GT(NumTableFilesAtLevel(0), 0);
1722
- ASSERT_GT(NumTableFilesAtLevel(num_levels_ - 1), 0);
1723
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
1724
1744
  Env::Default()->SetBackgroundThreads(0, Env::Priority::BOTTOM);
1725
1745
  }
1726
1746
 
@@ -2369,7 +2389,6 @@ TEST_F(DBTestUniversalCompaction2, PeriodicCompactionOffpeak) {
2369
2389
 
2370
2390
  } // namespace ROCKSDB_NAMESPACE
2371
2391
 
2372
-
2373
2392
  int main(int argc, char** argv) {
2374
2393
  ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
2375
2394
  ::testing::InitGoogleTest(&argc, argv);
@@ -1153,6 +1153,7 @@ TEST_F(DBWALTest, FullPurgePreservesRecycledLog) {
1153
1153
  dbfull()->FindObsoleteFiles(&job_context, true /* force */);
1154
1154
  dbfull()->TEST_UnlockMutex();
1155
1155
  dbfull()->PurgeObsoleteFiles(job_context);
1156
+ job_context.Clean();
1156
1157
 
1157
1158
  if (i == 0) {
1158
1159
  ASSERT_OK(
@@ -1838,9 +1839,194 @@ class RecoveryTestHelper {
1838
1839
  }
1839
1840
  };
1840
1841
 
1841
- class DBWALTestWithParams : public DBWALTestBase,
1842
- public ::testing::WithParamInterface<
1843
- std::tuple<bool, int, int, CompressionType>> {
1842
+ TEST_F(DBWALTest, TrackAndVerifyWALsRecycleWAL) {
1843
+ Options options = CurrentOptions();
1844
+ options.avoid_flush_during_shutdown = true;
1845
+ options.wal_recovery_mode = WALRecoveryMode::kPointInTimeRecovery;
1846
+ options.recycle_log_file_num = 1;
1847
+ options.track_and_verify_wals = true;
1848
+
1849
+ DestroyAndReopen(options);
1850
+
1851
+ ASSERT_OK(Put("key_ignore", "wal_to_recycle"));
1852
+ ASSERT_OK(Put("key_ignore1", "wal_to_recycle"));
1853
+ ASSERT_OK(Put("key_ignore2", "wal_to_recycle"));
1854
+ ASSERT_OK(Flush());
1855
+
1856
+ ASSERT_OK(Put("key_ignore", "wal_to_recycle"));
1857
+ ASSERT_OK(Put("key_ignore1", "wal_to_recycle"));
1858
+ ASSERT_OK(Put("key_ignore2", "wal_to_recycle"));
1859
+ ASSERT_OK(Flush());
1860
+
1861
+ // Stop background flush to avoid deleting any WAL
1862
+ options.env->SetBackgroundThreads(1, Env::HIGH);
1863
+ test::SleepingBackgroundTask sleeping_task;
1864
+ options.env->Schedule(&test::SleepingBackgroundTask::DoSleepTask,
1865
+ &sleeping_task, Env::Priority::HIGH);
1866
+
1867
+ // Recycle the first WAL
1868
+ ASSERT_OK(Put("key1", "old_value"));
1869
+ // Recycle the second WAL
1870
+ ASSERT_OK(dbfull()->TEST_SwitchWAL());
1871
+ ASSERT_OK(Put("key1", "new_value"));
1872
+
1873
+ // Create a WAL hole on sequence number by truncating the first WAL to 0 byte
1874
+ VectorWalPtr log_files;
1875
+ ASSERT_OK(db_->GetSortedWalFiles(log_files));
1876
+ ASSERT_EQ(log_files.size(), 2);
1877
+ std::string log_name = LogFileName(dbname_, log_files.front()->LogNumber());
1878
+ Close();
1879
+ // Drop `Put("key1", "old_value")` in the first WAL
1880
+ ASSERT_OK(test::TruncateFile(options.env, log_name, 0 /* new_length */));
1881
+
1882
+ Status s = DB::Open(options, dbname_, &db_);
1883
+
1884
+ ASSERT_OK(s);
1885
+
1886
+ ASSERT_EQ("wal_to_recycle", Get("key_ignore2"));
1887
+ ASSERT_EQ("NOT_FOUND", Get("key1"));
1888
+
1889
+ Close();
1890
+ }
1891
+
1892
+ class DBWALTrackAndVerifyWALsWithParamsTest
1893
+ : public DBWALTestBase,
1894
+ public ::testing::WithParamInterface<WALRecoveryMode> {
1895
+ public:
1896
+ DBWALTrackAndVerifyWALsWithParamsTest()
1897
+ : DBWALTestBase("/db_wal_track_and_verify_wals_with_params_test") {}
1898
+ };
1899
+
1900
+ INSTANTIATE_TEST_CASE_P(
1901
+ DBWALTrackAndVerifyWALsWithParamsTest,
1902
+ DBWALTrackAndVerifyWALsWithParamsTest,
1903
+ ::testing::Values(WALRecoveryMode::kTolerateCorruptedTailRecords,
1904
+ WALRecoveryMode::kAbsoluteConsistency,
1905
+ WALRecoveryMode::kPointInTimeRecovery,
1906
+ WALRecoveryMode::kSkipAnyCorruptedRecords));
1907
+
1908
+ TEST_P(DBWALTrackAndVerifyWALsWithParamsTest, Basic) {
1909
+ Options options = CurrentOptions();
1910
+ options.avoid_flush_during_shutdown = true;
1911
+ options.track_and_verify_wals = true;
1912
+ options.wal_recovery_mode = GetParam();
1913
+
1914
+ // Stop background flush to avoid deleting any WAL
1915
+ options.env->SetBackgroundThreads(1, Env::HIGH);
1916
+ test::SleepingBackgroundTask sleeping_task;
1917
+ options.env->Schedule(&test::SleepingBackgroundTask::DoSleepTask,
1918
+ &sleeping_task, Env::Priority::HIGH);
1919
+
1920
+ for (int i = 0; i < 5; i++) {
1921
+ DestroyAndReopen(options);
1922
+
1923
+ ASSERT_OK(Put("key1", "old_value"));
1924
+ SequenceNumber last_seqno_recorded_in_fist_wal =
1925
+ dbfull()->GetLatestSequenceNumber();
1926
+
1927
+ ASSERT_OK(dbfull()->TEST_SwitchWAL());
1928
+ ASSERT_OK(Put("key1", "new_value"));
1929
+
1930
+ VectorWalPtr log_files;
1931
+ ASSERT_OK(db_->GetSortedWalFiles(log_files));
1932
+ ASSERT_EQ(log_files.size(), 2);
1933
+ uint64_t first_log_number = log_files.front()->LogNumber();
1934
+ std::string first_log_name = LogFileName(dbname_, first_log_number);
1935
+ std::string second_log_name =
1936
+ LogFileName(dbname_, log_files.back()->LogNumber());
1937
+
1938
+ if (i == 0) {
1939
+ // Delete the obsolete WAL and verify it will not be seen as a WAL hole
1940
+ sleeping_task.WakeUp();
1941
+ sleeping_task.WaitUntilDone();
1942
+ ASSERT_OK(dbfull()->TEST_WaitForBackgroundWork());
1943
+ // Stop background flush to avoid deleting any WAL
1944
+ sleeping_task.Reset();
1945
+ options.env->Schedule(&test::SleepingBackgroundTask::DoSleepTask,
1946
+ &sleeping_task, Env::Priority::HIGH);
1947
+ Close();
1948
+ } else if (i == 1) {
1949
+ // Create a WAL hole on WAL number by deleting the first WAL and verify
1950
+ // the hole will be detected
1951
+ Close();
1952
+ ASSERT_OK(options.env->DeleteFile(first_log_name));
1953
+ } else if (i == 2) {
1954
+ // Create a WAL hole on sequence number by truncating the first WAL and
1955
+ // verify the hole will be detected
1956
+ Close();
1957
+ ASSERT_OK(
1958
+ test::TruncateFile(options.env, first_log_name, 0 /* new_length */));
1959
+ } else if (i == 3) {
1960
+ // Create a WAL hole on size difference by truncating the first WAL and
1961
+ // mocking a correct sequence number to force triggering corruption based
1962
+ // on size instead of sequence number and verify the hole will be detected
1963
+ Close();
1964
+ ASSERT_OK(
1965
+ test::TruncateFile(options.env, first_log_name, 0 /* new_length */));
1966
+ SyncPoint::GetInstance()->SetCallBack(
1967
+ "DBImpl::UpdatePredecessorWALInfo", [&](void* arg) {
1968
+ std::pair<uint64_t, SequenceNumber*>* pair =
1969
+ static_cast<std::pair<uint64_t, SequenceNumber*>*>(arg);
1970
+ if (pair->first == first_log_number) {
1971
+ *(pair->second) = last_seqno_recorded_in_fist_wal;
1972
+ }
1973
+ });
1974
+ SyncPoint::GetInstance()->EnableProcessing();
1975
+ } else if (i == 4) {
1976
+ // Delete all wals and verify opening a DB with no WAL will be detected
1977
+ Close();
1978
+ ASSERT_OK(options.env->DeleteFile(first_log_name));
1979
+ ASSERT_OK(options.env->DeleteFile(second_log_name));
1980
+ }
1981
+
1982
+ Status s = DB::Open(options, dbname_, &db_);
1983
+
1984
+ if (i == 0) {
1985
+ ASSERT_OK(s);
1986
+ ASSERT_EQ("new_value", Get("key1"));
1987
+ continue;
1988
+ } else if (i == 3) {
1989
+ SyncPoint::GetInstance()->ClearAllCallBacks();
1990
+ SyncPoint::GetInstance()->DisableProcessing();
1991
+ } else if (i == 4) {
1992
+ ASSERT_TRUE(s.IsCorruption());
1993
+ ASSERT_TRUE(
1994
+ s.ToString().find("Opening an existing DB with no WAL files") !=
1995
+ std::string::npos);
1996
+ Close();
1997
+ continue;
1998
+ }
1999
+
2000
+ if (options.wal_recovery_mode == WALRecoveryMode::kPointInTimeRecovery) {
2001
+ ASSERT_OK(s);
2002
+ ASSERT_EQ("NOT_FOUND", Get("key1"));
2003
+ } else if (options.wal_recovery_mode ==
2004
+ WALRecoveryMode::kAbsoluteConsistency ||
2005
+ options.wal_recovery_mode ==
2006
+ WALRecoveryMode::kTolerateCorruptedTailRecords) {
2007
+ ASSERT_TRUE(s.IsCorruption());
2008
+ std::string msg;
2009
+ if (i == 1) {
2010
+ msg = "Missing WAL";
2011
+ } else if (i == 2) {
2012
+ msg = "Mismatched last sequence number recorded in the WAL";
2013
+ } else if (i == 3) {
2014
+ msg = "Mismatched size of the WAL";
2015
+ }
2016
+ ASSERT_TRUE(s.ToString().find(msg) != std::string::npos);
2017
+ } else {
2018
+ ASSERT_OK(s);
2019
+ ASSERT_EQ("new_value", Get("key1"));
2020
+ }
2021
+
2022
+ Close();
2023
+ }
2024
+ }
2025
+
2026
+ class DBWALTestWithParams
2027
+ : public DBWALTestBase,
2028
+ public ::testing::WithParamInterface<
2029
+ std::tuple<bool, int, int, CompressionType, bool>> {
1844
2030
  public:
1845
2031
  DBWALTestWithParams() : DBWALTestBase("/db_wal_test_with_params") {}
1846
2032
  };
@@ -1853,7 +2039,8 @@ INSTANTIATE_TEST_CASE_P(
1853
2039
  RecoveryTestHelper::kWALFilesCount,
1854
2040
  1),
1855
2041
  ::testing::Values(CompressionType::kNoCompression,
1856
- CompressionType::kZSTD)));
2042
+ CompressionType::kZSTD),
2043
+ ::testing::Bool()));
1857
2044
 
1858
2045
  class DBWALTestWithParamsVaryingRecoveryMode
1859
2046
  : public DBWALTestBase,
@@ -1891,6 +2078,7 @@ TEST_P(DBWALTestWithParams, kTolerateCorruptedTailRecords) {
1891
2078
 
1892
2079
  // Fill data for testing
1893
2080
  Options options = CurrentOptions();
2081
+ options.track_and_verify_wals = std::get<4>(GetParam());
1894
2082
  const size_t row_count = RecoveryTestHelper::FillData(this, &options);
1895
2083
  // test checksum failure or parsing
1896
2084
  RecoveryTestHelper::CorruptWAL(this, options, corrupt_offset * .3,
@@ -1914,6 +2102,7 @@ TEST_P(DBWALTestWithParams, kTolerateCorruptedTailRecords) {
1914
2102
  TEST_P(DBWALTestWithParams, kAbsoluteConsistency) {
1915
2103
  // Verify clean slate behavior
1916
2104
  Options options = CurrentOptions();
2105
+ options.track_and_verify_wals = std::get<4>(GetParam());
1917
2106
  const size_t row_count = RecoveryTestHelper::FillData(this, &options);
1918
2107
  options.create_if_missing = false;
1919
2108
  ASSERT_OK(TryReopen(options));
@@ -2124,7 +2313,6 @@ TEST_F(DBWALTest, FixSyncWalOnObseletedWalWithNewManifestCausingMissingWAL) {
2124
2313
  wal_synced = true;
2125
2314
  });
2126
2315
 
2127
-
2128
2316
  SyncPoint::GetInstance()->EnableProcessing();
2129
2317
 
2130
2318
  ASSERT_OK(Flush());
@@ -2165,6 +2353,7 @@ TEST_P(DBWALTestWithParams, kPointInTimeRecovery) {
2165
2353
 
2166
2354
  // Fill data for testing
2167
2355
  Options options = CurrentOptions();
2356
+ options.track_and_verify_wals = std::get<4>(GetParam());
2168
2357
  options.wal_compression = compression_type;
2169
2358
  const size_t row_count = RecoveryTestHelper::FillData(this, &options);
2170
2359
 
@@ -2222,6 +2411,7 @@ TEST_P(DBWALTestWithParams, kSkipAnyCorruptedRecords) {
2222
2411
 
2223
2412
  // Fill data for testing
2224
2413
  Options options = CurrentOptions();
2414
+ options.track_and_verify_wals = std::get<4>(GetParam());
2225
2415
  options.wal_compression = compression_type;
2226
2416
  const size_t row_count = RecoveryTestHelper::FillData(this, &options);
2227
2417
 
@@ -2699,12 +2889,12 @@ TEST_F(DBWALTest, ReadOnlyRecoveryNoTruncate) {
2699
2889
  // create DB and close with file truncate disabled
2700
2890
  std::atomic_bool enable_truncate{false};
2701
2891
 
2702
- SyncPoint::GetInstance()->SetCallBack(
2703
- "PosixWritableFile::Close", [&](void* arg) {
2704
- if (!enable_truncate) {
2705
- *(static_cast<size_t*>(arg)) = 0;
2706
- }
2707
- });
2892
+ SyncPoint::GetInstance()->SetCallBack("PosixWritableFile::Close",
2893
+ [&](void* arg) {
2894
+ if (!enable_truncate) {
2895
+ *(static_cast<size_t*>(arg)) = 0;
2896
+ }
2897
+ });
2708
2898
  SyncPoint::GetInstance()->EnableProcessing();
2709
2899
 
2710
2900
  DestroyAndReopen(options);
@@ -2793,7 +2983,6 @@ TEST_F(DBWALTest, WalInManifestButNotInSortedWals) {
2793
2983
  Close();
2794
2984
  }
2795
2985
 
2796
-
2797
2986
  TEST_F(DBWALTest, WalTermTest) {
2798
2987
  Options options = CurrentOptions();
2799
2988
  options.env = env_;
@@ -2835,13 +3024,13 @@ TEST_F(DBWALTest, GetCompressedWalsAfterSync) {
2835
3024
  options.wal_compression = kZSTD;
2836
3025
  DestroyAndReopen(options);
2837
3026
 
2838
- // Write something to memtable and WAL so that log_empty_ will be false after
3027
+ // Write something to memtable and WAL so that wal_empty_ will be false after
2839
3028
  // next DB::Open().
2840
3029
  ASSERT_OK(Put("a", "v"));
2841
3030
 
2842
3031
  Reopen(options);
2843
3032
 
2844
- // New WAL is created, thanks to !log_empty_.
3033
+ // New WAL is created, thanks to !wal_empty_.
2845
3034
  ASSERT_OK(dbfull()->TEST_SwitchWAL());
2846
3035
 
2847
3036
  ASSERT_OK(Put("b", "v"));