@nxtedition/rocksdb 8.2.0-alpha.2 → 8.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/binding.cc +9 -94
  2. package/binding.gyp +0 -3
  3. package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
  4. package/deps/rocksdb/rocksdb/Makefile +10 -5
  5. package/deps/rocksdb/rocksdb/TARGETS +8 -345
  6. package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
  7. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
  8. package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
  9. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
  10. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
  11. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
  12. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
  13. package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
  14. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
  15. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
  16. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
  17. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
  18. package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
  24. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
  25. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
  26. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
  27. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
  28. package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
  29. package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
  30. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
  31. package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
  32. package/deps/rocksdb/rocksdb/db/builder.h +2 -2
  33. package/deps/rocksdb/rocksdb/db/c.cc +76 -5
  34. package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
  35. package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
  36. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
  51. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
  52. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  53. package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
  54. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
  55. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
  56. package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
  57. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
  58. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
  59. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
  60. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
  71. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
  72. package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
  73. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
  74. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
  75. package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
  76. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
  77. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
  78. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
  79. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
  80. package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
  81. package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
  82. package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
  83. package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
  84. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
  85. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
  86. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
  87. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
  88. package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
  89. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
  90. package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
  91. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
  92. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
  93. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
  94. package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
  95. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
  96. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
  97. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
  98. package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
  99. package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
  100. package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
  101. package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
  102. package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
  103. package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
  104. package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
  105. package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
  106. package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
  107. package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
  108. package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
  109. package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
  110. package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
  111. package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
  112. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
  113. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
  114. package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
  115. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
  116. package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
  117. package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
  118. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
  119. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
  120. package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
  121. package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
  122. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
  123. package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
  124. package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
  125. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
  126. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
  127. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
  128. package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
  129. package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
  130. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
  131. package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
  132. package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
  133. package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
  134. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
  135. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
  136. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
  137. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
  144. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
  145. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
  146. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
  147. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
  148. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
  149. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
  150. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
  151. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
  152. package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
  153. package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
  154. package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
  155. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
  156. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
  157. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
  158. package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
  159. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  160. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
  161. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
  162. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
  163. package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
  164. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
  165. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
  166. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
  167. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
  168. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
  169. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
  170. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
  171. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
  172. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  173. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
  174. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
  175. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
  176. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
  177. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
  178. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
  179. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
  180. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
  181. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
  182. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
  183. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
  184. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
  185. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
  187. package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
  188. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
  189. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
  190. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
  191. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
  192. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
  193. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
  194. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
  195. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
  196. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
  197. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
  198. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
  199. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
  200. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
  201. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
  202. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
  203. package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
  204. package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
  205. package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
  206. package/deps/rocksdb/rocksdb/options/options.cc +12 -53
  207. package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
  208. package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
  209. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
  210. package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
  211. package/deps/rocksdb/rocksdb/port/lang.h +27 -0
  212. package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
  213. package/deps/rocksdb/rocksdb/src.mk +2 -0
  214. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
  215. package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
  216. package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
  217. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
  218. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
  219. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
  220. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
  221. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
  222. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
  223. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
  224. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
  225. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
  226. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
  227. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
  228. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
  229. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
  230. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
  231. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
  232. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
  233. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
  234. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
  235. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
  236. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
  237. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
  238. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
  239. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
  240. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
  241. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
  242. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
  243. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
  244. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
  245. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
  246. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
  247. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
  248. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
  249. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
  250. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
  251. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
  252. package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
  253. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
  254. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
  255. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
  256. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
  257. package/deps/rocksdb/rocksdb/table/format.cc +4 -4
  258. package/deps/rocksdb/rocksdb/table/format.h +1 -1
  259. package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
  260. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
  261. package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
  262. package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
  263. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
  264. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
  265. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
  266. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
  267. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
  268. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
  269. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
  270. package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
  271. package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
  272. package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
  273. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
  274. package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
  275. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
  276. package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
  277. package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
  278. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
  279. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
  280. package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
  281. package/deps/rocksdb/rocksdb/util/compression.h +1 -1
  282. package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
  283. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
  284. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
  285. package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
  286. package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
  287. package/deps/rocksdb/rocksdb/util/math.h +12 -7
  288. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
  289. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
  290. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
  291. package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
  292. package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
  293. package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
  294. package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
  295. package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
  296. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
  297. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
  298. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
  299. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
  300. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
  301. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
  302. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
  303. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
  304. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
  305. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
  306. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
  307. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
  308. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
  309. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
  310. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
  311. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
  312. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
  313. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
  314. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
  315. package/deps/rocksdb/rocksdb.gyp +3 -7
  316. package/index.js +0 -6
  317. package/package.json +1 -1
  318. package/prebuilds/linux-x64/node.napi.node +0 -0
  319. package/deps/liburing/liburing.gyp +0 -20
  320. /package/deps/rocksdb/rocksdb/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
  321. /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
  322. /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
  323. /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
  324. /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
