@nxtedition/rocksdb 6.0.1 → 7.0.0-alpha.1

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 (490) hide show
  1. package/BUILDING.md +12 -4
  2. package/binding.cc +421 -40
  3. package/deps/rocksdb/build_version.cc +4 -10
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +26 -3
  5. package/deps/rocksdb/rocksdb/Makefile +73 -91
  6. package/deps/rocksdb/rocksdb/TARGETS +27 -2
  7. package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
  8. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
  9. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
  10. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
  12. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  13. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  14. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  15. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  16. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  17. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  18. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  19. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  20. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  21. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  22. package/deps/rocksdb/rocksdb/common.mk +30 -0
  23. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  24. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  25. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  26. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  27. package/deps/rocksdb/rocksdb/db/builder.cc +22 -7
  28. package/deps/rocksdb/rocksdb/db/c.cc +71 -0
  29. package/deps/rocksdb/rocksdb/db/c_test.c +28 -2
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +12 -5
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +54 -16
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +14 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +85 -18
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +23 -22
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +151 -32
  46. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  48. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  49. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  50. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +404 -32
  51. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  52. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  53. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  54. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  55. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  56. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  57. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +11 -20
  58. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +15 -1
  59. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +12 -9
  60. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +42 -10
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +14 -4
  67. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  68. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  69. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  70. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  71. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  72. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  73. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  74. package/deps/rocksdb/rocksdb/db/db_options_test.cc +28 -12
  75. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  76. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  77. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
  78. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +11 -6
  79. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  80. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  81. package/deps/rocksdb/rocksdb/db/db_test.cc +60 -42
  82. package/deps/rocksdb/rocksdb/db/db_test2.cc +244 -111
  83. package/deps/rocksdb/rocksdb/db/db_test_util.cc +101 -19
  84. package/deps/rocksdb/rocksdb/db/db_test_util.h +52 -2
  85. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  86. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  87. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +5 -175
  88. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
  89. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
  90. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  91. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  92. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  93. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  94. package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
  95. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +91 -12
  96. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -2
  97. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
  98. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  99. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  100. package/deps/rocksdb/rocksdb/db/flush_job.cc +28 -15
  101. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  102. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  103. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  104. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +14 -1
  105. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
  106. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  107. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  108. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  109. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  110. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  111. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  112. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  113. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  114. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  115. package/deps/rocksdb/rocksdb/db/repair.cc +13 -2
  116. package/deps/rocksdb/rocksdb/db/repair_test.cc +37 -15
  117. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  118. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
  119. package/deps/rocksdb/rocksdb/db/table_cache.cc +20 -130
  120. package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
  121. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
  122. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  123. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +133 -133
  124. package/deps/rocksdb/rocksdb/db/version_edit.cc +22 -2
  125. package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
  126. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
  127. package/deps/rocksdb/rocksdb/db/version_set.cc +207 -214
  128. package/deps/rocksdb/rocksdb/db/version_set.h +14 -3
  129. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
  130. package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
  131. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  132. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  133. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  134. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  135. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  136. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  137. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -6
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +44 -6
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  144. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  145. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +374 -275
  146. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  147. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  148. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  149. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  150. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  151. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  152. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  153. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  154. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  155. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  156. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  157. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  158. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  159. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  160. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  161. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
  162. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +44 -22
  163. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  164. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
  165. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  166. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  167. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +60 -40
  168. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +1 -0
  169. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
  170. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +49 -1
  171. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  172. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  173. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  174. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  175. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  176. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  177. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  178. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  179. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  180. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -3
  181. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
  182. package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
  183. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
  184. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  185. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  187. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  188. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +378 -103
  191. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  192. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  193. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  194. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  195. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  196. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  197. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  198. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  199. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  200. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  201. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  202. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  203. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  204. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  205. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +7 -8
  206. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  207. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  208. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  209. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  210. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
  211. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  212. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  213. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  214. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  215. package/deps/rocksdb/rocksdb/options/cf_options.cc +47 -38
  216. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  217. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  218. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  219. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  220. package/deps/rocksdb/rocksdb/options/db_options.cc +46 -17
  221. package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
  222. package/deps/rocksdb/rocksdb/options/options.cc +7 -0
  223. package/deps/rocksdb/rocksdb/options/options_helper.cc +86 -39
  224. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  225. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +12 -7
  226. package/deps/rocksdb/rocksdb/options/options_test.cc +222 -68
  227. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  228. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  229. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  230. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  231. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  232. package/deps/rocksdb/rocksdb/src.mk +6 -1
  233. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  234. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  235. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  236. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  237. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +23 -8
  238. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  239. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +81 -7
  240. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
  241. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +94 -726
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +44 -73
  246. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -5
  247. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  248. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +2 -11
  249. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
  250. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
  251. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  252. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
  253. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
  254. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  255. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  256. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  258. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
  259. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
  260. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +8 -4
  261. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  262. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
  263. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +65 -7
  264. package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
  265. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  266. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  267. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  268. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  269. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  270. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  271. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
  272. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  273. package/deps/rocksdb/rocksdb/table/multiget_context.h +60 -13
  274. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  275. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  276. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  277. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
  278. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
  279. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  280. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  281. package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
  282. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  283. package/deps/rocksdb/rocksdb/table/unique_id.cc +84 -25
  284. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +37 -4
  285. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -1
  286. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  287. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  288. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  289. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  290. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  291. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +277 -105
  292. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  293. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  294. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  295. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  296. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  297. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  298. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +26 -4
  299. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  300. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  301. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
  302. package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
  303. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  304. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  305. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  306. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  307. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  308. package/deps/rocksdb/rocksdb/util/compression.h +56 -7
  309. package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
  310. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  311. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  312. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  313. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  314. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  315. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  316. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  317. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  318. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  319. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
  320. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  321. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  322. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  323. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  324. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  325. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  326. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  327. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  328. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  329. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  330. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  331. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  332. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  333. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  334. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  335. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  336. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  337. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  338. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  339. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  340. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  341. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  342. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  343. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  344. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  345. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  346. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  347. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  348. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  349. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  350. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  351. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  352. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  353. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  354. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  355. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  356. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  357. package/deps/rocksdb/rocksdb.gyp +20 -13
  358. package/index.js +187 -3
  359. package/iterator.js +1 -0
  360. package/package-lock.json +23687 -0
  361. package/package.json +2 -30
  362. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  363. package/snapshot.js +23 -0
  364. package/deps/liburing/liburing/README +0 -46
  365. package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
  366. package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
  367. package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
  368. package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
  369. package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
  370. package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
  371. package/deps/liburing/liburing/test/Makefile +0 -312
  372. package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
  373. package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
  374. package/deps/liburing/liburing/test/accept-link.c +0 -251
  375. package/deps/liburing/liburing/test/accept-reuse.c +0 -164
  376. package/deps/liburing/liburing/test/accept-test.c +0 -79
  377. package/deps/liburing/liburing/test/accept.c +0 -476
  378. package/deps/liburing/liburing/test/across-fork.c +0 -283
  379. package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
  380. package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
  381. package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
  382. package/deps/liburing/liburing/test/close-opath.c +0 -122
  383. package/deps/liburing/liburing/test/config +0 -10
  384. package/deps/liburing/liburing/test/connect.c +0 -398
  385. package/deps/liburing/liburing/test/cq-full.c +0 -96
  386. package/deps/liburing/liburing/test/cq-overflow.c +0 -294
  387. package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
  388. package/deps/liburing/liburing/test/cq-ready.c +0 -94
  389. package/deps/liburing/liburing/test/cq-size.c +0 -58
  390. package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
  391. package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
  392. package/deps/liburing/liburing/test/defer.c +0 -307
  393. package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
  394. package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
  395. package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
  396. package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
  397. package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
  398. package/deps/liburing/liburing/test/eventfd.c +0 -112
  399. package/deps/liburing/liburing/test/fadvise.c +0 -202
  400. package/deps/liburing/liburing/test/fallocate.c +0 -249
  401. package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
  402. package/deps/liburing/liburing/test/file-register.c +0 -843
  403. package/deps/liburing/liburing/test/file-update.c +0 -173
  404. package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
  405. package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
  406. package/deps/liburing/liburing/test/fixed-link.c +0 -90
  407. package/deps/liburing/liburing/test/fsync.c +0 -224
  408. package/deps/liburing/liburing/test/hardlink.c +0 -136
  409. package/deps/liburing/liburing/test/helpers.c +0 -135
  410. package/deps/liburing/liburing/test/helpers.h +0 -67
  411. package/deps/liburing/liburing/test/io-cancel.c +0 -537
  412. package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
  413. package/deps/liburing/liburing/test/io_uring_register.c +0 -664
  414. package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
  415. package/deps/liburing/liburing/test/iopoll.c +0 -366
  416. package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
  417. package/deps/liburing/liburing/test/lfs-openat.c +0 -273
  418. package/deps/liburing/liburing/test/link-timeout.c +0 -1107
  419. package/deps/liburing/liburing/test/link.c +0 -496
  420. package/deps/liburing/liburing/test/link_drain.c +0 -229
  421. package/deps/liburing/liburing/test/madvise.c +0 -195
  422. package/deps/liburing/liburing/test/mkdir.c +0 -108
  423. package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
  424. package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
  425. package/deps/liburing/liburing/test/nop.c +0 -115
  426. package/deps/liburing/liburing/test/open-close.c +0 -146
  427. package/deps/liburing/liburing/test/openat2.c +0 -240
  428. package/deps/liburing/liburing/test/personality.c +0 -204
  429. package/deps/liburing/liburing/test/pipe-eof.c +0 -81
  430. package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
  431. package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
  432. package/deps/liburing/liburing/test/poll-cancel.c +0 -135
  433. package/deps/liburing/liburing/test/poll-link.c +0 -227
  434. package/deps/liburing/liburing/test/poll-many.c +0 -208
  435. package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
  436. package/deps/liburing/liburing/test/poll-ring.c +0 -48
  437. package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
  438. package/deps/liburing/liburing/test/poll.c +0 -109
  439. package/deps/liburing/liburing/test/probe.c +0 -137
  440. package/deps/liburing/liburing/test/read-write.c +0 -876
  441. package/deps/liburing/liburing/test/register-restrictions.c +0 -633
  442. package/deps/liburing/liburing/test/rename.c +0 -134
  443. package/deps/liburing/liburing/test/ring-leak.c +0 -173
  444. package/deps/liburing/liburing/test/ring-leak2.c +0 -249
  445. package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
  446. package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
  447. package/deps/liburing/liburing/test/runtests.sh +0 -170
  448. package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
  449. package/deps/liburing/liburing/test/self.c +0 -91
  450. package/deps/liburing/liburing/test/send_recv.c +0 -291
  451. package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
  452. package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
  453. package/deps/liburing/liburing/test/shared-wq.c +0 -84
  454. package/deps/liburing/liburing/test/short-read.c +0 -75
  455. package/deps/liburing/liburing/test/shutdown.c +0 -163
  456. package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
  457. package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
  458. package/deps/liburing/liburing/test/socket-rw.c +0 -147
  459. package/deps/liburing/liburing/test/splice.c +0 -511
  460. package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
  461. package/deps/liburing/liburing/test/sq-full.c +0 -45
  462. package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
  463. package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
  464. package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
  465. package/deps/liburing/liburing/test/sq-space_left.c +0 -159
  466. package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
  467. package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
  468. package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
  469. package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
  470. package/deps/liburing/liburing/test/statx.c +0 -172
  471. package/deps/liburing/liburing/test/stdout.c +0 -232
  472. package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
  473. package/deps/liburing/liburing/test/submit-reuse.c +0 -239
  474. package/deps/liburing/liburing/test/symlink.c +0 -116
  475. package/deps/liburing/liburing/test/teardowns.c +0 -58
  476. package/deps/liburing/liburing/test/thread-exit.c +0 -131
  477. package/deps/liburing/liburing/test/timeout-new.c +0 -246
  478. package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
  479. package/deps/liburing/liburing/test/timeout.c +0 -1354
  480. package/deps/liburing/liburing/test/unlink.c +0 -111
  481. package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
  482. package/deps/rocksdb/rocksdb/README.md +0 -32
  483. package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
  484. package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
  485. package/deps/rocksdb/rocksdb/port/README +0 -10
  486. package/deps/rocksdb/rocksdb/python.mk +0 -9
  487. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
  488. package/prebuilds/darwin-x64/node.napi.node +0 -0
  489. package/prebuilds/linux-arm64/node.napi.node +0 -0
  490. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -48,6 +48,7 @@
