@nxtedition/rocksdb 8.2.0 → 8.2.2

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 (321) hide show
  1. package/binding.cc +3 -3
  2. package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
  3. package/deps/rocksdb/rocksdb/Makefile +10 -5
  4. package/deps/rocksdb/rocksdb/TARGETS +8 -345
  5. package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
  6. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
  7. package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
  8. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
  9. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
  10. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
  12. package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
  13. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
  14. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
  15. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
  16. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
  17. package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
  18. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
  24. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
  25. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
  26. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
  27. package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
  28. package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
  29. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
  30. package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
  31. package/deps/rocksdb/rocksdb/db/builder.h +2 -2
  32. package/deps/rocksdb/rocksdb/db/c.cc +76 -5
  33. package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
  34. package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
  35. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
  50. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
  51. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  52. package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
  53. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
  54. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
  55. package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
  56. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
  57. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
  58. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
  59. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
  60. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
  71. package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
  72. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
  73. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
  74. package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
  75. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
  76. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
  77. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
  78. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
  79. package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
  80. package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
  81. package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
  82. package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
  83. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
  84. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
  85. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
  86. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
  87. package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
  88. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
  89. package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
  90. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
  91. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
  92. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
  93. package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
  94. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
  95. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
  96. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
  97. package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
  98. package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
  99. package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
  100. package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
  101. package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
  102. package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
  103. package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
  104. package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
  105. package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
  106. package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
  107. package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
  108. package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
  109. package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
  110. package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
  111. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
  112. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
  113. package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
  114. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
  115. package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
  116. package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
  117. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
  118. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
  119. package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
  120. package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
  121. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
  122. package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
  123. package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
  124. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
  125. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
  126. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
  127. package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
  128. package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
  129. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
  130. package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
  131. package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
  132. package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
  133. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
  134. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
  135. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
  136. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
  137. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
  144. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
  145. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
  146. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
  147. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
  148. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
  149. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
  150. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
  151. package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
  152. package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
  153. package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
  154. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
  155. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
  156. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
  157. package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
  158. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  159. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
  160. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
  161. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
  162. package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
  163. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
  164. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
  165. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
  166. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
  167. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
  168. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
  169. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
  170. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
  171. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  172. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
  173. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
  174. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
  175. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
  176. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
  177. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
  178. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
  179. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
  180. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
  181. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
  182. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
  183. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
  184. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  185. package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
  186. package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
  187. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
  188. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
  189. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
  190. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
  191. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
  192. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
  193. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
  194. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
  195. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
  196. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
  197. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
  198. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
  199. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
  200. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
  201. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
  202. package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
  203. package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
  204. package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
  205. package/deps/rocksdb/rocksdb/options/options.cc +12 -53
  206. package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
  207. package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
  208. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
  209. package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
  210. package/deps/rocksdb/rocksdb/port/lang.h +27 -0
  211. package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
  212. package/deps/rocksdb/rocksdb/src.mk +2 -0
  213. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
  214. package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
  215. package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
  216. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
  217. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
  218. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
  219. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
  220. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
  221. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
  222. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
  223. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
  224. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
  225. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
  226. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
  227. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
  228. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
  229. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
  230. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
  231. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
  232. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
  233. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
  234. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
  235. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
  236. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
  237. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
  238. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
  239. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
  240. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
  241. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
  242. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
  243. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
  244. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
  245. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
  246. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
  247. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
  248. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
  249. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
  250. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
  251. package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
  252. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
  253. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
  254. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
  255. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
  256. package/deps/rocksdb/rocksdb/table/format.cc +4 -4
  257. package/deps/rocksdb/rocksdb/table/format.h +1 -1
  258. package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
  259. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
  260. package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
  261. package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
  262. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
  263. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
  264. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
  265. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
  266. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
  267. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
  268. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
  269. package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
  270. package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
  271. package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
  272. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
  273. package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
  274. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
  275. package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
  276. package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
  277. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
  278. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
  279. package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
  280. package/deps/rocksdb/rocksdb/util/compression.h +1 -1
  281. package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
  282. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
  283. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
  284. package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
  285. package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
  286. package/deps/rocksdb/rocksdb/util/math.h +12 -7
  287. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
  288. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
  289. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
  290. package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
  291. package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
  292. package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
  293. package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
  294. package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
  295. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
  296. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
  297. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
  298. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
  299. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
  300. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
  301. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
  302. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
  303. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
  304. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
  305. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
  306. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
  307. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
  308. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
  309. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
  310. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
  311. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
  312. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
  313. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
  314. package/package.json +1 -1
  315. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  316. package/prebuilds/linux-x64/node.napi.node +0 -0
  317. /package/deps/rocksdb/rocksdb/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
  318. /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
  319. /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
  320. /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
  321. /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
