@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
@@ -9,7 +9,6 @@
9
9
  #pragma once
10
10
 
11
11
  #include "table/block_based/block_based_table_reader.h"
12
-
13
12
  #include "table/block_based/reader_common.h"
14
13
 
15
14
  namespace ROCKSDB_NAMESPACE {
@@ -86,7 +86,8 @@ class PartitionedFilterBlockTest
86
86
  int num_keys = sizeof(keys) / sizeof(*keys);
87
87
  uint64_t max_key_size = 0;
88
88
  for (int i = 1; i < num_keys; i++) {
89
- max_key_size = std::max(max_key_size, static_cast<uint64_t>(keys[i].size()));
89
+ max_key_size =
90
+ std::max(max_key_size, static_cast<uint64_t>(keys[i].size()));
90
91
  }
91
92
  uint64_t max_index_size = num_keys * (max_key_size + 8 /*handle*/);
92
93
  return max_index_size;
@@ -116,11 +117,11 @@ class PartitionedFilterBlockTest
116
117
  PartitionedIndexBuilder* const p_index_builder,
117
118
  const SliceTransform* prefix_extractor = nullptr) {
118
119
  assert(table_options_.block_size_deviation <= 100);
119
- auto partition_size = static_cast<uint32_t>(
120
- ((table_options_.metadata_block_size *
121
- (100 - table_options_.block_size_deviation)) +
122
- 99) /
123
- 100);
120
+ auto partition_size =
121
+ static_cast<uint32_t>(((table_options_.metadata_block_size *
122
+ (100 - table_options_.block_size_deviation)) +
123
+ 99) /
124
+ 100);
124
125
  partition_size = std::max(partition_size, static_cast<uint32_t>(1));
125
126
  const bool kValueDeltaEncoded = true;
126
127
  return new PartitionedFilterBlockBuilder(
@@ -8,7 +8,6 @@
8
8
  // found in the LICENSE file. See the AUTHORS file for names of contributors.
9
9
  #pragma once
10
10
  #include "table/block_based/block_based_table_reader.h"
11
-
12
11
  #include "table/block_based/block_based_table_reader_impl.h"
13
12
  #include "table/block_based/block_prefetcher.h"
14
13
  #include "table/block_based/reader_common.h"
@@ -7,6 +7,7 @@
7
7
  #pragma once
8
8
 
9
9
  #include <cassert>
10
+
10
11
  #include "table/block_based/cachable_entry.h"
11
12
  #include "table/format.h"
12
13
 
@@ -147,12 +147,11 @@ inline void BlockFetcher::PrepareBufferForBlockFromFile() {
147
147
  // file reader that does not implement mmap reads properly.
148
148
  used_buf_ = &stack_buf_[0];
149
149
  } else if (maybe_compressed_ && !do_uncompress_) {
150
- compressed_buf_ = AllocateBlock(block_size_with_trailer_,
151
- memory_allocator_compressed_);
150
+ compressed_buf_ =
151
+ AllocateBlock(block_size_with_trailer_, memory_allocator_compressed_);
152
152
  used_buf_ = compressed_buf_.get();
153
153
  } else {
154
- heap_buf_ =
155
- AllocateBlock(block_size_with_trailer_, memory_allocator_);
154
+ heap_buf_ = AllocateBlock(block_size_with_trailer_, memory_allocator_);
156
155
  used_buf_ = heap_buf_.get();
157
156
  }
158
157
  }
@@ -187,8 +186,8 @@ inline void BlockFetcher::CopyBufferToHeapBuf() {
187
186
 
188
187
  inline void BlockFetcher::CopyBufferToCompressedBuf() {
189
188
  assert(used_buf_ != compressed_buf_.get());
190
- compressed_buf_ = AllocateBlock(block_size_with_trailer_,
191
- memory_allocator_compressed_);
189
+ compressed_buf_ =
190
+ AllocateBlock(block_size_with_trailer_, memory_allocator_compressed_);
192
191
  memcpy(compressed_buf_.get(), used_buf_, block_size_with_trailer_);
193
192
  #ifndef NDEBUG
194
193
  num_compressed_buf_memcpy_++;
@@ -19,8 +19,8 @@ namespace ROCKSDB_NAMESPACE {
19
19
  // Retrieves a single block of a given file. Utilizes the prefetch buffer and/or
20
20
  // persistent cache provided (if any) to try to avoid reading from the file
21
21
  // directly. Note that both the prefetch buffer and the persistent cache are
22
- // optional; also, note that the persistent cache may be configured to store either
23
- // compressed or uncompressed blocks.
22
+ // optional; also, note that the persistent cache may be configured to store
23
+ // either compressed or uncompressed blocks.
24
24
  //
25
25
  // If the retrieved block is compressed and the do_uncompress flag is set,
26
26
  // BlockFetcher uncompresses the block (using the uncompression dictionary,
@@ -7,6 +7,7 @@
7
7
  #include "table/cuckoo/cuckoo_table_builder.h"
8
8
 
9
9
  #include <assert.h>
10
+
10
11
  #include <algorithm>
11
12
  #include <limits>
12
13
  #include <string>
@@ -26,23 +27,23 @@
26
27
 
27
28
  namespace ROCKSDB_NAMESPACE {
28
29
  const std::string CuckooTablePropertyNames::kEmptyKey =
29
- "rocksdb.cuckoo.bucket.empty.key";
30
+ "rocksdb.cuckoo.bucket.empty.key";
30
31
  const std::string CuckooTablePropertyNames::kNumHashFunc =
31
- "rocksdb.cuckoo.hash.num";
32
+ "rocksdb.cuckoo.hash.num";
32
33
  const std::string CuckooTablePropertyNames::kHashTableSize =
33
- "rocksdb.cuckoo.hash.size";
34
+ "rocksdb.cuckoo.hash.size";
34
35
  const std::string CuckooTablePropertyNames::kValueLength =
35
- "rocksdb.cuckoo.value.length";
36
+ "rocksdb.cuckoo.value.length";
36
37
  const std::string CuckooTablePropertyNames::kIsLastLevel =
37
- "rocksdb.cuckoo.file.islastlevel";
38
+ "rocksdb.cuckoo.file.islastlevel";
38
39
  const std::string CuckooTablePropertyNames::kCuckooBlockSize =
39
- "rocksdb.cuckoo.hash.cuckooblocksize";
40
+ "rocksdb.cuckoo.hash.cuckooblocksize";
40
41
  const std::string CuckooTablePropertyNames::kIdentityAsFirstHash =
41
- "rocksdb.cuckoo.hash.identityfirst";
42
+ "rocksdb.cuckoo.hash.identityfirst";
42
43
  const std::string CuckooTablePropertyNames::kUseModuleHash =
43
- "rocksdb.cuckoo.hash.usemodule";
44
+ "rocksdb.cuckoo.hash.usemodule";
44
45
  const std::string CuckooTablePropertyNames::kUserKeyLength =
45
- "rocksdb.cuckoo.hash.userkeylength";
46
+ "rocksdb.cuckoo.hash.userkeylength";
46
47
 
47
48
  // Obtained by running echo rocksdb.table.cuckoo | sha1sum
48
49
  extern const uint64_t kCuckooTableMagicNumber = 0x926789d0c5f17873ull;
@@ -174,9 +175,12 @@ bool CuckooTableBuilder::IsDeletedKey(uint64_t idx) const {
174
175
  Slice CuckooTableBuilder::GetKey(uint64_t idx) const {
175
176
  assert(closed_);
176
177
  if (IsDeletedKey(idx)) {
177
- return Slice(&deleted_keys_[static_cast<size_t>((idx - num_values_) * key_size_)], static_cast<size_t>(key_size_));
178
+ return Slice(
179
+ &deleted_keys_[static_cast<size_t>((idx - num_values_) * key_size_)],
180
+ static_cast<size_t>(key_size_));
178
181
  }
179
- return Slice(&kvs_[static_cast<size_t>(idx * (key_size_ + value_size_))], static_cast<size_t>(key_size_));
182
+ return Slice(&kvs_[static_cast<size_t>(idx * (key_size_ + value_size_))],
183
+ static_cast<size_t>(key_size_));
180
184
  }
181
185
 
182
186
  Slice CuckooTableBuilder::GetUserKey(uint64_t idx) const {
@@ -190,11 +194,14 @@ Slice CuckooTableBuilder::GetValue(uint64_t idx) const {
190
194
  static std::string empty_value(static_cast<unsigned int>(value_size_), 'a');
191
195
  return Slice(empty_value);
192
196
  }
193
- return Slice(&kvs_[static_cast<size_t>(idx * (key_size_ + value_size_) + key_size_)], static_cast<size_t>(value_size_));
197
+ return Slice(
198
+ &kvs_[static_cast<size_t>(idx * (key_size_ + value_size_) + key_size_)],
199
+ static_cast<size_t>(value_size_));
194
200
  }
195
201
 
196
202
  Status CuckooTableBuilder::MakeHashTable(std::vector<CuckooBucket>* buckets) {
197
- buckets->resize(static_cast<size_t>(hash_table_size_ + cuckoo_block_size_ - 1));
203
+ buckets->resize(
204
+ static_cast<size_t>(hash_table_size_ + cuckoo_block_size_ - 1));
198
205
  uint32_t make_space_for_key_call_id = 0;
199
206
  for (uint32_t vector_idx = 0; vector_idx < num_entries_; vector_idx++) {
200
207
  uint64_t bucket_id = 0;
@@ -202,29 +209,33 @@ Status CuckooTableBuilder::MakeHashTable(std::vector<CuckooBucket>* buckets) {
202
209
  autovector<uint64_t> hash_vals;
203
210
  Slice user_key = GetUserKey(vector_idx);
204
211
  for (uint32_t hash_cnt = 0; hash_cnt < num_hash_func_ && !bucket_found;
205
- ++hash_cnt) {
206
- uint64_t hash_val = CuckooHash(user_key, hash_cnt, use_module_hash_,
207
- hash_table_size_, identity_as_first_hash_, get_slice_hash_);
212
+ ++hash_cnt) {
213
+ uint64_t hash_val =
214
+ CuckooHash(user_key, hash_cnt, use_module_hash_, hash_table_size_,
215
+ identity_as_first_hash_, get_slice_hash_);
208
216
  // If there is a collision, check next cuckoo_block_size_ locations for
209
217
  // empty locations. While checking, if we reach end of the hash table,
210
218
  // stop searching and proceed for next hash function.
211
219
  for (uint32_t block_idx = 0; block_idx < cuckoo_block_size_;
212
- ++block_idx, ++hash_val) {
213
- if ((*buckets)[static_cast<size_t>(hash_val)].vector_idx == kMaxVectorIdx) {
220
+ ++block_idx, ++hash_val) {
221
+ if ((*buckets)[static_cast<size_t>(hash_val)].vector_idx ==
222
+ kMaxVectorIdx) {
214
223
  bucket_id = hash_val;
215
224
  bucket_found = true;
216
225
  break;
217
226
  } else {
218
- if (ucomp_->Compare(user_key,
219
- GetUserKey((*buckets)[static_cast<size_t>(hash_val)].vector_idx)) == 0) {
227
+ if (ucomp_->Compare(
228
+ user_key, GetUserKey((*buckets)[static_cast<size_t>(hash_val)]
229
+ .vector_idx)) == 0) {
220
230
  return Status::NotSupported("Same key is being inserted again.");
221
231
  }
222
232
  hash_vals.push_back(hash_val);
223
233
  }
224
234
  }
225
235
  }
226
- while (!bucket_found && !MakeSpaceForKey(hash_vals,
227
- ++make_space_for_key_call_id, buckets, &bucket_id)) {
236
+ while (!bucket_found &&
237
+ !MakeSpaceForKey(hash_vals, ++make_space_for_key_call_id, buckets,
238
+ &bucket_id)) {
228
239
  // Rehash by increashing number of hash tables.
229
240
  if (num_hash_func_ >= max_num_hash_func_) {
230
241
  return Status::NotSupported("Too many collisions. Unable to hash.");
@@ -232,11 +243,13 @@ Status CuckooTableBuilder::MakeHashTable(std::vector<CuckooBucket>* buckets) {
232
243
  // We don't really need to rehash the entire table because old hashes are
233
244
  // still valid and we only increased the number of hash functions.
234
245
  uint64_t hash_val = CuckooHash(user_key, num_hash_func_, use_module_hash_,
235
- hash_table_size_, identity_as_first_hash_, get_slice_hash_);
246
+ hash_table_size_, identity_as_first_hash_,
247
+ get_slice_hash_);
236
248
  ++num_hash_func_;
237
249
  for (uint32_t block_idx = 0; block_idx < cuckoo_block_size_;
238
- ++block_idx, ++hash_val) {
239
- if ((*buckets)[static_cast<size_t>(hash_val)].vector_idx == kMaxVectorIdx) {
250
+ ++block_idx, ++hash_val) {
251
+ if ((*buckets)[static_cast<size_t>(hash_val)].vector_idx ==
252
+ kMaxVectorIdx) {
240
253
  bucket_found = true;
241
254
  bucket_id = hash_val;
242
255
  break;
@@ -259,7 +272,7 @@ Status CuckooTableBuilder::Finish() {
259
272
  // Calculate the real hash size if module hash is enabled.
260
273
  if (use_module_hash_) {
261
274
  hash_table_size_ =
262
- static_cast<uint64_t>(num_entries_ / max_hash_table_ratio_);
275
+ static_cast<uint64_t>(num_entries_ / max_hash_table_ratio_);
263
276
  }
264
277
  status_ = MakeHashTable(&buckets);
265
278
  if (!status_.ok()) {
@@ -300,9 +313,8 @@ Status CuckooTableBuilder::Finish() {
300
313
  properties_.num_entries = num_entries_;
301
314
  properties_.num_deletions = num_entries_ - num_values_;
302
315
  properties_.fixed_key_len = key_size_;
303
- properties_.user_collected_properties[
304
- CuckooTablePropertyNames::kValueLength].assign(
305
- reinterpret_cast<const char*>(&value_size_), sizeof(value_size_));
316
+ properties_.user_collected_properties[CuckooTablePropertyNames::kValueLength]
317
+ .assign(reinterpret_cast<const char*>(&value_size_), sizeof(value_size_));
306
318
 
307
319
  uint64_t bucket_size = key_size_ + value_size_;
308
320
  unused_bucket.resize(static_cast<size_t>(bucket_size), 'a');
@@ -332,37 +344,35 @@ Status CuckooTableBuilder::Finish() {
332
344
  uint64_t offset = buckets.size() * bucket_size;
333
345
  properties_.data_size = offset;
334
346
  unused_bucket.resize(static_cast<size_t>(properties_.fixed_key_len));
335
- properties_.user_collected_properties[
336
- CuckooTablePropertyNames::kEmptyKey] = unused_bucket;
337
- properties_.user_collected_properties[
338
- CuckooTablePropertyNames::kNumHashFunc].assign(
339
- reinterpret_cast<char*>(&num_hash_func_), sizeof(num_hash_func_));
340
-
341
- properties_.user_collected_properties[
342
- CuckooTablePropertyNames::kHashTableSize].assign(
343
- reinterpret_cast<const char*>(&hash_table_size_),
344
- sizeof(hash_table_size_));
345
- properties_.user_collected_properties[
346
- CuckooTablePropertyNames::kIsLastLevel].assign(
347
- reinterpret_cast<const char*>(&is_last_level_file_),
348
- sizeof(is_last_level_file_));
349
- properties_.user_collected_properties[
350
- CuckooTablePropertyNames::kCuckooBlockSize].assign(
351
- reinterpret_cast<const char*>(&cuckoo_block_size_),
352
- sizeof(cuckoo_block_size_));
353
- properties_.user_collected_properties[
354
- CuckooTablePropertyNames::kIdentityAsFirstHash].assign(
355
- reinterpret_cast<const char*>(&identity_as_first_hash_),
356
- sizeof(identity_as_first_hash_));
357
- properties_.user_collected_properties[
358
- CuckooTablePropertyNames::kUseModuleHash].assign(
359
- reinterpret_cast<const char*>(&use_module_hash_),
360
- sizeof(use_module_hash_));
347
+ properties_.user_collected_properties[CuckooTablePropertyNames::kEmptyKey] =
348
+ unused_bucket;
349
+ properties_.user_collected_properties[CuckooTablePropertyNames::kNumHashFunc]
350
+ .assign(reinterpret_cast<char*>(&num_hash_func_), sizeof(num_hash_func_));
351
+
352
+ properties_
353
+ .user_collected_properties[CuckooTablePropertyNames::kHashTableSize]
354
+ .assign(reinterpret_cast<const char*>(&hash_table_size_),
355
+ sizeof(hash_table_size_));
356
+ properties_.user_collected_properties[CuckooTablePropertyNames::kIsLastLevel]
357
+ .assign(reinterpret_cast<const char*>(&is_last_level_file_),
358
+ sizeof(is_last_level_file_));
359
+ properties_
360
+ .user_collected_properties[CuckooTablePropertyNames::kCuckooBlockSize]
361
+ .assign(reinterpret_cast<const char*>(&cuckoo_block_size_),
362
+ sizeof(cuckoo_block_size_));
363
+ properties_
364
+ .user_collected_properties[CuckooTablePropertyNames::kIdentityAsFirstHash]
365
+ .assign(reinterpret_cast<const char*>(&identity_as_first_hash_),
366
+ sizeof(identity_as_first_hash_));
367
+ properties_
368
+ .user_collected_properties[CuckooTablePropertyNames::kUseModuleHash]
369
+ .assign(reinterpret_cast<const char*>(&use_module_hash_),
370
+ sizeof(use_module_hash_));
361
371
  uint32_t user_key_len = static_cast<uint32_t>(smallest_user_key_.size());
362
- properties_.user_collected_properties[
363
- CuckooTablePropertyNames::kUserKeyLength].assign(
364
- reinterpret_cast<const char*>(&user_key_len),
365
- sizeof(user_key_len));
372
+ properties_
373
+ .user_collected_properties[CuckooTablePropertyNames::kUserKeyLength]
374
+ .assign(reinterpret_cast<const char*>(&user_key_len),
375
+ sizeof(user_key_len));
366
376
 
367
377
  // Write meta blocks.
368
378
  MetaIndexBuilder meta_index_builder;
@@ -406,9 +416,7 @@ void CuckooTableBuilder::Abandon() {
406
416
  closed_ = true;
407
417
  }
408
418
 
409
- uint64_t CuckooTableBuilder::NumEntries() const {
410
- return num_entries_;
411
- }
419
+ uint64_t CuckooTableBuilder::NumEntries() const { return num_entries_; }
412
420
 
413
421
  uint64_t CuckooTableBuilder::FileSize() const {
414
422
  if (closed_) {
@@ -418,8 +426,8 @@ uint64_t CuckooTableBuilder::FileSize() const {
418
426
  }
419
427
 
420
428
  if (use_module_hash_) {
421
- return static_cast<uint64_t>((key_size_ + value_size_) *
422
- num_entries_ / max_hash_table_ratio_);
429
+ return static_cast<uint64_t>((key_size_ + value_size_) * num_entries_ /
430
+ max_hash_table_ratio_);
423
431
  } else {
424
432
  // Account for buckets being a power of two.
425
433
  // As elements are added, file size remains constant for a while and
@@ -468,7 +476,8 @@ bool CuckooTableBuilder::MakeSpaceForKey(
468
476
  // no. of times this will be called is <= max_num_hash_func_ + num_entries_.
469
477
  for (uint32_t hash_cnt = 0; hash_cnt < num_hash_func_; ++hash_cnt) {
470
478
  uint64_t bid = hash_vals[hash_cnt];
471
- (*buckets)[static_cast<size_t>(bid)].make_space_for_key_call_id = make_space_for_key_call_id;
479
+ (*buckets)[static_cast<size_t>(bid)].make_space_for_key_call_id =
480
+ make_space_for_key_call_id;
472
481
  tree.push_back(CuckooNode(bid, 0, 0));
473
482
  }
474
483
  bool null_found = false;
@@ -479,24 +488,25 @@ bool CuckooTableBuilder::MakeSpaceForKey(
479
488
  if (curr_depth >= max_search_depth_) {
480
489
  break;
481
490
  }
482
- CuckooBucket& curr_bucket = (*buckets)[static_cast<size_t>(curr_node.bucket_id)];
483
- for (uint32_t hash_cnt = 0;
484
- hash_cnt < num_hash_func_ && !null_found; ++hash_cnt) {
485
- uint64_t child_bucket_id = CuckooHash(GetUserKey(curr_bucket.vector_idx),
486
- hash_cnt, use_module_hash_, hash_table_size_, identity_as_first_hash_,
487
- get_slice_hash_);
491
+ CuckooBucket& curr_bucket =
492
+ (*buckets)[static_cast<size_t>(curr_node.bucket_id)];
493
+ for (uint32_t hash_cnt = 0; hash_cnt < num_hash_func_ && !null_found;
494
+ ++hash_cnt) {
495
+ uint64_t child_bucket_id = CuckooHash(
496
+ GetUserKey(curr_bucket.vector_idx), hash_cnt, use_module_hash_,
497
+ hash_table_size_, identity_as_first_hash_, get_slice_hash_);
488
498
  // Iterate inside Cuckoo Block.
489
499
  for (uint32_t block_idx = 0; block_idx < cuckoo_block_size_;
490
- ++block_idx, ++child_bucket_id) {
491
- if ((*buckets)[static_cast<size_t>(child_bucket_id)].make_space_for_key_call_id ==
492
- make_space_for_key_call_id) {
500
+ ++block_idx, ++child_bucket_id) {
501
+ if ((*buckets)[static_cast<size_t>(child_bucket_id)]
502
+ .make_space_for_key_call_id == make_space_for_key_call_id) {
493
503
  continue;
494
504
  }
495
- (*buckets)[static_cast<size_t>(child_bucket_id)].make_space_for_key_call_id =
496
- make_space_for_key_call_id;
497
- tree.push_back(CuckooNode(child_bucket_id, curr_depth + 1,
498
- curr_pos));
499
- if ((*buckets)[static_cast<size_t>(child_bucket_id)].vector_idx == kMaxVectorIdx) {
505
+ (*buckets)[static_cast<size_t>(child_bucket_id)]
506
+ .make_space_for_key_call_id = make_space_for_key_call_id;
507
+ tree.push_back(CuckooNode(child_bucket_id, curr_depth + 1, curr_pos));
508
+ if ((*buckets)[static_cast<size_t>(child_bucket_id)].vector_idx ==
509
+ kMaxVectorIdx) {
500
510
  null_found = true;
501
511
  break;
502
512
  }
@@ -515,7 +525,7 @@ bool CuckooTableBuilder::MakeSpaceForKey(
515
525
  while (bucket_to_replace_pos >= num_hash_func_) {
516
526
  CuckooNode& curr_node = tree[bucket_to_replace_pos];
517
527
  (*buckets)[static_cast<size_t>(curr_node.bucket_id)] =
518
- (*buckets)[static_cast<size_t>(tree[curr_node.parent_pos].bucket_id)];
528
+ (*buckets)[static_cast<size_t>(tree[curr_node.parent_pos].bucket_id)];
519
529
  bucket_to_replace_pos = curr_node.parent_pos;
520
530
  }
521
531
  *bucket_id = tree[bucket_to_replace_pos].bucket_id;
@@ -6,10 +6,12 @@
6
6
  #pragma once
7
7
  #ifndef ROCKSDB_LITE
8
8
  #include <stdint.h>
9
+
9
10
  #include <limits>
10
11
  #include <string>
11
12
  #include <utility>
12
13
  #include <vector>
14
+
13
15
  #include "db/version_edit.h"
14
16
  #include "port/port.h"
15
17
  #include "rocksdb/status.h"
@@ -20,7 +22,7 @@
20
22
 
21
23
  namespace ROCKSDB_NAMESPACE {
22
24
 
23
- class CuckooTableBuilder: public TableBuilder {
25
+ class CuckooTableBuilder : public TableBuilder {
24
26
  public:
25
27
  CuckooTableBuilder(
26
28
  WritableFileWriter* file, double max_hash_table_ratio,
@@ -78,8 +80,7 @@ class CuckooTableBuilder: public TableBuilder {
78
80
 
79
81
  private:
80
82
  struct CuckooBucket {
81
- CuckooBucket()
82
- : vector_idx(kMaxVectorIdx), make_space_for_key_call_id(0) {}
83
+ CuckooBucket() : vector_idx(kMaxVectorIdx), make_space_for_key_call_id(0) {}
83
84
  uint32_t vector_idx;
84
85
  // This number will not exceed kvs_.size() + max_num_hash_func_.
85
86
  // We assume number of items is <= 2^32.
@@ -125,7 +126,7 @@ class CuckooTableBuilder: public TableBuilder {
125
126
  bool use_module_hash_;
126
127
  bool identity_as_first_hash_;
127
128
  uint64_t (*get_slice_hash_)(const Slice& s, uint32_t index,
128
- uint64_t max_num_buckets);
129
+ uint64_t max_num_buckets);
129
130
  std::string largest_user_key_ = "";
130
131
  std::string smallest_user_key_ = "";
131
132