48
48
  #include "util/coding.h"
49
49
  #include "util/crc32c.h"
50
50
  #include "util/math.h"
51
+ #include "util/rate_limiter.h"
51
52
  #include "util/string_util.h"
52
53
  #include "utilities/backup/backup_engine_impl.h"
53
54
  #include "utilities/checkpoint/checkpoint_impl.h"
@@ -181,6 +182,61 @@ class BackupEngineImpl {
181
182
  BackupEngineOptions::kMaskNamingFlags;
182
183
  }
183
184
 
185
+ void TEST_SetDefaultRateLimitersClock(
186
+ const std::shared_ptr<SystemClock>& backup_rate_limiter_clock,
187
+ const std::shared_ptr<SystemClock>& restore_rate_limiter_clock) {
188
+ if (backup_rate_limiter_clock) {
189
+ assert(options_.backup_rate_limiter->IsInstanceOf(
190
+ GenericRateLimiter::kClassName()));
191
+ auto* backup_rate_limiter_options =
192
+ options_.backup_rate_limiter
193
+ ->GetOptions<GenericRateLimiter::GenericRateLimiterOptions>();
194
+
195
+ assert(backup_rate_limiter_options);
196
+ RateLimiter::Mode backup_rate_limiter_mode;
197
+ if (!options_.backup_rate_limiter->IsRateLimited(
198
+ RateLimiter::OpType::kRead)) {
199
+ backup_rate_limiter_mode = RateLimiter::Mode::kWritesOnly;
200
+ } else if (!options_.backup_rate_limiter->IsRateLimited(
201
+ RateLimiter::OpType::kWrite)) {
202
+ backup_rate_limiter_mode = RateLimiter::Mode::kReadsOnly;
203
+ } else {
204
+ backup_rate_limiter_mode = RateLimiter::Mode::kAllIo;
205
+ }
206
+ options_.backup_rate_limiter.reset(new GenericRateLimiter(
207
+ backup_rate_limiter_options->max_bytes_per_sec,
208
+ backup_rate_limiter_options->refill_period_us,
209
+ backup_rate_limiter_options->fairness, backup_rate_limiter_mode,
210
+ backup_rate_limiter_clock, backup_rate_limiter_options->auto_tuned));
211
+ }
212
+
213
+ if (restore_rate_limiter_clock) {
214
+ assert(options_.restore_rate_limiter->IsInstanceOf(
215
+ GenericRateLimiter::kClassName()));
216
+ auto* restore_rate_limiter_options =
217
+ options_.restore_rate_limiter
218
+ ->GetOptions<GenericRateLimiter::GenericRateLimiterOptions>();
219
+ assert(restore_rate_limiter_options);
220
+
221
+ RateLimiter::Mode restore_rate_limiter_mode;
222
+ if (!options_.restore_rate_limiter->IsRateLimited(
223
+ RateLimiter::OpType::kRead)) {
224
+ restore_rate_limiter_mode = RateLimiter::Mode::kWritesOnly;
225
+ } else if (!options_.restore_rate_limiter->IsRateLimited(
226
+ RateLimiter::OpType::kWrite)) {
227
+ restore_rate_limiter_mode = RateLimiter::Mode::kReadsOnly;
228
+ } else {
229
+ restore_rate_limiter_mode = RateLimiter::Mode::kAllIo;
230
+ }
231
+ options_.restore_rate_limiter.reset(new GenericRateLimiter(
232
+ restore_rate_limiter_options->max_bytes_per_sec,
233
+ restore_rate_limiter_options->refill_period_us,
234
+ restore_rate_limiter_options->fairness, restore_rate_limiter_mode,
235
+ restore_rate_limiter_clock,
236
+ restore_rate_limiter_options->auto_tuned));
237
+ }
238
+ }
239
+
184
240
  private:
185
241
  void DeleteChildren(const std::string& dir,
186
242
  uint32_t file_type_filter = 0) const;
@@ -496,8 +552,8 @@ class BackupEngineImpl {
496
552
  bool tmp = false,
497
553
  const std::string& file = "") const {
498
554
  assert(file.size() == 0 || file[0] != '/');
499
- return kPrivateDirSlash + ROCKSDB_NAMESPACE::ToString(backup_id) +
500
- (tmp ? ".tmp" : "") + "/" + file;
555
+ return kPrivateDirSlash + std::to_string(backup_id) + (tmp ? ".tmp" : "") +
556
+ "/" + file;
501
557
  }
502
558
  inline std::string GetSharedFileRel(const std::string& file = "",
503
559
  bool tmp = false) const {
@@ -524,13 +580,13 @@ class BackupEngineImpl {
524
580
  if (UseLegacyNaming(db_session_id)) {
525
581
  assert(!checksum_hex.empty());
526
582
  file_copy.insert(file_copy.find_last_of('.'),
527
- "_" + ToString(ChecksumHexToInt32(checksum_hex)) + "_" +
528
- ToString(file_size));
583
+ "_" + std::to_string(ChecksumHexToInt32(checksum_hex)) +
584
+ "_" + std::to_string(file_size));
529
585
  } else {
530
586
  file_copy.insert(file_copy.find_last_of('.'), "_s" + db_session_id);
531
587
  if (GetNamingFlags() & BackupEngineOptions::kFlagIncludeFileSize) {
532
588
  file_copy.insert(file_copy.find_last_of('.'),
533
- "_" + ToString(file_size));
589
+ "_" + std::to_string(file_size));
534
590
  }
535
591
  }
