@nxtedition/rocksdb 13.5.7 → 13.5.9

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 (509) hide show
  1. package/binding.cc +248 -70
  2. package/binding.gyp +2 -2
  3. package/deps/rocksdb/rocksdb/BUCK +12 -0
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -0
  5. package/deps/rocksdb/rocksdb/Makefile +28 -23
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +0 -1
  7. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +1 -2
  8. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +43 -39
  9. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -0
  10. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +0 -1
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +2 -3
  12. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -2
  13. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +1 -3
  14. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +11 -1
  15. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +13 -5
  16. package/deps/rocksdb/rocksdb/crash_test.mk +61 -15
  17. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +136 -45
  18. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +34 -16
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +10 -7
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -2
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +1 -0
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +12 -9
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +3 -4
  24. package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +2 -2
  25. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +3 -4
  26. package/deps/rocksdb/rocksdb/db/builder.cc +22 -8
  27. package/deps/rocksdb/rocksdb/db/builder.h +5 -4
  28. package/deps/rocksdb/rocksdb/db/c.cc +556 -15
  29. package/deps/rocksdb/rocksdb/db/c_test.c +133 -12
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +114 -50
  31. package/deps/rocksdb/rocksdb/db/column_family.h +53 -36
  32. package/deps/rocksdb/rocksdb/db/column_family_test.cc +6 -6
  33. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +0 -1
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +95 -70
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +71 -51
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -86
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +26 -68
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +0 -122
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +453 -258
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +117 -92
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +0 -1
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +38 -38
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +24 -17
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +34 -45
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +32 -31
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -3
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +1 -1
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +2 -1
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +10 -10
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +2 -1
  51. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +82 -34
  52. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +267 -179
  53. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +4 -1
  54. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +273 -89
  55. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +300 -14
  56. package/deps/rocksdb/rocksdb/db/compaction/compaction_state.cc +4 -4
  57. package/deps/rocksdb/rocksdb/db/compaction/compaction_state.h +2 -2
  58. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +28 -23
  59. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +69 -51
  60. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +522 -245
  61. package/deps/rocksdb/rocksdb/db/convenience.cc +15 -4
  62. package/deps/rocksdb/rocksdb/db/corruption_test.cc +1 -3
  63. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +0 -2
  64. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +196 -17
  65. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +74 -62
  66. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +48 -0
  67. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +682 -250
  68. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +0 -1
  69. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +3 -4
  70. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +11 -16
  71. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +57 -0
  72. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +2 -2
  73. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -1
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +540 -490
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +347 -188
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +584 -217
  77. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +13 -9
  78. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -7
  79. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +40 -36
  80. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -3
  81. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +751 -372
  82. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +35 -32
  83. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +24 -2
  84. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +125 -63
  85. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +2 -2
  86. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +311 -196
  87. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +15 -5
  88. package/deps/rocksdb/rocksdb/db/db_iter.cc +42 -29
  89. package/deps/rocksdb/rocksdb/db/db_iter.h +96 -31
  90. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +3 -4
  91. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +168 -228
  92. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +454 -0
  93. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +8 -8
  94. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +0 -1
  95. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +90 -0
  96. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +60 -2
  97. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +7 -3
  98. package/deps/rocksdb/rocksdb/db/db_options_test.cc +85 -27
  99. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -1
  100. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +0 -2
  101. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +114 -2
  102. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +0 -1
  103. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +0 -1
  104. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +51 -3
  105. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +0 -1
  106. package/deps/rocksdb/rocksdb/db/db_test.cc +325 -18
  107. package/deps/rocksdb/rocksdb/db/db_test2.cc +644 -20
  108. package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
  109. package/deps/rocksdb/rocksdb/db/db_test_util.h +9 -0
  110. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +64 -45
  111. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +203 -14
  112. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +259 -30
  113. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +0 -1
  114. package/deps/rocksdb/rocksdb/db/db_write_test.cc +75 -1
  115. package/deps/rocksdb/rocksdb/db/dbformat.h +70 -6
  116. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +0 -190
  117. package/deps/rocksdb/rocksdb/db/error_handler.cc +22 -7
  118. package/deps/rocksdb/rocksdb/db/error_handler.h +16 -1
  119. package/deps/rocksdb/rocksdb/db/event_helpers.cc +41 -26
  120. package/deps/rocksdb/rocksdb/db/experimental.cc +4 -3
  121. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +464 -78
  122. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +166 -69
  123. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +54 -25
  124. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -3
  125. package/deps/rocksdb/rocksdb/db/flush_job.cc +98 -81
  126. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -9
  127. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +80 -84
  128. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  129. package/deps/rocksdb/rocksdb/db/forward_iterator.h +2 -2
  130. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +12 -19
  131. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +0 -2
  132. package/deps/rocksdb/rocksdb/db/internal_stats.cc +41 -15
  133. package/deps/rocksdb/rocksdb/db/internal_stats.h +63 -52
  134. package/deps/rocksdb/rocksdb/db/job_context.h +59 -24
  135. package/deps/rocksdb/rocksdb/db/listener_test.cc +69 -10
  136. package/deps/rocksdb/rocksdb/db/log_format.h +11 -2
  137. package/deps/rocksdb/rocksdb/db/log_reader.cc +147 -34
  138. package/deps/rocksdb/rocksdb/db/log_reader.h +40 -11
  139. package/deps/rocksdb/rocksdb/db/log_test.cc +16 -3
  140. package/deps/rocksdb/rocksdb/db/log_writer.cc +102 -55
  141. package/deps/rocksdb/rocksdb/db/log_writer.h +21 -2
  142. package/deps/rocksdb/rocksdb/db/malloc_stats.h +0 -2
  143. package/deps/rocksdb/rocksdb/db/memtable.cc +16 -47
  144. package/deps/rocksdb/rocksdb/db/memtable.h +76 -12
  145. package/deps/rocksdb/rocksdb/db/memtable_list.cc +23 -20
  146. package/deps/rocksdb/rocksdb/db/memtable_list.h +9 -11
  147. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +18 -37
  148. package/deps/rocksdb/rocksdb/db/merge_context.h +2 -1
  149. package/deps/rocksdb/rocksdb/db/merge_test.cc +8 -0
  150. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +3 -5
  151. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +15 -7
  152. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +6 -3
  153. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +22 -4
  154. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +41 -1
  155. package/deps/rocksdb/rocksdb/db/prefix_test.cc +0 -1
  156. package/deps/rocksdb/rocksdb/db/repair.cc +29 -34
  157. package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -1
  158. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +14 -15
  159. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +1 -3
  160. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +47 -1
  161. package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -3
  162. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +1 -3
  163. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +2 -1
  164. package/deps/rocksdb/rocksdb/db/version_builder.cc +2 -2
  165. package/deps/rocksdb/rocksdb/db/version_edit.cc +8 -37
  166. package/deps/rocksdb/rocksdb/db/version_edit.h +32 -1
  167. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +26 -18
  168. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -5
  169. package/deps/rocksdb/rocksdb/db/version_set.cc +282 -197
  170. package/deps/rocksdb/rocksdb/db/version_set.h +54 -57
  171. package/deps/rocksdb/rocksdb/db/version_set_test.cc +28 -35
  172. package/deps/rocksdb/rocksdb/db/version_util.h +2 -3
  173. package/deps/rocksdb/rocksdb/db/wal_manager.cc +3 -2
  174. package/deps/rocksdb/rocksdb/db/wal_manager.h +0 -1
  175. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +0 -1
  176. package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +1 -0
  177. package/deps/rocksdb/rocksdb/db/write_batch.cc +22 -8
  178. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +5 -4
  179. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +7 -6
  180. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -4
  181. package/deps/rocksdb/rocksdb/db/write_thread.h +3 -3
  182. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +13 -5
  183. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -2
  184. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_service.h +39 -0
  185. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compression_manager.h +65 -0
  186. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +45 -22
  187. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +7 -4
  188. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +22 -5
  189. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +28 -3
  190. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -38
  191. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -3
  192. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +80 -32
  193. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +51 -2
  194. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +23 -1
  195. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +305 -15
  196. package/deps/rocksdb/rocksdb/env/env.cc +32 -2
  197. package/deps/rocksdb/rocksdb/env/env_encryption.cc +0 -2
  198. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -4
  199. package/deps/rocksdb/rocksdb/env/env_posix.cc +4 -2
  200. package/deps/rocksdb/rocksdb/env/env_test.cc +0 -1
  201. package/deps/rocksdb/rocksdb/env/fs_posix.cc +20 -11
  202. package/deps/rocksdb/rocksdb/env/fs_readonly.h +0 -2
  203. package/deps/rocksdb/rocksdb/env/fs_remap.cc +0 -2
  204. package/deps/rocksdb/rocksdb/env/fs_remap.h +0 -2
  205. package/deps/rocksdb/rocksdb/env/io_posix.cc +6 -4
  206. package/deps/rocksdb/rocksdb/env/io_posix.h +3 -2
  207. package/deps/rocksdb/rocksdb/env/mock_env.cc +0 -1
  208. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +2 -2
  209. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +0 -2
  210. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +0 -2
  211. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +30 -21
  212. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +16 -0
  213. package/deps/rocksdb/rocksdb/file/file_util.cc +32 -14
  214. package/deps/rocksdb/rocksdb/file/file_util.h +22 -5
  215. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +229 -76
  216. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +21 -12
  217. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +10 -7
  218. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +12 -8
  219. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +1 -2
  220. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +0 -2
  221. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +3 -3
  222. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +598 -0
  223. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_iterator.h +36 -0
  224. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +70 -11
  225. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +232 -11
  226. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -1
  227. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -1
  228. package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +149 -15
  229. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +17 -2
  230. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +132 -34
  231. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +158 -79
  232. package/deps/rocksdb/rocksdb/include/rocksdb/db_bench_tool.h +2 -1
  233. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +4 -5
  234. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -3
  235. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +5 -0
  236. package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +275 -0
  237. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +2 -1
  238. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +50 -5
  239. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +10 -0
  240. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +13 -0
  241. package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +0 -1
  242. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +5 -2
  243. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +13 -0
  244. package/deps/rocksdb/rocksdb/include/rocksdb/multi_scan.h +237 -0
  245. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +230 -39
  246. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +15 -0
  247. package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +31 -11
  248. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +41 -0
  249. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +1 -1
  250. package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +0 -1
  251. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +5 -1
  252. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +0 -1
  253. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +18 -3
  254. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +2 -0
  255. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +20 -8
  256. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +19 -2
  257. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -1
  258. package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +124 -0
  259. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +1 -0
  260. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +26 -1
  261. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +55 -6
  262. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +3 -5
  263. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -2
  264. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +1 -2
  265. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +0 -1
  266. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +1 -2
  267. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +0 -1
  268. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +96 -8
  269. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index_faiss.h +117 -0
  270. package/deps/rocksdb/rocksdb/{utilities/secondary_index/faiss_ivf_index.h → include/rocksdb/utilities/secondary_index_simple.h} +11 -14
  271. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +26 -11
  272. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +16 -3
  273. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -2
  274. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +63 -7
  275. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -1
  276. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +28 -12
  277. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +3 -3
  278. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +0 -2
  279. package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +1 -2
  280. package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
  281. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +0 -1
  282. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +0 -1
  283. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +3 -1
  284. package/deps/rocksdb/rocksdb/memtable/skiplist.h +2 -2
  285. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +2 -4
  286. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +69 -8
  287. package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +32 -9
  288. package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +58 -45
  289. package/deps/rocksdb/rocksdb/monitoring/histogram.h +1 -1
  290. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -3
  291. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +5 -0
  292. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
  293. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +3 -2
  294. package/deps/rocksdb/rocksdb/options/cf_options.cc +44 -13
  295. package/deps/rocksdb/rocksdb/options/cf_options.h +21 -7
  296. package/deps/rocksdb/rocksdb/options/configurable.cc +5 -5
  297. package/deps/rocksdb/rocksdb/options/configurable_test.h +1 -2
  298. package/deps/rocksdb/rocksdb/options/customizable.cc +0 -1
  299. package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -11
  300. package/deps/rocksdb/rocksdb/options/db_options.cc +18 -15
  301. package/deps/rocksdb/rocksdb/options/db_options.h +2 -2
  302. package/deps/rocksdb/rocksdb/options/options.cc +296 -305
  303. package/deps/rocksdb/rocksdb/options/options_helper.cc +188 -62
  304. package/deps/rocksdb/rocksdb/options/options_helper.h +3 -3
  305. package/deps/rocksdb/rocksdb/options/options_parser.cc +2 -4
  306. package/deps/rocksdb/rocksdb/options/options_parser.h +0 -1
  307. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +17 -4
  308. package/deps/rocksdb/rocksdb/options/options_test.cc +101 -76
  309. package/deps/rocksdb/rocksdb/port/lang.h +2 -1
  310. package/deps/rocksdb/rocksdb/port/port_posix.cc +2 -1
  311. package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -4
  312. package/deps/rocksdb/rocksdb/port/win/env_win.cc +3 -2
  313. package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +99 -1
  314. package/deps/rocksdb/rocksdb/port/win/xpress_win.h +6 -0
  315. package/deps/rocksdb/rocksdb/src.mk +17 -11
  316. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +0 -1
  317. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1094 -929
  318. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +6 -19
  319. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +76 -22
  320. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +2 -0
  321. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +221 -131
  322. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +12 -9
  323. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +23 -24
  324. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -38
  325. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +7 -4
  326. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +5 -5
  327. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +10 -12
  328. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -4
  329. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +35 -43
  330. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +2 -1
  331. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
  332. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -2
  333. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +0 -4
  334. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +0 -1
  335. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +3 -3
  336. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -3
  337. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -4
  338. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +1 -1
  339. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -5
  340. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +4 -4
  341. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +37 -35
  342. package/deps/rocksdb/rocksdb/table/block_fetcher.h +11 -7
  343. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +4 -3
  344. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +31 -5
  345. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +2 -1
  346. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -1
  347. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +0 -1
  348. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +0 -1
  349. package/deps/rocksdb/rocksdb/table/external_table.cc +483 -0
  350. package/deps/rocksdb/rocksdb/table/format.cc +62 -44
  351. package/deps/rocksdb/rocksdb/table/format.h +35 -12
  352. package/deps/rocksdb/rocksdb/table/internal_iterator.h +3 -13
  353. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  354. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +6 -0
  355. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +150 -141
  356. package/deps/rocksdb/rocksdb/table/meta_blocks.h +5 -0
  357. package/deps/rocksdb/rocksdb/table/multiget_context.h +3 -2
  358. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +8 -0
  359. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +0 -1
  360. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +0 -2
  361. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +0 -2
  362. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +0 -1
  363. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +6 -6
  364. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
  365. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +86 -7
  366. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +88 -2
  367. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +0 -1
  368. package/deps/rocksdb/rocksdb/table/table_builder.h +10 -1
  369. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +3 -2
  370. package/deps/rocksdb/rocksdb/table/table_test.cc +899 -22
  371. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -4
  372. package/deps/rocksdb/rocksdb/test_util/testutil.h +132 -1
  373. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +0 -1
  374. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +0 -2
  375. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +163 -77
  376. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +0 -2
  377. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +0 -1
  378. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +0 -1
  379. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +120 -52
  380. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +1 -0
  381. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
  382. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +0 -2
  383. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +2 -2
  384. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +0 -2
  385. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +2 -1
  386. package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +94 -0
  387. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +0 -1
  388. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +0 -1
  389. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +1 -1
  390. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +2 -1
  391. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +3 -5
  392. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +1 -1
  393. package/deps/rocksdb/rocksdb/util/async_file_reader.h +15 -8
  394. package/deps/rocksdb/rocksdb/util/auto_skip_compressor.cc +131 -0
  395. package/deps/rocksdb/rocksdb/util/auto_skip_compressor.h +90 -0
  396. package/deps/rocksdb/rocksdb/util/autovector.h +1 -1
  397. package/deps/rocksdb/rocksdb/util/autovector_test.cc +2 -2
  398. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +0 -2
  399. package/deps/rocksdb/rocksdb/util/compression.cc +936 -4
  400. package/deps/rocksdb/rocksdb/util/compression.h +348 -232
  401. package/deps/rocksdb/rocksdb/util/compression_test.cc +229 -0
  402. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +10 -10
  403. package/deps/rocksdb/rocksdb/util/crc32c_ppc.c +1 -0
  404. package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -0
  405. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +1 -3
  406. package/deps/rocksdb/rocksdb/util/ppc-opcode.h +5 -5
  407. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +108 -0
  408. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +67 -0
  409. package/deps/rocksdb/rocksdb/util/slice_test.cc +83 -0
  410. package/deps/rocksdb/rocksdb/util/string_util.cc +0 -2
  411. package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
  412. package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
  413. package/deps/rocksdb/rocksdb/util/udt_util.cc +18 -5
  414. package/deps/rocksdb/rocksdb/util/udt_util.h +10 -7
  415. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +650 -154
  416. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +438 -144
  417. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -1
  418. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +0 -1
  419. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -1
  420. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +16 -17
  421. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +2 -1
  422. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -1
  423. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +0 -1
  424. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +7 -8
  425. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +4 -3
  426. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -1
  427. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +0 -1
  428. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +2 -2
  429. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
  430. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +0 -48
  431. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -1
  432. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -1
  433. package/deps/rocksdb/rocksdb/utilities/debug.cc +7 -14
  434. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +0 -1
  435. package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +0 -2
  436. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +0 -1
  437. package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +0 -2
  438. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -3
  439. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +10 -9
  440. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +0 -1
  441. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +0 -1
  442. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +1 -0
  443. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +0 -2
  444. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +0 -1
  445. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +0 -1
  446. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -1
  447. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -2
  448. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -2
  449. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -1
  450. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -2
  451. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +0 -2
  452. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -2
  453. package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +0 -2
  454. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -2
  455. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -1
  456. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -2
  457. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -1
  458. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -2
  459. package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +183 -32
  460. package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +258 -12
  461. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_helper.h +33 -0
  462. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_iterator.cc +99 -0
  463. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +280 -120
  464. package/deps/rocksdb/rocksdb/utilities/secondary_index/simple_secondary_index.cc +79 -0
  465. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +52 -16
  466. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +10 -6
  467. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +55 -0
  468. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +0 -1
  469. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -2
  470. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +0 -1
  471. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +37 -12
  472. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -0
  473. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +0 -2
  474. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -2
  475. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
  476. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +1 -1
  477. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  478. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +2 -1
  479. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +2 -2
  480. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -1
  481. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +0 -2
  482. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +1 -3
  483. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +36 -10
  484. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -7
  485. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +4 -5
  486. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -4
  487. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +1 -2
  488. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -2
  489. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -1
  490. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1118 -37
  491. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +4 -7
  492. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +0 -2
  493. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +0 -2
  494. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -3
  495. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1
  496. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +0 -2
  497. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +1 -2
  498. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +1 -2
  499. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -1
  500. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +0 -3
  501. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +125 -127
  502. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +45 -23
  503. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +54 -22
  504. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +477 -58
  505. package/deps/rocksdb/rocksdb.gyp +9 -4
  506. package/index.js +50 -9
  507. package/package.json +8 -1
  508. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  509. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