@@ -20,76 +20,115 @@ class DBStatisticsTest : public DBTestBase {
20
20
  };
21
21
 
22
22
  TEST_F(DBStatisticsTest, CompressionStatsTest) {
23
- CompressionType type;
24
-
25
- if (Snappy_Supported()) {
26
- type = kSnappyCompression;
27
- fprintf(stderr, "using snappy\n");
28
- } else if (Zlib_Supported()) {
29
- type = kZlibCompression;
30
- fprintf(stderr, "using zlib\n");
31
- } else if (BZip2_Supported()) {
32
- type = kBZip2Compression;
33
- fprintf(stderr, "using bzip2\n");
34
- } else if (LZ4_Supported()) {
35
- type = kLZ4Compression;
36
- fprintf(stderr, "using lz4\n");
37
- } else if (XPRESS_Supported()) {
38
- type = kXpressCompression;
39
- fprintf(stderr, "using xpress\n");
40
- } else if (ZSTD_Supported()) {
41
- type = kZSTD;
42
- fprintf(stderr, "using ZSTD\n");
43
- } else {
44
- fprintf(stderr, "skipping test, compression disabled\n");
45
- return;
46
- }
23
+ for (CompressionType type : GetSupportedCompressions()) {
24
+ if (type == kNoCompression) {
25
+ continue;
26
+ }
27
+ if (type == kBZip2Compression) {
28
+ // Weird behavior in this test
29
+ continue;
30
+ }
31
+ SCOPED_TRACE("Compression type: " + std::to_string(type));
47
32
 
48
- Options options = CurrentOptions();
49
- options.compression = type;
50
- options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
51
- options.statistics->set_stats_level(StatsLevel::kExceptTimeForMutex);
52
- DestroyAndReopen(options);
33
+ Options options = CurrentOptions();
34
+ options.compression = type;
35
+ options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
36
+ options.statistics->set_stats_level(StatsLevel::kExceptTimeForMutex);
37
+ BlockBasedTableOptions bbto;
38
+ bbto.enable_index_compression = false;
39
+ options.table_factory.reset(NewBlockBasedTableFactory(bbto));
40
+ DestroyAndReopen(options);
53
41
 
54
- int kNumKeysWritten = 100000;
42
+ auto PopStat = [&](Tickers t) -> uint64_t {
43
+ return options.statistics->getAndResetTickerCount(t);
44
+ };
55
45
 
56
- // Check that compressions occur and are counted when compression is turned on
57
- Random rnd(301);
58
- for (int i = 0; i < kNumKeysWritten; ++i) {
59
- // compressible string
60
- ASSERT_OK(Put(Key(i), rnd.RandomString(128) + std::string(128, 'a')));
61
- }
62
- ASSERT_OK(Flush());
63
- ASSERT_GT(options.statistics->getTickerCount(NUMBER_BLOCK_COMPRESSED), 0);
46
+ int kNumKeysWritten = 100;
47
+ double compress_to = 0.5;
48
+ // About three KVs per block
49
+ int len = static_cast<int>(BlockBasedTableOptions().block_size / 3);
50
+ int uncomp_est = kNumKeysWritten * (len + 20);
64
51
 
65
- for (int i = 0; i < kNumKeysWritten; ++i) {
66
- auto r = Get(Key(i));
67
- }
68
- ASSERT_GT(options.statistics->getTickerCount(NUMBER_BLOCK_DECOMPRESSED), 0);
52
+ Random rnd(301);
53
+ std::string buf;
69
54
 
70
- options.compression = kNoCompression;
71
- DestroyAndReopen(options);
72
- uint64_t currentCompressions =
73
- options.statistics->getTickerCount(NUMBER_BLOCK_COMPRESSED);
74
- uint64_t currentDecompressions =
75
- options.statistics->getTickerCount(NUMBER_BLOCK_DECOMPRESSED);
76
-
77
- // Check that compressions do not occur when turned off
78
- for (int i = 0; i < kNumKeysWritten; ++i) {
79
- // compressible string
80
- ASSERT_OK(Put(Key(i), rnd.RandomString(128) + std::string(128, 'a')));
81
- }
82
- ASSERT_OK(Flush());
83
- ASSERT_EQ(options.statistics->getTickerCount(NUMBER_BLOCK_COMPRESSED) -
84
- currentCompressions,
85
- 0);
55
+ // Check that compressions occur and are counted when compression is turned
56
+ // on
57
+ for (int i = 0; i < kNumKeysWritten; ++i) {
58
+ ASSERT_OK(
59
+ Put(Key(i), test::CompressibleString(&rnd, compress_to, len, &buf)));
60
+ }
61
+ ASSERT_OK(Flush());
62
+ EXPECT_EQ(34, PopStat(NUMBER_BLOCK_COMPRESSED));
63
+ EXPECT_NEAR2(uncomp_est, PopStat(BYTES_COMPRESSED_FROM), uncomp_est / 10);
64
+ EXPECT_NEAR2(uncomp_est * compress_to, PopStat(BYTES_COMPRESSED_TO),
65
+ uncomp_est / 10);
66
+
67
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_DECOMPRESSED));
68
+ EXPECT_EQ(0, PopStat(BYTES_DECOMPRESSED_FROM));
69
+ EXPECT_EQ(0, PopStat(BYTES_DECOMPRESSED_TO));
70
+
71
+ // And decompressions
72
+ for (int i = 0; i < kNumKeysWritten; ++i) {
73
+ auto r = Get(Key(i));
74
+ }
75
+ EXPECT_EQ(34, PopStat(NUMBER_BLOCK_DECOMPRESSED));
76
+ EXPECT_NEAR2(uncomp_est, PopStat(BYTES_DECOMPRESSED_TO), uncomp_est / 10);
77
+ EXPECT_NEAR2(uncomp_est * compress_to, PopStat(BYTES_DECOMPRESSED_FROM),
78
+ uncomp_est / 10);
79
+
80
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSION_BYPASSED));
81
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSION_REJECTED));
82
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_COMPRESSION_BYPASSED));
83
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_COMPRESSION_REJECTED));
84
+
85
+ // Check when compression is rejected.
86
+ DestroyAndReopen(options);
86
87
 
