@nxtedition/rocksdb 7.1.30 → 7.1.32

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 (381) 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/darwin-x64/node.napi.node +0 -0
  381. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -33,11 +33,12 @@ int main() {
33
33
 
34
34
  using GFLAGS_NAMESPACE::ParseCommandLineFlags;
35
35
 
36
- DEFINE_string(file_dir, "", "Directory where the files will be created"
37
- " for benchmark. Added for using tmpfs.");
36
+ DEFINE_string(file_dir, "",
37
+ "Directory where the files will be created"
38
+ " for benchmark. Added for using tmpfs.");
38
39
  DEFINE_bool(enable_perf, false, "Run Benchmark Tests too.");
39
40
  DEFINE_bool(write, false,
40
- "Should write new values to file in performance tests?");
41
+ "Should write new values to file in performance tests?");
41
42
  DEFINE_bool(identity_as_first_hash, true, "use identity as first hash");
42
43
 
43
44
  namespace ROCKSDB_NAMESPACE {
@@ -45,10 +46,10 @@ namespace ROCKSDB_NAMESPACE {
45
46
  namespace {
46
47
  const uint32_t kNumHashFunc = 10;
47
48
  // Methods, variables related to Hash functions.
48
- std::unordered_map<std::string, std::vector<uint64_t>> hash_map;
49
+ std::unordered_map<std::string, std::vector<uint64_t> > hash_map;
49
50
 
50
51
  void AddHashLookups(const std::string& s, uint64_t bucket_id,
51
- uint32_t num_hash_fun) {
52
+ uint32_t num_hash_fun) {
52
53
  std::vector<uint64_t> v;
53
54
  for (uint32_t i = 0; i < num_hash_fun; i++) {
54
55
  v.push_back(bucket_id + i);
@@ -128,8 +129,8 @@ class CuckooReaderTest : public testing::Test {
128
129
  }
129
130
  void UpdateKeys(bool with_zero_seqno) {
130
131
  for (uint32_t i = 0; i < num_items; i++) {
131
- ParsedInternalKey ikey(user_keys[i],
132
- with_zero_seqno ? 0 : i + 1000, kTypeValue);
132
+ ParsedInternalKey ikey(user_keys[i], with_zero_seqno ? 0 : i + 1000,
133
+ kTypeValue);
133
134
  keys[i].clear();
134
135
  AppendInternalKey(&keys[i], ikey);
135
136
  }
@@ -189,11 +190,11 @@ class CuckooReaderTest : public testing::Test {
189
190
  TableReaderCaller::kUncategorized);
190
191
  ASSERT_OK(it->status());
191
192
  ASSERT_TRUE(!it->Valid());
192
- it->Seek(keys[num_items/2]);
193
+ it->Seek(keys[num_items / 2]);
193
194
  ASSERT_TRUE(it->Valid());
194
195
  ASSERT_OK(it->status());
195
- ASSERT_TRUE(keys[num_items/2] == it->key());
196
- ASSERT_TRUE(values[num_items/2] == it->value());
196
+ ASSERT_TRUE(keys[num_items / 2] == it->key());
197
+ ASSERT_TRUE(values[num_items / 2] == it->value());
197
198
  ASSERT_OK(it->status());
198
199
  it->~InternalIterator();
199
200
  }
@@ -273,7 +274,7 @@ TEST_F(CuckooReaderTest, WhenKeyExistsWithUint64Comparator) {
273
274
  }
274
275
 
275
276
  TEST_F(CuckooReaderTest, CheckIterator) {
276
- SetUp(2*kNumHashFunc);
277
+ SetUp(2 * kNumHashFunc);
277
278
  fname = test::PerThreadDBPath("CuckooReader_CheckIterator");
278
279
  for (uint64_t i = 0; i < num_items; i++) {
279
280
  user_keys[i] = "key" + NumToStr(i);
@@ -281,7 +282,7 @@ TEST_F(CuckooReaderTest, CheckIterator) {
281
282
  AppendInternalKey(&keys[i], ikey);
282
283
  values[i] = "value" + NumToStr(i);
283
284
  // Give disjoint hash values, in reverse order.
284
- AddHashLookups(user_keys[i], num_items-i-1, kNumHashFunc);
285
+ AddHashLookups(user_keys[i], num_items - i - 1, kNumHashFunc);
285
286
  }
286
287
  CreateCuckooFileAndCheckReader();
287
288
  CheckIterator();
@@ -292,7 +293,7 @@ TEST_F(CuckooReaderTest, CheckIterator) {
292
293
  }
293
294
 
294
295
  TEST_F(CuckooReaderTest, CheckIteratorUint64) {
295
- SetUp(2*kNumHashFunc);
296
+ SetUp(2 * kNumHashFunc);
296
297
  fname = test::PerThreadDBPath("CuckooReader_CheckIterator");
297
298
  for (uint64_t i = 0; i < num_items; i++) {
298
299
  user_keys[i].resize(8);
@@ -301,7 +302,7 @@ TEST_F(CuckooReaderTest, CheckIteratorUint64) {
301
302
  AppendInternalKey(&keys[i], ikey);
302
303
  values[i] = "value" + NumToStr(i);
303
304
  // Give disjoint hash values, in reverse order.
304
- AddHashLookups(user_keys[i], num_items-i-1, kNumHashFunc);
305
+ AddHashLookups(user_keys[i], num_items - i - 1, kNumHashFunc);
305
306
  }
306
307
  CreateCuckooFileAndCheckReader(test::Uint64Comparator());
307
308
  CheckIterator(test::Uint64Comparator());
@@ -366,11 +367,11 @@ TEST_F(CuckooReaderTest, WhenKeyNotFound) {
366
367
 
367
368
  // Test read when key is unused key.
368
369
  std::string unused_key =
369
- reader.GetTableProperties()->user_collected_properties.at(
370
- CuckooTablePropertyNames::kEmptyKey);
370
+ reader.GetTableProperties()->user_collected_properties.at(
371
+ CuckooTablePropertyNames::kEmptyKey);
371
372
  // Add hash values that map to empty buckets.
372
- AddHashLookups(ExtractUserKey(unused_key).ToString(),
373
- kNumHashFunc, kNumHashFunc);
373
+ AddHashLookups(ExtractUserKey(unused_key).ToString(), kNumHashFunc,
374
+ kNumHashFunc);
374
375
  value.Reset();
375
376
  GetContext get_context3(
376
377
  ucmp, nullptr, nullptr, nullptr, GetContext::kNotFound, Slice(unused_key),
@@ -407,8 +408,8 @@ std::string GetFileName(uint64_t num) {
407
408
 
408
409
  // Create last level file as we are interested in measuring performance of
409
410
  // last level file only.
410
- void WriteFile(const std::vector<std::string>& keys,
411
- const uint64_t num, double hash_ratio) {
411
+ void WriteFile(const std::vector<std::string>& keys, const uint64_t num,
412
+ double hash_ratio) {
412
413
  Options options;
413
414
  options.allow_mmap_reads = true;
414
415
  const auto& fs = options.env->GetFileSystem();
@@ -478,13 +479,16 @@ void ReadKeys(uint64_t num, uint32_t batch_size) {
478
479
  test::Uint64Comparator(), nullptr);
479
480
  ASSERT_OK(reader.status());
480
481
  const UserCollectedProperties user_props =
481
- reader.GetTableProperties()->user_collected_properties;
482
+ reader.GetTableProperties()->user_collected_properties;
482
483
  const uint32_t num_hash_fun = *reinterpret_cast<const uint32_t*>(
483
484
  user_props.at(CuckooTablePropertyNames::kNumHashFunc).data());
484
485
  const uint64_t table_size = *reinterpret_cast<const uint64_t*>(
485
486
  user_props.at(CuckooTablePropertyNames::kHashTableSize).data());
486
- fprintf(stderr, "With %" PRIu64 " items, utilization is %.2f%%, number of"
487
- " hash functions: %u.\n", num, num * 100.0 / (table_size), num_hash_fun);
487
+ fprintf(stderr,
488
+ "With %" PRIu64
489
+ " items, utilization is %.2f%%, number of"
490
+ " hash functions: %u.\n",
491
+ num, num * 100.0 / (table_size), num_hash_fun);
488
492
  ReadOptions r_options;
489
493
 
490
494
  std::vector<uint64_t> keys;
@@ -502,10 +506,10 @@ void ReadKeys(uint64_t num, uint32_t batch_size) {
502
506
  uint64_t start_time = env->NowMicros();
503
507
  if (batch_size > 0) {
504
508
  for (uint64_t i = 0; i < num; i += batch_size) {
505
- for (uint64_t j = i; j < i+batch_size && j < num; ++j) {
509
+ for (uint64_t j = i; j < i + batch_size && j < num; ++j) {
506
510
  reader.Prepare(Slice(reinterpret_cast<char*>(&keys[j]), 16));
507
511
  }
508
- for (uint64_t j = i; j < i+batch_size && j < num; ++j) {
512
+ for (uint64_t j = i; j < i + batch_size && j < num; ++j) {
509
513
  reader.Get(r_options, Slice(reinterpret_cast<char*>(&keys[j]), 16),
510
514
  &get_context, nullptr);
511
515
  }
@@ -518,8 +522,8 @@ void ReadKeys(uint64_t num, uint32_t batch_size) {
518
522
  }
519
523
  float time_per_op = (env->NowMicros() - start_time) * 1.0f / num;
520
524
  fprintf(stderr,
521
- "Time taken per op is %.3fus (%.1f Mqps) with batch size of %u\n",
522
- time_per_op, 1.0 / time_per_op, batch_size);
525
+ "Time taken per op is %.3fus (%.1f Mqps) with batch size of %u\n",
526
+ time_per_op, 1.0 / time_per_op, batch_size);
523
527
  }
524
528
  } // namespace.
525
529
 
@@ -531,10 +535,11 @@ TEST_F(CuckooReaderTest, TestReadPerformance) {
531
535
  // These numbers are chosen to have a hash utilization % close to
532
536
  // 0.9, 0.75, 0.6 and 0.5 respectively.
533
537
  // They all create 128 M buckets.
534
- std::vector<uint64_t> nums = {120*1024*1024, 100*1024*1024, 80*1024*1024,
535
- 70*1024*1024};
538
+ std::vector<uint64_t> nums = {120 * 1024 * 1024, 100 * 1024 * 1024,
539
+ 80 * 1024 * 1024, 70 * 1024 * 1024};
536
540
  #ifndef NDEBUG
537
- fprintf(stdout,
541
+ fprintf(
542
+ stdout,
538
543
  "WARNING: Not compiled with DNDEBUG. Performance tests may be slow.\n");
539
544
  #endif
540
545
  for (uint64_t num : nums) {
@@ -407,7 +407,9 @@ bool GetContext::SaveValue(const ParsedInternalKey& parsed_key,
407
407
  state_ = kDeleted;
408
408
  } else if (kMerge == state_) {
409
409
  state_ = kFound;
410
- Merge(nullptr);
410
+ if (do_merge_) {
411
+ Merge(nullptr);
412
+ }
411
413
  // If do_merge_ = false then the current value shouldn't be part of
412
414
  // merge_context_->operand_list
413
415
  }
@@ -438,16 +440,20 @@ bool GetContext::SaveValue(const ParsedInternalKey& parsed_key,
438
440
  }
439
441
 
440
442
  void GetContext::Merge(const Slice* value) {
443
+ assert(do_merge_);
444
+ assert(!pinnable_val_ || !columns_);
445
+
446
+ const Status s = MergeHelper::TimedFullMerge(
447
+ merge_operator_, user_key_, value, merge_context_->GetOperands(),
448
+ pinnable_val_ ? pinnable_val_->GetSelf() : nullptr, columns_, logger_,
449
+ statistics_, clock_);
450
+ if (!s.ok()) {
451
+ state_ = kCorrupt;
452
+ return;
453
+ }
454
+
441
455
  if (LIKELY(pinnable_val_ != nullptr)) {
442
- if (do_merge_) {
443
- Status merge_status = MergeHelper::TimedFullMerge(
444
- merge_operator_, user_key_, value, merge_context_->GetOperands(),
445
- pinnable_val_->GetSelf(), logger_, statistics_, clock_);
446
- pinnable_val_->PinSelf();
447
- if (!merge_status.ok()) {
448
- state_ = kCorrupt;
449
- }
450
- }
456
+ pinnable_val_->PinSelf();
451
457
  }
452
458
  }
453
459
 
@@ -21,6 +21,7 @@ class MaxIteratorComparator {
21
21
  bool operator()(IteratorWrapper* a, IteratorWrapper* b) const {
22
22
  return comparator_->Compare(a->key(), b->key()) < 0;
23
23
  }
24
+
24
25
  private:
25
26
  const InternalKeyComparator* comparator_;
26
27
  };
@@ -35,6 +36,7 @@ class MinIteratorComparator {
35
36
  bool operator()(IteratorWrapper* a, IteratorWrapper* b) const {
36
37
  return comparator_->Compare(a->key(), b->key()) > 0;
37
38
  }
39
+
38
40
  private:
39
41
  const InternalKeyComparator* comparator_;
40
42
  };
@@ -29,7 +29,7 @@ Status Iterator::GetProperty(std::string prop_name, std::string* prop) {
29
29
  namespace {
30
30
  class EmptyIterator : public Iterator {
31
31
  public:
32
- explicit EmptyIterator(const Status& s) : status_(s) { }
32
+ explicit EmptyIterator(const Status& s) : status_(s) {}
33
33
  bool Valid() const override { return false; }
34
34
  void Seek(const Slice& /*target*/) override {}
35
35
  void SeekForPrev(const Slice& /*target*/) override {}
@@ -145,9 +145,7 @@ class IteratorWrapperBase {
145
145
  return iter_->IsValuePinned();
146
146
  }
147
147
 
148
- bool IsValuePrepared() const {
149
- return result_.value_prepared;
150
- }
148
+ bool IsValuePrepared() const { return result_.value_prepared; }
151
149
 
152
150
  Slice user_key() const {
153
151
  assert(Valid());
@@ -197,7 +197,8 @@ class MergingIterator : public InternalIterator {
197
197
  // Add range_tombstone_iters_[level] into min heap.
198
198
  // Updates active_ if the end key of a range tombstone is inserted.
199
199
  // @param start_key specifies which end point of the range tombstone to add.
200
- void InsertRangeTombstoneToMinHeap(size_t level, bool start_key = true) {
200
+ void InsertRangeTombstoneToMinHeap(size_t level, bool start_key = true,
201
+ bool replace_top = false) {
201
202
  assert(!range_tombstone_iters_.empty() &&
202
203
  range_tombstone_iters_[level]->Valid());
203
204
  if (start_key) {
@@ -211,13 +212,18 @@ class MergingIterator : public InternalIterator {
211
212
  pinned_heap_item_[level].type = HeapItem::DELETE_RANGE_END;
212
213
  active_.insert(level);
213
214
  }
214
- minHeap_.push(&pinned_heap_item_[level]);
215
+ if (replace_top) {
216
+ minHeap_.replace_top(&pinned_heap_item_[level]);
217
+ } else {
218
+ minHeap_.push(&pinned_heap_item_[level]);
219
+ }
215
220
  }
216
221
 
217
222
  // Add range_tombstone_iters_[level] into max heap.
218
223
  // Updates active_ if the start key of a range tombstone is inserted.
219
224
  // @param end_key specifies which end point of the range tombstone to add.
220
- void InsertRangeTombstoneToMaxHeap(size_t level, bool end_key = true) {
225
+ void InsertRangeTombstoneToMaxHeap(size_t level, bool end_key = true,
226
+ bool replace_top = false) {
221
227
  assert(!range_tombstone_iters_.empty() &&
222
228
  range_tombstone_iters_[level]->Valid());
223
229
  if (end_key) {
@@ -231,7 +237,11 @@ class MergingIterator : public InternalIterator {
231
237
  pinned_heap_item_[level].type = HeapItem::DELETE_RANGE_START;
232
238
  active_.insert(level);
233
239
  }
234
- maxHeap_->push(&pinned_heap_item_[level]);
240
+ if (replace_top) {
241
+ maxHeap_->replace_top(&pinned_heap_item_[level]);
242
+ } else {
243
+ maxHeap_->push(&pinned_heap_item_[level]);
244
+ }
235
245
  }
236
246
 
237
247
  // Remove HeapItems from top of minHeap_ that are of type DELETE_RANGE_START
@@ -241,10 +251,9 @@ class MergingIterator : public InternalIterator {
241
251
  void PopDeleteRangeStart() {
242
252
  while (!minHeap_.empty() &&
243
253
  minHeap_.top()->type == HeapItem::DELETE_RANGE_START) {
244
- auto level = minHeap_.top()->level;
245
- minHeap_.pop();
246
254
  // insert end key of this range tombstone and updates active_
247
- InsertRangeTombstoneToMinHeap(level, false /* start_key */);
255
+ InsertRangeTombstoneToMinHeap(
256
+ minHeap_.top()->level, false /* start_key */, true /* replace_top */);
248
257
  }
249
258
  }
250
259
 
@@ -255,10 +264,9 @@ class MergingIterator : public InternalIterator {
255
264
  void PopDeleteRangeEnd() {
256
265
  while (!maxHeap_->empty() &&
257
266
  maxHeap_->top()->type == HeapItem::DELETE_RANGE_END) {
258
- auto level = maxHeap_->top()->level;
259
- maxHeap_->pop();
260
267
  // insert start key of this range tombstone and updates active_
261
- InsertRangeTombstoneToMaxHeap(level, false /* end_key */);
268
+ InsertRangeTombstoneToMaxHeap(maxHeap_->top()->level, false /* end_key */,
269
+ true /* replace_top */);
262
270
  }
263
271
  }
264
272
 
@@ -766,13 +774,15 @@ bool MergingIterator::SkipNextDeleted() {
766
774
  // - range deletion end key
767
775
  auto current = minHeap_.top();
768
776
  if (current->type == HeapItem::DELETE_RANGE_END) {
769
- minHeap_.pop();
770
777
  active_.erase(current->level);
771
778
  assert(range_tombstone_iters_[current->level] &&
772
779
  range_tombstone_iters_[current->level]->Valid());
773
780
  range_tombstone_iters_[current->level]->Next();
774
781
  if (range_tombstone_iters_[current->level]->Valid()) {
775
- InsertRangeTombstoneToMinHeap(current->level);
782
+ InsertRangeTombstoneToMinHeap(current->level, true /* start_key */,
783
+ true /* replace_top */);
784
+ } else {
785
+ minHeap_.pop();
776
786
  }
777
787
  return true /* current key deleted */;
778
788
  }
@@ -810,7 +820,8 @@ bool MergingIterator::SkipNextDeleted() {
810
820
  // Point key case: check active_ for range tombstone coverage.
811
821
  ParsedInternalKey pik;
812
822
  ParseInternalKey(current->iter.key(), &pik, false).PermitUncheckedError();
813
- for (auto& i : active_) {
823
+ if (!active_.empty()) {
824
+ auto i = *active_.begin();
814
825
  if (i < current->level) {
815
826
  // range tombstone is from a newer level, definitely covers
816
827
  assert(comparator_->Compare(range_tombstone_iters_[i]->start_key(),
@@ -981,13 +992,15 @@ bool MergingIterator::SkipPrevDeleted() {
981
992
  // - range deletion start key
982
993
  auto current = maxHeap_->top();
983
994
  if (current->type == HeapItem::DELETE_RANGE_START) {
984
- maxHeap_->pop();
985
995
  active_.erase(current->level);
986
996
  assert(range_tombstone_iters_[current->level] &&
987
997
  range_tombstone_iters_[current->level]->Valid());
988
998
  range_tombstone_iters_[current->level]->Prev();
989
999
  if (range_tombstone_iters_[current->level]->Valid()) {
990
- InsertRangeTombstoneToMaxHeap(current->level);
1000
+ InsertRangeTombstoneToMaxHeap(current->level, true /* end_key */,
1001
+ true /* replace_top */);
1002
+ } else {
1003
+ maxHeap_->pop();
991
1004
  }
992
1005
  return true /* current key deleted */;
993
1006
  }
@@ -1015,7 +1028,8 @@ bool MergingIterator::SkipPrevDeleted() {
1015
1028
  // Point key case: check active_ for range tombstone coverage.
1016
1029
  ParsedInternalKey pik;
1017
1030
  ParseInternalKey(current->iter.key(), &pik, false).PermitUncheckedError();
1018
- for (auto& i : active_) {
1031
+ if (!active_.empty()) {
1032
+ auto i = *active_.begin();
1019
1033
  if (i < current->level) {
1020
1034
  // range tombstone is from a newer level, definitely covers
1021
1035
  assert(comparator_->Compare(range_tombstone_iters_[i]->start_key(),
@@ -1054,6 +1068,7 @@ bool MergingIterator::SkipPrevDeleted() {
1054
1068
  return false /* current key not deleted */;
1055
1069
  }
1056
1070
  }
1071
+
1057
1072
  assert(active_.empty());
1058
1073
  assert(maxHeap_->top()->type == HeapItem::ITERATOR);
1059
1074
  return false /* current key not deleted */;
@@ -35,8 +35,7 @@ const std::string kRangeDelBlockName = "rocksdb.range_del";
35
35
  MetaIndexBuilder::MetaIndexBuilder()
36
36
  : meta_index_block_(new BlockBuilder(1 /* restart interval */)) {}
37
37
 
38
- void MetaIndexBuilder::Add(const std::string& key,
39
- const BlockHandle& handle) {
38
+ void MetaIndexBuilder::Add(const std::string& key, const BlockHandle& handle) {
40
39
  std::string handle_encoding;
41
40
  handle.EncodeTo(&handle_encoding);
42
41
  meta_block_handles_.insert({key, handle_encoding});
@@ -173,8 +172,8 @@ void LogPropertiesCollectionError(Logger* info_log, const std::string& method,
173
172
  assert(method == "Add" || method == "Finish");
174
173
 
175
174
  std::string msg =
176
- "Encountered error when calling TablePropertiesCollector::" +
177
- method + "() with collector name: " + name;
175
+ "Encountered error when calling TablePropertiesCollector::" + method +
176
+ "() with collector name: " + name;
178
177
  ROCKS_LOG_ERROR(info_log, "%s", msg.c_str());
179
178
  }
180
179
 
@@ -346,8 +345,9 @@ Status ReadTablePropertiesHelper(
346
345
  if (!GetVarint64(&raw_val, &val)) {
347
346
  // skip malformed value
348
347
  auto error_msg =
349
- "Detect malformed value in properties meta-block:"
350
- "\tkey: " + key + "\tval: " + raw_val.ToString();
348
+ "Detect malformed value in properties meta-block:"
349
+ "\tkey: " +
350
+ key + "\tval: " + raw_val.ToString();
351
351
  ROCKS_LOG_ERROR(ioptions.logger, "%s", error_msg.c_str());
352
352
  continue;
353
353
  }
@@ -123,8 +123,7 @@ class MultiGetContext {
123
123
  assert(num_keys <= MAX_BATCH_SIZE);
124
124
  if (num_keys > MAX_LOOKUP_KEYS_ON_STACK) {
125
125
  lookup_key_heap_buf.reset(new char[sizeof(LookupKey) * num_keys]);
126
- lookup_key_ptr_ = reinterpret_cast<LookupKey*>(
127
- lookup_key_heap_buf.get());
126
+ lookup_key_ptr_ = reinterpret_cast<LookupKey*>(lookup_key_heap_buf.get());
128
127
  }
129
128
 
130
129
  for (size_t iter = 0; iter != num_keys_; ++iter) {
@@ -157,8 +156,9 @@ class MultiGetContext {
157
156
 
158
157
  private:
159
158
  static const int MAX_LOOKUP_KEYS_ON_STACK = 16;
160
- alignas(alignof(LookupKey))
161
- char lookup_key_stack_buf[sizeof(LookupKey) * MAX_LOOKUP_KEYS_ON_STACK];
159
+ alignas(
160
+ alignof(LookupKey)) char lookup_key_stack_buf[sizeof(LookupKey) *
161
+ MAX_LOOKUP_KEYS_ON_STACK];
162
162
  std::array<KeyContext*, MAX_BATCH_SIZE> sorted_keys_;
163
163
  size_t num_keys_;
164
164
  Mask value_mask_;
@@ -250,8 +250,7 @@ class MultiGetContext {
250
250
  size_t index_;
251
251
  };
252
252
 
253
- Range(const Range& mget_range,
254
- const Iterator& first,
253
+ Range(const Range& mget_range, const Iterator& first,
255
254
  const Iterator& last) {
256
255
  ctx_ = mget_range.ctx_;
257
256
  if (first == last) {
@@ -4,6 +4,7 @@
4
4
  // (found in the LICENSE.Apache file in the root directory).
5
5
 
6
6
  #include "table/persistent_cache_helper.h"
7
+
7
8
  #include "table/block_based/block_based_table_reader.h"
8
9
  #include "table/format.h"
9
10
 
@@ -7,9 +7,9 @@
7
7
 
8
8
  #include <algorithm>
9
9
  #include <string>
10
- #include "util/dynamic_bloom.h"
11
10
 
12
11
  #include "memory/allocator.h"
12
+ #include "util/dynamic_bloom.h"
13
13
 
14
14
  namespace ROCKSDB_NAMESPACE {
15
15
 
@@ -82,8 +82,9 @@ PlainTableBuilder::PlainTableBuilder(
82
82
  index_builder_.reset(new PlainTableIndexBuilder(
83
83
  &arena_, ioptions, moptions.prefix_extractor.get(), index_sparseness,
84
84
  hash_table_ratio, huge_page_tlb_size_));
85
- properties_.user_collected_properties
86
- [PlainTablePropertyNames::kBloomVersion] = "1"; // For future use
85
+ properties_
86
+ .user_collected_properties[PlainTablePropertyNames::kBloomVersion] =
87
+ "1"; // For future use
87
88
  }
88
89
 
89
90
  properties_.fixed_key_len = user_key_len;
@@ -112,8 +113,8 @@ PlainTableBuilder::PlainTableBuilder(
112
113
 
113
114
  std::string val;
114
115
  PutFixed32(&val, static_cast<uint32_t>(encoder_.GetEncodingType()));
115
- properties_.user_collected_properties
116
- [PlainTablePropertyNames::kEncodingType] = val;
116
+ properties_
117
+ .user_collected_properties[PlainTablePropertyNames::kEncodingType] = val;
117
118
 
118
119
  assert(int_tbl_prop_collector_factories);
119
120
  for (auto& factory : *int_tbl_prop_collector_factories) {
@@ -303,17 +304,13 @@ Status PlainTableBuilder::Finish() {
303
304
  return status_;
304
305
  }
305
306
 
306
- void PlainTableBuilder::Abandon() {
307
- closed_ = true;
308
- }
307
+ void PlainTableBuilder::Abandon() { closed_ = true; }
309
308
 
310
309
  uint64_t PlainTableBuilder::NumEntries() const {
311
310
  return properties_.num_entries;
312
311
  }
313
312
 
314
- uint64_t PlainTableBuilder::FileSize() const {
315
- return offset_;
316
- }
313
+ uint64_t PlainTableBuilder::FileSize() const { return offset_; }
317
314
 
318
315
  std::string PlainTableBuilder::GetFileChecksum() const {
319
316
  if (file_ != nullptr) {
@@ -7,8 +7,10 @@
7
7
 
8
8
  #ifndef ROCKSDB_LITE
9
9
  #include <stdint.h>
10
+
10
11
  #include <string>
11
12
  #include <vector>
13
+
12
14
  #include "db/version_edit.h"
13
15
  #include "rocksdb/options.h"
14
16
  #include "rocksdb/status.h"
@@ -29,7 +31,7 @@ class TableBuilder;
29
31
  // The builder class of PlainTable. For description of PlainTable format
30
32
  // See comments of class PlainTableFactory, where instances of
31
33
  // PlainTableReader are created.
32
- class PlainTableBuilder: public TableBuilder {
34
+ class PlainTableBuilder : public TableBuilder {
33
35
  public:
34
36
  // Create a builder that will store the contents of the table it is
35
37
  // building in *file. Does not close the file. It is up to the
@@ -6,9 +6,10 @@
6
6
  #pragma once
7
7
 
8
8
  #ifndef ROCKSDB_LITE
9
+ #include <stdint.h>
10
+
9
11
  #include <memory>
10
12
  #include <string>
11
- #include <stdint.h>
12
13
 
13
14
  #include "rocksdb/table.h"
14
15
 
@@ -177,6 +178,5 @@ class PlainTableFactory : public TableFactory {
177
178
  PlainTableOptions table_options_;
178
179
  };
179
180
 
180
-
181
181
  } // namespace ROCKSDB_NAMESPACE
182
182
  #endif // ROCKSDB_LITE
@@ -19,7 +19,7 @@ inline uint32_t GetBucketIdFromHash(uint32_t hash, uint32_t num_buckets) {
19
19
  assert(num_buckets > 0);
20
20
  return hash % num_buckets;
21
21
  }
22
- }
22
+ } // namespace
23
23
 
24
24
  Status PlainTableIndex::InitFromRawData(Slice data) {
25
25
  if (!GetVarint32(&data, &index_size_)) {
@@ -114,7 +114,7 @@ void PlainTableIndexBuilder::AllocateIndex() {
114
114
  } else {
115
115
  double hash_table_size_multipier = 1.0 / hash_table_ratio_;
116
116
  index_size_ =
117
- static_cast<uint32_t>(num_prefixes_ * hash_table_size_multipier) + 1;
117
+ static_cast<uint32_t>(num_prefixes_ * hash_table_size_multipier) + 1;
118
118
  assert(index_size_ > 0);
119
119
  }
120
120
  }
@@ -180,7 +180,8 @@ Slice PlainTableIndexBuilder::FillIndexes(
180
180
  break;
181
181
  default:
182
182
  // point to second level indexes.
183
- PutUnaligned(index + i, sub_index_offset | PlainTableIndex::kSubIndexMask);
183
+ PutUnaligned(index + i,
184
+ sub_index_offset | PlainTableIndex::kSubIndexMask);
184
185
  char* prev_ptr = &sub_index[sub_index_offset];
185
186
  char* cur_ptr = EncodeVarint32(prev_ptr, num_keys_for_bucket);
186
187
  sub_index_offset += static_cast<uint32_t>(cur_ptr - prev_ptr);
@@ -188,8 +188,8 @@ class PlainTableIndexBuilder {
188
188
  num_records_in_current_group_;
189
189
  }
190
190
  IndexRecord* At(size_t index) {
191
- return &(groups_[index / kNumRecordsPerGroup]
192
- [index % kNumRecordsPerGroup]);
191
+ return &(
192
+ groups_[index / kNumRecordsPerGroup][index % kNumRecordsPerGroup]);
193
193
  }
194
194
 
195
195
  private:
@@ -8,6 +8,7 @@
8
8
 
9
9
  #include <algorithm>
10
10
  #include <string>
11
+
11
12
  #include "db/dbformat.h"
12
13
  #include "file/writable_file_writer.h"
13
14
  #include "table/plain/plain_table_factory.h"