@nxtedition/rocksdb 6.0.1 → 6.0.2

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 (310) hide show
  1. package/BUILDING.md +2 -2
  2. package/binding.cc +14 -17
  3. package/deps/rocksdb/build_version.cc +4 -10
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +17 -3
  5. package/deps/rocksdb/rocksdb/Makefile +57 -86
  6. package/deps/rocksdb/rocksdb/TARGETS +4 -0
  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/common.mk +30 -0
  13. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  14. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  15. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  16. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  17. package/deps/rocksdb/rocksdb/db/builder.cc +11 -4
  18. package/deps/rocksdb/rocksdb/db/c.cc +45 -0
  19. package/deps/rocksdb/rocksdb/db/c_test.c +25 -2
  20. package/deps/rocksdb/rocksdb/db/column_family.cc +4 -3
  21. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  22. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  23. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  24. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  25. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  26. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  27. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +25 -10
  28. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +6 -0
  29. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  30. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +69 -14
  31. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  32. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +21 -21
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +135 -32
  36. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  37. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  38. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  39. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  40. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
  41. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  42. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  43. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  44. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  45. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  46. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +9 -8
  48. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +1 -1
  49. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +5 -4
  50. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  51. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  52. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +9 -3
  53. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +6 -3
  54. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  55. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  56. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  57. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  58. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  59. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  60. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  61. package/deps/rocksdb/rocksdb/db/db_options_test.cc +12 -12
  62. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  63. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  64. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +15 -14
  65. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +6 -6
  66. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  67. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  68. package/deps/rocksdb/rocksdb/db/db_test.cc +44 -42
  69. package/deps/rocksdb/rocksdb/db/db_test2.cc +23 -19
  70. package/deps/rocksdb/rocksdb/db/db_test_util.cc +95 -17
  71. package/deps/rocksdb/rocksdb/db/db_test_util.h +48 -0
  72. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  73. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  74. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +4 -4
  75. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  76. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  77. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  78. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  79. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +34 -12
  80. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +3 -0
  81. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  82. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  83. package/deps/rocksdb/rocksdb/db/flush_job.cc +18 -4
  84. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  85. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  86. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  87. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -0
  88. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  89. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  90. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  91. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  92. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  93. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  94. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  95. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  96. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  97. package/deps/rocksdb/rocksdb/db/repair.cc +1 -1
  98. package/deps/rocksdb/rocksdb/db/repair_test.cc +5 -5
  99. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  100. package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -4
  101. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  102. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -5
  103. package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -2
  104. package/deps/rocksdb/rocksdb/db/version_set.cc +2 -2
  105. package/deps/rocksdb/rocksdb/db/version_set.h +3 -3
  106. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  107. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  108. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  110. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  111. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  112. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  113. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +7 -6
  114. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  115. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  116. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +31 -6
  117. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  118. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  119. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  120. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +359 -275
  121. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  122. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  123. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  124. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  125. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  126. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  127. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  128. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  129. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  130. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  131. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  132. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  133. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  134. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  135. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  136. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -1
  137. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  138. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  139. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  140. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +69 -45
  141. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +3 -1
  142. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +35 -0
  143. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  144. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  145. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  146. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  147. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  148. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  149. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  150. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  151. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +28 -3
  152. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  153. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  154. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  155. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  156. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  157. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  158. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -103
  159. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  160. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  161. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  162. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  163. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  164. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  165. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  166. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  167. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  168. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  169. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  170. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  171. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  172. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  173. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +2 -8
  174. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  175. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  176. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  177. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  178. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  179. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  180. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  181. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  182. package/deps/rocksdb/rocksdb/options/cf_options.cc +34 -38
  183. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  184. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  185. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  186. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  187. package/deps/rocksdb/rocksdb/options/db_options.cc +38 -17
  188. package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
  189. package/deps/rocksdb/rocksdb/options/options_helper.cc +82 -39
  190. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  191. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -3
  192. package/deps/rocksdb/rocksdb/options/options_test.cc +115 -59
  193. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  194. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  195. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  196. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  197. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  198. package/deps/rocksdb/rocksdb/src.mk +2 -0
  199. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  200. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  201. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  202. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  203. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +14 -4
  204. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  205. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +1 -1
  206. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +85 -41
  207. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +42 -72
  208. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +7 -5
  209. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  210. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
  211. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  212. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  213. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  214. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  215. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  216. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -1
  217. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +6 -3
  218. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  219. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -5
  220. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  221. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  222. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  223. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  224. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  225. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  226. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  227. package/deps/rocksdb/rocksdb/table/multiget_context.h +14 -11
  228. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  229. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  230. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  231. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  232. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  233. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  234. package/deps/rocksdb/rocksdb/table/unique_id.cc +57 -25
  235. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +34 -4
  236. package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -1
  237. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  238. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  239. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  240. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  241. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  242. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +254 -98
  243. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  244. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  245. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  246. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  247. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  248. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  249. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +17 -3
  250. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  251. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  252. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  253. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  254. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  255. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  256. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  257. package/deps/rocksdb/rocksdb/util/compression.h +7 -7
  258. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  259. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  260. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  261. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  262. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  263. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  264. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  265. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  266. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  267. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  268. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  269. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  270. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  271. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  272. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  273. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  274. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  275. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  276. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  277. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  278. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  279. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  280. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  281. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  282. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  283. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  284. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  285. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  286. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  287. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  288. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  289. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  290. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  291. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  292. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  293. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  294. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  295. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  296. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  297. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  298. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  299. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  300. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  301. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  302. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  303. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  304. package/deps/rocksdb/rocksdb.gyp +8 -2
  305. package/package.json +1 -1
  306. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  307. package/prebuilds/linux-x64/node.napi.node +0 -0
  308. package/deps/rocksdb/rocksdb/python.mk +0 -9
  309. package/prebuilds/darwin-x64/node.napi.node +0 -0
  310. package/prebuilds/linux-arm64/node.napi.node +0 -0