87
- for (int i = 0; i < kNumKeysWritten; ++i) {
88
- auto r = Get(Key(i));
88
+ for (int i = 0; i < kNumKeysWritten; ++i) {
89
+ ASSERT_OK(Put(Key(i), rnd.RandomBinaryString(len)));
90
+ }
91
+ ASSERT_OK(Flush());
92
+ for (int i = 0; i < kNumKeysWritten; ++i) {
93
+ auto r = Get(Key(i));
94
+ }
95
+ EXPECT_EQ(34, PopStat(NUMBER_BLOCK_COMPRESSION_REJECTED));
96
+ EXPECT_NEAR2(uncomp_est, PopStat(BYTES_COMPRESSION_REJECTED),
97
+ uncomp_est / 10);
98
+
99
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_COMPRESSED));
100
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_COMPRESSION_BYPASSED));
101
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_DECOMPRESSED));
102
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSED_FROM));
103
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSED_TO));
104
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSION_BYPASSED));
105
+ EXPECT_EQ(0, PopStat(BYTES_DECOMPRESSED_FROM));
106
+ EXPECT_EQ(0, PopStat(BYTES_DECOMPRESSED_TO));
107
+
108
+ // Check when compression is disabled.
109
+ options.compression = kNoCompression;
110
+ DestroyAndReopen(options);
111
+
112
+ for (int i = 0; i < kNumKeysWritten; ++i) {
113
+ ASSERT_OK(Put(Key(i), rnd.RandomBinaryString(len)));
114
+ }
115
+ ASSERT_OK(Flush());
116
+ for (int i = 0; i < kNumKeysWritten; ++i) {
117
+ auto r = Get(Key(i));
118
+ }
119
+ EXPECT_EQ(34, PopStat(NUMBER_BLOCK_COMPRESSION_BYPASSED));
120
+ EXPECT_NEAR2(uncomp_est, PopStat(BYTES_COMPRESSION_BYPASSED),
121
+ uncomp_est / 10);
122
+
123
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_COMPRESSED));
124
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_COMPRESSION_REJECTED));
125
+ EXPECT_EQ(0, PopStat(NUMBER_BLOCK_DECOMPRESSED));
126
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSED_FROM));
127
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSED_TO));
128
+ EXPECT_EQ(0, PopStat(BYTES_COMPRESSION_REJECTED));
129
+ EXPECT_EQ(0, PopStat(BYTES_DECOMPRESSED_FROM));
130
+ EXPECT_EQ(0, PopStat(BYTES_DECOMPRESSED_TO));
89
131
  }