536
592
  return file_copy;
@@ -544,7 +600,7 @@ class BackupEngineImpl {
544
600
  }
545
601
  inline std::string GetBackupMetaFile(BackupID backup_id, bool tmp) const {
546
602
  return GetAbsolutePath(kMetaDirName) + "/" + (tmp ? "." : "") +
547
- ROCKSDB_NAMESPACE::ToString(backup_id) + (tmp ? ".tmp" : "");
603
+ std::to_string(backup_id) + (tmp ? ".tmp" : "");
548
604
  }
549
605
 
550
606
  // If size_limit == 0, there is no size limit, copy everything.
@@ -942,6 +998,15 @@ class BackupEngineImplThreadSafe : public BackupEngine,
942
998
  impl_.schema_test_options_.reset(new TEST_BackupMetaSchemaOptions(options));
943
999
  }
944
1000
 
1001
+ // Not public API but used in testing
1002
+ void TEST_SetDefaultRateLimitersClock(
1003
+ const std::shared_ptr<SystemClock>& backup_rate_limiter_clock = nullptr,
1004
+ const std::shared_ptr<SystemClock>& restore_rate_limiter_clock =
1005
+ nullptr) {
1006
+ impl_.TEST_SetDefaultRateLimitersClock(backup_rate_limiter_clock,
1007
+ restore_rate_limiter_clock);
1008
+ }
1009
+
945
1010
  private:
946
1011
  mutable port::RWMutex mutex_;
947
1012
  BackupEngineImpl impl_;