package/binding.cc CHANGED
@@ -18,9 +18,6 @@
18
18
  #include <rocksdb/table.h>
19
19
  #include <rocksdb/write_batch.h>
20
20
 
21
- #include <liburing.h>
22
- #include <sys/uio.h>
23
-
24
21
  #include <iostream>
25
22
  #include <memory>
26
23
  #include <optional>
@@ -471,33 +468,7 @@ static void FinalizeDatabase(napi_env env, void* data, void* hint) {
471
468
  }
472
469
  }
473
470
 
474
- inline void DeleteIOUring(void* p) {
475
- struct io_uring* iu = static_cast<struct io_uring*>(p);
476
- delete iu;
477
- }
478
-
479
- const unsigned int kIoUringDepth = 256;
480
- inline struct io_uring* CreateIOUring() {
481
- struct io_uring* new_io_uring = new struct io_uring;
482
- int ret = io_uring_queue_init(kIoUringDepth, new_io_uring, 0);
483
- if (ret) {
484
- delete new_io_uring;
485
- new_io_uring = nullptr;
486
- }
487
- return new_io_uring;
488
- }
489
-
490
471
  NAPI_METHOD(db_init) {
491
- // Ensure io_uring works.
492
- {
493
- io_uring new_io_uring = {};
494
- auto ret = io_uring_queue_init(256, &new_io_uring, 0);
495
- if (ret) {
496
- ROCKS_STATUS_THROWS_NAPI(rocksdb::Status::NotSupported("ioring not supported"));
497
- }
498
- io_uring_queue_exit(&new_io_uring);
499
- }
500
-
501
472
  auto database = new Database();
502
473
  napi_add_env_cleanup_hook(env, env_cleanup_hook, database);
503
474
 
@@ -671,8 +642,8 @@ NAPI_METHOD(db_get_merge_operands) {
671
642
  Database* database;
672
643
  NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&database)));
673
644
 
674
- std::string key;
675
- NAPI_STATUS_THROWS(GetValue(env, argv[1], key));
645
+ std::string key;
646
+ NAPI_STATUS_THROWS(GetValue(env, argv[1], key));
676
647
 
677
648
  const auto options = argv[2];
678
649
 