90
- ASSERT_EQ(options.statistics->getTickerCount(NUMBER_BLOCK_DECOMPRESSED) -
91
- currentDecompressions,
92
- 0);
93
132
  }
94
133
 
95
134
  TEST_F(DBStatisticsTest, MutexWaitStatsDisabledByDefault) {
@@ -203,6 +242,46 @@ TEST_F(DBStatisticsTest, VerifyChecksumReadStat) {
203
242
  }
204
243
  }
205
244
 
245
+ TEST_F(DBStatisticsTest, BlockChecksumStats) {
246
+ Options options = CurrentOptions();
247
+ options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
248
+ Reopen(options);
249
+
250
+ // Scenario 0: only WAL data. Not verified so require ticker to be zero.
251
+ ASSERT_OK(Put("foo", "value"));
252
+ ASSERT_OK(db_->VerifyChecksum());
253
+ ASSERT_EQ(0,
254
+ options.statistics->getTickerCount(BLOCK_CHECKSUM_COMPUTE_COUNT));
255
+ ASSERT_EQ(0,
256
+ options.statistics->getTickerCount(BLOCK_CHECKSUM_MISMATCH_COUNT));
257
+
258
+ // Scenario 1: Flushed table verified in `VerifyChecksum()`. This opens a
259
+ // `TableReader` to verify each of the four blocks (meta-index, table
260
+ // properties, index, and data block).
261
+ ASSERT_OK(Flush());
262
+ ASSERT_OK(options.statistics->Reset());
263
+ ASSERT_OK(db_->VerifyChecksum());
264
+ ASSERT_EQ(4,
265
+ options.statistics->getTickerCount(BLOCK_CHECKSUM_COMPUTE_COUNT));
266
+ ASSERT_EQ(0,
267
+ options.statistics->getTickerCount(BLOCK_CHECKSUM_MISMATCH_COUNT));
268
+
269
+ // Scenario 2: Corrupted table verified in `VerifyChecksum()`. The corruption
270
+ // is in the fourth and final verified block, i.e., the data block.
271
+ std::unordered_map<std::string, uint64_t> table_files;
272
+ ASSERT_OK(GetAllDataFiles(kTableFile, &table_files));
273
+ ASSERT_EQ(1, table_files.size());
274
+ std::string table_name = table_files.begin()->first;
275
+ // Assumes the data block starts at offset zero.
276
+ ASSERT_OK(test::CorruptFile(options.env, table_name, 0 /* offset */,
277
+ 3 /* bytes_to_corrupt */));
278
+ ASSERT_OK(options.statistics->Reset());
279
+ ASSERT_NOK(db_->VerifyChecksum());
280
+ ASSERT_EQ(4,
281
+ options.statistics->getTickerCount(BLOCK_CHECKSUM_COMPUTE_COUNT));
282
+ ASSERT_EQ(1,
283
+ options.statistics->getTickerCount(BLOCK_CHECKSUM_MISMATCH_COUNT));
284
+ }
206
285
 
207
286
  } // namespace ROCKSDB_NAMESPACE
208
287
 
@@ -66,7 +66,7 @@
66
66
  #include "util/compression.h"
67
67
  #include "util/mutexlock.h"
68
68
  #include "util/random.h"
69
- #include "util/rate_limiter.h"
69
+ #include "util/rate_limiter_impl.h"
70
70
  #include "util/string_util.h"
71
71
  #include "utilities/merge_operators.h"
72
72
 
@@ -353,7 +353,7 @@ TEST_F(DBTest, MixedSlowdownOptionsInQueue) {
353
353
  for (int i = 0; i < 2; ++i) {
354
354
  threads.emplace_back(write_no_slowdown_func);
355
355
  }
356
- // Sleep for 2s to allow the threads to insert themselves into the
356
+ // Sleep for 3s to allow the threads to insert themselves into the
357
357
  // write queue
358
358
  env_->SleepForMicroseconds(3000000ULL);
359
359
  }
@@ -424,7 +424,7 @@ TEST_F(DBTest, MixedSlowdownOptionsStop) {
424
424
  for (int i = 0; i < 2; ++i) {
425
425
  threads.emplace_back(write_no_slowdown_func);
426
426
  }
427
- // Sleep for 2s to allow the threads to insert themselves into the
427
+ // Sleep for 3s to allow the threads to insert themselves into the
428
428
  // write queue
429
429
  env_->SleepForMicroseconds(3000000ULL);
430
430
  }
@@ -583,7 +583,7 @@ TEST_F(DBTest, LevelReopenWithFIFO) {
583
583
  TryReopenWithColumnFamilies({"default", "pikachu"}, fifo_options));
