@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
@@ -65,7 +65,7 @@ bool FindIntraL0Compaction(const std::vector<FileMetaData*>& level_files,
65
65
  size_t compact_bytes = static_cast<size_t>(level_files[start]->fd.file_size);
66
66
  uint64_t compensated_compact_bytes =
67
67
  level_files[start]->compensated_file_size;
68
- size_t compact_bytes_per_del_file = port::kMaxSizet;
68
+ size_t compact_bytes_per_del_file = std::numeric_limits<size_t>::max();
69
69
  // Compaction range will be [start, limit).
70
70
  size_t limit;
71
71
  // Pull in files until the amount of compaction work per deleted file begins
@@ -401,7 +401,7 @@ Status CompactionPicker::GetCompactionInputsFromFileNumbers(
401
401
  "Cannot find matched SST files for the following file numbers:");
402
402
  for (auto fn : *input_set) {
403
403
  message += " ";
404
- message += ToString(fn);
404
+ message += std::to_string(fn);
405
405
  }
406
406
  return Status::InvalidArgument(message);
407
407
  }
@@ -717,7 +717,7 @@ Compaction* CompactionPicker::CompactRange(
717
717
  // files that are created during the current compaction.
718
718
  if (compact_range_options.bottommost_level_compaction ==
719
719
  BottommostLevelCompaction::kForceOptimized &&
720
- max_file_num_to_ignore != port::kMaxUint64) {
720
+ max_file_num_to_ignore != std::numeric_limits<uint64_t>::max()) {
721
721
  assert(input_level == output_level);
722
722
  // inputs_shrunk holds a continuous subset of input files which were all
723
723
  // created before the current manual compaction
@@ -1004,14 +1004,14 @@ Status CompactionPicker::SanitizeCompactionInputFiles(
1004
1004
  return Status::InvalidArgument(
1005
1005
  "Output level for column family " + cf_meta.name +
1006
1006
  " must between [0, " +
1007
- ToString(cf_meta.levels[cf_meta.levels.size() - 1].level) + "].");
1007
+ std::to_string(cf_meta.levels[cf_meta.levels.size() - 1].level) + "].");
1008
1008
  }
1009
1009
 
1010
1010
  if (output_level > MaxOutputLevel()) {
1011
1011
  return Status::InvalidArgument(
1012
1012
  "Exceed the maximum output level defined by "
1013
1013
  "the current compaction algorithm --- " +
1014
- ToString(MaxOutputLevel()));
1014
+ std::to_string(MaxOutputLevel()));
1015
1015
  }
1016
1016
 
1017
1017
  if (output_level < 0) {
@@ -1061,8 +1061,8 @@ Status CompactionPicker::SanitizeCompactionInputFiles(
1061
1061
  return Status::InvalidArgument(
1062
1062
  "Cannot compact file to up level, input file: " +
1063
1063
  MakeTableFileName("", file_num) + " level " +
1064
- ToString(input_file_level) + " > output level " +
1065
- ToString(output_level));
1064
+ std::to_string(input_file_level) + " > output level " +
1065
+ std::to_string(output_level));
1066
1066
  }
1067
1067
  }
1068
1068
 
@@ -504,7 +504,7 @@ bool LevelCompactionBuilder::PickIntraL0Compaction() {
504
504
  return false;
505
505
  }
506
506
  return FindIntraL0Compaction(level_files, kMinFilesForIntraL0Compaction,
507
- port::kMaxUint64,
507
+ std::numeric_limits<uint64_t>::max(),
508
508
  mutable_cf_options_.max_compaction_bytes,
509
509
  &start_level_inputs_, earliest_mem_seqno_);
510
510
  }
@@ -12,6 +12,7 @@
12
12
  #include "db/compaction/compaction_picker_level.h"
13
13
  #include "db/compaction/compaction_picker_universal.h"
14
14
  #include "db/compaction/file_pri.h"
15
+ #include "table/unique_id_impl.h"
15
16
  #include "test_util/testharness.h"
16
17
  #include "test_util/testutil.h"
17
18
  #include "util/string_util.h"