@@ -5,11 +5,11 @@
5
5
 
6
6
  #include "db/db_test_util.h"
7
7
  #include "port/stack_trace.h"
8
+ #include "rocksdb/merge_operator.h"
8
9
  #include "rocksdb/perf_context.h"
9
10
  #include "rocksdb/utilities/debug.h"
10
11
  #include "table/block_based/block_builder.h"
11
12
  #include "test_util/sync_point.h"
12
- #include "rocksdb/merge_operator.h"
13
13
  #include "utilities/fault_injection_env.h"
14
14
  #include "utilities/merge_operators.h"
15
15
  #include "utilities/merge_operators/sortlist.h"
@@ -120,8 +120,11 @@ TEST_F(DBMergeOperandTest, FlushedMergeOperandReadAfterFreeBug) {
120
120
 
121
121
  TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
122
122
  Options options = CurrentOptions();
123
+
124
+ int limit = 2;
123
125
  // Use only the latest two merge operands.
124
- options.merge_operator = std::make_shared<LimitedStringAppendMergeOp>(2, ',');
126
+ options.merge_operator =
127
+ std::make_shared<LimitedStringAppendMergeOp>(limit, ',');
125
128
  Reopen(options);
126
129
  int num_records = 4;
127
130
  int number_of_operands = 0;
@@ -263,6 +266,7 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
263
266
  ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
264
267
  "k3.2", values.data(), &merge_operands_info,
265
268
  &number_of_operands));