@@ -689,22 +660,16 @@ NAPI_METHOD(db_get_merge_operands) {
689
660
  [=, key = std::move(key)](auto& values) {
690
661
  rocksdb::ReadOptions readOptions;
691
662
 
692
- values.resize(16); // TODO (fix): Make option
663
+ values.resize(16); // TODO (fix): Make option
693
664
 
694
- rocksdb::GetMergeOperandsOptions mergeOperandsOptions;
695
- mergeOperandsOptions.expected_max_number_of_operands = values.size();
665
+ rocksdb::GetMergeOperandsOptions mergeOperandsOptions;
666
+ mergeOperandsOptions.expected_max_number_of_operands = values.size();
696
667
 
697
- int size = 0;
698
- const auto status = database->db->GetMergeOperands(
699
- readOptions,
700
- column,
701
- key,
702
- values.data(),
703
- &mergeOperandsOptions,
704
- &size
705
- );
668
+ int size = 0;
669
+ const auto status =
670
+ database->db->GetMergeOperands(readOptions, column, key, values.data(), &mergeOperandsOptions, &size);
706
671
 
707
- values.resize(size);
672
+ values.resize(size);
708
673
 
709
674
  return status;
710
675
  },
@@ -1594,55 +1559,6 @@ NAPI_METHOD(batch_iterate) {
1594
1559
  return result;
1595
1560
  }
1596
1561
 
1597
- NAPI_METHOD(db_get_sorted_wal_files) {
1598
- NAPI_ARGV(3);
1599
-
1600
- Database* database;
1601
- NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&database)));
1602
-
1603
- auto callback = argv[1];
1604
-
1605
- runAsync<rocksdb::VectorLogPtr>(
1606
- "leveldown.open", env, callback, [=](auto& files) { return database->db->GetSortedWalFiles(files); },
1607
- [=](auto& files, auto env, auto& argv) {
1608
- argv.resize(2);
1609
-
1610
- const auto size = files.size();
1611
- NAPI_STATUS_RETURN(napi_create_array_with_length(env, size, &argv[1]));
1612
-
1613
- for (size_t n = 0; n < size; ++n) {
1614
- napi_value element;
1615
- NAPI_STATUS_RETURN(napi_create_object(env, &element));
1616
-
1617
- napi_value pathName;
1618
- NAPI_STATUS_RETURN(napi_create_string_utf8(env, files[n]->PathName().data(), NAPI_AUTO_LENGTH, &pathName))
1619
- NAPI_STATUS_RETURN(napi_set_named_property(env, element, "pathName", pathName));
1620
-
1621
- napi_value logNumber;
1622
- NAPI_STATUS_RETURN(napi_create_int32(env, files[n]->LogNumber(), &logNumber))
1623
- NAPI_STATUS_RETURN(napi_set_named_property(env, element, "logNumber", logNumber));
1624
-
1625
- napi_value type;
1626
- NAPI_STATUS_RETURN(napi_create_int32(env, files[n]->Type(), &type))
1627
- NAPI_STATUS_RETURN(napi_set_named_property(env, element, "type", type));
1628
-
1629
- napi_value startSequence;
1630
- NAPI_STATUS_RETURN(napi_create_int64(env, files[n]->StartSequence(), &startSequence))
1631
- NAPI_STATUS_RETURN(napi_set_named_property(env, element, "startSequence", startSequence));
1632
-
1633
- napi_value sizeFileBytes;
1634
- NAPI_STATUS_RETURN(napi_create_int64(env, files[n]->SizeFileBytes(), &sizeFileBytes))
1635
- NAPI_STATUS_RETURN(napi_set_named_property(env, element, "sizeFileBytes", sizeFileBytes));
1636
-
1637
- NAPI_STATUS_RETURN(napi_set_element(env, argv[1], n, element));
1638
- }
1639
-
1640
- return napi_ok;
1641
- });
1642
-
1643
- return 0;
1644
- }
1645
-
1646
1562
  NAPI_METHOD(db_flush_wal) {
1647
1563
  NAPI_ARGV(3);
1648
1564
 
@@ -1672,7 +1588,6 @@ NAPI_INIT() {
1672
1588
  NAPI_EXPORT_FUNCTION(db_clear);
1673
1589
  NAPI_EXPORT_FUNCTION(db_get_property);
1674
1590
  NAPI_EXPORT_FUNCTION(db_get_latest_sequence);
1675
- NAPI_EXPORT_FUNCTION(db_get_sorted_wal_files);
1676
1591
  NAPI_EXPORT_FUNCTION(db_flush_wal);
1677
1592
  NAPI_EXPORT_FUNCTION(db_get_merge_operands);
1678
1593
 
package/binding.gyp CHANGED
@@ -15,9 +15,6 @@
15
15
  "-mbmi",
16
16
  "-mlzcnt"
17
17
  ],
18
- "dependencies": [
19
- "./deps/liburing/liburing.gyp:liburing"
20
- ],
21
18
  "include_dirs": [
22
19
  "/usr/lib/x86_64-linux-gnu/include",
23
20
  "/usr/lib/include",
@@ -253,33 +253,10 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
253
253
  endif(HAS_LOONGARCH64)
254
254
  endif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
255
255
 
256
- option(PORTABLE "build a portable binary" OFF)
257
- option(FORCE_SSE42 "force building with SSE4.2, even when PORTABLE=ON" OFF)
258
- option(FORCE_AVX "force building with AVX, even when PORTABLE=ON" OFF)
259
- option(FORCE_AVX2 "force building with AVX2, even when PORTABLE=ON" OFF)
260
- if(PORTABLE)
261
- add_definitions(-DROCKSDB_PORTABLE)
262
-
263
- # MSVC does not need a separate compiler flag to enable SSE4.2; if nmmintrin.h
264
- # is available, it is available by default.
265
- if(FORCE_SSE42 AND NOT MSVC)
266
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -mpclmul")
267
- endif()
268
- if(MSVC)
269
- if(FORCE_AVX)
270
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX")
271
- endif()
272
- # MSVC automatically enables BMI / lzcnt with AVX2.
273
- if(FORCE_AVX2)
274
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
275
- endif()
276
- else()
277
- if(FORCE_AVX)
278
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx")
279
- endif()
280
- if(FORCE_AVX2)
281
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -mbmi -mlzcnt")
282
- endif()
256
+ set(PORTABLE 0 CACHE STRING "Minimum CPU arch to support, or 0 = current CPU, 1 = baseline CPU")
257
+ if(PORTABLE STREQUAL 1)
258
+ # Usually nothing to do; compiler default is typically the most general
259
+ if(NOT MSVC)
283
260
  if(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390x")
284
261
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z196")
285
262
  endif()
@@ -287,10 +264,21 @@ if(PORTABLE)
287
264
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=loongarch64")
288
265
  endif()
289
266
  endif()
267
+ elseif(PORTABLE MATCHES [^0]+)
268
+ # Name of a CPU arch spec or feature set to require
269
+ if(MSVC)
270
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:${PORTABLE}")
271
+ else()
272
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=${PORTABLE}")
273
+ endif()
290
274
  else()
291
275
  if(MSVC)
276
+ # NOTE: No auto-detection of current CPU, but instead assume some useful
277
+ # level of optimization is supported
292
278
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
293
279
  else()
280
+ # Require instruction set from current CPU (with some legacy or opt-out
281
+ # exceptions)
294
282
  if(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390x" AND NOT HAS_S390X_MARCH_NATIVE)
295
283
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z196")
296
284
  elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT HAS_ARMV8_CRC)
@@ -305,25 +293,6 @@ if(NOT MSVC)
305
293
  set(CMAKE_REQUIRED_FLAGS "-msse4.2 -mpclmul")
306
294
  endif()
307
295
 
308
- CHECK_CXX_SOURCE_COMPILES("
309
- #include <cstdint>
310
- #include <nmmintrin.h>
311
- #include <wmmintrin.h>
312
- int main() {
313
- volatile uint32_t x = _mm_crc32_u32(0, 0);
314
- const auto a = _mm_set_epi64x(0, 0);
315
- const auto b = _mm_set_epi64x(0, 0);
316
- const auto c = _mm_clmulepi64_si128(a, b, 0x00);
317
- auto d = _mm_cvtsi128_si64(c);
318
- }
319
- " HAVE_SSE42)
320
- if(HAVE_SSE42)
321
- add_definitions(-DHAVE_SSE42)
322
- add_definitions(-DHAVE_PCLMUL)
323
- elseif(FORCE_SSE42)
324
- message(FATAL_ERROR "FORCE_SSE42=ON but unable to compile with SSE4.2 enabled")
325
- endif()
326
-
327
296
  # Check if -latomic is required or not
328
297
  if (NOT MSVC)
329
298
  set(CMAKE_REQUIRED_FLAGS "--std=c++17")
@@ -1010,12 +979,6 @@ if ( ROCKSDB_PLUGINS )
1010
979
  endforeach()
1011
980
  endif()
1012
981
 
1013
- if(HAVE_SSE42 AND NOT MSVC)
1014
- set_source_files_properties(
1015
- util/crc32c.cc
1016
- PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul")
1017
- endif()
1018
-
1019
982
  if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
1020
983
  list(APPEND SOURCES
1021
984
  util/crc32c_ppc.c
@@ -1327,6 +1290,7 @@ if(WITH_TESTS)
1327
1290
  db/db_bloom_filter_test.cc
1328
1291
  db/db_compaction_filter_test.cc
1329
1292
  db/db_compaction_test.cc
1293
+ db/db_clip_test.cc
1330
1294
  db/db_dynamic_level_test.cc
1331
1295
  db/db_encryption_test.cc
1332
1296
  db/db_flush_test.cc
@@ -337,8 +337,8 @@ ifneq ($(MACHINE), arm64)
337
337
  # linking with jemalloc (as it won't be arm64-compatible) and remove some other options
338
338
  # set during platform detection
339
339
  DISABLE_JEMALLOC=1
340
- PLATFORM_CFLAGS := $(filter-out -march=native -DHAVE_SSE42 -DHAVE_AVX2, $(PLATFORM_CFLAGS))
341
- PLATFORM_CXXFLAGS := $(filter-out -march=native -DHAVE_SSE42 -DHAVE_AVX2, $(PLATFORM_CXXFLAGS))
340
+ PLATFORM_CCFLAGS := $(filter-out -march=native, $(PLATFORM_CCFLAGS))
341
+ PLATFORM_CXXFLAGS := $(filter-out -march=native, $(PLATFORM_CXXFLAGS))
342
342
  endif
343
343
  endif
344
344
  endif
@@ -539,7 +539,7 @@ endif
539
539
 
540
540
  ifdef USE_CLANG
541
541
  # Used by some teams in Facebook
542
- WARNING_FLAGS += -Wshift-sign-overflow
542
+ WARNING_FLAGS += -Wshift-sign-overflow -Wambiguous-reversed-operator
543
543
  endif
544
544
 
545
545
  ifeq ($(PLATFORM), OS_OPENBSD)
@@ -1480,6 +1480,9 @@ db_compaction_filter_test: $(OBJ_DIR)/db/db_compaction_filter_test.o $(TEST_LIBR
1480
1480
  db_compaction_test: $(OBJ_DIR)/db/db_compaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1481
1481
  $(AM_LINK)
1482
1482
 
1483
+ db_clip_test: $(OBJ_DIR)/db/db_clip_test.o $(TEST_LIBRARY) $(LIBRARY)
1484
+ $(AM_LINK)
1485
+
1483
1486
  db_dynamic_level_test: $(OBJ_DIR)/db/db_dynamic_level_test.o $(TEST_LIBRARY) $(LIBRARY)
1484
1487
  $(AM_LINK)
1485
1488
 
@@ -2435,6 +2438,8 @@ checkout_folly:
2435
2438
  @# NOTE: this hack is required for gcc in some cases
2436
2439
  perl -pi -e 's/(__has_include.<experimental.memory_resource>.)/__cpp_rtti && $$1/' third-party/folly/folly/memory/MemoryResource.h
2437
2440
 
2441
+ CXX_M_FLAGS = $(filter -m%, $(CXXFLAGS))
2442
+
2438
2443
  build_folly:
2439
2444
  FOLLY_INST_PATH=`cd third-party/folly; $(PYTHON) build/fbcode_builder/getdeps.py show-inst-dir`; \
2440
2445
  if [ "$$FOLLY_INST_PATH" ]; then \
@@ -2445,8 +2450,8 @@ build_folly:
2445
2450
  fi
2446
2451
  # Restore the original version of Invoke.h with boost dependency
2447
2452
  cd third-party/folly && ${GIT_COMMAND} checkout folly/functional/Invoke.h
2448
- cd third-party/folly && MAYBE_AVX2=`echo $(CXXFLAGS) | grep -o -- -DHAVE_AVX2 | sed 's/-DHAVE_AVX2/-mavx2/g' || true` && \
2449
- CXXFLAGS=" $$MAYBE_AVX2 -DHAVE_CXX11_ATOMIC " $(PYTHON) build/fbcode_builder/getdeps.py build --no-tests
2453
+ cd third-party/folly && \
2454
+ CXXFLAGS=" $(CXX_M_FLAGS) -DHAVE_CXX11_ATOMIC " $(PYTHON) build/fbcode_builder/getdeps.py build --no-tests
2450
2455
 
2451
2456
  # ---------------------------------------------------------------------------
2452
2457
  # Build size testing