@nxtedition/rocksdb 7.1.30 → 7.1.31

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 (380) hide show
  1. package/deps/rocksdb/rocksdb/CMakeLists.txt +2 -2
  2. package/deps/rocksdb/rocksdb/cache/cache_test.cc +15 -23
  3. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +0 -1
  4. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +4 -5
  5. package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -1
  6. package/deps/rocksdb/rocksdb/crash_test.mk +1 -1
  7. package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +15 -0
  8. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +1 -1
  9. package/deps/rocksdb/rocksdb/db/column_family.cc +4 -1
  10. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +78 -6
  11. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +32 -6
  12. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +8 -8
  13. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  14. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +47 -8
  15. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +3 -3
  16. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +105 -166
  17. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +3 -4
  18. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +46 -15
  19. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +47 -26
  20. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +17 -10
  21. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +11 -5
  22. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +12 -6
  23. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -2
  24. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +337 -103
  25. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +43 -5
  26. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -2
  27. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +524 -1
  28. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +164 -0
  29. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +6 -6
  30. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
  31. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +5 -7
  32. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +11 -1
  33. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +4 -4
  34. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +1 -0
  35. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +2 -3
  36. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +1 -1
  37. package/deps/rocksdb/rocksdb/db/db_test2.cc +1 -1
  38. package/deps/rocksdb/rocksdb/db/memtable.cc +16 -23
  39. package/deps/rocksdb/rocksdb/db/merge_helper.cc +30 -0
  40. package/deps/rocksdb/rocksdb/db/merge_helper.h +9 -0
  41. package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +29 -9
  42. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +10 -7
  43. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +12 -8
  44. package/deps/rocksdb/rocksdb/db/version_set.cc +11 -6
  45. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +142 -0
  46. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +59 -53
  47. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +3 -2
  48. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +4 -0
  49. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +1 -3
  50. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +7 -4
  51. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +0 -2
  52. package/deps/rocksdb/rocksdb/env/env.cc +16 -19
  53. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +1 -1
  54. package/deps/rocksdb/rocksdb/env/env_chroot.cc +20 -20
  55. package/deps/rocksdb/rocksdb/env/env_encryption.cc +62 -60
  56. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  57. package/deps/rocksdb/rocksdb/env/env_test.cc +179 -176
  58. package/deps/rocksdb/rocksdb/env/file_system.cc +3 -4
  59. package/deps/rocksdb/rocksdb/env/io_posix.cc +3 -2
  60. package/deps/rocksdb/rocksdb/env/io_posix.h +1 -2
  61. package/deps/rocksdb/rocksdb/env/mock_env.h +1 -0
  62. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +4 -4
  63. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +6 -5
  64. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +2 -5
  65. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +6 -7
  66. package/deps/rocksdb/rocksdb/file/file_util.cc +1 -1
  67. package/deps/rocksdb/rocksdb/file/filename.cc +16 -17
  68. package/deps/rocksdb/rocksdb/file/filename.h +4 -5
  69. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +492 -496
  70. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +1 -1
  71. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +1 -3
  72. package/deps/rocksdb/rocksdb/file/read_write_util.cc +1 -0
  73. package/deps/rocksdb/rocksdb/file/read_write_util.h +1 -0
  74. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +6 -8
  75. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +1 -2
  76. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +4 -4
  77. package/deps/rocksdb/rocksdb/include/rocksdb/block_cache_trace_writer.h +4 -4
  78. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +166 -167
  79. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +1 -0
  80. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +0 -1
  81. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +12 -12
  82. package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +2 -0
  83. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +1 -0
  84. package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +1 -0
  85. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -1
  86. package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +1 -0
  87. package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +1 -0
  88. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +0 -4
  89. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -3
  90. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +1 -1
  91. package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -0
  92. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +1 -0
  93. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +1 -0
  94. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +1 -0
  95. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +1 -0
  96. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +4 -4
  97. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -0
  98. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +4 -4
  99. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +1 -1
  100. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +2 -2
  101. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +1 -1
  102. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +3 -3
  103. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +3 -7
  104. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +20 -23
  105. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -0
  106. package/deps/rocksdb/rocksdb/logging/event_logger.cc +1 -3
  107. package/deps/rocksdb/rocksdb/logging/event_logger.h +4 -5
  108. package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +2 -1
  109. package/deps/rocksdb/rocksdb/logging/log_buffer.cc +2 -3
  110. package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -2
  111. package/deps/rocksdb/rocksdb/logging/logging.h +3 -3
  112. package/deps/rocksdb/rocksdb/memory/allocator.h +1 -0
  113. package/deps/rocksdb/rocksdb/memory/arena_test.cc +1 -1
  114. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +2 -0
  115. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -0
  116. package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -0
  117. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +17 -20
  118. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +13 -15
  119. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +11 -10
  120. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +3 -3
  121. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +2 -2
  122. package/deps/rocksdb/rocksdb/memtable/skiplist.h +30 -28
  123. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +4 -6
  124. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +73 -70
  125. package/deps/rocksdb/rocksdb/memtable/stl_wrappers.h +1 -1
  126. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +21 -23
  127. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +1 -0
  128. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +24 -38
  129. package/deps/rocksdb/rocksdb/monitoring/histogram.h +10 -17
  130. package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +19 -19
  131. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +22 -30
  132. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +4 -6
  133. package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -0
  134. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +4 -12
  135. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +2 -3
  136. package/deps/rocksdb/rocksdb/monitoring/iostats_context_test.cc +1 -0
  137. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +12 -14
  138. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +2 -3
  139. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -1
  140. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -3
  141. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +1 -0
  142. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
  143. package/deps/rocksdb/rocksdb/monitoring/statistics.h +7 -7
  144. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +12 -22
  145. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +7 -10
  146. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
  147. package/deps/rocksdb/rocksdb/port/lang.h +3 -1
  148. package/deps/rocksdb/rocksdb/port/likely.h +2 -2
  149. package/deps/rocksdb/rocksdb/port/mmap.h +2 -2
  150. package/deps/rocksdb/rocksdb/port/port_dirent.h +2 -2
  151. package/deps/rocksdb/rocksdb/port/port_posix.cc +32 -27
  152. package/deps/rocksdb/rocksdb/port/port_posix.h +31 -30
  153. package/deps/rocksdb/rocksdb/port/stack_trace.cc +1 -1
  154. package/deps/rocksdb/rocksdb/port/sys_time.h +1 -1
  155. package/deps/rocksdb/rocksdb/port/win/io_win.h +6 -7
  156. package/deps/rocksdb/rocksdb/port/win/port_win.h +12 -20
  157. package/deps/rocksdb/rocksdb/port/win/win_jemalloc.cc +5 -4
  158. package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -5
  159. package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -4
  160. package/deps/rocksdb/rocksdb/port/win/win_thread.cc +30 -49
  161. package/deps/rocksdb/rocksdb/port/win/win_thread.h +5 -5
  162. package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +51 -62
  163. package/deps/rocksdb/rocksdb/port/win/xpress_win.h +2 -2
  164. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +4 -3
  165. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -0
  166. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +2 -2
  167. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +2 -1
  168. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +0 -1
  169. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +3 -4
  170. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +1 -1
  171. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -1
  172. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +2 -0
  173. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +2 -1
  174. package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +28 -30
  175. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.cc +2 -1
  176. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -3
  177. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +3 -3
  178. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -0
  179. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +4 -5
  180. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -3
  181. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -2
  182. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +1 -0
  183. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +0 -1
  184. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +1 -1
  185. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +0 -1
  186. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -6
  187. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +0 -1
  188. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +1 -0
  189. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -6
  190. package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -2
  191. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +90 -80
  192. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +5 -4
  193. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +63 -69
  194. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +2 -1
  195. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +58 -57
  196. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +3 -3
  197. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +35 -30
  198. package/deps/rocksdb/rocksdb/table/get_context.cc +16 -10
  199. package/deps/rocksdb/rocksdb/table/iter_heap.h +2 -0
  200. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -1
  201. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +1 -3
  202. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +31 -16
  203. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +6 -6
  204. package/deps/rocksdb/rocksdb/table/multiget_context.h +5 -6
  205. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +1 -0
  206. package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.cc +1 -1
  207. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +7 -10
  208. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +3 -1
  209. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +2 -2
  210. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +4 -3
  211. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +2 -2
  212. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -0
  213. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +10 -21
  214. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +14 -12
  215. package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +2 -5
  216. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -3
  217. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +0 -6
  218. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +0 -33
  219. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -6
  220. package/deps/rocksdb/rocksdb/table/table_properties.cc +24 -37
  221. package/deps/rocksdb/rocksdb/table/table_reader.h +3 -2
  222. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +9 -8
  223. package/deps/rocksdb/rocksdb/table/table_test.cc +77 -82
  224. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +1 -0
  225. package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
  226. package/deps/rocksdb/rocksdb/test_util/sync_point.cc +8 -18
  227. package/deps/rocksdb/rocksdb/test_util/sync_point.h +2 -2
  228. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +4 -3
  229. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +13 -18
  230. package/deps/rocksdb/rocksdb/test_util/testharness.cc +1 -2
  231. package/deps/rocksdb/rocksdb/test_util/testutil.h +6 -7
  232. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +3 -4
  233. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +1 -1
  234. package/deps/rocksdb/rocksdb/tools/blob_dump.cc +1 -0
  235. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -7
  236. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +3 -2
  237. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +296 -314
  238. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +6 -6
  239. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +2 -1
  240. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +57 -64
  241. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +6 -5
  242. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +2 -2
  243. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
  244. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  245. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +1 -2
  246. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +10 -10
  247. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +1 -1
  248. package/deps/rocksdb/rocksdb/tools/write_stress.cc +6 -3
  249. package/deps/rocksdb/rocksdb/util/aligned_buffer.h +12 -31
  250. package/deps/rocksdb/rocksdb/util/autovector.h +3 -6
  251. package/deps/rocksdb/rocksdb/util/autovector_test.cc +12 -12
  252. package/deps/rocksdb/rocksdb/util/bloom_test.cc +8 -12
  253. package/deps/rocksdb/rocksdb/util/coding.cc +1 -0
  254. package/deps/rocksdb/rocksdb/util/coding.h +17 -15
  255. package/deps/rocksdb/rocksdb/util/coding_test.cc +14 -15
  256. package/deps/rocksdb/rocksdb/util/comparator.cc +4 -4
  257. package/deps/rocksdb/rocksdb/util/compression.h +6 -3
  258. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +2 -2
  259. package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.cc +5 -8
  260. package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +1 -1
  261. package/deps/rocksdb/rocksdb/util/crc32c.cc +202 -297
  262. package/deps/rocksdb/rocksdb/util/crc32c.h +2 -3
  263. package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +2 -0
  264. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +39 -54
  265. package/deps/rocksdb/rocksdb/util/defer.h +2 -1
  266. package/deps/rocksdb/rocksdb/util/defer_test.cc +2 -1
  267. package/deps/rocksdb/rocksdb/util/duplicate_detector.h +2 -1
  268. package/deps/rocksdb/rocksdb/util/dynamic_bloom.cc +1 -1
  269. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
  270. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +1 -1
  271. package/deps/rocksdb/rocksdb/util/filelock_test.cc +24 -29
  272. package/deps/rocksdb/rocksdb/util/filter_bench.cc +4 -4
  273. package/deps/rocksdb/rocksdb/util/hash_test.cc +2 -2
  274. package/deps/rocksdb/rocksdb/util/heap.h +5 -4
  275. package/deps/rocksdb/rocksdb/util/heap_test.cc +15 -25
  276. package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
  277. package/deps/rocksdb/rocksdb/util/murmurhash.cc +7 -2
  278. package/deps/rocksdb/rocksdb/util/murmurhash.h +4 -3
  279. package/deps/rocksdb/rocksdb/util/mutexlock.h +5 -11
  280. package/deps/rocksdb/rocksdb/util/random.cc +1 -0
  281. package/deps/rocksdb/rocksdb/util/random.h +2 -4
  282. package/deps/rocksdb/rocksdb/util/random_test.cc +2 -1
  283. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +4 -3
  284. package/deps/rocksdb/rocksdb/util/slice.cc +1 -1
  285. package/deps/rocksdb/rocksdb/util/slice_test.cc +1 -2
  286. package/deps/rocksdb/rocksdb/util/status.cc +2 -0
  287. package/deps/rocksdb/rocksdb/util/string_util.cc +2 -0
  288. package/deps/rocksdb/rocksdb/util/thread_list_test.cc +64 -76
  289. package/deps/rocksdb/rocksdb/util/thread_local.cc +18 -32
  290. package/deps/rocksdb/rocksdb/util/thread_local.h +2 -3
  291. package/deps/rocksdb/rocksdb/util/thread_operation.h +34 -43
  292. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +54 -73
  293. package/deps/rocksdb/rocksdb/util/threadpool_imp.h +18 -18
  294. package/deps/rocksdb/rocksdb/util/timer.h +4 -9
  295. package/deps/rocksdb/rocksdb/util/timer_queue.h +1 -0
  296. package/deps/rocksdb/rocksdb/util/timer_queue_test.cc +1 -0
  297. package/deps/rocksdb/rocksdb/util/xxhash.cc +1 -2
  298. package/deps/rocksdb/rocksdb/util/xxhash.h +7 -4
  299. package/deps/rocksdb/rocksdb/util/xxph3.h +3 -1
  300. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +16 -24
  301. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +1 -1
  302. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +106 -104
  303. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +3 -4
  304. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +6 -6
  305. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +1 -2
  306. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +3 -4
  307. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -1
  308. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +11 -15
  309. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +1 -2
  310. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +3 -3
  311. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +12 -12
  312. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +56 -55
  313. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +91 -74
  314. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +17 -34
  315. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +21 -45
  316. package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +74 -97
  317. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +17 -18
  318. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -4
  319. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +19 -19
  320. package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +19 -18
  321. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +7 -10
  322. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +3 -4
  323. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +2 -2
  324. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +10 -15
  325. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +2 -1
  326. package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +1 -0
  327. package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +5 -3
  328. package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +1 -2
  329. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +4 -5
  330. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -7
  331. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +9 -13
  332. package/deps/rocksdb/rocksdb/utilities/leveldb_options/leveldb_options.cc +1 -0
  333. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.cc +7 -9
  334. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +4 -5
  335. package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +4 -3
  336. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +1 -1
  337. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +3 -3
  338. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +2 -4
  339. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +2 -2
  340. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +39 -50
  341. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +2 -2
  342. package/deps/rocksdb/rocksdb/utilities/merge_operators.h +4 -3
  343. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +2 -2
  344. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +5 -7
  345. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +5 -4
  346. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
  347. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +3 -6
  348. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +1 -1
  349. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +2 -2
  350. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -1
  351. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +1 -0
  352. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -1
  353. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +1 -1
  354. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +18 -13
  355. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +1 -3
  356. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +15 -14
  357. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +14 -12
  358. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -2
  359. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +4 -7
  360. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +1 -2
  361. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  362. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +1 -1
  363. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -1
  364. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +3 -2
  365. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +1 -2
  366. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +3 -2
  367. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +5 -5
  368. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -4
  369. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +2 -2
  370. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +5 -4
  371. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +1 -1
  372. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +1 -0
  373. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +3 -4
  374. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +2 -6
  375. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +80 -79
  376. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -3
  377. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +9 -17
  378. package/package.json +1 -1
  379. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  380. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -91,7 +91,8 @@ extern "C" bool RocksDbIOUringEnable() { return true; }