269
+ ASSERT_EQ(number_of_operands, 2);
266
270
  ASSERT_EQ(values[0], "cd");
267
271
  ASSERT_EQ(values[1], "de");
268
272
 
@@ -280,6 +284,7 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
280
284
  ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
281
285
  "k4", values.data(), &merge_operands_info,
282
286
  &number_of_operands));
287
+ ASSERT_EQ(number_of_operands, 4);
283
288
  ASSERT_EQ(values[0], "ba");
284
289
  ASSERT_EQ(values[1], "cb");
285
290
  ASSERT_EQ(values[2], "dc");
@@ -299,9 +304,26 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBasic) {
299
304
  ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
300
305
  "k5", values.data(), &merge_operands_info,
301
306
  &number_of_operands));
307
+ ASSERT_EQ(number_of_operands, 4);
302
308
  ASSERT_EQ(values[0], "remember");
303
309
  ASSERT_EQ(values[1], "i");
304
310
  ASSERT_EQ(values[2], "am");
311
+ ASSERT_EQ(values[3], "rocks");
312
+
313
+ // GetMergeOperands() in ReadOnly DB
314
+ ASSERT_OK(Merge("k6", "better"));
315
+ ASSERT_OK(Merge("k6", "call"));
316
+ ASSERT_OK(Merge("k6", "saul"));
317
+
318
+ ASSERT_OK(ReadOnlyReopen(options));
319
+ std::vector<PinnableSlice> readonly_values(num_records);
320
+ ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
321
+ "k6", readonly_values.data(),
322
+ &merge_operands_info, &number_of_operands));
323
+ ASSERT_EQ(number_of_operands, 3);
324
+ ASSERT_EQ(readonly_values[0], "better");
325
+ ASSERT_EQ(readonly_values[1], "call");
326
+ ASSERT_EQ(readonly_values[2], "saul");
305
327
  }