@@ -454,7 +454,7 @@ TEST_F(DBTestCompactionFilter, CompactionFilterDeletesAll) {
454
454
  // put some data
455
455
  for (int table = 0; table < 4; ++table) {
456
456
  for (int i = 0; i < 10 + table; ++i) {
457
- ASSERT_OK(Put(ToString(table * 100 + i), "val"));
457
+ ASSERT_OK(Put(std::to_string(table * 100 + i), "val"));
458
458
  }
459
459
  ASSERT_OK(Flush());
460
460
  }
@@ -755,7 +755,7 @@ TEST_F(DBTestCompactionFilter, CompactionFilterContextCfId) {
755
755
  #ifndef ROCKSDB_LITE
756
756
  // Compaction filters aplies to all records, regardless snapshots.
757
757
  TEST_F(DBTestCompactionFilter, CompactionFilterIgnoreSnapshot) {
758
- std::string five = ToString(5);
758
+ std::string five = std::to_string(5);
759
759
  Options options = CurrentOptions();
760
760
  options.compaction_filter_factory = std::make_shared<DeleteISFilterFactory>();
761
761
  options.disable_auto_compactions = true;
@@ -766,7 +766,7 @@ TEST_F(DBTestCompactionFilter, CompactionFilterIgnoreSnapshot) {
766
766
  const Snapshot* snapshot = nullptr;
767
767
  for (int table = 0; table < 4; ++table) {
768
768
  for (int i = 0; i < 10; ++i) {
769
- ASSERT_OK(Put(ToString(table * 100 + i), "val"));
769
+ ASSERT_OK(Put(std::to_string(table * 100 + i), "val"));
770
770
  }
771
771
  ASSERT_OK(Flush());
772
772
 
@@ -968,6 +968,71 @@ TEST_F(DBTestCompactionFilter, IgnoreSnapshotsFalseRecovery) {
968
968
  ASSERT_TRUE(TryReopen(options).IsNotSupported());
969
969
  }
970
970
 
971
+ TEST_F(DBTestCompactionFilter, DropKeyWithSingleDelete) {
972
+ Options options = GetDefaultOptions();
973
+ options.create_if_missing = true;
974
+
975
+ Reopen(options);
976
+
977
+ ASSERT_OK(Put("a", "v0"));
978
+ ASSERT_OK(Put("b", "v0"));
979
+ const Snapshot* snapshot = db_->GetSnapshot();
980
+
981
+ ASSERT_OK(SingleDelete("b"));
982
+ ASSERT_OK(Flush());
983
+
984
+ {
985
+ CompactRangeOptions cro;
986
+ cro.change_level = true;
987
+ cro.target_level = options.num_levels - 1;
988
+ ASSERT_OK(db_->CompactRange(cro, nullptr, nullptr));
989
+ }
990
+
991
+ db_->ReleaseSnapshot(snapshot);
992
+ Close();
993
+
994
+ class DeleteFilterV2 : public CompactionFilter {
995
+ public:
996
+ Decision FilterV2(int /*level*/, const Slice& key, ValueType /*value_type*/,
997
+ const Slice& /*existing_value*/,
998
+ std::string* /*new_value*/,
999
+ std::string* /*skip_until*/) const override {
1000
+ if (key.starts_with("b")) {
1001
+ return Decision::kPurge;
1002
+ }
1003
+ return Decision::kRemove;
1004
+ }
1005
+
1006
+ const char* Name() const override { return "DeleteFilterV2"; }
1007
+ } delete_filter_v2;
1008
+
1009
+ options.compaction_filter = &delete_filter_v2;
1010
+ options.level0_file_num_compaction_trigger = 2;
1011
+ Reopen(options);
1012
+
1013
+ ASSERT_OK(Put("b", "v1"));
1014
+ ASSERT_OK(Put("x", "v1"));
1015
+ ASSERT_OK(Flush());
1016
+
1017
+ ASSERT_OK(Put("r", "v1"));
1018
+ ASSERT_OK(Put("z", "v1"));
1019
+ ASSERT_OK(Flush());
1020
+
1021
+ ASSERT_OK(dbfull()->TEST_WaitForCompact());
1022
+
1023
+ Close();
1024
+
1025
+ options.compaction_filter = nullptr;
1026
+ Reopen(options);
1027
+ ASSERT_OK(SingleDelete("b"));
1028
+ ASSERT_OK(Flush());
1029
+ {
1030
+ CompactRangeOptions cro;
1031
+ cro.bottommost_level_compaction = BottommostLevelCompaction::kForce;
1032
+ ASSERT_OK(db_->CompactRange(cro, nullptr, nullptr));
1033
+ }
1034
+ }
1035
+
971
1036
  } // namespace ROCKSDB_NAMESPACE
972
1037
 
973
1038
  int main(int argc, char** argv) {
@@ -2409,6 +2409,30 @@ TEST_P(DBCompactionTestWithParam, LevelCompactionCFPathUse) {
2409
2409
 
2410
2410
  check_getvalues();
2411
2411
 
2412
+ { // Also verify GetLiveFilesStorageInfo with db_paths / cf_paths
2413
+ std::vector<LiveFileStorageInfo> new_infos;
2414
+ LiveFilesStorageInfoOptions lfsio;
2415
+ lfsio.wal_size_for_flush = UINT64_MAX; // no flush
2416
+ ASSERT_OK(db_->GetLiveFilesStorageInfo(lfsio, &new_infos));
2417
+ std::unordered_map<std::string, int> live_sst_by_dir;
2418
+ for (auto& info : new_infos) {
2419
+ if (info.file_type == kTableFile) {
2420
+ live_sst_by_dir[info.directory]++;
2421
+ // Verify file on disk (no directory confusion)
2422
+ uint64_t size;
2423
+ ASSERT_OK(env_->GetFileSize(
2424
+ info.directory + "/" + info.relative_filename, &size));
2425
+ ASSERT_EQ(info.size, size);
2426
+ }
2427
+ }
2428
+ ASSERT_EQ(3U * 3U, live_sst_by_dir.size());
2429
+ for (auto& paths : {options.db_paths, cf_opt1.cf_paths, cf_opt2.cf_paths}) {
2430
+ ASSERT_EQ(1, live_sst_by_dir[paths[0].path]);
2431
+ ASSERT_EQ(4, live_sst_by_dir[paths[1].path]);
2432
+ ASSERT_EQ(2, live_sst_by_dir[paths[2].path]);
2433
+ }
2434
+ }
2435
+
2412
2436
  ReopenWithColumnFamilies({"default", "one", "two"}, option_vector);
2413
2437
 
2414
2438
  check_getvalues();
@@ -2793,7 +2817,7 @@ TEST_P(DBCompactionTestWithParam, DISABLED_CompactFilesOnLevelCompaction) {
2793
2817
 
2794
2818
  Random rnd(301);
2795
2819
  for (int key = 64 * kEntriesPerBuffer; key >= 0; --key) {
2796
- ASSERT_OK(Put(1, ToString(key), rnd.RandomString(kTestValueSize)));
2820
+ ASSERT_OK(Put(1, std::to_string(key), rnd.RandomString(kTestValueSize)));
2797
2821
  }
2798
2822
  ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable(handles_[1]));
2799
2823
  ASSERT_OK(dbfull()->TEST_WaitForCompact());
@@ -2825,7 +2849,7 @@ TEST_P(DBCompactionTestWithParam, DISABLED_CompactFilesOnLevelCompaction) {
2825
2849
 
2826
2850
  // make sure all key-values are still there.
2827
2851
  for (int key = 64 * kEntriesPerBuffer; key >= 0; --key) {
2828
- ASSERT_NE(Get(1, ToString(key)), "NOT_FOUND");
2852
+ ASSERT_NE(Get(1, std::to_string(key)), "NOT_FOUND");
2829
2853
  }
2830
2854
  }
2831
2855
 
@@ -4380,7 +4404,8 @@ TEST_F(DBCompactionTest, LevelPeriodicCompactionWithCompactionFilters) {
4380
4404
  for (CompactionFilterType comp_filter_type :
4381
4405
  {kUseCompactionFilter, kUseCompactionFilterFactory}) {
4382
4406
  // Assert that periodic compactions are not enabled.
4383
- ASSERT_EQ(port::kMaxUint64 - 1, options.periodic_compaction_seconds);
4407
+ ASSERT_EQ(std::numeric_limits<uint64_t>::max() - 1,
4408
+ options.periodic_compaction_seconds);
4384
4409
 
4385
4410
  if (comp_filter_type == kUseCompactionFilter) {
4386
4411
  options.compaction_filter = &test_compaction_filter;
@@ -4643,9 +4668,9 @@ TEST_F(DBCompactionTest, CompactRangeSkipFlushAfterDelay) {
4643
4668
  });
4644
4669
 
4645
4670
  TEST_SYNC_POINT("DBCompactionTest::CompactRangeSkipFlushAfterDelay:PreFlush");
4646
- ASSERT_OK(Put(ToString(0), rnd.RandomString(1024)));
4671
+ ASSERT_OK(Put(std::to_string(0), rnd.RandomString(1024)));
4647
4672
  ASSERT_OK(dbfull()->Flush(flush_opts));
4648
- ASSERT_OK(Put(ToString(0), rnd.RandomString(1024)));
4673
+ ASSERT_OK(Put(std::to_string(0), rnd.RandomString(1024)));
4649
4674
  TEST_SYNC_POINT("DBCompactionTest::CompactRangeSkipFlushAfterDelay:PostFlush");
4650
4675
  manual_compaction_thread.join();
4651
4676
 
@@ -4654,7 +4679,7 @@ TEST_F(DBCompactionTest, CompactRangeSkipFlushAfterDelay) {
4654
4679
  std::string num_keys_in_memtable;
4655
4680
  ASSERT_TRUE(db_->GetProperty(DB::Properties::kNumEntriesActiveMemTable,
4656
4681
  &num_keys_in_memtable));
4657
- ASSERT_EQ(ToString(1), num_keys_in_memtable);
4682
+ ASSERT_EQ(std::to_string(1), num_keys_in_memtable);
4658
4683
 
4659
4684
  ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
4660
4685
  }
@@ -4803,7 +4828,7 @@ TEST_F(DBCompactionTest, SubcompactionEvent) {
4803
4828
  for (int i = 0; i < 4; i++) {
4804
4829
  for (int j = 0; j < 10; j++) {
4805
4830
  int key_id = i * 10 + j;
4806
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
4831
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
4807
4832
  }
4808
4833
  ASSERT_OK(Flush());
4809
4834
  }
@@ -4813,7 +4838,7 @@ TEST_F(DBCompactionTest, SubcompactionEvent) {
4813
4838
  for (int i = 0; i < 2; i++) {
4814
4839
  for (int j = 0; j < 10; j++) {
4815
4840
  int key_id = i * 20 + j * 2;
4816
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
4841
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
4817
4842
  }
4818
4843
  ASSERT_OK(Flush());
4819
4844
  }
@@ -5805,7 +5830,7 @@ TEST_P(DBCompactionTestWithBottommostParam, SequenceKeysManualCompaction) {
5805
5830
  }
5806
5831
  ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable());
5807
5832
 
5808
- ASSERT_EQ(ToString(kSstNum), FilesPerLevel(0));
5833
+ ASSERT_EQ(std::to_string(kSstNum), FilesPerLevel(0));
5809
5834
 
5810
5835
  auto cro = CompactRangeOptions();
5811
5836
  cro.bottommost_level_compaction = bottommost_level_compaction_;
@@ -5818,7 +5843,7 @@ TEST_P(DBCompactionTestWithBottommostParam, SequenceKeysManualCompaction) {
5818
5843
  ASSERT_EQ("0,1", FilesPerLevel(0));
5819
5844
  } else {
5820
5845
  // Just trivial move from level 0 -> 1
5821
- ASSERT_EQ("0," + ToString(kSstNum), FilesPerLevel(0));
5846
+ ASSERT_EQ("0," + std::to_string(kSstNum), FilesPerLevel(0));
5822
5847
  }
5823
5848
  }
5824
5849
 
@@ -7149,7 +7174,7 @@ TEST_F(DBCompactionTest, DisableManualCompactionThreadQueueFull) {
7149
7174
  ASSERT_OK(Put(Key(2), "value2"));
7150
7175
  ASSERT_OK(Flush());
7151
7176
  }
7152
- ASSERT_EQ(ToString(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
7177
+ ASSERT_EQ(std::to_string(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
7153
7178
 
7154
7179
  db_->DisableManualCompaction();
7155
7180
 
@@ -7206,7 +7231,7 @@ TEST_F(DBCompactionTest, DisableManualCompactionThreadQueueFullDBClose) {
7206
7231
  ASSERT_OK(Put(Key(2), "value2"));
7207
7232
  ASSERT_OK(Flush());
7208
7233
  }
7209
- ASSERT_EQ(ToString(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
7234
+ ASSERT_EQ(std::to_string(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
7210
7235
 
7211
7236
  db_->DisableManualCompaction();
7212
7237
 
@@ -7266,7 +7291,7 @@ TEST_F(DBCompactionTest, DBCloseWithManualCompaction) {
7266
7291
  ASSERT_OK(Put(Key(2), "value2"));
7267
7292
  ASSERT_OK(Flush());
7268
7293
  }
7269
- ASSERT_EQ(ToString(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
7294
+ ASSERT_EQ(std::to_string(kNumL0Files + (kNumL0Files / 2)), FilesPerLevel(0));
7270
7295
 
7271
7296
  // Close DB with manual compaction and auto triggered compaction in the queue.
7272
7297
  auto s = db_->Close();
@@ -177,7 +177,7 @@ Status DBImpl::GetLiveFilesStorageInfo(
177
177
  VectorLogPtr live_wal_files;
178
178
  bool flush_memtable = true;
179
179
  if (!immutable_db_options_.allow_2pc) {
180
- if (opts.wal_size_for_flush == port::kMaxUint64) {
180
+ if (opts.wal_size_for_flush == std::numeric_limits<uint64_t>::max()) {
181
181
  flush_memtable = false;
182
182
  } else if (opts.wal_size_for_flush > 0) {
183
183
  // If the outstanding log files are small, we skip the flush.
@@ -2356,7 +2356,7 @@ TEST_P(DBAtomicFlushTest, PrecomputeMinLogNumberToKeepNon2PC) {
2356
2356
  ASSERT_OK(Flush(cf_ids));
2357
2357
  uint64_t log_num_after_flush = dbfull()->TEST_GetCurrentLogNumber();
2358
2358
 
2359
- uint64_t min_log_number_to_keep = port::kMaxUint64;
2359
+ uint64_t min_log_number_to_keep = std::numeric_limits<uint64_t>::max();
2360
2360
  autovector<ColumnFamilyData*> flushed_cfds;
2361
2361
  autovector<autovector<VersionEdit*>> flush_edits;
2362
2362
  for (size_t i = 0; i != num_cfs; ++i) {
@@ -567,7 +567,7 @@ Status DBImpl::CloseHelper() {
567
567
  // flushing by first checking if there is a need for
568
568
  // flushing (but need to implement something
569
569
  // else than imm()->IsFlushPending() because the output
570
- // memtables added to imm() dont trigger flushes).
570
+ // memtables added to imm() don't trigger flushes).
571
571
  if (immutable_db_options_.experimental_mempurge_threshold > 0.0) {
572
572
  Status flush_ret;
573
573
  mutex_.Unlock();
@@ -849,7 +849,8 @@ void DBImpl::PersistStats() {
849
849
  if (stats_slice_.find(stat.first) != stats_slice_.end()) {
850
850
  uint64_t delta = stat.second - stats_slice_[stat.first];
851
851
  s = batch.Put(persist_stats_cf_handle_,
852
- Slice(key, std::min(100, length)), ToString(delta));
852
+ Slice(key, std::min(100, length)),
853
+ std::to_string(delta));
853
854
  }
854
855
  }
855
856
  }
@@ -3355,7 +3356,7 @@ bool DBImpl::GetProperty(ColumnFamilyHandle* column_family,
3355
3356
  bool ret_value =
3356
3357
  GetIntPropertyInternal(cfd, *property_info, false, &int_value);
3357
3358
  if (ret_value) {
3358
- *value = ToString(int_value);
3359
+ *value = std::to_string(int_value);
3359
3360
  }
3360
3361
  return ret_value;
3361
3362
  } else if (property_info->handle_string) {
@@ -3990,8 +3991,8 @@ Status DBImpl::CheckConsistency() {
3990
3991
  } else if (fsize != md.size) {
3991
3992
  corruption_messages += "Sst file size mismatch: " + file_path +
3992
3993
  ". Size recorded in manifest " +
3993
- ToString(md.size) + ", actual size " +
3994
- ToString(fsize) + "\n";
3994
+ std::to_string(md.size) + ", actual size " +
3995
+ std::to_string(fsize) + "\n";
3995
3996
  }
3996
3997
  }
3997
3998
  }
@@ -5123,8 +5124,8 @@ Status DBImpl::VerifyChecksumInternal(const ReadOptions& read_options,
5123
5124
  fmeta->file_checksum_func_name, fname,
5124
5125
  read_options);
5125
5126
  } else {
5126
- s = ROCKSDB_NAMESPACE::VerifySstFileChecksum(opts, file_options_,
5127
- read_options, fname);
5127
+ s = ROCKSDB_NAMESPACE::VerifySstFileChecksum(
5128
+ opts, file_options_, read_options, fname, fd.largest_seqno);
5128
5129
  }
5129
5130
  RecordTick(stats_, VERIFY_CHECKSUM_READ_BYTES,
5130
5131
  IOSTATS(bytes_read) - prev_bytes_read);
@@ -5338,7 +5339,7 @@ Status DBImpl::ReserveFileNumbersBeforeIngestion(
5338
5339
 
5339
5340
  Status DBImpl::GetCreationTimeOfOldestFile(uint64_t* creation_time) {
5340
5341
  if (mutable_db_options_.max_open_files == -1) {
5341
- uint64_t oldest_time = port::kMaxUint64;
5342
+ uint64_t oldest_time = std::numeric_limits<uint64_t>::max();
5342
5343
  for (auto cfd : *versions_->GetColumnFamilySet()) {
5343
5344
  if (!cfd->IsDropped()) {
5344
5345
  uint64_t ctime;
@@ -2299,7 +2299,7 @@ class DBImpl : public DB {
2299
2299
 
2300
2300
  static const int KEEP_LOG_FILE_NUM = 1000;
2301
2301
  // MSVC version 1800 still does not have constexpr for ::max()
2302
- static const uint64_t kNoTimeOut = port::kMaxUint64;
2302
+ static const uint64_t kNoTimeOut = std::numeric_limits<uint64_t>::max();
2303
2303
 
2304
2304
  std::string db_absolute_path_;
2305
2305
 
@@ -188,7 +188,7 @@ Status DBImpl::FlushMemTableToOutputFile(
188
188
  // a memtable without knowing such snapshot(s).
189
189
  uint64_t max_memtable_id = needs_to_sync_closed_wals
190
190
  ? cfd->imm()->GetLatestMemTableID()
191
- : port::kMaxUint64;
191
+ : std::numeric_limits<uint64_t>::max();
192
192
 
193
193
  // If needs_to_sync_closed_wals is false, then the flush job will pick ALL
194
194
  // existing memtables of the column family when PickMemTable() is called
@@ -1041,7 +1041,8 @@ Status DBImpl::CompactRangeInternal(const CompactRangeOptions& options,
1041
1041
  }
1042
1042
  s = RunManualCompaction(cfd, ColumnFamilyData::kCompactAllLevels,
1043
1043
  final_output_level, options, begin, end, exclusive,
1044
- false, port::kMaxUint64, trim_ts);
1044
+ false, std::numeric_limits<uint64_t>::max(),
1045
+ trim_ts);
1045
1046
  } else {
1046
1047
  int first_overlapped_level = kInvalidLevel;
1047
1048
  int max_overlapped_level = kInvalidLevel;
@@ -1078,7 +1079,7 @@ Status DBImpl::CompactRangeInternal(const CompactRangeOptions& options,
1078
1079
  if (s.ok() && first_overlapped_level != kInvalidLevel) {
1079
1080
  // max_file_num_to_ignore can be used to filter out newly created SST
1080
1081
  // files, useful for bottom level compaction in a manual compaction
1081
- uint64_t max_file_num_to_ignore = port::kMaxUint64;
1082
+ uint64_t max_file_num_to_ignore = std::numeric_limits<uint64_t>::max();
1082
1083
  uint64_t next_file_number = versions_->current_next_file_number();
1083
1084
  final_output_level = max_overlapped_level;
1084
1085
  int output_level;
@@ -2013,7 +2014,7 @@ Status DBImpl::FlushMemTable(ColumnFamilyData* cfd,
2013
2014
  // be created and scheduled, status::OK() will be returned.
2014
2015
  s = SwitchMemtable(cfd, &context);
2015
2016
  }
2016
- const uint64_t flush_memtable_id = port::kMaxUint64;
2017
+ const uint64_t flush_memtable_id = std::numeric_limits<uint64_t>::max();
2017
2018
  if (s.ok()) {
2018
2019
  if (cfd->imm()->NumNotFlushed() != 0 || !cfd->mem()->IsEmpty() ||
2019
2020
  !cached_recoverable_state_empty_.load()) {
@@ -118,10 +118,11 @@ Status DBImpl::TEST_CompactRange(int level, const Slice* begin,
118
118
  cfd->ioptions()->compaction_style == kCompactionStyleFIFO)
119
119
  ? level
120
120
  : level + 1;
121
- return RunManualCompaction(cfd, level, output_level, CompactRangeOptions(),
122
- begin, end, true, disallow_trivial_move,
123
- port::kMaxUint64 /*max_file_num_to_ignore*/,
124
- "" /*trim_ts*/);
121
+ return RunManualCompaction(
122
+ cfd, level, output_level, CompactRangeOptions(), begin, end, true,
123
+ disallow_trivial_move,
124
+ std::numeric_limits<uint64_t>::max() /*max_file_num_to_ignore*/,
125
+ "" /*trim_ts*/);
125
126
  }
126
127
 
127
128
  Status DBImpl::TEST_SwitchMemtable(ColumnFamilyData* cfd) {
@@ -761,7 +761,7 @@ uint64_t PrecomputeMinLogNumberToKeepNon2PC(
761
761
  assert(!cfds_to_flush.empty());
762
762
  assert(cfds_to_flush.size() == edit_lists.size());
763
763
 
764
- uint64_t min_log_number_to_keep = port::kMaxUint64;
764
+ uint64_t min_log_number_to_keep = std::numeric_limits<uint64_t>::max();
765
765
  for (const auto& edit_list : edit_lists) {
766
766
  uint64_t log = 0;
767
767
  for (const auto& e : edit_list) {
@@ -773,7 +773,7 @@ uint64_t PrecomputeMinLogNumberToKeepNon2PC(
773
773
  min_log_number_to_keep = std::min(min_log_number_to_keep, log);
774
774
  }
775
775
  }
776
- if (min_log_number_to_keep == port::kMaxUint64) {
776
+ if (min_log_number_to_keep == std::numeric_limits<uint64_t>::max()) {
777
777
  min_log_number_to_keep = cfds_to_flush[0]->GetLogNumber();
778
778
  for (size_t i = 1; i < cfds_to_flush.size(); i++) {
779
779
  min_log_number_to_keep =
@@ -760,11 +760,11 @@ Status DBImpl::PersistentStatsProcessFormatVersion() {
760
760
  WriteBatch batch;
761
761
  if (s.ok()) {
762
762
  s = batch.Put(persist_stats_cf_handle_, kFormatVersionKeyString,
763
- ToString(kStatsCFCurrentFormatVersion));
763
+ std::to_string(kStatsCFCurrentFormatVersion));
764
764
  }
765
765
  if (s.ok()) {
766
766
  s = batch.Put(persist_stats_cf_handle_, kCompatibleVersionKeyString,
767
- ToString(kStatsCFCompatibleFormatVersion));
767
+ std::to_string(kStatsCFCompatibleFormatVersion));
768
768
  }
769
769
  if (s.ok()) {
770
770
  WriteOptions wo;
@@ -947,7 +947,6 @@ Status DBImpl::RecoverLogFiles(const std::vector<uint64_t>& wal_numbers,
947
947
  // Read all the records and add to a memtable
948
948
  std::string scratch;
949
949
  Slice record;
950
- WriteBatch batch;
951
950
 
952
951
  TEST_SYNC_POINT_CALLBACK("DBImpl::RecoverLogFiles:BeforeReadWal",
953
952
  /*arg=*/nullptr);
@@ -961,10 +960,15 @@ Status DBImpl::RecoverLogFiles(const std::vector<uint64_t>& wal_numbers,
961
960
  continue;
962
961
  }
963
962
 
963
+ // We create a new batch and initialize with a valid prot_info_ to store
964
+ // the data checksums
965
+ WriteBatch batch(0, 0, 8, 0);
966
+
964
967
  status = WriteBatchInternal::SetContents(&batch, record);
965
968
  if (!status.ok()) {
966
969
  return status;
967
970
  }
971
+
968
972
  SequenceNumber sequence = WriteBatchInternal::Sequence(&batch);
969
973
 
970
974
  if (immutable_db_options_.wal_recovery_mode ==
@@ -1322,6 +1326,7 @@ Status DBImpl::GetLogSizeAndMaybeTruncate(uint64_t wal_number, bool truncate,
1322
1326
  Status s;
1323
1327
  // This gets the appear size of the wals, not including preallocated space.
1324
1328
  s = env_->GetFileSize(fname, &log.size);
1329
+ TEST_SYNC_POINT_CALLBACK("DBImpl::GetLogSizeAndMaybeTruncate:0", /*arg=*/&s);
1325
1330
  if (s.ok() && truncate) {
1326
1331
  std::unique_ptr<FSWritableFile> last_log;
1327
1332
  Status truncate_status = fs_->ReopenWritableFile(
@@ -1821,6 +1826,7 @@ Status DBImpl::Open(const DBOptions& db_options, const std::string& dbname,
1821
1826
  if (s.ok()) {
1822
1827
  // Need to fsync, otherwise it might get lost after a power reset.
1823
1828
  s = impl->FlushWAL(false);
1829
+ TEST_SYNC_POINT_CALLBACK("DBImpl::Open::BeforeSyncWAL", /*arg=*/&s);
1824
1830
  if (s.ok()) {
1825
1831
  s = log_writer->file()->Sync(impl->immutable_db_options_.use_fsync);
1826
1832
  }
@@ -247,15 +247,16 @@ Status DBImplSecondary::RecoverLogFiles(
247
247
  if (seq_of_batch <= seq) {
248
248
  continue;
249
249
  }
250
- auto curr_log_num = port::kMaxUint64;
250
+ auto curr_log_num = std::numeric_limits<uint64_t>::max();
251
251
  if (cfd_to_current_log_.count(cfd) > 0) {
252
252
  curr_log_num = cfd_to_current_log_[cfd];
253
253
  }
254
254
  // If the active memtable contains records added by replaying an
255
255
  // earlier WAL, then we need to seal the memtable, add it to the
256
256
  // immutable memtable list and create a new active memtable.
257
- if (!cfd->mem()->IsEmpty() && (curr_log_num == port::kMaxUint64 ||
258
- curr_log_num != log_number)) {
257
+ if (!cfd->mem()->IsEmpty() &&
258
+ (curr_log_num == std::numeric_limits<uint64_t>::max() ||
259
+ curr_log_num != log_number)) {
259
260
  const MutableCFOptions mutable_cf_options =
260
261
  *cfd->GetLatestMutableCFOptions();
261
262
  MemTable* new_mem =
@@ -831,6 +832,8 @@ Status DB::OpenAndCompact(
831
832
  override_options.table_factory;
832
833
  compaction_input.column_family.options.sst_partitioner_factory =
833
834
  override_options.sst_partitioner_factory;
835
+ compaction_input.column_family.options.table_properties_collector_factories =
836
+ override_options.table_properties_collector_factories;
834
837
  compaction_input.db_options.listeners = override_options.listeners;
835
838
 
836
839
  std::vector<ColumnFamilyDescriptor> column_families;
@@ -35,10 +35,12 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
35
35
  Header(options.info_log, "DB SUMMARY\n");
36
36
  Header(options.info_log, "DB Session ID: %s\n", session_id.c_str());
37
37
 
38
+ Status s;
38
39
  // Get files in dbname dir
39
- if (!env->GetChildren(dbname, &files).ok()) {
40
- Error(options.info_log,
41
- "Error when reading %s dir\n", dbname.c_str());
40
+ s = env->GetChildren(dbname, &files);
41
+ if (!s.ok()) {
42
+ Error(options.info_log, "Error when reading %s dir %s\n", dbname.c_str(),
43
+ s.ToString().c_str());
42
44
  }
43
45
  std::sort(files.begin(), files.end());
44
46
  for (const std::string& file : files) {
@@ -53,24 +55,27 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
53
55
  Header(options.info_log, "IDENTITY file: %s\n", file.c_str());
54
56
  break;
55
57
  case kDescriptorFile:
56
- if (env->GetFileSize(dbname + "/" + file, &file_size).ok()) {
58
+ s = env->GetFileSize(dbname + "/" + file, &file_size);
59
+ if (s.ok()) {
57
60
  Header(options.info_log,
58
61
  "MANIFEST file: %s size: %" PRIu64 " Bytes\n", file.c_str(),
59
62
  file_size);
60
63
  } else {
61
- Error(options.info_log, "Error when reading MANIFEST file: %s/%s\n",
62
- dbname.c_str(), file.c_str());
64
+ Error(options.info_log,
65
+ "Error when reading MANIFEST file: %s/%s %s\n", dbname.c_str(),
66
+ file.c_str(), s.ToString().c_str());
63
67
  }
64
68
  break;
65
69
  case kWalFile:
66
- if (env->GetFileSize(dbname + "/" + file, &file_size).ok()) {
70
+ s = env->GetFileSize(dbname + "/" + file, &file_size);
71
+ if (s.ok()) {
67
72
  wal_info.append(file)
68
73
  .append(" size: ")
69
74
  .append(std::to_string(file_size))
70
75
  .append(" ; ");
71
76
  } else {
72
- Error(options.info_log, "Error when reading LOG file: %s/%s\n",
73
- dbname.c_str(), file.c_str());
77
+ Error(options.info_log, "Error when reading LOG file: %s/%s %s\n",
78
+ dbname.c_str(), file.c_str(), s.ToString().c_str());
74
79
  }
75
80
  break;
76
81
  case kTableFile:
@@ -86,10 +91,10 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
86
91
  // Get sst files in db_path dir
87
92
  for (auto& db_path : options.db_paths) {
88
93
  if (dbname.compare(db_path.path) != 0) {
89
- if (!env->GetChildren(db_path.path, &files).ok()) {
90
- Error(options.info_log,
91
- "Error when reading %s dir\n",
92
- db_path.path.c_str());
94
+ s = env->GetChildren(db_path.path, &files);
95
+ if (!s.ok()) {
96
+ Error(options.info_log, "Error when reading %s dir %s\n",
97
+ db_path.path.c_str(), s.ToString().c_str());
93
98
  continue;
94
99
  }
95
100
  std::sort(files.begin(), files.end());
@@ -111,22 +116,25 @@ void DumpDBFileSummary(const ImmutableDBOptions& options,
111
116
  // Get wal file in wal_dir
112
117
  const auto& wal_dir = options.GetWalDir(dbname);
113
118
  if (!options.IsWalDirSameAsDBPath(dbname)) {
114
- if (!env->GetChildren(wal_dir, &files).ok()) {
115
- Error(options.info_log, "Error when reading %s dir\n", wal_dir.c_str());
119
+ s = env->GetChildren(wal_dir, &files);
120
+ if (!s.ok()) {
121
+ Error(options.info_log, "Error when reading %s dir %s\n", wal_dir.c_str(),
122
+ s.ToString().c_str());
116
123
  return;
117
124
  }
118
125
  wal_info.clear();
119
126
  for (const std::string& file : files) {
120
127
  if (ParseFileName(file, &number, &type)) {
121
128
  if (type == kWalFile) {
122
- if (env->GetFileSize(wal_dir + "/" + file, &file_size).ok()) {
129
+ s = env->GetFileSize(wal_dir + "/" + file, &file_size);
130
+ if (s.ok()) {
123
131
  wal_info.append(file)
124
132
  .append(" size: ")
125
133
  .append(std::to_string(file_size))
126
134
  .append(" ; ");
127
135
  } else {
128
- Error(options.info_log, "Error when reading LOG file %s/%s\n",
129
- wal_dir.c_str(), file.c_str());
136
+ Error(options.info_log, "Error when reading LOG file %s/%s %s\n",
137
+ wal_dir.c_str(), file.c_str(), s.ToString().c_str());
130
138
  }
131
139
  }
132
140
  }
@@ -414,7 +414,7 @@ TEST_F(DBIteratorStressTest, StressTest) {
414
414
  a /= 10;
415
415
  ++len;
416
416
  }
417
- std::string s = ToString(rnd.Next() % static_cast<uint64_t>(max_key));
417
+ std::string s = std::to_string(rnd.Next() % static_cast<uint64_t>(max_key));
418
418
  s.insert(0, len - (int)s.size(), '0');
419
419
  return s;
420
420
  };
@@ -444,12 +444,13 @@ TEST_F(DBIteratorStressTest, StressTest) {
444
444
  for (double mutation_probability : {0.01, 0.5}) {
445
445
  for (double target_hidden_fraction : {0.1, 0.5}) {
446
446
  std::string trace_str =
447
- "entries: " + ToString(num_entries) +
448
- ", key_space: " + ToString(key_space) +
449
- ", error_probability: " + ToString(error_probability) +
450
- ", mutation_probability: " + ToString(mutation_probability) +
447
+ "entries: " + std::to_string(num_entries) +
448
+ ", key_space: " + std::to_string(key_space) +
449
+ ", error_probability: " + std::to_string(error_probability) +
450
+ ", mutation_probability: " +
451
+ std::to_string(mutation_probability) +
451
452
  ", target_hidden_fraction: " +
452
- ToString(target_hidden_fraction);
453
+ std::to_string(target_hidden_fraction);
453
454
  SCOPED_TRACE(trace_str);
454
455
  if (trace) {
455
456
  std::cout << trace_str << std::endl;
@@ -470,7 +471,7 @@ TEST_F(DBIteratorStressTest, StressTest) {
470
471
  types[rnd.Next() % (sizeof(types) / sizeof(types[0]))];
471
472
  }
472
473
  e.sequence = i;
473
- e.value = "v" + ToString(i);
474
+ e.value = "v" + std::to_string(i);
474
475
  ParsedInternalKey internal_key(e.key, e.sequence, e.type);
475
476
  AppendInternalKey(&e.ikey, internal_key);
476
477