@@ -1012,8 +1077,9 @@ IOStatus BackupEngineImpl::Initialize() {
1012
1077
  // we might need to clean up from previous crash or I/O errors
1013
1078
  might_need_garbage_collect_ = true;
1014
1079
 
1015
- if (options_.max_valid_backups_to_open != port::kMaxInt32) {
1016
- options_.max_valid_backups_to_open = port::kMaxInt32;
1080
+ if (options_.max_valid_backups_to_open !=
1081
+ std::numeric_limits<int32_t>::max()) {
1082
+ options_.max_valid_backups_to_open = std::numeric_limits<int32_t>::max();
1017
1083
  ROCKS_LOG_WARN(
1018
1084
  options_.info_log,
1019
1085
  "`max_valid_backups_to_open` is not set to the default value. Ignoring "
@@ -1066,7 +1132,7 @@ IOStatus BackupEngineImpl::Initialize() {
1066
1132
  ROCKS_LOG_INFO(options_.info_log, "Detected backup %s", file.c_str());
1067
1133
  BackupID backup_id = 0;
1068
1134
  sscanf(file.c_str(), "%u", &backup_id);
1069
- if (backup_id == 0 || file != ROCKSDB_NAMESPACE::ToString(backup_id)) {
1135
+ if (backup_id == 0 || file != std::to_string(backup_id)) {
1070
1136
  // Invalid file name, will be deleted with auto-GC when user
1071
1137
  // initiates an append or write operation. (Behave as read-only until
1072
1138
  // then.)
@@ -1434,7 +1500,8 @@ IOStatus BackupEngineImpl::CreateNewBackupWithMetadata(
1434
1500
  contents.size(), db_options.statistics.get(), 0 /* size_limit */,
1435
1501
  false /* shared_checksum */, options.progress_callback, contents);
1436
1502
  } /* create_file_cb */,
1437
- &sequence_number, options.flush_before_backup ? 0 : port::kMaxUint64,
1503
+ &sequence_number,
1504
+ options.flush_before_backup ? 0 : std::numeric_limits<uint64_t>::max(),
1438
1505
  compare_checksum));
1439
1506
  if (io_s.ok()) {
1440
1507
  new_backup->SetSequenceNumber(sequence_number);
@@ -1664,8 +1731,8 @@ void BackupEngineImpl::SetBackupInfoFromBackupMeta(
1664
1731
  bool include_file_details) const {
1665
1732
  *backup_info = BackupInfo(id, meta.GetTimestamp(), meta.GetSize(),
1666
1733
  meta.GetNumberFiles(), meta.GetAppMetadata());
1667
- std::string dir = options_.backup_dir + "/" + kPrivateDirSlash +
1668
- ROCKSDB_NAMESPACE::ToString(id);
1734
+ std::string dir =
1735
+ options_.backup_dir + "/" + kPrivateDirSlash + std::to_string(id);
1669
1736
  if (include_file_details) {
1670
1737
  auto& file_details = backup_info->file_details;
1671
1738
  file_details.reserve(meta.GetFiles().size());
@@ -1960,9 +2027,9 @@ IOStatus BackupEngineImpl::VerifyBackup(BackupID backup_id,
1960
2027
  // verify file size
1961
2028
  if (file_info->size != curr_abs_path_to_size[abs_path]) {
1962
2029
  std::string size_info("Expected file size is " +
1963
- ToString(file_info->size) +
2030
+ std::to_string(file_info->size) +
1964
2031
  " while found file size is " +
1965
- ToString(curr_abs_path_to_size[abs_path]));
2032
+ std::to_string(curr_abs_path_to_size[abs_path]));
1966
2033
  return IOStatus::Corruption("File corrupted: File size mismatch for " +
1967
2034
  abs_path + ": " + size_info);
1968
2035
  }
@@ -2171,7 +2238,7 @@ IOStatus BackupEngineImpl::AddBackupFileWorkItem(
2171
2238
  return io_s;
2172
2239
  }
2173
2240
  }
2174
- if (size_bytes == port::kMaxUint64) {
2241
+ if (size_bytes == std::numeric_limits<uint64_t>::max()) {
2175
2242
  return IOStatus::NotFound("File missing: " + src_path);
2176
2243
  }
2177
2244
  // dst_relative depends on the following conditions:
@@ -2643,8 +2710,8 @@ IOStatus BackupEngineImpl::BackupMeta::AddFile(
2643
2710
  if (itr->second->size != file_info->size) {
2644
2711
  std::string msg = "Size mismatch for existing backup file: ";
2645
2712
  msg.append(file_info->filename);
2646
- msg.append(" Size in backup is " + ToString(itr->second->size) +
2647
- " while size in DB is " + ToString(file_info->size));
2713
+ msg.append(" Size in backup is " + std::to_string(itr->second->size) +
2714
+ " while size in DB is " + std::to_string(file_info->size));
2648
2715
  msg.append(
2649
2716
  " If this DB file checks as not corrupt, try deleting old"
2650
2717
  " backups or backing up to a different backup directory.");
@@ -2937,7 +3004,7 @@ IOStatus BackupEngineImpl::BackupMeta::LoadFromFile(
2937
3004
  if (field_name == kFileCrc32cFieldName) {
2938
3005
  uint32_t checksum_value =
2939
3006
  static_cast<uint32_t>(strtoul(field_data.c_str(), nullptr, 10));
2940
- if (field_data != ROCKSDB_NAMESPACE::ToString(checksum_value)) {
3007
+ if (field_data != std::to_string(checksum_value)) {
2941
3008
  return IOStatus::Corruption("Invalid checksum value for " + filename +
2942
3009
  " in " + meta_filename_);
2943
3010
  }
@@ -2947,8 +3014,9 @@ IOStatus BackupEngineImpl::BackupMeta::LoadFromFile(
2947
3014
  std::strtoull(field_data.c_str(), nullptr, /*base*/ 10);
2948
3015
  if (ex_size != actual_size) {
2949
3016
  return IOStatus::Corruption(
2950
- "For file " + filename + " expected size " + ToString(ex_size) +
2951
- " but found size" + ToString(actual_size));
3017
+ "For file " + filename + " expected size " +
3018
+ std::to_string(ex_size) + " but found size" +
3019
+ std::to_string(actual_size));
2952
3020
  }
2953
3021
  } else if (field_name == kTemperatureFieldName) {
2954
3022
  auto iter = temperature_string_map.find(field_data);
@@ -3046,7 +3114,7 @@ IOStatus BackupEngineImpl::BackupMeta::StoreToFile(
3046
3114
  if (schema_version > static_cast<int>(minor_version_strings.size() - 1)) {
3047
3115
  return IOStatus::NotSupported(
3048
3116
  "Only BackupEngineOptions::schema_version <= " +
3049
- ToString(minor_version_strings.size() - 1) + " is supported");
3117
+ std::to_string(minor_version_strings.size() - 1) + " is supported");
3050
3118
  }
3051
3119
  std::string ver = minor_version_strings[schema_version];
3052
3120
 
@@ -3101,7 +3169,7 @@ IOStatus BackupEngineImpl::BackupMeta::StoreToFile(
3101
3169
  << temperature_to_string[file->temp];
3102
3170
  }
3103
3171
  if (schema_test_options && schema_test_options->file_sizes) {
3104
- buf << " " << kFileSizeFieldName << " " << ToString(file->size);
3172
+ buf << " " << kFileSizeFieldName << " " << std::to_string(file->size);
3105
3173
  }
3106
3174
  if (schema_test_options) {
3107
3175
  for (auto& e : schema_test_options->file_fields) {
@@ -3159,6 +3227,15 @@ void TEST_SetBackupMetaSchemaOptions(
3159
3227
  impl->TEST_SetBackupMetaSchemaOptions(options);
3160
3228
  }
3161
3229
 
3230
+ void TEST_SetDefaultRateLimitersClock(
3231
+ BackupEngine* engine,
3232
+ const std::shared_ptr<SystemClock>& backup_rate_limiter_clock,
3233
+ const std::shared_ptr<SystemClock>& restore_rate_limiter_clock) {
3234
+ BackupEngineImplThreadSafe* impl =
3235
+ static_cast_with_check<BackupEngineImplThreadSafe>(engine);
3236
+ impl->TEST_SetDefaultRateLimitersClock(backup_rate_limiter_clock,
3237
+ restore_rate_limiter_clock);
3238
+ }
3162
3239
  } // namespace ROCKSDB_NAMESPACE
3163
3240
 
3164
3241
  #endif // ROCKSDB_LITE
@@ -25,5 +25,12 @@ struct TEST_BackupMetaSchemaOptions {
25
25
  void TEST_SetBackupMetaSchemaOptions(
26
26
  BackupEngine *engine, const TEST_BackupMetaSchemaOptions &options);
27
27
 
28
+ // Modifies the BackupEngine(Impl) to use specified clocks for backup and
29
+ // restore rate limiters created by default if not specified by users for
30
+ // test speedup.
31
+ void TEST_SetDefaultRateLimitersClock(
32
+ BackupEngine* engine,
33
+ const std::shared_ptr<SystemClock>& backup_rate_limiter_clock = nullptr,
34
+ const std::shared_ptr<SystemClock>& restore_rate_limiter_clock = nullptr);
28
35
  } // namespace ROCKSDB_NAMESPACE
29
36
  #endif // ROCKSDB_LITE
@@ -564,8 +564,8 @@ size_t FillDB(DB* db, int from, int to,
564
564
  FillDBFlushAction flush_action = kFlushMost) {
565
565
  size_t bytes_written = 0;
566
566
  for (int i = from; i < to; ++i) {
567
- std::string key = "testkey" + ToString(i);
568
- std::string value = "testvalue" + ToString(i);
567
+ std::string key = "testkey" + std::to_string(i);
568
+ std::string value = "testvalue" + std::to_string(i);
569
569
  bytes_written += key.size() + value.size();
570
570
 
571
571
  EXPECT_OK(db->Put(WriteOptions(), Slice(key), Slice(value)));
@@ -582,17 +582,17 @@ size_t FillDB(DB* db, int from, int to,
582
582
 
583
583
  void AssertExists(DB* db, int from, int to) {
584
584
  for (int i = from; i < to; ++i) {
585
- std::string key = "testkey" + ToString(i);
585
+ std::string key = "testkey" + std::to_string(i);
586
586
  std::string value;
587
587
  Status s = db->Get(ReadOptions(), Slice(key), &value);
588
- ASSERT_EQ(value, "testvalue" + ToString(i));
588
+ ASSERT_EQ(value, "testvalue" + std::to_string(i));
589
589
  }
590
590
  }
591
591
 
592
592
  void AssertEmpty(DB* db, int from, int to) {
593
593
  for (int i = from; i < to; ++i) {
594
- std::string key = "testkey" + ToString(i);
595
- std::string value = "testvalue" + ToString(i);
594
+ std::string key = "testkey" + std::to_string(i);
595
+ std::string value = "testvalue" + std::to_string(i);
596
596
 
597
597
  Status s = db->Get(ReadOptions(), Slice(key), &value);
598
598
  ASSERT_TRUE(s.IsNotFound());
@@ -955,7 +955,7 @@ class BackupEngineTest : public testing::Test {
955
955
  ASSERT_LT(last_underscore, last_dot);
956
956
  std::string s = child.name.substr(last_underscore + 1,
957
957
  last_dot - (last_underscore + 1));
958
- ASSERT_EQ(s, ToString(child.size_bytes));
958
+ ASSERT_EQ(s, std::to_string(child.size_bytes));
959
959
  ++found_count;
960
960
  }
961
961
  ASSERT_GE(found_count, minimum_count);
@@ -2598,80 +2598,119 @@ INSTANTIATE_TEST_CASE_P(
2598
2598
 
2599
2599
  TEST_P(BackupEngineRateLimitingTestWithParam, RateLimiting) {
2600
2600
  size_t const kMicrosPerSec = 1000 * 1000LL;
2601
-
2602
- std::shared_ptr<RateLimiter> backupThrottler(NewGenericRateLimiter(1));
2603
- std::shared_ptr<RateLimiter> restoreThrottler(NewGenericRateLimiter(1));
2604
-
2605
- bool makeThrottler = std::get<0>(GetParam());
2606
- if (makeThrottler) {
2607
- engine_options_->backup_rate_limiter = backupThrottler;
2608
- engine_options_->restore_rate_limiter = restoreThrottler;
2609
- }
2610
-
2601
+ const bool custom_rate_limiter = std::get<0>(GetParam());
2611
2602
  // iter 0 -- single threaded
2612
2603
  // iter 1 -- multi threaded
2613
- int iter = std::get<1>(GetParam());
2604
+ const int iter = std::get<1>(GetParam());
2614
2605
  const std::pair<uint64_t, uint64_t> limit = std::get<2>(GetParam());
2615
-
2606
+ std::unique_ptr<Env> special_env(
2607
+ new SpecialEnv(db_chroot_env_.get(), /*time_elapse_only_sleep*/ true));
2616
2608
  // destroy old data
2617
- DestroyDB(dbname_, Options());
2618
- if (makeThrottler) {
2619
- backupThrottler->SetBytesPerSecond(limit.first);
2620
- restoreThrottler->SetBytesPerSecond(limit.second);
2609
+ Options options;
2610
+ options.env = special_env.get();
2611
+ DestroyDB(dbname_, options);
2612
+
2613
+ if (custom_rate_limiter) {
2614
+ std::shared_ptr<RateLimiter> backup_rate_limiter =
2615
+ std::make_shared<GenericRateLimiter>(
2616
+ limit.first, 100 * 1000 /* refill_period_us */, 10 /* fairness */,
2617
+ RateLimiter::Mode::kWritesOnly /* mode */,
2618
+ special_env->GetSystemClock(), false /* auto_tuned */);
2619
+ std::shared_ptr<RateLimiter> restore_rate_limiter =
2620
+ std::make_shared<GenericRateLimiter>(
2621
+ limit.second, 100 * 1000 /* refill_period_us */, 10 /* fairness */,
2622
+ RateLimiter::Mode::kWritesOnly /* mode */,
2623
+ special_env->GetSystemClock(), false /* auto_tuned */);
2624
+ engine_options_->backup_rate_limiter = backup_rate_limiter;
2625
+ engine_options_->restore_rate_limiter = restore_rate_limiter;
2621
2626
  } else {
2622
2627
  engine_options_->backup_rate_limit = limit.first;
2623
2628
  engine_options_->restore_rate_limit = limit.second;
2624
2629
  }
2630
+
2625
2631
  engine_options_->max_background_operations = (iter == 0) ? 1 : 10;
2626
2632
  options_.compression = kNoCompression;
2633
+
2634
+ // Rate limiter uses `CondVar::TimedWait()`, which does not have access to the
2635
+ // `Env` to advance its time according to the fake wait duration. The
2636
+ // workaround is to install a callback that advance the `Env`'s mock time.
2637
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
2638
+ "GenericRateLimiter::Request:PostTimedWait", [&](void* arg) {
2639
+ int64_t time_waited_us = *static_cast<int64_t*>(arg);
2640
+ special_env->SleepForMicroseconds(static_cast<int>(time_waited_us));
2641
+ });
2642
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->EnableProcessing();
2643
+
2627
2644
  OpenDBAndBackupEngine(true);
2628
- size_t bytes_written = FillDB(db_.get(), 0, 100000);
2645
+ TEST_SetDefaultRateLimitersClock(backup_engine_.get(),
2646
+ special_env->GetSystemClock());
2629
2647
 
2630
- auto start_backup = db_chroot_env_->NowMicros();
2648
+ size_t bytes_written = FillDB(db_.get(), 0, 10000);
2649
+
2650
+ auto start_backup = special_env->NowMicros();
2631
2651
  ASSERT_OK(backup_engine_->CreateNewBackup(db_.get(), false));
2632
- auto backup_time = db_chroot_env_->NowMicros() - start_backup;
2652
+ auto backup_time = special_env->NowMicros() - start_backup;
2653
+ CloseDBAndBackupEngine();
2633
2654
  auto rate_limited_backup_time = (bytes_written * kMicrosPerSec) / limit.first;
2634
2655
  ASSERT_GT(backup_time, 0.8 * rate_limited_backup_time);
2635
2656
 
2636
- CloseDBAndBackupEngine();
2637
-
2638
2657
  OpenBackupEngine();
2639
- auto start_restore = db_chroot_env_->NowMicros();
2658
+ TEST_SetDefaultRateLimitersClock(backup_engine_.get(),
2659
+ special_env->GetSystemClock());
2660
+
2661
+ auto start_restore = special_env->NowMicros();
2640
2662
  ASSERT_OK(backup_engine_->RestoreDBFromLatestBackup(dbname_, dbname_));
2641
- auto restore_time = db_chroot_env_->NowMicros() - start_restore;
2663
+ auto restore_time = special_env->NowMicros() - start_restore;
2642
2664
  CloseBackupEngine();
2643
2665
  auto rate_limited_restore_time =
2644
2666
  (bytes_written * kMicrosPerSec) / limit.second;
2645
2667
  ASSERT_GT(restore_time, 0.8 * rate_limited_restore_time);
2646
2668
 
2647
- AssertBackupConsistency(0, 0, 100000, 100010);
2669
+ AssertBackupConsistency(0, 0, 10000, 10100);
2670
+
2671
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
2672
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearCallBack(
2673
+ "GenericRateLimiter::Request:PostTimedWait");
2648
2674
  }
2649
2675
 
2650
2676
  TEST_P(BackupEngineRateLimitingTestWithParam, RateLimitingVerifyBackup) {
2651
2677
  const std::size_t kMicrosPerSec = 1000 * 1000LL;
2652
- std::shared_ptr<RateLimiter> backupThrottler(NewGenericRateLimiter(
2653
- 1, 100 * 1000 /* refill_period_us */, 10 /* fairness */,
2654
- RateLimiter::Mode::kAllIo /* mode */));
2655
-
2656
- bool makeThrottler = std::get<0>(GetParam());
2657
- if (makeThrottler) {
2658
- engine_options_->backup_rate_limiter = backupThrottler;
2659
- }
2660
-
2661
- bool is_single_threaded = std::get<1>(GetParam()) == 0 ? true : false;
2662
- engine_options_->max_background_operations = is_single_threaded ? 1 : 10;
2663
-
2678
+ const bool custom_rate_limiter = std::get<0>(GetParam());
2664
2679
  const std::uint64_t backup_rate_limiter_limit = std::get<2>(GetParam()).first;
2665
- if (makeThrottler) {
2666
- engine_options_->backup_rate_limiter->SetBytesPerSecond(
2667
- backup_rate_limiter_limit);
2680
+ const bool is_single_threaded = std::get<1>(GetParam()) == 0 ? true : false;
2681
+ std::unique_ptr<Env> special_env(
2682
+ new SpecialEnv(db_chroot_env_.get(), /*time_elapse_only_sleep*/ true));
2683
+
2684
+ if (custom_rate_limiter) {
2685
+ std::shared_ptr<RateLimiter> backup_rate_limiter =
2686
+ std::make_shared<GenericRateLimiter>(
2687
+ backup_rate_limiter_limit, 100 * 1000 /* refill_period_us */,
2688
+ 10 /* fairness */, RateLimiter::Mode::kAllIo /* mode */,
2689
+ special_env->GetSystemClock(), false /* auto_tuned */);
2690
+ engine_options_->backup_rate_limiter = backup_rate_limiter;
2668
2691
  } else {
2669
2692
  engine_options_->backup_rate_limit = backup_rate_limiter_limit;
2670
2693
  }
2671
2694
 
2672
- DestroyDB(dbname_, Options());
2695
+ engine_options_->max_background_operations = is_single_threaded ? 1 : 10;
2696
+
2697
+ Options options;
2698
+ options.env = special_env.get();
2699
+ DestroyDB(dbname_, options);
2700
+ // Rate limiter uses `CondVar::TimedWait()`, which does not have access to the
2701
+ // `Env` to advance its time according to the fake wait duration. The
2702
+ // workaround is to install a callback that advance the `Env`'s mock time.
2703
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
2704
+ "GenericRateLimiter::Request:PostTimedWait", [&](void* arg) {
2705
+ int64_t time_waited_us = *static_cast<int64_t*>(arg);
2706
+ special_env->SleepForMicroseconds(static_cast<int>(time_waited_us));
2707
+ });
2708
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->EnableProcessing();
2673
2709
  OpenDBAndBackupEngine(true /* destroy_old_data */);
2674
- FillDB(db_.get(), 0, 100000);
2710
+ TEST_SetDefaultRateLimitersClock(backup_engine_.get(),
2711
+ special_env->GetSystemClock(), nullptr);
2712
+ FillDB(db_.get(), 0, 10000);
2713
+
2675
2714
  ASSERT_OK(backup_engine_->CreateNewBackup(db_.get(),
2676
2715
  false /* flush_before_backup */));
2677
2716
 
@@ -2688,21 +2727,24 @@ TEST_P(BackupEngineRateLimitingTestWithParam, RateLimitingVerifyBackup) {
2688
2727
  for (BackupFileInfo backup_file_info : backup_info.file_details) {
2689
2728
  bytes_read_during_verify_backup += backup_file_info.size;
2690
2729
  }
2691
-
2692
- auto start_verify_backup = db_chroot_env_->NowMicros();
2730
+ auto start_verify_backup = special_env->NowMicros();
2693
2731
  ASSERT_OK(
2694
2732
  backup_engine_->VerifyBackup(backup_id, true /* verify_with_checksum */));
2695
- auto verify_backup_time = db_chroot_env_->NowMicros() - start_verify_backup;
2733
+ auto verify_backup_time = special_env->NowMicros() - start_verify_backup;
2696
2734
  auto rate_limited_verify_backup_time =
2697
2735
  (bytes_read_during_verify_backup * kMicrosPerSec) /
2698
2736
  backup_rate_limiter_limit;
2699
-
2700
- if (makeThrottler) {
2737
+ if (custom_rate_limiter) {
2701
2738
  EXPECT_GE(verify_backup_time, 0.8 * rate_limited_verify_backup_time);
2702
2739
  }
2740
+
2703
2741
  CloseDBAndBackupEngine();
2704
- AssertBackupConsistency(backup_id, 0, 100000, 100010);
2705
- DestroyDB(dbname_, Options());
2742
+ AssertBackupConsistency(backup_id, 0, 10000, 10010);
2743
+ DestroyDB(dbname_, options);
2744
+
2745
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
2746
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearCallBack(
2747
+ "GenericRateLimiter::Request:PostTimedWait");
2706
2748
  }
2707
2749
 
2708
2750
  TEST_P(BackupEngineRateLimitingTestWithParam, RateLimitingChargeReadInBackup) {
@@ -3285,7 +3327,7 @@ TEST_F(BackupEngineTest, MetaSchemaVersion2_SizeCorruption) {
3285
3327
 
3286
3328
  for (int id = 1; id <= 3; ++id) {
3287
3329
  ASSERT_OK(file_manager_->WriteToFile(
3288
- private_dir + "/" + ToString(id) + "/CURRENT", "x"));
3330
+ private_dir + "/" + std::to_string(id) + "/CURRENT", "x"));
3289
3331
  }
3290
3332
  // Except corrupt Backup 4 with same size CURRENT file
3291
3333
  {
@@ -3518,7 +3560,7 @@ TEST_F(BackupEngineTest, Concurrency) {
3518
3560
  ASSERT_EQ(ids.size(), 0U);
3519
3561
 
3520
3562
  // (Eventually, see below) Restore one of the backups, or "latest"
3521
- std::string restore_db_dir = dbname_ + "/restore" + ToString(i);
3563
+ std::string restore_db_dir = dbname_ + "/restore" + std::to_string(i);
3522
3564
  DestroyDir(test_db_env_.get(), restore_db_dir).PermitUncheckedError();
3523
3565
  BackupID to_restore;
3524
3566
  if (latest) {
@@ -3756,7 +3798,8 @@ TEST_F(BackupEngineTest, WriteOnlyEngineNoSharedFileDeletion) {
3756
3798
  }
3757
3799
  CloseDBAndBackupEngine();
3758
3800
 
3759
- engine_options_->max_valid_backups_to_open = port::kMaxInt32;
3801
+ engine_options_->max_valid_backups_to_open =
3802
+ std::numeric_limits<int32_t>::max();
3760
3803
  AssertBackupConsistency(i + 1, 0, (i + 1) * kNumKeys);
3761
3804
  }
3762
3805
  }
@@ -4110,7 +4153,7 @@ TEST_F(BackupEngineTest, FileTemperatures) {
4110
4153
  }
4111
4154
 
4112
4155
  // Restore backup to another virtual (tiered) dir
4113
- const std::string restore_dir = "/restore" + ToString(i);
4156
+ const std::string restore_dir = "/restore" + std::to_string(i);
4114
4157
  ASSERT_OK(backup_engine_->RestoreDBFromLatestBackup(
4115
4158
  RestoreOptions(), restore_dir, restore_dir));
4116
4159