306
328
 
307
329
  TEST_F(DBMergeOperandTest, BlobDBGetMergeOperandsBasic) {
@@ -577,6 +599,42 @@ TEST_F(DBMergeOperandTest, GetMergeOperandsBaseDeletionInImmMem) {
577
599
  }
578
600
  }
579
601
 
602
+ TEST_F(DBMergeOperandTest, GetMergeOperandCallbackStopAtImm) {
603
+ Options options = CurrentOptions();
604
+ options.max_write_buffer_number = 10;
605
+ options.merge_operator = MergeOperators::CreateStringAppendOperator();
606
+ DestroyAndReopen(options);
607
+
608
+ Random rnd(301);
609
+ ASSERT_OK(db_->PauseBackgroundWork());
610
+ ASSERT_OK(Merge("key", "v1"));
611
+ ASSERT_OK(dbfull()->TEST_SwitchMemtable());
612
+ // Keep this merge in an immutable memtable
613
+ uint64_t num_imm = 0;
614
+ ASSERT_TRUE(
615
+ db_->GetIntProperty(DB::Properties::kNumImmutableMemTable, &num_imm));
616
+ ASSERT_EQ(num_imm, 1);
617
+ ASSERT_OK(Merge("key", "v2"));
618
+
619
+ std::vector<PinnableSlice> merge_operands(2);
620
+ GetMergeOperandsOptions merge_operands_info;
621
+ merge_operands_info.expected_max_number_of_operands = 2;
622
+ int num_fetched = 0;
623
+ merge_operands_info.continue_cb = [&num_fetched](Slice /* value */) {
624
+ num_fetched++;
625
+ // Stop in the first immutable memtable.
626
+ return num_fetched < 2;
627
+ };
628
+ int num_merge_operands = 0;
629
+ ASSERT_OK(db_->GetMergeOperands(ReadOptions(), db_->DefaultColumnFamily(),
630
+ "key", merge_operands.data(),
631
+ &merge_operands_info, &num_merge_operands));
632
+ ASSERT_EQ(2, num_merge_operands);
633
+ ASSERT_EQ(2, num_fetched);
634
+
635
+ ASSERT_EQ("v1", merge_operands[0]);
636
+ ASSERT_EQ("v2", merge_operands[1]);
637
+ }
580
638
  } // namespace ROCKSDB_NAMESPACE