@@ -115,7 +116,7 @@ class CompactionPickerTest : public testing::Test {
115
116
  largest_seq, marked_for_compact, temperature, kInvalidBlobFileNumber,
116
117
  kUnknownOldestAncesterTime, kUnknownFileCreationTime,
117
118
  kUnknownFileChecksum, kUnknownFileChecksumFuncName,
118
- kDisableUserTimestamp, kDisableUserTimestamp);
119
+ kDisableUserTimestamp, kDisableUserTimestamp, kNullUniqueId64x2);
119
120
  f->compensated_file_size =
120
121
  (compensated_file_size != 0) ? compensated_file_size : file_size;
121
122
  f->oldest_ancester_time = oldest_ancestor_time;
@@ -273,9 +274,9 @@ TEST_F(CompactionPickerTest, NeedsCompactionLevel) {
273
274
  // start a brand new version in each test.
274
275
  NewVersionStorage(kLevels, kCompactionStyleLevel);
275
276
  for (int i = 0; i < file_count; ++i) {
276
- Add(level, i, ToString((i + 100) * 1000).c_str(),
277
- ToString((i + 100) * 1000 + 999).c_str(),
278
- file_size, 0, i * 100, i * 100 + 99);
277
+ Add(level, i, std::to_string((i + 100) * 1000).c_str(),
278
+ std::to_string((i + 100) * 1000 + 999).c_str(), file_size, 0,
279
+ i * 100, i * 100 + 99);
279
280
  }
280
281
  UpdateVersionStorageInfo();
281
282
  ASSERT_EQ(vstorage_->CompactionScoreLevel(0), level);
@@ -439,8 +440,8 @@ TEST_F(CompactionPickerTest, NeedsCompactionUniversal) {
439
440
  for (int i = 1;
440
441
  i <= mutable_cf_options_.level0_file_num_compaction_trigger * 2; ++i) {
441
442
  NewVersionStorage(1, kCompactionStyleUniversal);
442
- Add(0, i, ToString((i + 100) * 1000).c_str(),
443
- ToString((i + 100) * 1000 + 999).c_str(), 1000000, 0, i * 100,
443
+ Add(0, i, std::to_string((i + 100) * 1000).c_str(),
444
+ std::to_string((i + 100) * 1000 + 999).c_str(), 1000000, 0, i * 100,
444
445
  i * 100 + 99);
445
446
  UpdateVersionStorageInfo();
446
447
  ASSERT_EQ(level_compaction_picker.NeedsCompaction(vstorage_.get()),
@@ -852,17 +853,17 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace4) {
852
853
  // L3: (1101, 1180) (1201, 1280) ... (7901, 7908)
853
854
  // L4: (1130, 1150) (1160, 1210) (1230, 1250) (1260 1310) ... (7960, 8010)
854
855
  for (int i = 11; i < 79; i++) {
855
- Add(3, 100 + i * 3, ToString(i * 100).c_str(),
856
- ToString(i * 100 + 80).c_str(), kFileSize, 0, 200, 251);
856
+ Add(3, 100 + i * 3, std::to_string(i * 100).c_str(),
857
+ std::to_string(i * 100 + 80).c_str(), kFileSize, 0, 200, 251);
857
858
  // Add a tie breaker
858
859
  if (i == 66) {
859
860
  Add(3, 10000U, "6690", "6699", kFileSize, 0, 200, 251);
860
861
  }
861
862
 
862
- Add(4, 100 + i * 3 + 1, ToString(i * 100 + 30).c_str(),
863
- ToString(i * 100 + 50).c_str(), kFileSize, 0, 200, 251);
864
- Add(4, 100 + i * 3 + 2, ToString(i * 100 + 60).c_str(),
865
- ToString(i * 100 + 110).c_str(), kFileSize, 0, 200, 251);
863
+ Add(4, 100 + i * 3 + 1, std::to_string(i * 100 + 30).c_str(),
864
+ std::to_string(i * 100 + 50).c_str(), kFileSize, 0, 200, 251);
865
+ Add(4, 100 + i * 3 + 2, std::to_string(i * 100 + 60).c_str(),
866
+ std::to_string(i * 100 + 110).c_str(), kFileSize, 0, 200, 251);
866
867
  }
867
868
  UpdateVersionStorageInfo();
868
869
 
@@ -899,14 +900,14 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace5) {
899
900
  // L3: (1101, 1180) (1201, 1280) ... (7901, 7908)
900
901
  // L4: (1130, 1150) (1160, 1210) (1230, 1250) (1260 1310) ... (7960, 8010)
901
902
  for (int i = 11; i < 70; i++) {
902
- Add(3, 100 + i * 3, ToString(i * 100).c_str(),
903
- ToString(i * 100 + 80).c_str(),
903
+ Add(3, 100 + i * 3, std::to_string(i * 100).c_str(),
904
+ std::to_string(i * 100 + 80).c_str(),
904
905
  i % 10 == 9 ? kFileSize * 100 : kFileSize, 0, 200, 251);
905
906
 
906
- Add(4, 100 + i * 3 + 1, ToString(i * 100 + 30).c_str(),
907
- ToString(i * 100 + 50).c_str(), kFileSize, 0, 200, 251);
908
- Add(4, 100 + i * 3 + 2, ToString(i * 100 + 60).c_str(),
909
- ToString(i * 100 + 110).c_str(), kFileSize, 0, 200, 251);
907
+ Add(4, 100 + i * 3 + 1, std::to_string(i * 100 + 30).c_str(),
908
+ std::to_string(i * 100 + 50).c_str(), kFileSize, 0, 200, 251);
909
+ Add(4, 100 + i * 3 + 2, std::to_string(i * 100 + 60).c_str(),
910
+ std::to_string(i * 100 + 110).c_str(), kFileSize, 0, 200, 251);
910
911
  }
911
912
  UpdateVersionStorageInfo();
912
913
 
@@ -941,8 +942,8 @@ TEST_F(CompactionPickerTest, NeedsCompactionFIFO) {
941
942
  // size of L0 files.
942
943
  for (int i = 1; i <= kFileCount; ++i) {
943
944
  NewVersionStorage(1, kCompactionStyleFIFO);
944
- Add(0, i, ToString((i + 100) * 1000).c_str(),
945
- ToString((i + 100) * 1000 + 999).c_str(), kFileSize, 0, i * 100,
945
+ Add(0, i, std::to_string((i + 100) * 1000).c_str(),
946
+ std::to_string((i + 100) * 1000 + 999).c_str(), kFileSize, 0, i * 100,
946
947
  i * 100 + 99);
947
948
  UpdateVersionStorageInfo();
948
949
  ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()),
@@ -2653,8 +2654,8 @@ TEST_F(CompactionPickerTest, UniversalMarkedManualCompaction) {
2653
2654
  universal_compaction_picker.CompactRange(
2654
2655
  cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
2655
2656
  ColumnFamilyData::kCompactAllLevels, 6, CompactRangeOptions(),
2656
- nullptr, nullptr, &manual_end, &manual_conflict, port::kMaxUint64,
2657
- ""));
2657
+ nullptr, nullptr, &manual_end, &manual_conflict,
2658
+ std::numeric_limits<uint64_t>::max(), ""));
2658
2659
 
2659
2660
  ASSERT_TRUE(compaction);
2660
2661
 
@@ -1371,7 +1371,7 @@ Compaction* UniversalCompactionBuilder::PickPeriodicCompaction() {
1371
1371
 
1372
1372
  uint64_t UniversalCompactionBuilder::GetMaxOverlappingBytes() const {
1373
1373
  if (!mutable_cf_options_.compaction_options_universal.incremental) {
1374
- return port::kMaxUint64;
1374
+ return std::numeric_limits<uint64_t>::max();
1375
1375
  } else {
1376
1376
  // Try to align cutting boundary with files at the next level if the
1377
1377
  // file isn't end up with 1/2 of target size, or it would overlap
@@ -15,13 +15,17 @@ class MyTestCompactionService : public CompactionService {
15
15
  MyTestCompactionService(
16
16
  std::string db_path, Options& options,
17
17
  std::shared_ptr<Statistics>& statistics,
18
- std::vector<std::shared_ptr<EventListener>>& listeners)
18
+ std::vector<std::shared_ptr<EventListener>>& listeners,
19
+ std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>
20
+ table_properties_collector_factories)
19
21
  : db_path_(std::move(db_path)),
20
22
  options_(options),
21
23
  statistics_(statistics),
22
24
  start_info_("na", "na", "na", 0, Env::TOTAL),
23
25
  wait_info_("na", "na", "na", 0, Env::TOTAL),
24
- listeners_(listeners) {}
26
+ listeners_(listeners),
27
+ table_properties_collector_factories_(
28
+ std::move(table_properties_collector_factories)) {}
25
29
 
26
30
  static const char* kClassName() { return "MyTestCompactionService"; }
27
31
 
@@ -78,12 +82,16 @@ class MyTestCompactionService : public CompactionService {
78
82
  options_override.listeners = listeners_;
79
83
  }
80
84
 
85
+ if (!table_properties_collector_factories_.empty()) {
86
+ options_override.table_properties_collector_factories =
87
+ table_properties_collector_factories_;
88
+ }
89
+
81
90
  OpenAndCompactOptions options;
82
91
  options.canceled = &canceled_;
83
92
 
84
93
  Status s = DB::OpenAndCompact(
85
- options, db_path_,
86
- db_path_ + "/" + ROCKSDB_NAMESPACE::ToString(info.job_id),
94
+ options, db_path_, db_path_ + "/" + std::to_string(info.job_id),
87
95
  compaction_input, compaction_service_result, options_override);
88
96
  if (is_override_wait_result_) {
89
97
  *compaction_service_result = override_wait_result_;
@@ -142,6 +150,8 @@ class MyTestCompactionService : public CompactionService {
142
150
  bool is_override_wait_result_ = false;
143
151
  std::string override_wait_result_;
144
152
  std::vector<std::shared_ptr<EventListener>> listeners_;
153
+ std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>
154
+ table_properties_collector_factories_;
145
155
  std::atomic_bool canceled_{false};
146
156
  };
147
157
 
@@ -158,7 +168,8 @@ class CompactionServiceTest : public DBTestBase {
158
168
  compactor_statistics_ = CreateDBStatistics();
159
169
 
160
170
  compaction_service_ = std::make_shared<MyTestCompactionService>(
161
- dbname_, *options, compactor_statistics_, remote_listeners);
171
+ dbname_, *options, compactor_statistics_, remote_listeners,
172
+ remote_table_properties_collector_factories);
162
173
  options->compaction_service = compaction_service_;
163
174
  DestroyAndReopen(*options);
164
175
  }
@@ -177,7 +188,7 @@ class CompactionServiceTest : public DBTestBase {
177
188
  for (int i = 0; i < 20; i++) {
178
189
  for (int j = 0; j < 10; j++) {
179
190
  int key_id = i * 10 + j;
180
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
191
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
181
192
  }
182
193
  ASSERT_OK(Flush());
183
194
  }
@@ -187,7 +198,7 @@ class CompactionServiceTest : public DBTestBase {
187
198
  for (int i = 0; i < 10; i++) {
188
199
  for (int j = 0; j < 10; j++) {
189
200
  int key_id = i * 20 + j * 2;
190
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
201
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
191
202
  }
192
203
  ASSERT_OK(Flush());
193
204
  }
@@ -199,14 +210,16 @@ class CompactionServiceTest : public DBTestBase {
199
210
  for (int i = 0; i < 200; i++) {
200
211
  auto result = Get(Key(i));
201
212
  if (i % 2) {
202
- ASSERT_EQ(result, "value" + ToString(i));
213
+ ASSERT_EQ(result, "value" + std::to_string(i));
203
214
  } else {
204
- ASSERT_EQ(result, "value_new" + ToString(i));
215
+ ASSERT_EQ(result, "value_new" + std::to_string(i));
205
216
  }
206
217
  }
207
218
  }
208
219
 
209
220
  std::vector<std::shared_ptr<EventListener>> remote_listeners;
221
+ std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>
222
+ remote_table_properties_collector_factories;
210
223
 
211
224
  private:
212
225
  std::shared_ptr<Statistics> compactor_statistics_;
@@ -224,7 +237,7 @@ TEST_F(CompactionServiceTest, BasicCompactions) {
224
237
  for (int i = 0; i < 20; i++) {
225
238
  for (int j = 0; j < 10; j++) {
226
239
  int key_id = i * 10 + j;
227
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
240
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
228
241
  }
229
242
  ASSERT_OK(Flush());
230
243
  }
@@ -232,7 +245,7 @@ TEST_F(CompactionServiceTest, BasicCompactions) {
232
245
  for (int i = 0; i < 10; i++) {
233
246
  for (int j = 0; j < 10; j++) {
234
247
  int key_id = i * 20 + j * 2;
235
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
248
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
236
249
  }
237
250
  ASSERT_OK(Flush());
238
251
  }
@@ -242,9 +255,9 @@ TEST_F(CompactionServiceTest, BasicCompactions) {
242
255
  for (int i = 0; i < 200; i++) {
243
256
  auto result = Get(Key(i));
244
257
  if (i % 2) {
245
- ASSERT_EQ(result, "value" + ToString(i));
258
+ ASSERT_EQ(result, "value" + std::to_string(i));
246
259
  } else {
247
- ASSERT_EQ(result, "value_new" + ToString(i));
260
+ ASSERT_EQ(result, "value_new" + std::to_string(i));
248
261
  }
249
262
  }
250
263
  auto my_cs = GetCompactionService();
@@ -275,13 +288,23 @@ TEST_F(CompactionServiceTest, BasicCompactions) {
275
288
  auto s = static_cast<Status*>(status);
276
289
  *s = Status::Aborted("MyTestCompactionService failed to compact!");
277
290
  });
291
+
292
+ // tracking success unique id verification
293
+ std::atomic_int verify_passed{0};
294
+ SyncPoint::GetInstance()->SetCallBack(
295
+ "Version::VerifySstUniqueIds::Passed", [&](void* arg) {
296
+ // override job status
297
+ auto id = static_cast<std::string*>(arg);
298
+ assert(!id->empty());
299
+ verify_passed++;
300
+ });
278
301
  SyncPoint::GetInstance()->EnableProcessing();
279
302
 
280
303
  Status s;
281
304
  for (int i = 0; i < 10; i++) {
282
305
  for (int j = 0; j < 10; j++) {
283
306
  int key_id = i * 20 + j * 2;
284
- s = Put(Key(key_id), "value_new" + ToString(key_id));
307
+ s = Put(Key(key_id), "value_new" + std::to_string(key_id));
285
308
  if (s.IsAborted()) {
286
309
  break;
287
310
  }
@@ -299,6 +322,12 @@ TEST_F(CompactionServiceTest, BasicCompactions) {
299
322
  }
300
323
  }
301
324
  ASSERT_TRUE(s.IsAborted());
325
+
326
+ // Test verification
327
+ ASSERT_EQ(verify_passed, 0);
328
+ options.verify_sst_unique_id_in_manifest = true;
329
+ Reopen(options);
330
+ ASSERT_GT(verify_passed, 0);
302
331
  }
303
332
 
304
333
  TEST_F(CompactionServiceTest, ManualCompaction) {
@@ -468,7 +497,7 @@ TEST_F(CompactionServiceTest, CompactionFilter) {
468
497
  for (int i = 0; i < 20; i++) {
469
498
  for (int j = 0; j < 10; j++) {
470
499
  int key_id = i * 10 + j;
471
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
500
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
472
501
  }
473
502
  ASSERT_OK(Flush());
474
503
  }
@@ -476,7 +505,7 @@ TEST_F(CompactionServiceTest, CompactionFilter) {
476
505
  for (int i = 0; i < 10; i++) {
477
506
  for (int j = 0; j < 10; j++) {
478
507
  int key_id = i * 20 + j * 2;
479
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
508
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
480
509
  }
481
510
  ASSERT_OK(Flush());
482
511
  }
@@ -490,9 +519,9 @@ TEST_F(CompactionServiceTest, CompactionFilter) {
490
519
  if (i > 5 && i <= 105) {
491
520
  ASSERT_EQ(result, "NOT_FOUND");
492
521
  } else if (i % 2) {
493
- ASSERT_EQ(result, "value" + ToString(i));
522
+ ASSERT_EQ(result, "value" + std::to_string(i));
494
523
  } else {
495
- ASSERT_EQ(result, "value_new" + ToString(i));
524
+ ASSERT_EQ(result, "value_new" + std::to_string(i));
496
525
  }
497
526
  }
498
527
  auto my_cs = GetCompactionService();
@@ -547,9 +576,9 @@ TEST_F(CompactionServiceTest, ConcurrentCompaction) {
547
576
  for (int i = 0; i < 200; i++) {
548
577
  auto result = Get(Key(i));
549
578
  if (i % 2) {
550
- ASSERT_EQ(result, "value" + ToString(i));
579
+ ASSERT_EQ(result, "value" + std::to_string(i));
551
580
  } else {
552
- ASSERT_EQ(result, "value_new" + ToString(i));
581
+ ASSERT_EQ(result, "value_new" + std::to_string(i));
553
582
  }
554
583
  }
555
584
  auto my_cs = GetCompactionService();
@@ -564,7 +593,7 @@ TEST_F(CompactionServiceTest, CompactionInfo) {
564
593
  for (int i = 0; i < 20; i++) {
565
594
  for (int j = 0; j < 10; j++) {
566
595
  int key_id = i * 10 + j;
567
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
596
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
568
597
  }
569
598
  ASSERT_OK(Flush());
570
599
  }
@@ -572,7 +601,7 @@ TEST_F(CompactionServiceTest, CompactionInfo) {
572
601
  for (int i = 0; i < 10; i++) {
573
602
  for (int j = 0; j < 10; j++) {
574
603
  int key_id = i * 20 + j * 2;
575
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
604
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
576
605
  }
577
606
  ASSERT_OK(Flush());
578
607
  }
@@ -617,7 +646,7 @@ TEST_F(CompactionServiceTest, CompactionInfo) {
617
646
  for (int i = 0; i < 20; i++) {
618
647
  for (int j = 0; j < 10; j++) {
619
648
  int key_id = i * 10 + j;
620
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
649
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
621
650
  }
622
651
  ASSERT_OK(Flush());
623
652
  }
@@ -625,7 +654,7 @@ TEST_F(CompactionServiceTest, CompactionInfo) {
625
654
  for (int i = 0; i < 4; i++) {
626
655
  for (int j = 0; j < 10; j++) {
627
656
  int key_id = i * 20 + j * 2;
628
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
657
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
629
658
  }
630
659
  ASSERT_OK(Flush());
631
660
  }
@@ -653,7 +682,7 @@ TEST_F(CompactionServiceTest, FallbackLocalAuto) {
653
682
  for (int i = 0; i < 20; i++) {
654
683
  for (int j = 0; j < 10; j++) {
655
684
  int key_id = i * 10 + j;
656
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
685
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
657
686
  }
658
687
  ASSERT_OK(Flush());
659
688
  }
@@ -661,7 +690,7 @@ TEST_F(CompactionServiceTest, FallbackLocalAuto) {
661
690
  for (int i = 0; i < 10; i++) {
662
691
  for (int j = 0; j < 10; j++) {
663
692
  int key_id = i * 20 + j * 2;
664
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
693
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
665
694
  }
666
695
  ASSERT_OK(Flush());
667
696
  }
@@ -671,9 +700,9 @@ TEST_F(CompactionServiceTest, FallbackLocalAuto) {
671
700
  for (int i = 0; i < 200; i++) {
672
701
  auto result = Get(Key(i));
673
702
  if (i % 2) {
674
- ASSERT_EQ(result, "value" + ToString(i));
703
+ ASSERT_EQ(result, "value" + std::to_string(i));
675
704
  } else {
676
- ASSERT_EQ(result, "value_new" + ToString(i));
705
+ ASSERT_EQ(result, "value_new" + std::to_string(i));
677
706
  }
678
707
  }
679
708
 
@@ -796,7 +825,7 @@ TEST_F(CompactionServiceTest, RemoteEventListener) {
796
825
  for (int i = 0; i < 20; i++) {
797
826
  for (int j = 0; j < 10; j++) {
798
827
  int key_id = i * 10 + j;
799
- ASSERT_OK(Put(Key(key_id), "value" + ToString(key_id)));
828
+ ASSERT_OK(Put(Key(key_id), "value" + std::to_string(key_id)));
800
829
  }
801
830
  ASSERT_OK(Flush());
802
831
  }
@@ -804,7 +833,7 @@ TEST_F(CompactionServiceTest, RemoteEventListener) {
804
833
  for (int i = 0; i < 10; i++) {
805
834
  for (int j = 0; j < 10; j++) {
806
835
  int key_id = i * 20 + j * 2;
807
- ASSERT_OK(Put(Key(key_id), "value_new" + ToString(key_id)));
836
+ ASSERT_OK(Put(Key(key_id), "value_new" + std::to_string(key_id)));
808
837
  }
809
838
  ASSERT_OK(Flush());
810
839
  }
@@ -821,11 +850,101 @@ TEST_F(CompactionServiceTest, RemoteEventListener) {
821
850
  for (int i = 0; i < 200; i++) {
822
851
  auto result = Get(Key(i));
823
852
  if (i % 2) {
824
- ASSERT_EQ(result, "value" + ToString(i));
853
+ ASSERT_EQ(result, "value" + std::to_string(i));
825
854
  } else {
826
- ASSERT_EQ(result, "value_new" + ToString(i));
855
+ ASSERT_EQ(result, "value_new" + std::to_string(i));
856
+ }
857
+ }
858
+ }
859
+
860
+ TEST_F(CompactionServiceTest, TablePropertiesCollector) {
861
+ const static std::string kUserPropertyName = "TestCount";
862
+
863
+ class TablePropertiesCollectorTest : public TablePropertiesCollector {
864
+ public:
865
+ Status Finish(UserCollectedProperties* properties) override {
866
+ *properties = UserCollectedProperties{
867
+ {kUserPropertyName, std::to_string(count_)},
868
+ };
869
+ return Status::OK();
870
+ }
871
+
872
+ UserCollectedProperties GetReadableProperties() const override {
873
+ return UserCollectedProperties();
874
+ }
875
+
876
+ const char* Name() const override { return "TablePropertiesCollectorTest"; }
877
+
878
+ Status AddUserKey(const Slice& /*user_key*/, const Slice& /*value*/,
879
+ EntryType /*type*/, SequenceNumber /*seq*/,
880
+ uint64_t /*file_size*/) override {
881
+ count_++;
882
+ return Status::OK();
883
+ }
884
+
885
+ private:
886
+ uint32_t count_ = 0;
887
+ };
888
+
889
+ class TablePropertiesCollectorFactoryTest
890
+ : public TablePropertiesCollectorFactory {
891
+ public:
892
+ TablePropertiesCollector* CreateTablePropertiesCollector(
893
+ TablePropertiesCollectorFactory::Context /*context*/) override {
894
+ return new TablePropertiesCollectorTest();
895
+ }
896
+
897
+ const char* Name() const override {
898
+ return "TablePropertiesCollectorFactoryTest";
899
+ }
900
+ };
901
+
902
+ auto factory = new TablePropertiesCollectorFactoryTest();
903
+ remote_table_properties_collector_factories.emplace_back(factory);
904
+
905
+ const int kNumSst = 3;
906
+ const int kLevel0Trigger = 4;
907
+ Options options = CurrentOptions();
908
+ options.level0_file_num_compaction_trigger = kLevel0Trigger;
909
+ ReopenWithCompactionService(&options);
910
+
911
+ // generate a few SSTs locally which should not have user property
912
+ for (int i = 0; i < kNumSst; i++) {
913
+ for (int j = 0; j < 100; j++) {
914
+ ASSERT_OK(Put(Key(i * 10 + j), "value"));
915
+ }
916
+ ASSERT_OK(Flush());
917
+ }
918
+
919
+ TablePropertiesCollection fname_to_props;
920
+ ASSERT_OK(db_->GetPropertiesOfAllTables(&fname_to_props));
921
+ for (const auto& file_props : fname_to_props) {
922
+ auto properties = file_props.second->user_collected_properties;
923
+ auto it = properties.find(kUserPropertyName);
924
+ ASSERT_EQ(it, properties.end());
925
+ }
926
+
927
+ // trigger compaction
928
+ for (int i = kNumSst; i < kLevel0Trigger; i++) {
929
+ for (int j = 0; j < 100; j++) {
930
+ ASSERT_OK(Put(Key(i * 10 + j), "value"));
931
+ }
932
+ ASSERT_OK(Flush());
933
+ }
934
+ ASSERT_OK(dbfull()->TEST_WaitForCompact(true));
935
+
936
+ ASSERT_OK(db_->GetPropertiesOfAllTables(&fname_to_props));
937
+
938
+ bool has_user_property = false;
939
+ for (const auto& file_props : fname_to_props) {
940
+ auto properties = file_props.second->user_collected_properties;
941
+ auto it = properties.find(kUserPropertyName);
942
+ if (it != properties.end()) {
943
+ has_user_property = true;
944
+ ASSERT_GT(std::stoi(it->second), 0);
827
945
  }
828
946
  }
947
+ ASSERT_TRUE(has_user_property);
829
948
  }
830
949
 
831
950
  } // namespace ROCKSDB_NAMESPACE
@@ -397,7 +397,7 @@ TEST_P(ComparatorDBTest, DoubleComparator) {
397
397
  for (uint32_t j = 0; j < divide_order; j++) {
398
398
  to_divide *= 10.0;
399
399
  }
400
- source_strings.push_back(ToString(r / to_divide));
400
+ source_strings.push_back(std::to_string(r / to_divide));
401
401
  }
402
402
 
403
403
  DoRandomIteraratorTest(GetDB(), source_strings, &rnd, 200, 1000, 66);
@@ -40,7 +40,8 @@ Status VerifySstFileChecksum(const Options& options,
40
40
  Status VerifySstFileChecksum(const Options& options,
41
41
  const EnvOptions& env_options,
42
42
  const ReadOptions& read_options,
43
- const std::string& file_path) {
43
+ const std::string& file_path,
44
+ const SequenceNumber& largest_seqno) {
44
45
  std::unique_ptr<FSRandomAccessFile> file;
45
46
  uint64_t file_size;
46
47
  InternalKeyComparator internal_comparator(options.comparator);
@@ -61,12 +62,13 @@ Status VerifySstFileChecksum(const Options& options,
61
62
  nullptr /* stats */, 0 /* hist_type */, nullptr /* file_read_hist */,
62
63
  ioptions.rate_limiter.get()));
63
64
  const bool kImmortal = true;
65
+ auto reader_options = TableReaderOptions(
66
+ ioptions, options.prefix_extractor, env_options, internal_comparator,
67
+ false /* skip_filters */, !kImmortal, false /* force_direct_prefetch */,
68
+ -1 /* level */);
69
+ reader_options.largest_seqno = largest_seqno;
64
70
  s = ioptions.table_factory->NewTableReader(
65
- TableReaderOptions(ioptions, options.prefix_extractor, env_options,
66
- internal_comparator, false /* skip_filters */,
67
- !kImmortal, false /* force_direct_prefetch */,
68
- -1 /* level */),
69
- std::move(file_reader), file_size, &table_reader,
71
+ reader_options, std::move(file_reader), file_size, &table_reader,
70
72
  false /* prefetch_index_and_filter_in_cache */);
71
73
  if (!s.ok()) {
72
74
  return s;