584
584
  // For FIFO to pick a compaction
585
585
  ASSERT_OK(dbfull()->TEST_CompactRange(0, nullptr, nullptr, handles_[1]));
586
- ASSERT_OK(dbfull()->TEST_WaitForCompact(false));
586
+ ASSERT_OK(dbfull()->TEST_WaitForBackgroundWork());
587
587
  for (int g = 0; g < kKeyCount; ++g) {
588
588
  std::string get_key = std::string(1, char('a' + g));
589
589
  int status_index = i / kKeyCount;
@@ -3107,6 +3107,13 @@ class ModelDB : public DB {
3107
3107
  return Status::NotSupported("Not implemented.");
3108
3108
  }
3109
3109
 
3110
+ using DB::ClipColumnFamily;
3111
+ virtual Status ClipColumnFamily(ColumnFamilyHandle* /*column_family*/,
3112
+ const Slice& /*begin*/,
3113
+ const Slice& /*end*/) override {
3114
+ return Status::NotSupported("Not implemented.");
3115
+ }
3116
+
3110
3117
  using DB::GetPropertiesOfAllTables;
3111
3118
  Status GetPropertiesOfAllTables(
3112
3119
  ColumnFamilyHandle* /*column_family*/,
@@ -3460,6 +3467,7 @@ static bool CompareIterators(int step, DB* model, DB* db,
3460
3467
  ok = false;
3461
3468
  }
3462
3469
  }
3470
+ (void)count;
3463
3471
  delete miter;
3464
3472
  delete dbiter;
3465
3473
  return ok;
@@ -4936,7 +4944,7 @@ TEST_P(DBTestWithParam, PreShutdownMultipleCompaction) {
4936
4944
  ASSERT_GE(operation_count[ThreadStatus::OP_COMPACTION], 1);
4937
4945
  CancelAllBackgroundWork(db_);
4938
4946
  TEST_SYNC_POINT("DBTest::PreShutdownMultipleCompaction:VerifyPreshutdown");
4939
- ASSERT_OK(dbfull()->TEST_WaitForCompact());
4947
+ ASSERT_OK(dbfull()->TEST_WaitForBackgroundWork());
4940
4948
  // Record the number of compactions at a time.
4941
4949
  for (int i = 0; i < ThreadStatus::NUM_OP_TYPES; ++i) {
4942
4950
  operation_count[i] = 0;
@@ -5023,7 +5031,7 @@ TEST_P(DBTestWithParam, PreShutdownCompactionMiddle) {
5023
5031
  CancelAllBackgroundWork(db_);
5024
5032
  TEST_SYNC_POINT("DBTest::PreShutdownCompactionMiddle:Preshutdown");
5025
5033
  TEST_SYNC_POINT("DBTest::PreShutdownCompactionMiddle:VerifyPreshutdown");
5026
- ASSERT_OK(dbfull()->TEST_WaitForCompact());
5034
+ ASSERT_OK(dbfull()->TEST_WaitForBackgroundWork());
5027
5035
  // Record the number of compactions at a time.
5028
5036
  for (int i = 0; i < ThreadStatus::NUM_OP_TYPES; ++i) {
5029
5037
  operation_count[i] = 0;
@@ -6886,7 +6894,20 @@ TEST_F(DBTest, CreateColumnFamilyShouldFailOnIncompatibleOptions) {
6886
6894
  TEST_F(DBTest, RowCache) {
6887
6895
  Options options = CurrentOptions();
6888
6896
  options.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
6889
- options.row_cache = NewLRUCache(8192);
6897
+ LRUCacheOptions cache_options;
6898
+ cache_options.capacity = 8192;
6899
+ options.row_cache = cache_options.MakeSharedGeneralCache();
6900
+ // BEGIN check that Cache classes as aliases of each other.
6901
+ // Currently, GeneralCache and BlockCache are aliases for Cache.
6902
+ // This is expected to change (carefully, intentionally)
6903
+ std::shared_ptr<GeneralCache> general_cache = options.row_cache;
6904
+ std::shared_ptr<Cache> cache = general_cache;
6905
+ std::shared_ptr<BlockCache> block_cache = general_cache;
6906
+ general_cache = cache;
6907
+ block_cache = cache;
6908
+ general_cache = block_cache;
6909
+ cache = block_cache;
6910
+ // END check that Cache classes as aliases of each other.
6890
6911
  DestroyAndReopen(options);
6891
6912
 
6892
6913
  ASSERT_OK(Put("foo", "bar"));