581
639
 
582
640
  int main(int argc, char** argv) {
@@ -120,6 +120,10 @@ TEST_F(DBMergeOperatorTest, LimitMergeOperands) {
120
120
  ASSERT_OK(Merge("k3", "de"));
121
121
  ASSERT_OK(db_->Get(ReadOptions(), "k3", &value));
122
122
  ASSERT_EQ(value, "cd,de");
123
+ // Tests that merge operands reach exact limit at memtable.
124
+ ASSERT_OK(Merge("k3", "fg"));
125
+ ASSERT_OK(db_->Get(ReadOptions(), "k3", &value));
126
+ ASSERT_EQ(value, "de,fg");
123
127
 
124
128
  // All K4 values are in different levels
125
129
  ASSERT_OK(Merge("k4", "ab"));
@@ -967,7 +971,7 @@ TEST_F(DBMergeOperatorTest, MaxSuccessiveMergesBaseValues) {
967
971
 
968
972
  // No base value
969
973
  {
970
- constexpr char key[] = "key1";
974
+ const std::string key = "key1";
971
975
 
972
976
  ASSERT_OK(db_->Merge(WriteOptions(), db_->DefaultColumnFamily(), key, foo));
973
977
  ASSERT_OK(db_->Merge(WriteOptions(), db_->DefaultColumnFamily(), key, bar));
@@ -990,7 +994,7 @@ TEST_F(DBMergeOperatorTest, MaxSuccessiveMergesBaseValues) {
990
994
 
991
995
  // Plain base value
992
996
  {
993
- constexpr char key[] = "key2";
997
+ const std::string key = "key2";
994
998
 
995
999
  ASSERT_OK(db_->Put(WriteOptions(), db_->DefaultColumnFamily(), key, foo));
996
1000
  ASSERT_OK(db_->Merge(WriteOptions(), db_->DefaultColumnFamily(), key, bar));
@@ -1015,7 +1019,7 @@ TEST_F(DBMergeOperatorTest, MaxSuccessiveMergesBaseValues) {
1015
1019
 
1016
1020
  // Wide-column base value
1017
1021
  {
1018
- constexpr char key[] = "key3";
1022
+ const std::string key = "key3";
1019
1023
  const WideColumns columns{{kDefaultWideColumnName, foo}, {bar, baz}};
1020
1024
 
1021
1025
  ASSERT_OK(db_->PutEntity(WriteOptions(), db_->DefaultColumnFamily(), key,
@@ -70,7 +70,8 @@ class DBOptionsTest : public DBTestBase {
70
70
  options.env = env_;
71
71
  ImmutableDBOptions db_options(options);
72
72
  test::RandomInitCFOptions(&options, options, rnd);
73
- auto sanitized_options = SanitizeOptions(db_options, options);
73
+ auto sanitized_options =
74
+ SanitizeCfOptions(db_options, /*read_only*/ false, options);
74
75
  auto opt_map = GetMutableCFOptionsMap(sanitized_options);
75
76
  delete options.compaction_filter;
76
77
  return opt_map;
@@ -321,31 +322,26 @@ TEST_F(DBOptionsTest, SetWithCustomMemTableFactory) {
321
322
  }
322
323
  Options options;
323
324
  options.create_if_missing = true;
324
- // Try with fail_if_options_file_error=false/true to update the options
325
- for (bool on_error : {false, true}) {
326
- options.fail_if_options_file_error = on_error;
327
- options.env = env_;
328
- options.disable_auto_compactions = false;
329
-
330
- options.memtable_factory.reset(new DummySkipListFactory());
331
- Reopen(options);
332
-
333
- ColumnFamilyHandle* cfh = dbfull()->DefaultColumnFamily();
334
- ASSERT_OK(
335
- dbfull()->SetOptions(cfh, {{"disable_auto_compactions", "true"}}));
336
- ColumnFamilyDescriptor cfd;
337
- ASSERT_OK(cfh->GetDescriptor(&cfd));
338
- ASSERT_STREQ(cfd.options.memtable_factory->Name(),
339
- DummySkipListFactory::kClassName());
340
- ColumnFamilyHandle* test = nullptr;
341
- ASSERT_OK(dbfull()->CreateColumnFamily(options, "test", &test));
342
- ASSERT_OK(test->GetDescriptor(&cfd));
343
- ASSERT_STREQ(cfd.options.memtable_factory->Name(),
344
- DummySkipListFactory::kClassName());
345
-
346
- ASSERT_OK(dbfull()->DropColumnFamily(test));
347
- delete test;
348
- }
325
+ options.env = env_;
326
+ options.disable_auto_compactions = false;
327
+
328
+ options.memtable_factory.reset(new DummySkipListFactory());
329
+ Reopen(options);
330
+
331
+ ColumnFamilyHandle* cfh = dbfull()->DefaultColumnFamily();
332
+ ASSERT_OK(dbfull()->SetOptions(cfh, {{"disable_auto_compactions", "true"}}));
333
+ ColumnFamilyDescriptor cfd;
334
+ ASSERT_OK(cfh->GetDescriptor(&cfd));
335
+ ASSERT_STREQ(cfd.options.memtable_factory->Name(),
336
+ DummySkipListFactory::kClassName());
337
+ ColumnFamilyHandle* test = nullptr;
338
+ ASSERT_OK(dbfull()->CreateColumnFamily(options, "test", &test));
339
+ ASSERT_OK(test->GetDescriptor(&cfd));
340
+ ASSERT_STREQ(cfd.options.memtable_factory->Name(),
341
+ DummySkipListFactory::kClassName());
342
+
343
+ ASSERT_OK(dbfull()->DropColumnFamily(test));
344
+ delete test;
349
345
  }
350
346
 
351
347
  TEST_F(DBOptionsTest, SetBytesPerSync) {
@@ -1451,7 +1447,6 @@ TEST_F(DBOptionsTest, ChangeCompression) {
1451
1447
  SyncPoint::GetInstance()->DisableProcessing();
1452
1448
  }
1453
1449
 
1454
-
1455
1450
  TEST_F(DBOptionsTest, BottommostCompressionOptsWithFallbackType) {
1456
1451
  // Verify the bottommost compression options still take effect even when the
1457
1452
  // bottommost compression type is left at its default value. Verify for both
@@ -1596,6 +1591,69 @@ TEST_F(DBOptionsTest, TempOptionsFailTest) {
1596
1591
  ASSERT_FALSE(found_temp_file);
1597
1592
  }
1598
1593
 
1594
+ TEST_F(DBOptionsTest, SetOptionsNoManifestWrite) {
1595
+ ASSERT_OK(Put("x", "x"));
1596
+ ASSERT_OK(Flush());
1597
+
1598
+ // In addition to checking manifest file, we want to ensure that SetOptions
1599
+ // is essentially atomic, without releasing the DB mutex between applying
1600
+ // the options to the cfd and installing new Version and SuperVersion. We
1601
+ // probabilistically verify that by attempting to catch an inconsistency.
1602
+ auto* const cfd =
1603
+ static_cast<ColumnFamilyHandleImpl*>(db_->DefaultColumnFamily())->cfd();
1604
+ SyncPoint::GetInstance()->DisableProcessing();
1605
+ SyncPoint::GetInstance()->ClearAllCallBacks();
1606
+ std::optional<std::thread> t;
1607
+ SyncPoint::GetInstance()->SetCallBack(
1608
+ "VersionSet::LogAndApply:WakeUpAndNotDone", [&](void* arg) {
1609
+ auto* mu = static_cast<InstrumentedMutex*>(arg);
1610
+ // Option not yet modified
1611
+ ASSERT_FALSE(cfd->GetLatestMutableCFOptions().disable_auto_compactions);
1612
+ ASSERT_FALSE(
1613
+ cfd->current()->GetMutableCFOptions().disable_auto_compactions);
1614
+ ASSERT_FALSE(
1615
+ cfd->GetCurrentMutableCFOptions().disable_auto_compactions);
1616
+ t = std::thread([mu, cfd]() {
1617
+ InstrumentedMutexLock l(mu);
1618
+ // Assuming above correctness, we can only acquire the mutex after
1619
+ // options fully installed.
1620
+ ASSERT_TRUE(
1621
+ cfd->GetLatestMutableCFOptions().disable_auto_compactions);
1622
+ ASSERT_TRUE(
1623
+ cfd->current()->GetMutableCFOptions().disable_auto_compactions);
1624
+ ASSERT_TRUE(
1625
+ cfd->GetCurrentMutableCFOptions().disable_auto_compactions);
1626
+ });
1627
+ });
1628
+ SyncPoint::GetInstance()->EnableProcessing();
1629
+
1630
+ // Baseline manifest file info
1631
+ std::vector<std::string> live_files;
1632
+ uint64_t orig_manifest_file_size;
1633
+ ASSERT_OK(dbfull()->GetLiveFiles(live_files, &orig_manifest_file_size));
1634
+ uint64_t orig_manifest_file_num = dbfull()->TEST_Current_Manifest_FileNo();
1635
+
1636
+ // Although this test mostly concerns SetOptions, we also include SetDBOptions
1637
+ // just for the added scope
1638
+ ASSERT_OK(db_->SetDBOptions({{"max_open_files", "100"}}));
1639
+ ASSERT_OK(db_->SetOptions({{"disable_auto_compactions", "true"}}));
1640
+
1641
+ // Verify that our above check was activated and completed
1642
+ ASSERT_TRUE(t.has_value());
1643
+ t->join();
1644
+ SyncPoint::GetInstance()->DisableProcessing();
1645
+ SyncPoint::GetInstance()->ClearAllCallBacks();
1646
+
1647
+ // Verify manifest was not written to
1648
+ uint64_t new_manifest_file_size;
1649
+ ASSERT_OK(dbfull()->GetLiveFiles(live_files, &new_manifest_file_size));
1650
+ uint64_t new_manifest_file_num = dbfull()->TEST_Current_Manifest_FileNo();
1651
+ ASSERT_EQ(orig_manifest_file_num, new_manifest_file_num);
1652
+ ASSERT_EQ(orig_manifest_file_size, new_manifest_file_size);
1653
+
1654
+ ASSERT_EQ(Get("x"), "x");
1655
+ }
1656
+
1599
1657
  } // namespace ROCKSDB_NAMESPACE
1600
1658
 
1601
1659
  int main(int argc, char** argv) {
@@ -377,6 +377,8 @@ TEST_F(DBPropertiesTest, AggregatedTableProperties) {
377
377
  NewBloomFilterPolicy(kBloomBitsPerKey, false));
378
378
  table_options.block_size = 1024;
379
379
  options.table_factory.reset(NewBlockBasedTableFactory(table_options));
380
+ // The checks assume kTableCount number of files
381
+ options.disable_auto_compactions = true;
380
382
 
381
383
  DestroyAndReopen(options);
382
384
 
@@ -567,7 +569,7 @@ TEST_F(DBPropertiesTest, AggregatedTablePropertiesAtLevel) {
567
569
  options.target_file_size_base = 8192;
568
570
  options.max_bytes_for_level_base = 10000;
569
571
  options.max_bytes_for_level_multiplier = 2;
570
- // This ensures there no compaction happening when we call GetProperty().
572
+ // The checks assume kTableCount number of files
571
573
  options.disable_auto_compactions = true;
572
574
  options.merge_operator.reset(new TestPutOperator());
573
575
 
@@ -226,7 +226,6 @@ TEST_P(DBRateLimiterOnReadTest, Iterator) {
226
226
  ASSERT_EQ(expected, options_.rate_limiter->GetTotalRequests(Env::IO_USER));
227
227
  }
228
228
 
229
-
230
229
  TEST_P(DBRateLimiterOnReadTest, VerifyChecksum) {
231
230
  if (use_direct_io_ && !IsDirectIOSupported()) {
232
231
  return;
@@ -271,7 +270,6 @@ TEST_P(DBRateLimiterOnReadTest, VerifyFileChecksums) {
271
270
  ASSERT_EQ(expected, options_.rate_limiter->GetTotalRequests(Env::IO_USER));
272
271
  }
273
272
 
274
-
275
273
  class DBRateLimiterOnWriteTest : public DBTestBase {
276
274
  public:
277
275
  explicit DBRateLimiterOnWriteTest()
@@ -14,10 +14,9 @@
14
14
  #include "rocksdb/utilities/transaction_db.h"
15
15
  #include "test_util/sync_point.h"
16
16
  #include "test_util/testutil.h"
17
- #include "utilities/fault_injection_env.h"
17
+ #include "utilities/merge_operators/string_append/stringappend2.h"
18
18
 
19
19
  namespace ROCKSDB_NAMESPACE {
20
-
21
20
  class DBSecondaryTestBase : public DBBasicTestWithTimestampBase {
22
21
  public:
23
22
  explicit DBSecondaryTestBase(const std::string& dbname)
@@ -161,6 +160,7 @@ TEST_F(DBSecondaryTest, NonExistingDb) {
161
160
  TEST_F(DBSecondaryTest, ReopenAsSecondary) {
162
161
  Options options;
163
162
  options.env = env_;
163
+ options.preserve_internal_time_seconds = 300;
164
164
  Reopen(options);
165
165
  ASSERT_OK(Put("foo", "foo_value"));
166
166
  ASSERT_OK(Put("bar", "bar_value"));
@@ -331,6 +331,43 @@ TEST_F(DBSecondaryTest, InternalCompactionMultiLevels) {
331
331
  // cfh, input1, &result));
332
332
  }
333
333
 
334
+ TEST_F(DBSecondaryTest, GetMergeOperands) {
335
+ Options options;
336
+ options.merge_operator = MergeOperators::CreateStringAppendOperator();
337
+ options.env = env_;
338
+ Reopen(options);
339
+
340
+ ASSERT_OK(Merge("k1", "v1"));
341
+ ASSERT_OK(Merge("k1", "v2"));
342
+ ASSERT_OK(Merge("k1", "v3"));
343
+ ASSERT_OK(Merge("k1", "v4"));
344
+
345
+ options.max_open_files = -1;
346
+ OpenSecondary(options);
347
+
348
+ ASSERT_OK(db_secondary_->TryCatchUpWithPrimary());
349
+
350
+ int num_records = 4;
351
+ int number_of_operands = 0;
352
+ std::vector<PinnableSlice> values(num_records);
353
+ GetMergeOperandsOptions merge_operands_info;
354
+ merge_operands_info.expected_max_number_of_operands = num_records;
355
+
356
+ auto cfh = db_secondary_->DefaultColumnFamily();
357
+
358
+ const Status s = db_secondary_->GetMergeOperands(
359
+ ReadOptions(), cfh, "k1", values.data(), &merge_operands_info,
360
+ &number_of_operands);
361
+ ASSERT_NOK(s);
362
+ ASSERT_TRUE(s.IsMergeInProgress());
363
+
364
+ ASSERT_EQ(number_of_operands, 4);
365
+ ASSERT_EQ(values[0].ToString(), "v1");
366
+ ASSERT_EQ(values[1].ToString(), "v2");
367
+ ASSERT_EQ(values[2].ToString(), "v3");
368
+ ASSERT_EQ(values[3].ToString(), "v4");
369
+ }
370
+
334
371
  TEST_F(DBSecondaryTest, InternalCompactionCompactedFiles) {
335
372
  Options options;
336
373
  options.env = env_;
@@ -471,6 +508,81 @@ TEST_F(DBSecondaryTest, OpenAsSecondary) {
471
508
  verify_db_func("new_foo_value", "new_bar_value");
472
509
  }
473
510
 
511
+ TEST_F(DBSecondaryTest, OptionsOverrideTest) {
512
+ Options options;
513
+ options.env = env_;
514
+ options.preserve_internal_time_seconds = 300;
515
+ options.compaction_readahead_size = 200;
516
+ options.blob_compaction_readahead_size = 100;
517
+ Reopen(options);
518
+
519
+ for (int i = 0; i < 3; ++i) {
520
+ ASSERT_OK(Put("foo", "foo_value" + std::to_string(i)));
521
+ ASSERT_OK(Put("bar", "bar_value" + std::to_string(i)));
522
+ ASSERT_OK(Flush());
523
+ }
524
+
525
+ CompactionServiceInput input;
526
+
527
+ ColumnFamilyMetaData meta;
528
+ db_->GetColumnFamilyMetaData(&meta);
529
+ for (auto& file : meta.levels[0].files) {
530
+ ASSERT_EQ(0, meta.levels[0].level);
531
+ input.input_files.push_back(file.name);
532
+ }
533
+ ASSERT_EQ(input.input_files.size(), 3);
534
+
535
+ input.output_level = 1;
536
+ input.options_file_number = dbfull()->GetVersionSet()->options_file_number();
537
+ input.cf_name = kDefaultColumnFamilyName;
538
+ ASSERT_OK(db_->GetDbIdentity(input.db_id));
539
+
540
+ ASSERT_EQ(db_->GetOptions().compaction_readahead_size, 200);
541
+ ASSERT_EQ(db_->GetOptions().blob_compaction_readahead_size, 100);
542
+
543
+ Close();
544
+
545
+ std::string compaction_input_binary;
546
+ ASSERT_OK(input.Write(&compaction_input_binary));
547
+ std::string compaction_result_binary;
548
+
549
+ CompactionServiceOptionsOverride override_options;
550
+ override_options.env = env_;
551
+ override_options.table_factory.reset(
552
+ NewBlockBasedTableFactory(BlockBasedTableOptions()));
553
+
554
+ ASSERT_OK(
555
+ StringToMap("compaction_readahead_size=8388608;"
556
+ "blob_compaction_readahead_size=4194304;"
557
+ "some_invalid_option=ignore_me;"
558
+ "env=this_should_not_fail;"
559
+ "max_open_files=100;", // this should be always overriden as
560
+ // -1 in remote compaction
561
+ &override_options.options_map));
562
+
563
+ bool verified = false;
564
+ ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->SetCallBack(
565
+ "DBImplSecondary::OpenAndCompact::AfterOpenAsSecondary:0",
566
+ [&](void* arg) {
567
+ auto secondary_db = static_cast<DB*>(arg);
568
+ auto secondary_db_options = secondary_db->GetOptions();
569
+ // DBOption
570
+ ASSERT_EQ(secondary_db_options.compaction_readahead_size, 8388608);
571
+ ASSERT_EQ(secondary_db_options.max_open_files, -1);
572
+ // CFOption
573
+ ASSERT_EQ(secondary_db_options.blob_compaction_readahead_size, 4194304);
574
+ verified = true;
575
+ });
576
+ SyncPoint::GetInstance()->EnableProcessing();
577
+
578
+ ASSERT_OK(DB::OpenAndCompact(OpenAndCompactOptions(), dbname_,
579
+ secondary_path_, compaction_input_binary,
580
+ &compaction_result_binary, override_options));
581
+ SyncPoint::GetInstance()->DisableProcessing();
582
+ SyncPoint::GetInstance()->ClearAllCallBacks();
583
+ ASSERT_TRUE(verified);
584
+ }
585
+
474
586
  namespace {
475
587
  class TraceFileEnv : public EnvWrapper {
476
588
  public:
@@ -1991,7 +1991,6 @@ TEST_F(DBSSTTest, DBWithSFMForBlobFilesAtomicFlush) {
1991
1991
  ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearAllCallBacks();
1992
1992
  }
1993
1993
 
1994
-
1995
1994
  } // namespace ROCKSDB_NAMESPACE
1996
1995
 
1997
1996
  int main(int argc, char** argv) {
@@ -198,7 +198,6 @@ TEST_F(DBStatisticsTest, ExcludeTickers) {
198
198
  ASSERT_GT(options.statistics->getTickerCount(BYTES_READ), 0);
199
199
  }
200
200
 
201
-
202
201
  TEST_F(DBStatisticsTest, VerifyChecksumReadStat) {
203
202
  Options options = CurrentOptions();
204
203
  options.file_checksum_gen_factory = GetFileChecksumGenCrc32cFactory();
@@ -25,7 +25,6 @@
25
25
  #include "util/atomic.h"
26
26
  #include "util/random.h"
27
27
 
28
-
29
28
  namespace ROCKSDB_NAMESPACE {
30
29
 
31
30
  // A helper function that ensures the table properties returned in
@@ -230,6 +229,56 @@ TEST_F(DBTablePropertiesTest, CreateOnDeletionCollectorFactory) {
230
229
  ASSERT_EQ(0.5, del_factory->GetDeletionRatio());
231
230
  }
232
231
 
232
+ TEST_F(DBTablePropertiesTest, GetPropertiesOfTablesByLevelTest) {
233
+ Random rnd(202);
234
+ Options options;
235
+ options.level_compaction_dynamic_level_bytes = false;
236
+ options.create_if_missing = true;
237
+ options.write_buffer_size = 4096;
238
+ options.max_write_buffer_number = 2;
239
+ options.level0_file_num_compaction_trigger = 2;
240
+ options.level0_slowdown_writes_trigger = 2;
241
+ options.level0_stop_writes_trigger = 2;
242
+ options.target_file_size_base = 2048;
243
+ options.max_bytes_for_level_base = 40960;
244
+ options.max_bytes_for_level_multiplier = 4;
245
+ options.hard_pending_compaction_bytes_limit = 16 * 1024;
246
+ options.num_levels = 8;
247
+ options.env = env_;
248
+
249
+ DestroyAndReopen(options);
250
+
251
+ // build a decent LSM
252
+ for (int i = 0; i < 10000; i++) {
253
+ EXPECT_OK(Put(test::RandomKey(&rnd, 5), rnd.RandomString(102)));
254
+ }
255
+ ASSERT_OK(Flush());
256
+ ASSERT_OK(dbfull()->TEST_WaitForCompact());
257
+ if (NumTableFilesAtLevel(0) == 0) {
258
+ EXPECT_OK(Put(test::RandomKey(&rnd, 5), rnd.RandomString(102)));
259
+ ASSERT_OK(Flush());
260
+ }
261
+
262
+ ASSERT_OK(db_->PauseBackgroundWork());
263
+
264
+ // Ensure that we have at least L0, L1 and L2
265
+ ASSERT_GT(NumTableFilesAtLevel(0), 0);
266
+ ASSERT_GT(NumTableFilesAtLevel(1), 0);
267
+ ASSERT_GT(NumTableFilesAtLevel(2), 0);
268
+ ColumnFamilyMetaData cf_meta;
269
+ db_->GetColumnFamilyMetaData(&cf_meta);
270
+ std::vector<std::unique_ptr<TablePropertiesCollection>> levels_props;
271
+ ASSERT_OK(db_->GetPropertiesOfTablesByLevel(db_->DefaultColumnFamily(),
272
+ &levels_props));
273
+ for (int i = 0; i < 8; i++) {
274
+ const std::unique_ptr<TablePropertiesCollection>& level_props =
275
+ levels_props[i];
276
+ ASSERT_EQ(level_props->size(), cf_meta.levels[i].files.size());
277
+ }
278
+
279
+ Close();
280
+ }
281
+
233
282
  // Test params:
234
283
  // 1) whether to enable user-defined timestamps
235
284
  class DBTablePropertiesInRangeTest : public DBTestBase,
@@ -293,7 +342,7 @@ class DBTablePropertiesInRangeTest : public DBTestBase,
293
342
  keys.reserve(range_size * 2);
294
343
  for (auto& r : ranges) {
295
344
  auto [start, limit] = MaybeAddTimestampsToRange(
296
- &r.start, &r.limit, ts_sz, &keys.emplace_back(), &keys.emplace_back(),
345
+ r.start, r.limit, ts_sz, &keys.emplace_back(), &keys.emplace_back(),
297
346
  /*exclusive_end=*/false);
298
347
  EXPECT_TRUE(start.has_value());
299
348
  EXPECT_TRUE(limit.has_value());
@@ -744,7 +793,6 @@ INSTANTIATE_TEST_CASE_P(DBTablePropertiesTest, DBTablePropertiesTest,
744
793
 
745
794
  } // namespace ROCKSDB_NAMESPACE
746
795
 
747
-
748
796
  int main(int argc, char** argv) {
749
797
  ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
750
798
  ::testing::InitGoogleTest(&argc, argv);
@@ -703,7 +703,6 @@ TEST_P(DBTestTailingIterator, SeekToFirstWithUpperBoundBug) {
703
703
 
704
704
  } // namespace ROCKSDB_NAMESPACE
705
705
 
706
-
707
706
  int main(int argc, char** argv) {
708
707
  ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
709
708
  ::testing::InitGoogleTest(&argc, argv);