91
91
  std::unique_ptr<char, Deleter> NewAligned(const size_t size, const char ch) {
92
92
  char* ptr = nullptr;
93
93
  #ifdef OS_WIN
94
- if (nullptr == (ptr = reinterpret_cast<char*>(_aligned_malloc(size, kPageSize)))) {
94
+ if (nullptr ==
95
+ (ptr = reinterpret_cast<char*>(_aligned_malloc(size, kPageSize)))) {
95
96
  return std::unique_ptr<char, Deleter>(nullptr, Deleter(_aligned_free));
96
97
  }
97
98
  std::unique_ptr<char, Deleter> uptr(ptr, Deleter(_aligned_free));
@@ -183,8 +184,7 @@ TEST_F(EnvPosixTest, AreFilesSame) {
183
184
  std::string same_file_link_name = same_file_name + "_link";
184
185
 
185
186
  std::unique_ptr<WritableFile> same_file;
186
- ASSERT_OK(env->NewWritableFile(same_file_name,
187
- &same_file, soptions));
187
+ ASSERT_OK(env->NewWritableFile(same_file_name, &same_file, soptions));
188
188
  same_file->Append("random_data");
189
189
  ASSERT_OK(same_file->Flush());
190
190
  same_file.reset();
@@ -681,7 +681,7 @@ TEST_P(EnvPosixTestWithParam, TwoPools) {
681
681
  }
682
682
 
683
683
  TEST_P(EnvPosixTestWithParam, DecreaseNumBgThreads) {
684
- constexpr int kWaitMicros = 60000000; // 1min
684
+ constexpr int kWaitMicros = 60000000; // 1min
685
685
 
686
686
  std::vector<test::SleepingBackgroundTask> tasks(10);
687
687
 
@@ -988,7 +988,6 @@ bool IsUniqueIDValid(const std::string& s) {
988
988
  const size_t MAX_ID_SIZE = 100;
989
989
  char temp_id[MAX_ID_SIZE];
990
990
 
991
-
992
991
  } // namespace
993
992
 
994
993
  // Determine whether we can use the FS_IOC_GETVERSION ioctl
@@ -1030,12 +1029,12 @@ class IoctlFriendlyTmpdir {
1030
1029
  explicit IoctlFriendlyTmpdir() {
1031
1030
  char dir_buf[100];
1032
1031
 
1033
- const char *fmt = "%s/rocksdb.XXXXXX";
1034
- const char *tmp = getenv("TEST_IOCTL_FRIENDLY_TMPDIR");
1032
+ const char* fmt = "%s/rocksdb.XXXXXX";
1033
+ const char* tmp = getenv("TEST_IOCTL_FRIENDLY_TMPDIR");
1035
1034
 
1036
1035
  #ifdef OS_WIN
1037
1036
  #define rmdir _rmdir
1038
- if(tmp == nullptr) {
1037
+ if (tmp == nullptr) {
1039
1038
  tmp = getenv("TMP");
1040
1039
  }
1041
1040
 
@@ -1066,8 +1065,10 @@ class IoctlFriendlyTmpdir {
1066
1065
  // Diagnose ioctl-related failure only if this is the
1067
1066
  // directory specified via that envvar.
1068
1067
  if (tmp && tmp == d) {
1069
- fprintf(stderr, "TEST_IOCTL_FRIENDLY_TMPDIR-specified directory is "
1070
- "not suitable: %s\n", d.c_str());
1068
+ fprintf(stderr,
1069
+ "TEST_IOCTL_FRIENDLY_TMPDIR-specified directory is "
1070
+ "not suitable: %s\n",
1071
+ d.c_str());
1071
1072
  }
1072
1073
  rmdir(dir_buf); // ignore failure
1073
1074
  }
@@ -1087,19 +1088,16 @@ class IoctlFriendlyTmpdir {
1087
1088
  return;
1088
1089
  }
1089
1090
 
1090
- fprintf(stderr, "failed to find an ioctl-friendly temporary directory;"
1091
+ fprintf(stderr,
1092
+ "failed to find an ioctl-friendly temporary directory;"
1091
1093
  " specify one via the TEST_IOCTL_FRIENDLY_TMPDIR envvar\n");
1092
1094
  std::abort();
1093
1095
  #endif
1094
1096
  }
1095
1097
 
1096
- ~IoctlFriendlyTmpdir() {
1097
- rmdir(dir_.c_str());
1098
- }
1098
+ ~IoctlFriendlyTmpdir() { rmdir(dir_.c_str()); }
1099
1099
 
1100
- const std::string& name() const {
1101
- return dir_;
1102
- }
1100
+ const std::string& name() const { return dir_; }
1103
1101
 
1104
1102
  bool is_supported() const { return is_supported_; }
1105
1103
 
@@ -1273,7 +1271,7 @@ TEST_P(EnvPosixTestWithParam, AllocateTest) {
1273
1271
 
1274
1272
  // Returns true if any of the strings in ss are the prefix of another string.
1275
1273
  bool HasPrefix(const std::unordered_set<std::string>& ss) {
1276
- for (const std::string& s: ss) {
1274
+ for (const std::string& s : ss) {
1277
1275
  if (s.empty()) {
1278
1276
  return true;
1279
1277
  }
@@ -1506,19 +1504,23 @@ TEST_F(EnvPosixTest, MultiReadNonAlignedLargeNum) {
1506
1504
  for (int i = 0; i < num_reads; i++) {
1507
1505
  int rnd_off;
1508
1506
  // No repeat offsets.
1509
- while (start_offsets.find(rnd_off = rnd.Uniform(81920)) != start_offsets.end()) {}
1507
+ while (start_offsets.find(rnd_off = rnd.Uniform(81920)) !=
1508
+ start_offsets.end()) {
1509
+ }
1510
1510
  start_offsets.insert(rnd_off);
1511
1511
  }
1512
1512
  std::vector<size_t> offsets;
1513
1513
  std::vector<size_t> lens;
1514
1514
  // std::set already sorted the offsets.
1515
- for (int so: start_offsets) {
1515
+ for (int so : start_offsets) {
1516
1516
  offsets.push_back(so);
1517
1517
  }
1518
1518
  for (size_t i = 0; i + 1 < offsets.size(); i++) {
1519
- lens.push_back(static_cast<size_t>(rnd.Uniform(static_cast<int>(offsets[i + 1] - offsets[i])) + 1));
1519
+ lens.push_back(static_cast<size_t>(
1520
+ rnd.Uniform(static_cast<int>(offsets[i + 1] - offsets[i])) + 1));
1520
1521
  }
1521
- lens.push_back(static_cast<size_t>(rnd.Uniform(static_cast<int>(kTotalSize - offsets.back())) + 1));
1522
+ lens.push_back(static_cast<size_t>(
1523
+ rnd.Uniform(static_cast<int>(kTotalSize - offsets.back())) + 1));
1522
1524
  ASSERT_EQ(num_reads, lens.size());
1523
1525
 
1524
1526
  // Create requests
@@ -1540,8 +1542,9 @@ TEST_F(EnvPosixTest, MultiReadNonAlignedLargeNum) {
1540
1542
  // Validate results
1541
1543
  for (int i = 0; i < num_reads; ++i) {
1542
1544
  ASSERT_OK(reqs[i].status);
1543
- ASSERT_EQ(Slice(expected_data.data() + offsets[i], lens[i]).ToString(true),
1544
- reqs[i].result.ToString(true));
1545
+ ASSERT_EQ(
1546
+ Slice(expected_data.data() + offsets[i], lens[i]).ToString(true),
1547
+ reqs[i].result.ToString(true));
1545
1548
  }
1546
1549
 
1547
1550
  ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
@@ -1754,57 +1757,60 @@ TEST_P(EnvPosixTestWithParam, InvalidateCache) {
1754
1757
  // Create file.
1755
1758
  {
1756
1759
  std::unique_ptr<WritableFile> wfile;
1757
- #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && !defined(OS_AIX)
1758
- if (soptions.use_direct_writes) {
1759
- soptions.use_direct_writes = false;
1760
- }
1760
+ #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
1761
+ !defined(OS_AIX)
1762
+ if (soptions.use_direct_writes) {
1763
+ soptions.use_direct_writes = false;
1764
+ }
1761
1765
  #endif
1762
- ASSERT_OK(env_->NewWritableFile(fname, &wfile, soptions));
1763
- ASSERT_OK(wfile->Append(slice));
1764
- ASSERT_OK(wfile->InvalidateCache(0, 0));
1765
- ASSERT_OK(wfile->Close());
1766
+ ASSERT_OK(env_->NewWritableFile(fname, &wfile, soptions));
1767
+ ASSERT_OK(wfile->Append(slice));
1768
+ ASSERT_OK(wfile->InvalidateCache(0, 0));
1769
+ ASSERT_OK(wfile->Close());
1766
1770
  }
1767
1771
 
1768
- // Random Read
1769
- {
1770
- std::unique_ptr<RandomAccessFile> file;
1771
- auto scratch = NewAligned(kSectorSize, 0);
1772
- Slice result;
1773
- #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && !defined(OS_AIX)
1774
- if (soptions.use_direct_reads) {
1775
- soptions.use_direct_reads = false;
1776
- }
1777
- #endif
1778
- ASSERT_OK(env_->NewRandomAccessFile(fname, &file, soptions));
1779
- ASSERT_OK(file->Read(0, kSectorSize, &result, scratch.get()));
1780
- ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
1781
- ASSERT_OK(file->InvalidateCache(0, 11));
1782
- ASSERT_OK(file->InvalidateCache(0, 0));
1772
+ // Random Read
1773
+ {
1774
+ std::unique_ptr<RandomAccessFile> file;
1775
+ auto scratch = NewAligned(kSectorSize, 0);
1776
+ Slice result;
1777
+ #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
1778
+ !defined(OS_AIX)
1779
+ if (soptions.use_direct_reads) {
1780
+ soptions.use_direct_reads = false;
1783
1781
  }
1782
+ #endif
1783
+ ASSERT_OK(env_->NewRandomAccessFile(fname, &file, soptions));
1784
+ ASSERT_OK(file->Read(0, kSectorSize, &result, scratch.get()));
1785
+ ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
1786
+ ASSERT_OK(file->InvalidateCache(0, 11));
1787
+ ASSERT_OK(file->InvalidateCache(0, 0));
1788
+ }
1784
1789
 
1785
- // Sequential Read
1786
- {
1787
- std::unique_ptr<SequentialFile> file;
1788
- auto scratch = NewAligned(kSectorSize, 0);
1789
- Slice result;
1790
- #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && !defined(OS_AIX)
1791
- if (soptions.use_direct_reads) {
1792
- soptions.use_direct_reads = false;
1793
- }
1790
+ // Sequential Read
1791
+ {
1792
+ std::unique_ptr<SequentialFile> file;
1793
+ auto scratch = NewAligned(kSectorSize, 0);
1794
+ Slice result;
1795
+ #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
1796
+ !defined(OS_AIX)
1797
+ if (soptions.use_direct_reads) {
1798
+ soptions.use_direct_reads = false;
1799
+ }
1794
1800
  #endif
1795
- ASSERT_OK(env_->NewSequentialFile(fname, &file, soptions));
1796
- if (file->use_direct_io()) {
1797
- ASSERT_OK(file->PositionedRead(0, kSectorSize, &result, scratch.get()));
1798
- } else {
1799
- ASSERT_OK(file->Read(kSectorSize, &result, scratch.get()));
1800
- }
1801
- ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
1802
- ASSERT_OK(file->InvalidateCache(0, 11));
1803
- ASSERT_OK(file->InvalidateCache(0, 0));
1801
+ ASSERT_OK(env_->NewSequentialFile(fname, &file, soptions));
1802
+ if (file->use_direct_io()) {
1803
+ ASSERT_OK(file->PositionedRead(0, kSectorSize, &result, scratch.get()));
1804
+ } else {
1805
+ ASSERT_OK(file->Read(kSectorSize, &result, scratch.get()));
1804
1806
  }
1805
- // Delete the file
1806
- ASSERT_OK(env_->DeleteFile(fname));
1807
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
1807
+ ASSERT_EQ(memcmp(scratch.get(), data.get(), kSectorSize), 0);
1808
+ ASSERT_OK(file->InvalidateCache(0, 11));
1809
+ ASSERT_OK(file->InvalidateCache(0, 0));
1810
+ }
1811
+ // Delete the file
1812
+ ASSERT_OK(env_->DeleteFile(fname));
1813
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
1808
1814
  }
1809
1815
  #endif // OS_LINUX || OS_WIN
1810
1816
 
@@ -1931,52 +1937,53 @@ TEST_P(EnvPosixTestWithParam, Preallocation) {
1931
1937
  std::unique_ptr<WritableFile> srcfile;
1932
1938
  EnvOptions soptions;
1933
1939
  soptions.use_direct_reads = soptions.use_direct_writes = direct_io_;
1934
- #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && !defined(OS_AIX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
1935
- if (soptions.use_direct_writes) {
1936
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
1937
- "NewWritableFile:O_DIRECT", [&](void* arg) {
1938
- int* val = static_cast<int*>(arg);
1939
- *val &= ~O_DIRECT;
1940
- });
1941
- }
1940
+ #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
1941
+ !defined(OS_AIX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
1942
+ if (soptions.use_direct_writes) {
1943
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
1944
+ "NewWritableFile:O_DIRECT", [&](void* arg) {
1945
+ int* val = static_cast<int*>(arg);
1946
+ *val &= ~O_DIRECT;
1947
+ });
1948
+ }
1942
1949
  #endif
1943
- ASSERT_OK(env_->NewWritableFile(src, &srcfile, soptions));
1944
- srcfile->SetPreallocationBlockSize(1024 * 1024);
1945
-
1946
- // No writes should mean no preallocation
1947
- size_t block_size, last_allocated_block;
1948
- srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1949
- ASSERT_EQ(last_allocated_block, 0UL);
1950
-
1951
- // Small write should preallocate one block
1952
- size_t kStrSize = 4096;
1953
- auto data = NewAligned(kStrSize, 'A');
1954
- Slice str(data.get(), kStrSize);
1955
- srcfile->PrepareWrite(srcfile->GetFileSize(), kStrSize);
1956
- ASSERT_OK(srcfile->Append(str));
1950
+ ASSERT_OK(env_->NewWritableFile(src, &srcfile, soptions));
1951
+ srcfile->SetPreallocationBlockSize(1024 * 1024);
1952
+
1953
+ // No writes should mean no preallocation
1954
+ size_t block_size, last_allocated_block;
1955
+ srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1956
+ ASSERT_EQ(last_allocated_block, 0UL);
1957
+
1958
+ // Small write should preallocate one block
1959
+ size_t kStrSize = 4096;
1960
+ auto data = NewAligned(kStrSize, 'A');
1961
+ Slice str(data.get(), kStrSize);
1962
+ srcfile->PrepareWrite(srcfile->GetFileSize(), kStrSize);
1963
+ ASSERT_OK(srcfile->Append(str));
1964
+ srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1965
+ ASSERT_EQ(last_allocated_block, 1UL);
1966
+
1967
+ // Write an entire preallocation block, make sure we increased by two.
1968
+ {
1969
+ auto buf_ptr = NewAligned(block_size, ' ');
1970
+ Slice buf(buf_ptr.get(), block_size);
1971
+ srcfile->PrepareWrite(srcfile->GetFileSize(), block_size);
1972
+ ASSERT_OK(srcfile->Append(buf));
1957
1973
  srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1958
- ASSERT_EQ(last_allocated_block, 1UL);
1959
-
1960
- // Write an entire preallocation block, make sure we increased by two.
1961
- {
1962
- auto buf_ptr = NewAligned(block_size, ' ');
1963
- Slice buf(buf_ptr.get(), block_size);
1964
- srcfile->PrepareWrite(srcfile->GetFileSize(), block_size);
1965
- ASSERT_OK(srcfile->Append(buf));
1966
- srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1967
- ASSERT_EQ(last_allocated_block, 2UL);
1968
- }
1974
+ ASSERT_EQ(last_allocated_block, 2UL);
1975
+ }
1969
1976
 
1970
- // Write five more blocks at once, ensure we're where we need to be.
1971
- {
1972
- auto buf_ptr = NewAligned(block_size * 5, ' ');
1973
- Slice buf = Slice(buf_ptr.get(), block_size * 5);
1974
- srcfile->PrepareWrite(srcfile->GetFileSize(), buf.size());
1975
- ASSERT_OK(srcfile->Append(buf));
1976
- srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1977
- ASSERT_EQ(last_allocated_block, 7UL);
1978
- }
1979
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
1977
+ // Write five more blocks at once, ensure we're where we need to be.
1978
+ {
1979
+ auto buf_ptr = NewAligned(block_size * 5, ' ');
1980
+ Slice buf = Slice(buf_ptr.get(), block_size * 5);
1981
+ srcfile->PrepareWrite(srcfile->GetFileSize(), buf.size());
1982
+ ASSERT_OK(srcfile->Append(buf));
1983
+ srcfile->GetPreallocationStatus(&block_size, &last_allocated_block);
1984
+ ASSERT_EQ(last_allocated_block, 7UL);
1985
+ }
1986
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
1980
1987
  }
1981
1988
 
1982
1989
  // Test that the two ways to get children file attributes (in bulk or
@@ -1993,53 +2000,50 @@ TEST_P(EnvPosixTestWithParam, ConsistentChildrenAttributes) {
1993
2000
  for (int i = 0; i < kNumChildren; ++i) {
1994
2001
  const std::string path = test_base_dir + "/testfile_" + std::to_string(i);
1995
2002
  std::unique_ptr<WritableFile> file;
1996
- #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && !defined(OS_AIX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
1997
- if (soptions.use_direct_writes) {
1998
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
1999
- "NewWritableFile:O_DIRECT", [&](void* arg) {
2000
- int* val = static_cast<int*>(arg);
2001
- *val &= ~O_DIRECT;
2002
- });
2003
- }
2003
+ #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \
2004
+ !defined(OS_AIX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
2005
+ if (soptions.use_direct_writes) {
2006
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
2007
+ "NewWritableFile:O_DIRECT", [&](void* arg) {
2008
+ int* val = static_cast<int*>(arg);
2009
+ *val &= ~O_DIRECT;
2010
+ });
2011
+ }
2004
2012
  #endif
2005
- ASSERT_OK(env_->NewWritableFile(path, &file, soptions));
2006
- auto buf_ptr = NewAligned(data.size(), 'T');
2007
- Slice buf(buf_ptr.get(), data.size());
2008
- ASSERT_OK(file->Append(buf));
2009
- data.append(std::string(4096, 'T'));
2013
+ ASSERT_OK(env_->NewWritableFile(path, &file, soptions));
2014
+ auto buf_ptr = NewAligned(data.size(), 'T');
2015
+ Slice buf(buf_ptr.get(), data.size());
2016
+ ASSERT_OK(file->Append(buf));
2017
+ data.append(std::string(4096, 'T'));
2010
2018
  }
2011
2019
 
2012
- std::vector<Env::FileAttributes> file_attrs;
2013
- ASSERT_OK(env_->GetChildrenFileAttributes(test_base_dir, &file_attrs));
2014
- for (int i = 0; i < kNumChildren; ++i) {
2015
- const std::string name = "testfile_" + std::to_string(i);
2016
- const std::string path = test_base_dir + "/" + name;
2020
+ std::vector<Env::FileAttributes> file_attrs;
2021
+ ASSERT_OK(env_->GetChildrenFileAttributes(test_base_dir, &file_attrs));
2022
+ for (int i = 0; i < kNumChildren; ++i) {
2023
+ const std::string name = "testfile_" + std::to_string(i);
2024
+ const std::string path = test_base_dir + "/" + name;
2017
2025
 
2018
- auto file_attrs_iter = std::find_if(
2019
- file_attrs.begin(), file_attrs.end(),
2020
- [&name](const Env::FileAttributes& fm) { return fm.name == name; });
2021
- ASSERT_TRUE(file_attrs_iter != file_attrs.end());
2022
- uint64_t size;
2023
- ASSERT_OK(env_->GetFileSize(path, &size));
2024
- ASSERT_EQ(size, 4096 * i);
2025
- ASSERT_EQ(size, file_attrs_iter->size_bytes);
2026
- }
2027
- ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
2026
+ auto file_attrs_iter = std::find_if(
2027
+ file_attrs.begin(), file_attrs.end(),
2028
+ [&name](const Env::FileAttributes& fm) { return fm.name == name; });
2029
+ ASSERT_TRUE(file_attrs_iter != file_attrs.end());
2030
+ uint64_t size;
2031
+ ASSERT_OK(env_->GetFileSize(path, &size));
2032
+ ASSERT_EQ(size, 4096 * i);
2033
+ ASSERT_EQ(size, file_attrs_iter->size_bytes);
2034
+ }
2035
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearTrace();
2028
2036
  }
2029
2037
 
2030
2038
  // Test that all WritableFileWrapper forwards all calls to WritableFile.
2031
2039
  TEST_P(EnvPosixTestWithParam, WritableFileWrapper) {
2032
2040
  class Base : public WritableFile {
2033
2041
  public:
2034
- mutable int *step_;
2042
+ mutable int* step_;
2035
2043
 
2036
- void inc(int x) const {
2037
- EXPECT_EQ(x, (*step_)++);
2038
- }
2044
+ void inc(int x) const { EXPECT_EQ(x, (*step_)++); }
2039
2045
 
2040
- explicit Base(int* step) : step_(step) {
2041
- inc(0);
2042
- }
2046
+ explicit Base(int* step) : step_(step) { inc(0); }
2043
2047
 
2044
2048
  Status Append(const Slice& /*data*/) override {
2045
2049
  inc(1);
@@ -2372,32 +2376,31 @@ TEST_P(EnvPosixTestWithParam, PosixRandomRWFileRandomized) {
2372
2376
  }
2373
2377
 
2374
2378
  class TestEnv : public EnvWrapper {
2375
- public:
2376
- explicit TestEnv() : EnvWrapper(Env::Default()),
2377
- close_count(0) { }
2378
- const char* Name() const override { return "TestEnv"; }
2379
- class TestLogger : public Logger {
2380
- public:
2381
- using Logger::Logv;
2382
- explicit TestLogger(TestEnv* env_ptr) : Logger() { env = env_ptr; }
2383
- ~TestLogger() override {
2384
- if (!closed_) {
2385
- Status s = CloseHelper();
2386
- s.PermitUncheckedError();
2387
- }
2379
+ public:
2380
+ explicit TestEnv() : EnvWrapper(Env::Default()), close_count(0) {}
2381
+ const char* Name() const override { return "TestEnv"; }
2382
+ class TestLogger : public Logger {
2383
+ public:
2384
+ using Logger::Logv;
2385
+ explicit TestLogger(TestEnv* env_ptr) : Logger() { env = env_ptr; }
2386
+ ~TestLogger() override {
2387
+ if (!closed_) {
2388
+ Status s = CloseHelper();
2389
+ s.PermitUncheckedError();
2388
2390
  }
2389
- void Logv(const char* /*format*/, va_list /*ap*/) override {}
2391
+ }
2392
+ void Logv(const char* /*format*/, va_list /*ap*/) override {}
2390
2393
 
2391
- protected:
2392
- Status CloseImpl() override { return CloseHelper(); }
2394
+ protected:
2395
+ Status CloseImpl() override { return CloseHelper(); }
2393
2396
 
2394
- private:
2395
- Status CloseHelper() {
2396
- env->CloseCountInc();
2397
- return Status::OK();
2398
- }
2399
- TestEnv* env;
2400
- };
2397
+ private:
2398
+ Status CloseHelper() {
2399
+ env->CloseCountInc();
2400
+ return Status::OK();
2401
+ }
2402
+ TestEnv* env;
2403
+ };
2401
2404
 
2402
2405
  void CloseCountInc() { close_count++; }
2403
2406
 
@@ -2504,7 +2507,8 @@ class EnvFSTestWithParam
2504
2507
  env_ptr_ = NewCompositeEnv(fs_);
2505
2508
  }
2506
2509
  if (env_non_null && !env_default && fs_default) {
2507
- env_ptr_ = std::unique_ptr<Env>(new FaultInjectionTestEnv(Env::Default()));
2510
+ env_ptr_ =
2511
+ std::unique_ptr<Env>(new FaultInjectionTestEnv(Env::Default()));
2508
2512
  fs_.reset();
2509
2513
  }
2510
2514
  if (env_non_null && !env_default && !fs_default) {
@@ -2572,17 +2576,16 @@ TEST_P(EnvFSTestWithParam, OptionsTest) {
2572
2576
  // 1. True means Options::env is non-null, false means null
2573
2577
  // 2. True means use Env::Default, false means custom
2574
2578
  // 3. True means use FileSystem::Default, false means custom
2575
- INSTANTIATE_TEST_CASE_P(
2576
- EnvFSTest, EnvFSTestWithParam,
2577
- ::testing::Combine(::testing::Bool(), ::testing::Bool(),
2578
- ::testing::Bool()));
2579
+ INSTANTIATE_TEST_CASE_P(EnvFSTest, EnvFSTestWithParam,
2580
+ ::testing::Combine(::testing::Bool(), ::testing::Bool(),
2581
+ ::testing::Bool()));
2579
2582
  // This test ensures that default Env and those allocated by
2580
2583
  // NewCompositeEnv() all share the same threadpool
2581
2584
  TEST_F(EnvTest, MultipleCompositeEnv) {
2582
2585
  std::shared_ptr<FaultInjectionTestFS> fs1 =
2583
- std::make_shared<FaultInjectionTestFS>(FileSystem::Default());
2586
+ std::make_shared<FaultInjectionTestFS>(FileSystem::Default());
2584
2587
  std::shared_ptr<FaultInjectionTestFS> fs2 =
2585
- std::make_shared<FaultInjectionTestFS>(FileSystem::Default());
2588
+ std::make_shared<FaultInjectionTestFS>(FileSystem::Default());
2586
2589
  std::unique_ptr<Env> env1 = NewCompositeEnv(fs1);
2587
2590
  std::unique_ptr<Env> env2 = NewCompositeEnv(fs2);
2588
2591
  Env::Default()->SetBackgroundThreads(8, Env::HIGH);
@@ -136,7 +136,7 @@ IOStatus FileSystem::NewLogger(const std::string& fname,
136
136
  }
137
137
 
138
138
  FileOptions FileSystem::OptimizeForLogRead(
139
- const FileOptions& file_options) const {
139
+ const FileOptions& file_options) const {
140
140
  FileOptions optimized_file_options(file_options);
141
141
  optimized_file_options.use_direct_reads = false;
142
142
  return optimized_file_options;
@@ -150,7 +150,7 @@ FileOptions FileSystem::OptimizeForManifestRead(
150
150
  }
151
151
 
152
152
  FileOptions FileSystem::OptimizeForLogWrite(const FileOptions& file_options,
153
- const DBOptions& db_options) const {
153
+ const DBOptions& db_options) const {
154
154
  FileOptions optimized_file_options(file_options);
155
155
  optimized_file_options.bytes_per_sync = db_options.wal_bytes_per_sync;
156
156
  optimized_file_options.writable_file_max_buffer_size =
@@ -220,8 +220,7 @@ IOStatus ReadFileToString(FileSystem* fs, const std::string& fname,
220
220
  char* space = new char[kBufferSize];
221
221
  while (true) {
222
222
  Slice fragment;
223
- s = file->Read(kBufferSize, IOOptions(), &fragment, space,
224
- nullptr);
223
+ s = file->Read(kBufferSize, IOOptions(), &fragment, space, nullptr);
225
224
  if (!s.ok()) {
226
225
  break;
227
226
  }
@@ -9,8 +9,10 @@
9
9
 
10
10
  #ifdef ROCKSDB_LIB_IO_POSIX
11
11
  #include "env/io_posix.h"
12
+
12
13
  #include <errno.h>
13
14
  #include <fcntl.h>
15
+
14
16
  #include <algorithm>
15
17
  #if defined(OS_LINUX)
16
18
  #include <linux/fs.h>
@@ -601,8 +603,7 @@ IOStatus PosixRandomAccessFile::Read(uint64_t offset, size_t n,
601
603
  return s;
602
604
  }
603
605
 
604
- IOStatus PosixRandomAccessFile::MultiRead(FSReadRequest* reqs,
605
- size_t num_reqs,
606
+ IOStatus PosixRandomAccessFile::MultiRead(FSReadRequest* reqs, size_t num_reqs,
606
607
  const IOOptions& options,
607
608
  IODebugContext* dbg) {
608
609
  if (use_direct_io()) {
@@ -284,8 +284,7 @@ class PosixRandomAccessFile : public FSRandomAccessFile {
284
284
 
285
285
  public:
286
286
  PosixRandomAccessFile(const std::string& fname, int fd,
287
- size_t logical_block_size,
288
- const EnvOptions& options
287
+ size_t logical_block_size, const EnvOptions& options
289
288
  #if defined(ROCKSDB_IOURING_PRESENT)
290
289
  ,
291
290
  ThreadLocalPtr* thread_local_io_urings
@@ -135,6 +135,7 @@ class MockEnv : public CompositeEnvWrapper {
135
135
  const char* Name() const override { return kClassName(); }
136
136
 
137
137
  Status CorruptBuffer(const std::string& fname);
138
+
138
139
  private:
139
140
  MockEnv(Env* env, const std::shared_ptr<FileSystem>& fs,
140
141
  const std::shared_ptr<SystemClock>& clock);
@@ -51,14 +51,14 @@ TEST_F(MockEnvTest, Corrupt) {
51
51
  ASSERT_OK(writable_file->Append(kCorrupted));
52
52
  ASSERT_TRUE(writable_file->GetFileSize() == kGood.size() + kCorrupted.size());
53
53
  result.clear();
54
- ASSERT_OK(rand_file->Read(kGood.size(), kCorrupted.size(),
55
- &result, &(scratch[0])));
54
+ ASSERT_OK(
55
+ rand_file->Read(kGood.size(), kCorrupted.size(), &result, &(scratch[0])));
56
56
  ASSERT_EQ(result.compare(kCorrupted), 0);
57
57
  // Corrupted
58
58
  ASSERT_OK(dynamic_cast<MockEnv*>(env_)->CorruptBuffer(kFileName));
59
59
  result.clear();
60
- ASSERT_OK(rand_file->Read(kGood.size(), kCorrupted.size(),
61
- &result, &(scratch[0])));
60
+ ASSERT_OK(
61
+ rand_file->Read(kGood.size(), kCorrupted.size(), &result, &(scratch[0])));
62
62
  ASSERT_NE(result.compare(kCorrupted), 0);
63
63
  }
64
64
 
@@ -61,9 +61,10 @@ DeleteScheduler::~DeleteScheduler() {
61
61
  Status DeleteScheduler::DeleteFile(const std::string& file_path,
62
62
  const std::string& dir_to_sync,
63
63
  const bool force_bg) {
64
- if (rate_bytes_per_sec_.load() <= 0 || (!force_bg &&
65
- total_trash_size_.load() >
66
- sst_file_manager_->GetTotalSize() * max_trash_db_ratio_.load())) {
64
+ if (rate_bytes_per_sec_.load() <= 0 ||
65
+ (!force_bg &&
66
+ total_trash_size_.load() >
67
+ sst_file_manager_->GetTotalSize() * max_trash_db_ratio_.load())) {
67
68
  // Rate limiting is disabled or trash size makes up more than
68
69
  // max_trash_db_ratio_ (default 25%) of the total DB size
69
70
  TEST_SYNC_POINT("DeleteScheduler::DeleteFile");
@@ -318,8 +319,8 @@ Status DeleteScheduler::DeleteTrashFile(const std::string& path_in_trash,
318
319
  if (my_status.ok()) {
319
320
  if (num_hard_links == 1) {
320
321
  std::unique_ptr<FSWritableFile> wf;
321
- my_status = fs_->ReopenWritableFile(path_in_trash, FileOptions(),
322
- &wf, nullptr);
322
+ my_status = fs_->ReopenWritableFile(path_in_trash, FileOptions(), &wf,
323
+ nullptr);
323
324
  if (my_status.ok()) {
324
325
  my_status = wf->Truncate(file_size - bytes_max_delete_chunk_,
325
326
  IOOptions(), nullptr);
@@ -14,7 +14,6 @@
14
14
 
15
15
  #include "monitoring/instrumented_mutex.h"
16
16
  #include "port/port.h"
17
-
18
17
  #include "rocksdb/status.h"
19
18
 
20
19
  namespace ROCKSDB_NAMESPACE {
@@ -54,7 +53,7 @@ class DeleteScheduler {
54
53
  // set, it forces the file to always be deleted in the background thread,
55
54
  // except when rate limiting is disabled
56
55
  Status DeleteFile(const std::string& fname, const std::string& dir_to_sync,
57
- const bool force_bg = false);
56
+ const bool force_bg = false);
58
57
 
59
58
  // Wait for all files being deleteing in the background to finish or for
60
59
  // destructor to be called.
@@ -67,9 +66,7 @@ class DeleteScheduler {
67
66
  uint64_t GetTotalTrashSize() { return total_trash_size_.load(); }
68
67
 
69
68
  // Return trash/DB size ratio where new files will be deleted immediately
70
- double GetMaxTrashDBRatio() {
71
- return max_trash_db_ratio_.load();
72
- }
69
+ double GetMaxTrashDBRatio() { return max_trash_db_ratio_.load(); }
73
70
 
74
71
  // Update trash/DB size ratio where new files will be deleted immediately
75
72
  void SetMaxTrashDBRatio(double r) {