@nxtedition/rocksdb 13.5.8 → 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 (508) hide show
  1. package/binding.cc +209 -2
  2. package/deps/rocksdb/rocksdb/BUCK +12 -0
  3. package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -0
  4. package/deps/rocksdb/rocksdb/Makefile +28 -23
  5. package/deps/rocksdb/rocksdb/cache/cache.cc +0 -1
  6. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +1 -2
  7. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +43 -39
  8. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -0
  9. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +0 -1
  10. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +2 -3
  11. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -2
  12. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +1 -3
  13. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +11 -1
  14. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +13 -5
  15. package/deps/rocksdb/rocksdb/crash_test.mk +61 -15
  16. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +136 -45
  17. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +34 -16
  18. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +10 -7
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -2
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +1 -0
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +12 -9
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +3 -4
  23. package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +2 -2
  24. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +3 -4
  25. package/deps/rocksdb/rocksdb/db/builder.cc +22 -8
  26. package/deps/rocksdb/rocksdb/db/builder.h +5 -4
  27. package/deps/rocksdb/rocksdb/db/c.cc +556 -15
  28. package/deps/rocksdb/rocksdb/db/c_test.c +133 -12
  29. package/deps/rocksdb/rocksdb/db/column_family.cc +114 -50
  30. package/deps/rocksdb/rocksdb/db/column_family.h +53 -36
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +6 -6
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +0 -1
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +95 -70
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +71 -51
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -86
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +26 -68
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +0 -122
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +453 -258
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +117 -92
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +0 -1
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +38 -38
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +24 -17
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +34 -45
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +32 -31
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -3
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +2 -1
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +10 -10
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +2 -1
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +82 -34
  51. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +267 -179
  52. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +4 -1
  53. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +273 -89
  54. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +300 -14
  55. package/deps/rocksdb/rocksdb/db/compaction/compaction_state.cc +4 -4
  56. package/deps/rocksdb/rocksdb/db/compaction/compaction_state.h +2 -2
  57. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +28 -23
  58. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +69 -51
  59. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +522 -245
  60. package/deps/rocksdb/rocksdb/db/convenience.cc +15 -4
  61. package/deps/rocksdb/rocksdb/db/corruption_test.cc +1 -3
  62. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +0 -2
  63. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +196 -17
  64. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +74 -62
  65. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +48 -0
  66. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +682 -250
  67. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +0 -1
  68. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +3 -4
  69. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +11 -16
  70. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +57 -0
  71. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +2 -2
  72. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -1
  73. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +540 -490
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +347 -188
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +584 -217
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +13 -9
  77. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -7
  78. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +40 -36
  79. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -3
  80. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +751 -372
  81. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +35 -32
  82. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +24 -2
  83. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +125 -63
  84. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +2 -2
  85. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +311 -196
  86. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +15 -5
  87. package/deps/rocksdb/rocksdb/db/db_iter.cc +42 -29
  88. package/deps/rocksdb/rocksdb/db/db_iter.h +96 -31
  89. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +3 -4
  90. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +168 -228
  91. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +454 -0
  92. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +8 -8
  93. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +0 -1
  94. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +90 -0
  95. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +60 -2
  96. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +7 -3
  97. package/deps/rocksdb/rocksdb/db/db_options_test.cc +85 -27
  98. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -1
  99. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +0 -2
  100. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +114 -2
  101. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +0 -1
  102. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +0 -1
  103. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +51 -3
  104. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +0 -1
  105. package/deps/rocksdb/rocksdb/db/db_test.cc +325 -18
  106. package/deps/rocksdb/rocksdb/db/db_test2.cc +644 -20
  107. package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
  108. package/deps/rocksdb/rocksdb/db/db_test_util.h +9 -0
  109. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +64 -45
  110. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +203 -14
  111. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +259 -30
  112. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +0 -1
  113. package/deps/rocksdb/rocksdb/db/db_write_test.cc +75 -1
  114. package/deps/rocksdb/rocksdb/db/dbformat.h +70 -6
  115. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +0 -190
  116. package/deps/rocksdb/rocksdb/db/error_handler.cc +22 -7
  117. package/deps/rocksdb/rocksdb/db/error_handler.h +16 -1
  118. package/deps/rocksdb/rocksdb/db/event_helpers.cc +41 -26
  119. package/deps/rocksdb/rocksdb/db/experimental.cc +4 -3
  120. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +464 -78
  121. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +166 -69
  122. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +54 -25
  123. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -3
  124. package/deps/rocksdb/rocksdb/db/flush_job.cc +98 -81
  125. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -9
  126. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +80 -84
  127. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  128. package/deps/rocksdb/rocksdb/db/forward_iterator.h +2 -2
  129. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +12 -19
  130. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +0 -2
  131. package/deps/rocksdb/rocksdb/db/internal_stats.cc +41 -15
  132. package/deps/rocksdb/rocksdb/db/internal_stats.h +63 -52
  133. package/deps/rocksdb/rocksdb/db/job_context.h +59 -24
  134. package/deps/rocksdb/rocksdb/db/listener_test.cc +69 -10
  135. package/deps/rocksdb/rocksdb/db/log_format.h +11 -2
  136. package/deps/rocksdb/rocksdb/db/log_reader.cc +147 -34
  137. package/deps/rocksdb/rocksdb/db/log_reader.h +40 -11
  138. package/deps/rocksdb/rocksdb/db/log_test.cc +16 -3
  139. package/deps/rocksdb/rocksdb/db/log_writer.cc +102 -55
  140. package/deps/rocksdb/rocksdb/db/log_writer.h +21 -2
  141. package/deps/rocksdb/rocksdb/db/malloc_stats.h +0 -2
  142. package/deps/rocksdb/rocksdb/db/memtable.cc +16 -47
  143. package/deps/rocksdb/rocksdb/db/memtable.h +76 -12
  144. package/deps/rocksdb/rocksdb/db/memtable_list.cc +23 -20
  145. package/deps/rocksdb/rocksdb/db/memtable_list.h +9 -11
  146. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +18 -37
  147. package/deps/rocksdb/rocksdb/db/merge_context.h +2 -1
  148. package/deps/rocksdb/rocksdb/db/merge_test.cc +8 -0
  149. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +3 -5
  150. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +15 -7
  151. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +6 -3
  152. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +22 -4
  153. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +41 -1
  154. package/deps/rocksdb/rocksdb/db/prefix_test.cc +0 -1
  155. package/deps/rocksdb/rocksdb/db/repair.cc +29 -34
  156. package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -1
  157. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +14 -15
  158. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +1 -3
  159. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +47 -1
  160. package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -3
  161. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +1 -3
  162. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +2 -1
  163. package/deps/rocksdb/rocksdb/db/version_builder.cc +2 -2
  164. package/deps/rocksdb/rocksdb/db/version_edit.cc +8 -37
  165. package/deps/rocksdb/rocksdb/db/version_edit.h +32 -1
  166. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +26 -18
  167. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -5
  168. package/deps/rocksdb/rocksdb/db/version_set.cc +282 -197
  169. package/deps/rocksdb/rocksdb/db/version_set.h +54 -57
  170. package/deps/rocksdb/rocksdb/db/version_set_test.cc +28 -35
  171. package/deps/rocksdb/rocksdb/db/version_util.h +2 -3
  172. package/deps/rocksdb/rocksdb/db/wal_manager.cc +3 -2
  173. package/deps/rocksdb/rocksdb/db/wal_manager.h +0 -1
  174. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +0 -1
  175. package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +1 -0
  176. package/deps/rocksdb/rocksdb/db/write_batch.cc +22 -8
  177. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +5 -4
  178. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +7 -6
  179. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -4
  180. package/deps/rocksdb/rocksdb/db/write_thread.h +3 -3
  181. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +13 -5
  182. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -2
  183. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_service.h +39 -0
  184. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compression_manager.h +65 -0
  185. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +45 -22
  186. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +7 -4
  187. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +22 -5
  188. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +28 -3
  189. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -38
  190. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +4 -3
  191. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +80 -32
  192. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +51 -2
  193. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +23 -1
  194. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +305 -15
  195. package/deps/rocksdb/rocksdb/env/env.cc +32 -2
  196. package/deps/rocksdb/rocksdb/env/env_encryption.cc +0 -2
  197. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -4
  198. package/deps/rocksdb/rocksdb/env/env_posix.cc +4 -2
  199. package/deps/rocksdb/rocksdb/env/env_test.cc +0 -1
  200. package/deps/rocksdb/rocksdb/env/fs_posix.cc +20 -11
  201. package/deps/rocksdb/rocksdb/env/fs_readonly.h +0 -2
  202. package/deps/rocksdb/rocksdb/env/fs_remap.cc +0 -2
  203. package/deps/rocksdb/rocksdb/env/fs_remap.h +0 -2
  204. package/deps/rocksdb/rocksdb/env/io_posix.cc +6 -4
  205. package/deps/rocksdb/rocksdb/env/io_posix.h +3 -2
  206. package/deps/rocksdb/rocksdb/env/mock_env.cc +0 -1
  207. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +2 -2
  208. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +0 -2
  209. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +0 -2
  210. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +30 -21
  211. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +16 -0
  212. package/deps/rocksdb/rocksdb/file/file_util.cc +32 -14
  213. package/deps/rocksdb/rocksdb/file/file_util.h +22 -5
  214. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +229 -76
  215. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +21 -12
  216. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +10 -7
  217. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +12 -8
  218. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +1 -2
  219. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +0 -2
  220. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +3 -3
  221. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +598 -0
  222. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_iterator.h +36 -0
  223. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +70 -11
  224. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +232 -11
  225. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -1
  226. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -1
  227. package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +149 -15
  228. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +17 -2
  229. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +132 -34
  230. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +158 -79
  231. package/deps/rocksdb/rocksdb/include/rocksdb/db_bench_tool.h +2 -1
  232. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +4 -5
  233. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -3
  234. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +5 -0
  235. package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +275 -0
  236. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +2 -1
  237. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +50 -5
  238. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +10 -0
  239. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +13 -0
  240. package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +0 -1
  241. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +5 -2
  242. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +13 -0
  243. package/deps/rocksdb/rocksdb/include/rocksdb/multi_scan.h +237 -0
  244. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +230 -39
  245. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +15 -0
  246. package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +31 -11
  247. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +41 -0
  248. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +1 -1
  249. package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +0 -1
  250. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +5 -1
  251. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +0 -1
  252. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +18 -3
  253. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +2 -0
  254. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +20 -8
  255. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +19 -2
  256. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -1
  257. package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +124 -0
  258. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +1 -0
  259. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +26 -1
  260. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +55 -6
  261. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +3 -5
  262. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -2
  263. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +1 -2
  264. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +0 -1
  265. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +1 -2
  266. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +0 -1
  267. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +96 -8
  268. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index_faiss.h +117 -0
  269. package/deps/rocksdb/rocksdb/{utilities/secondary_index/faiss_ivf_index.h → include/rocksdb/utilities/secondary_index_simple.h} +11 -14
  270. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +26 -11
  271. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +16 -3
  272. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -2
  273. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +63 -7
  274. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -1
  275. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +28 -12
  276. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +3 -3
  277. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +0 -2
  278. package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +1 -2
  279. package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
  280. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +0 -1
  281. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +0 -1
  282. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +3 -1
  283. package/deps/rocksdb/rocksdb/memtable/skiplist.h +2 -2
  284. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +2 -4
  285. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +69 -8
  286. package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +32 -9
  287. package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +58 -45
  288. package/deps/rocksdb/rocksdb/monitoring/histogram.h +1 -1
  289. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -3
  290. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +5 -0
  291. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
  292. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +3 -2
  293. package/deps/rocksdb/rocksdb/options/cf_options.cc +44 -13
  294. package/deps/rocksdb/rocksdb/options/cf_options.h +21 -7
  295. package/deps/rocksdb/rocksdb/options/configurable.cc +5 -5
  296. package/deps/rocksdb/rocksdb/options/configurable_test.h +1 -2
  297. package/deps/rocksdb/rocksdb/options/customizable.cc +0 -1
  298. package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -11
  299. package/deps/rocksdb/rocksdb/options/db_options.cc +18 -15
  300. package/deps/rocksdb/rocksdb/options/db_options.h +2 -2
  301. package/deps/rocksdb/rocksdb/options/options.cc +296 -305
  302. package/deps/rocksdb/rocksdb/options/options_helper.cc +188 -62
  303. package/deps/rocksdb/rocksdb/options/options_helper.h +3 -3
  304. package/deps/rocksdb/rocksdb/options/options_parser.cc +2 -4
  305. package/deps/rocksdb/rocksdb/options/options_parser.h +0 -1
  306. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +17 -4
  307. package/deps/rocksdb/rocksdb/options/options_test.cc +101 -76
  308. package/deps/rocksdb/rocksdb/port/lang.h +2 -1
  309. package/deps/rocksdb/rocksdb/port/port_posix.cc +2 -1
  310. package/deps/rocksdb/rocksdb/port/stack_trace.cc +5 -4
  311. package/deps/rocksdb/rocksdb/port/win/env_win.cc +3 -2
  312. package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +99 -1
  313. package/deps/rocksdb/rocksdb/port/win/xpress_win.h +6 -0
  314. package/deps/rocksdb/rocksdb/src.mk +17 -11
  315. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +0 -1
  316. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1094 -929
  317. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +6 -19
  318. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +76 -22
  319. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +2 -0
  320. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +221 -131
  321. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +12 -9
  322. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +23 -24
  323. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -38
  324. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +7 -4
  325. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +5 -5
  326. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +10 -12
  327. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -4
  328. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +35 -43
  329. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +2 -1
  330. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
  331. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -2
  332. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +0 -4
  333. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +0 -1
  334. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +3 -3
  335. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -3
  336. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -4
  337. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +1 -1
  338. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -5
  339. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +4 -4
  340. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +37 -35
  341. package/deps/rocksdb/rocksdb/table/block_fetcher.h +11 -7
  342. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +4 -3
  343. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +31 -5
  344. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +2 -1
  345. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -1
  346. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +0 -1
  347. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +0 -1
  348. package/deps/rocksdb/rocksdb/table/external_table.cc +483 -0
  349. package/deps/rocksdb/rocksdb/table/format.cc +62 -44
  350. package/deps/rocksdb/rocksdb/table/format.h +35 -12
  351. package/deps/rocksdb/rocksdb/table/internal_iterator.h +3 -13
  352. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  353. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +6 -0
  354. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +150 -141
  355. package/deps/rocksdb/rocksdb/table/meta_blocks.h +5 -0
  356. package/deps/rocksdb/rocksdb/table/multiget_context.h +3 -2
  357. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +8 -0
  358. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +0 -1
  359. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +0 -2
  360. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +0 -2
  361. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +0 -1
  362. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +6 -6
  363. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
  364. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +86 -7
  365. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +88 -2
  366. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +0 -1
  367. package/deps/rocksdb/rocksdb/table/table_builder.h +10 -1
  368. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +3 -2
  369. package/deps/rocksdb/rocksdb/table/table_test.cc +899 -22
  370. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -4
  371. package/deps/rocksdb/rocksdb/test_util/testutil.h +132 -1
  372. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +0 -1
  373. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +0 -2
  374. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +163 -77
  375. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +0 -2
  376. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +0 -1
  377. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +0 -1
  378. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +120 -52
  379. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +1 -0
  380. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
  381. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +0 -2
  382. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +2 -2
  383. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +0 -2
  384. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +2 -1
  385. package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +94 -0
  386. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +0 -1
  387. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +0 -1
  388. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +1 -1
  389. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +2 -1
  390. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +3 -5
  391. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +1 -1
  392. package/deps/rocksdb/rocksdb/util/async_file_reader.h +15 -8
  393. package/deps/rocksdb/rocksdb/util/auto_skip_compressor.cc +131 -0
  394. package/deps/rocksdb/rocksdb/util/auto_skip_compressor.h +90 -0
  395. package/deps/rocksdb/rocksdb/util/autovector.h +1 -1
  396. package/deps/rocksdb/rocksdb/util/autovector_test.cc +2 -2
  397. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +0 -2
  398. package/deps/rocksdb/rocksdb/util/compression.cc +936 -4
  399. package/deps/rocksdb/rocksdb/util/compression.h +348 -232
  400. package/deps/rocksdb/rocksdb/util/compression_test.cc +229 -0
  401. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +10 -10
  402. package/deps/rocksdb/rocksdb/util/crc32c_ppc.c +1 -0
  403. package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -0
  404. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +1 -3
  405. package/deps/rocksdb/rocksdb/util/ppc-opcode.h +5 -5
  406. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +108 -0
  407. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +67 -0
  408. package/deps/rocksdb/rocksdb/util/slice_test.cc +83 -0
  409. package/deps/rocksdb/rocksdb/util/string_util.cc +0 -2
  410. package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
  411. package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
  412. package/deps/rocksdb/rocksdb/util/udt_util.cc +18 -5
  413. package/deps/rocksdb/rocksdb/util/udt_util.h +10 -7
  414. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +650 -154
  415. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +438 -144
  416. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -1
  417. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +0 -1
  418. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -1
  419. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +16 -17
  420. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +2 -1
  421. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -1
  422. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +0 -1
  423. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +7 -8
  424. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +4 -3
  425. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -1
  426. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +0 -1
  427. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +2 -2
  428. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
  429. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +0 -48
  430. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -1
  431. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -1
  432. package/deps/rocksdb/rocksdb/utilities/debug.cc +7 -14
  433. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +0 -1
  434. package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +0 -2
  435. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +0 -1
  436. package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +0 -2
  437. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +5 -3
  438. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +10 -9
  439. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +0 -1
  440. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +0 -1
  441. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +1 -0
  442. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +0 -2
  443. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +0 -1
  444. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +0 -1
  445. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -1
  446. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -2
  447. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -2
  448. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -1
  449. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -2
  450. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +0 -2
  451. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -2
  452. package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +0 -2
  453. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -2
  454. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -1
  455. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -2
  456. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -1
  457. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -2
  458. package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +183 -32
  459. package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +258 -12
  460. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_helper.h +33 -0
  461. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_iterator.cc +99 -0
  462. package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +280 -120
  463. package/deps/rocksdb/rocksdb/utilities/secondary_index/simple_secondary_index.cc +79 -0
  464. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +52 -16
  465. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +10 -6
  466. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +55 -0
  467. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +0 -1
  468. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -2
  469. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +0 -1
  470. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +37 -12
  471. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +2 -0
  472. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +0 -2
  473. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -2
  474. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
  475. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +1 -1
  476. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  477. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +2 -1
  478. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +2 -2
  479. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -1
  480. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +0 -2
  481. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +1 -3
  482. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +36 -10
  483. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -7
  484. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +4 -5
  485. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -4
  486. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +1 -2
  487. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -2
  488. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -1
  489. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1118 -37
  490. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +4 -7
  491. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +0 -2
  492. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +0 -2
  493. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3 -3
  494. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1
  495. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +0 -2
  496. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +1 -2
  497. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +1 -2
  498. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -1
  499. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +0 -3
  500. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +125 -127
  501. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +45 -23
  502. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +54 -22
  503. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +477 -58
  504. package/deps/rocksdb/rocksdb.gyp +5 -0
  505. package/index.js +47 -2
  506. package/package.json +8 -1
  507. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  508. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
@@ -41,17 +41,14 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
41
41
  }
42
42
 
43
43
  compaction_input.cf_name = compaction->column_family_data()->GetName();
44
- compaction_input.snapshots = existing_snapshots_;
44
+ compaction_input.snapshots = job_context_->snapshot_seqs;
45
45
  compaction_input.has_begin = sub_compact->start.has_value();
46
46
  compaction_input.begin =
47
47
  compaction_input.has_begin ? sub_compact->start->ToString() : "";
48
48
  compaction_input.has_end = sub_compact->end.has_value();
49
49
  compaction_input.end =
50
50
  compaction_input.has_end ? sub_compact->end->ToString() : "";
51
- compaction_input.options_file_number =
52
- sub_compact->compaction->input_version()
53
- ->version_set()
54
- ->options_file_number();
51
+ compaction_input.options_file_number = options_file_number_;
55
52
 
56
53
  TEST_SYNC_POINT_CALLBACK(
57
54
  "CompactionServiceJob::ProcessKeyValueCompactionWithCompactionService",
@@ -77,15 +74,27 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
77
74
  compaction->column_family_data()->GetName().c_str(), job_id_,
78
75
  compaction_input.output_level, input_files_oss.str().c_str());
79
76
  CompactionServiceJobInfo info(
80
- dbname_, db_id_, db_session_id_, GetCompactionId(sub_compact),
77
+ dbname_, db_id_, db_session_id_,
78
+ compaction->column_family_data()->GetID(),
79
+ compaction->column_family_data()->GetName(), GetCompactionId(sub_compact),
81
80
  thread_pri_, compaction->compaction_reason(),
82
81
  compaction->is_full_compaction(), compaction->is_manual_compaction(),
83
- compaction->bottommost_level());
82
+ compaction->bottommost_level(), compaction->start_level(),
83
+ compaction->output_level());
84
+
84
85
  CompactionServiceScheduleResponse response =
85
86
  db_options_.compaction_service->Schedule(info, compaction_input_binary);
86
87
  switch (response.status) {
87
88
  case CompactionServiceJobStatus::kSuccess:
88
89
  break;
90
+ case CompactionServiceJobStatus::kAborted:
91
+ sub_compact->status =
92
+ Status::Aborted("Scheduling a remote compaction job was aborted");
93
+ ROCKS_LOG_WARN(
94
+ db_options_.info_log,
95
+ "[%s] [JOB %d] Remote compaction was aborted at Schedule()",
96
+ compaction->column_family_data()->GetName().c_str(), job_id_);
97
+ return response.status;
89
98
  case CompactionServiceJobStatus::kFailure:
90
99
  sub_compact->status = Status::Incomplete(
91
100
  "CompactionService failed to schedule a remote compaction job.");
@@ -105,6 +114,9 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
105
114
  break;
106
115
  }
107
116
 
117
+ std::string debug_str_before_wait =
118
+ compaction->input_version()->DebugString(/*hex=*/true);
119
+
108
120
  ROCKS_LOG_INFO(db_options_.info_log,
109
121
  "[%s] [JOB %d] Waiting for remote compaction...",
110
122
  compaction->column_family_data()->GetName().c_str(), job_id_);
@@ -113,6 +125,17 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
113
125
  db_options_.compaction_service->Wait(response.scheduled_job_id,
114
126
  &compaction_result_binary);
115
127
 
128
+ if (compaction_status != CompactionServiceJobStatus::kSuccess) {
129
+ ROCKS_LOG_ERROR(
130
+ db_options_.info_log,
131
+ "[%s] [JOB %d] Wait() status is not kSuccess. "
132
+ "\nDebugString Before Wait():\n%s"
133
+ "\nDebugString After Wait():\n%s",
134
+ compaction->column_family_data()->GetName().c_str(), job_id_,
135
+ debug_str_before_wait.c_str(),
136
+ compaction->input_version()->DebugString(/*hex=*/true).c_str());
137
+ }
138
+
116
139
  if (compaction_status == CompactionServiceJobStatus::kUseLocal) {
117
140
  ROCKS_LOG_INFO(
118
141
  db_options_.info_log,
@@ -121,6 +144,16 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
121
144
  return compaction_status;
122
145
  }
123
146
 
147
+ if (compaction_status == CompactionServiceJobStatus::kAborted) {
148
+ sub_compact->status =
149
+ Status::Aborted("Waiting a remote compaction job was aborted");
150
+ ROCKS_LOG_INFO(db_options_.info_log,
151
+ "[%s] [JOB %d] Remote compaction was aborted during Wait()",
152
+ compaction->column_family_data()->GetName().c_str(),
153
+ job_id_);
154
+ return compaction_status;
155
+ }
156
+
124
157
  CompactionServiceResult compaction_result;
125
158
  s = CompactionServiceResult::Read(compaction_result_binary,
126
159
  &compaction_result);
@@ -177,7 +210,7 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
177
210
  for (const auto& file : compaction_result.output_files) {
178
211
  uint64_t file_num = versions_->NewFileNumber();
179
212
  auto src_file = compaction_result.output_path + "/" + file.file_name;
180
- auto tgt_file = TableFileName(compaction->immutable_options()->cf_paths,
213
+ auto tgt_file = TableFileName(compaction->immutable_options().cf_paths,
181
214
  file_num, compaction->output_path_id());
182
215
  s = fs_->RenameFile(src_file, tgt_file, IOOptions(), nullptr);
183
216
  if (!s.ok()) {
@@ -188,14 +221,24 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
188
221
  }
189
222
 
190
223
  FileMetaData meta;
191
- uint64_t file_size;
192
- s = fs_->GetFileSize(tgt_file, IOOptions(), &file_size, nullptr);
224
+ uint64_t file_size = file.file_size;
225
+
226
+ // TODO - Clean this up in the next release.
227
+ // For backward compatibility - in case the remote worker does not populate
228
+ // the file_size yet. If missing, continue to populate this from the file
229
+ // system.
230
+ if (file_size == 0) {
231
+ s = fs_->GetFileSize(tgt_file, IOOptions(), &file_size, nullptr);
232
+ }
233
+
193
234
  if (!s.ok()) {
194
235
  sub_compact->status = s;
195
236
  db_options_.compaction_service->OnInstallation(
196
237
  response.scheduled_job_id, CompactionServiceJobStatus::kFailure);
197
238
  return CompactionServiceJobStatus::kFailure;
198
239
  }
240
+ assert(file_size > 0);
241
+
199
242
  meta.fd = FileDescriptor(file_num, compaction->output_path_id(), file_size,
200
243
  file.smallest_seqno, file.largest_seqno);
201
244
  meta.smallest.DecodeFrom(file.smallest_internal_key);
@@ -207,19 +250,35 @@ CompactionJob::ProcessKeyValueCompactionWithCompactionService(
207
250
  meta.file_checksum_func_name = file.file_checksum_func_name;
208
251
  meta.marked_for_compaction = file.marked_for_compaction;
209
252
  meta.unique_id = file.unique_id;
210
-
253
+ meta.temperature = file.file_temperature;
254
+ meta.tail_size =
255
+ FileMetaData::CalculateTailSize(file_size, file.table_properties);
211
256
  auto cfd = compaction->column_family_data();
212
- sub_compact->Current().AddOutput(std::move(meta),
213
- cfd->internal_comparator(), false, true,
214
- file.paranoid_hash);
215
- sub_compact->Current().UpdateTableProperties(file.table_properties);
257
+ CompactionOutputs* compaction_outputs =
258
+ sub_compact->Outputs(file.is_proximal_level_output);
259
+ assert(compaction_outputs);
260
+ compaction_outputs->AddOutput(std::move(meta), cfd->internal_comparator(),
261
+ false, true, file.paranoid_hash);
262
+ compaction_outputs->UpdateTableProperties(file.table_properties);
216
263
  }
264
+
265
+ // Set per-level stats
266
+ auto compaction_output_stats =
267
+ sub_compact->OutputStats(false /* is_proximal_level */);
268
+ assert(compaction_output_stats);
269
+ compaction_output_stats->Add(
270
+ compaction_result.internal_stats.output_level_stats);
271
+ if (compaction->SupportsPerKeyPlacement()) {
272
+ compaction_output_stats =
273
+ sub_compact->OutputStats(true /* is_proximal_level */);
274
+ assert(compaction_output_stats);
275
+ compaction_output_stats->Add(
276
+ compaction_result.internal_stats.proximal_level_stats);
277
+ }
278
+
279
+ // Set job stats
217
280
  sub_compact->compaction_job_stats = compaction_result.stats;
218
- sub_compact->Current().SetNumOutputRecords(
219
- compaction_result.stats.num_output_records);
220
- sub_compact->Current().SetNumOutputFiles(
221
- compaction_result.stats.num_output_files);
222
- sub_compact->Current().AddBytesWritten(compaction_result.bytes_written);
281
+
223
282
  RecordTick(stats_, REMOTE_COMPACT_READ_BYTES, compaction_result.bytes_read);
224
283
  RecordTick(stats_, REMOTE_COMPACT_WRITE_BYTES,
225
284
  compaction_result.bytes_written);
@@ -239,69 +298,51 @@ void CompactionServiceCompactionJob::RecordCompactionIOStats() {
239
298
  CompactionJob::RecordCompactionIOStats();
240
299
  }
241
300
 
242
- void CompactionServiceCompactionJob::UpdateCompactionJobStats(
243
- const InternalStats::CompactionStats& stats) const {
244
- compaction_job_stats_->elapsed_micros = stats.micros;
245
-
246
- // output information only in remote compaction
247
- compaction_job_stats_->total_output_bytes = stats.bytes_written;
248
- compaction_job_stats_->total_output_bytes_blob = stats.bytes_written_blob;
249
- compaction_job_stats_->num_output_records = stats.num_output_records;
250
- compaction_job_stats_->num_output_files = stats.num_output_files;
251
- compaction_job_stats_->num_output_files_blob = stats.num_output_files_blob;
252
- }
253
-
254
301
  CompactionServiceCompactionJob::CompactionServiceCompactionJob(
255
302
  int job_id, Compaction* compaction, const ImmutableDBOptions& db_options,
256
303
  const MutableDBOptions& mutable_db_options, const FileOptions& file_options,
257
304
  VersionSet* versions, const std::atomic<bool>* shutting_down,
258
305
  LogBuffer* log_buffer, FSDirectory* output_directory, Statistics* stats,
259
306
  InstrumentedMutex* db_mutex, ErrorHandler* db_error_handler,
260
- std::vector<SequenceNumber> existing_snapshots,
261
- std::shared_ptr<Cache> table_cache, EventLogger* event_logger,
262
- const std::string& dbname, const std::shared_ptr<IOTracer>& io_tracer,
307
+ JobContext* job_context, std::shared_ptr<Cache> table_cache,
308
+ EventLogger* event_logger, const std::string& dbname,
309
+ const std::shared_ptr<IOTracer>& io_tracer,
263
310
  const std::atomic<bool>& manual_compaction_canceled,
264
311
  const std::string& db_id, const std::string& db_session_id,
265
312
  std::string output_path,
266
313
  const CompactionServiceInput& compaction_service_input,
267
314
  CompactionServiceResult* compaction_service_result)
268
- : CompactionJob(
269
- job_id, compaction, db_options, mutable_db_options, file_options,
270
- versions, shutting_down, log_buffer, nullptr, output_directory,
271
- nullptr, stats, db_mutex, db_error_handler,
272
- std::move(existing_snapshots), kMaxSequenceNumber, nullptr, nullptr,
273
- std::move(table_cache), event_logger,
274
- compaction->mutable_cf_options()->paranoid_file_checks,
275
- compaction->mutable_cf_options()->report_bg_io_stats, dbname,
276
- &(compaction_service_result->stats), Env::Priority::USER, io_tracer,
277
- manual_compaction_canceled, db_id, db_session_id,
278
- compaction->column_family_data()->GetFullHistoryTsLow()),
315
+ : CompactionJob(job_id, compaction, db_options, mutable_db_options,
316
+ file_options, versions, shutting_down, log_buffer, nullptr,
317
+ output_directory, nullptr, stats, db_mutex,
318
+ db_error_handler, job_context, std::move(table_cache),
319
+ event_logger,
320
+ compaction->mutable_cf_options().paranoid_file_checks,
321
+ compaction->mutable_cf_options().report_bg_io_stats, dbname,
322
+ &(compaction_service_result->stats), Env::Priority::USER,
323
+ io_tracer, manual_compaction_canceled, db_id, db_session_id,
324
+ compaction->column_family_data()->GetFullHistoryTsLow()),
279
325
  output_path_(std::move(output_path)),
280
326
  compaction_input_(compaction_service_input),
281
327
  compaction_result_(compaction_service_result) {}
282
328
 
329
+ void CompactionServiceCompactionJob::Prepare() {
330
+ std::optional<Slice> begin;
331
+ if (compaction_input_.has_begin) {
332
+ begin = compaction_input_.begin;
333
+ }
334
+ std::optional<Slice> end;
335
+ if (compaction_input_.has_end) {
336
+ end = compaction_input_.end;
337
+ }
338
+ CompactionJob::Prepare(std::make_pair(begin, end));
339
+ }
340
+
283
341
  Status CompactionServiceCompactionJob::Run() {
284
342
  AutoThreadOperationStageUpdater stage_updater(
285
343
  ThreadStatus::STAGE_COMPACTION_RUN);
286
344
 
287
345
  auto* c = compact_->compaction;
288
- assert(c->column_family_data() != nullptr);
289
- const VersionStorageInfo* storage_info = c->input_version()->storage_info();
290
- assert(storage_info);
291
- assert(storage_info->NumLevelFiles(compact_->compaction->level()) > 0);
292
- write_hint_ = storage_info->CalculateSSTWriteHint(c->output_level());
293
-
294
- bottommost_level_ = c->bottommost_level();
295
-
296
- Slice begin = compaction_input_.begin;
297
- Slice end = compaction_input_.end;
298
- compact_->sub_compact_states.emplace_back(
299
- c,
300
- compaction_input_.has_begin ? std::optional<Slice>(begin)
301
- : std::optional<Slice>(),
302
- compaction_input_.has_end ? std::optional<Slice>(end)
303
- : std::optional<Slice>(),
304
- /*sub_job_id*/ 0);
305
346
 
306
347
  log_buffer_->FlushBufferToLog();
307
348
  LogCompaction();
@@ -317,15 +358,14 @@ Status CompactionServiceCompactionJob::Run() {
317
358
 
318
359
  ProcessKeyValueCompaction(sub_compact);
319
360
 
320
- compaction_stats_.stats.micros =
321
- db_options_.clock->NowMicros() - start_micros;
322
- compaction_stats_.stats.cpu_micros =
323
- sub_compact->compaction_job_stats.cpu_micros;
361
+ uint64_t elapsed_micros = db_options_.clock->NowMicros() - start_micros;
362
+ internal_stats_.SetMicros(elapsed_micros);
363
+ internal_stats_.AddCpuMicros(elapsed_micros);
324
364
 
325
365
  RecordTimeToHistogram(stats_, COMPACTION_TIME,
326
- compaction_stats_.stats.micros);
366
+ internal_stats_.output_level_stats.micros);
327
367
  RecordTimeToHistogram(stats_, COMPACTION_CPU_TIME,
328
- compaction_stats_.stats.cpu_micros);
368
+ internal_stats_.output_level_stats.cpu_micros);
329
369
 
330
370
  Status status = sub_compact->status;
331
371
  IOStatus io_s = sub_compact->io_status;
@@ -355,38 +395,45 @@ Status CompactionServiceCompactionJob::Run() {
355
395
 
356
396
  // Build Compaction Job Stats
357
397
 
358
- // 1. Aggregate CompactionOutputStats into Internal Compaction Stats
359
- // (compaction_stats_) and aggregate Compaction Job Stats
360
- // (compaction_job_stats_) from the sub compactions
361
- compact_->AggregateCompactionStats(compaction_stats_, *compaction_job_stats_);
362
-
363
- // 2. Update the Output information in the Compaction Job Stats with
364
- // aggregated Internal Compaction Stats.
365
- UpdateCompactionJobStats(compaction_stats_.stats);
366
-
367
- // 3. Set fields that are not propagated as part of aggregations above
398
+ // 1. Aggregate internal stats and job stats for all subcompactions
399
+ // internal stats: sub_compact.proximal_level_outputs_.stats and
400
+ // sub_compact.compaction_outputs_.stats into
401
+ // internal_stats_.output_level_stats and
402
+ // internal_stats_.proximal_level_stats
403
+ // job-level stats: sub_compact.compaction_job_stats into compact.job_stats_
404
+ //
405
+ // For remote compaction, there's only one subcompaction.
406
+ compact_->AggregateCompactionStats(internal_stats_, *job_stats_);
407
+
408
+ // 2. Update job-level output stats with the aggregated internal_stats_
409
+ // Please note that input stats will be updated by primary host when all
410
+ // subcompactions are finished
411
+ UpdateCompactionJobOutputStats(internal_stats_);
412
+ // and set fields that are not propagated as part of the update
368
413
  compaction_result_->stats.is_manual_compaction = c->is_manual_compaction();
369
414
  compaction_result_->stats.is_full_compaction = c->is_full_compaction();
370
415
  compaction_result_->stats.is_remote_compaction = true;
371
416
 
372
- // 4. Update IO Stats that are not part of the aggregations above (bytes_read,
373
- // bytes_written)
417
+ // 3. Update IO Stats that are not part of the the update above
418
+ // (bytes_read, bytes_written)
374
419
  RecordCompactionIOStats();
375
420
 
376
421
  // Build Output
422
+ compaction_result_->internal_stats = internal_stats_;
377
423
  compaction_result_->output_level = compact_->compaction->output_level();
378
424
  compaction_result_->output_path = output_path_;
379
425
  if (status.ok()) {
380
426
  for (const auto& output_file : sub_compact->GetOutputs()) {
381
427
  auto& meta = output_file.meta;
382
428
  compaction_result_->output_files.emplace_back(
383
- MakeTableFileName(meta.fd.GetNumber()), meta.fd.smallest_seqno,
384
- meta.fd.largest_seqno, meta.smallest.Encode().ToString(),
385
- meta.largest.Encode().ToString(), meta.oldest_ancester_time,
386
- meta.file_creation_time, meta.epoch_number, meta.file_checksum,
387
- meta.file_checksum_func_name, output_file.validator.GetHash(),
388
- meta.marked_for_compaction, meta.unique_id,
389
- *output_file.table_properties);
429
+ MakeTableFileName(meta.fd.GetNumber()), meta.fd.GetFileSize(),
430
+ meta.fd.smallest_seqno, meta.fd.largest_seqno,
431
+ meta.smallest.Encode().ToString(), meta.largest.Encode().ToString(),
432
+ meta.oldest_ancester_time, meta.file_creation_time, meta.epoch_number,
433
+ meta.file_checksum, meta.file_checksum_func_name,
434
+ output_file.validator.GetHash(), meta.marked_for_compaction,
435
+ meta.unique_id, *output_file.table_properties,
436
+ output_file.is_proximal_level, meta.temperature);
390
437
  }
391
438
  }
392
439
 
@@ -486,6 +533,10 @@ static std::unordered_map<std::string, OptionTypeInfo>
486
533
  {offsetof(struct CompactionServiceOutputFile, file_name),
487
534
  OptionType::kEncodedString, OptionVerificationType::kNormal,
488
535
  OptionTypeFlags::kNone}},
536
+ {"file_size",
537
+ {offsetof(struct CompactionServiceOutputFile, file_size),
538
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
539
+ OptionTypeFlags::kNone}},
489
540
  {"smallest_seqno",
490
541
  {offsetof(struct CompactionServiceOutputFile, smallest_seqno),
491
542
  OptionType::kUInt64T, OptionVerificationType::kNormal,
@@ -558,7 +609,16 @@ static std::unordered_map<std::string, OptionTypeInfo>
558
609
  const auto this_one = static_cast<const TableProperties*>(addr1);
559
610
  const auto that_one = static_cast<const TableProperties*>(addr2);
560
611
  return this_one->AreEqual(opts, that_one, mismatch);
561
- }}}};
612
+ }}},
613
+ {"is_proximal_level_output",
614
+ {offsetof(struct CompactionServiceOutputFile,
615
+ is_proximal_level_output),
616
+ OptionType::kBoolean, OptionVerificationType::kNormal,
617
+ OptionTypeFlags::kNone}},
618
+ {"file_temperature",
619
+ {offsetof(struct CompactionServiceOutputFile, file_temperature),
620
+ OptionType::kTemperature, OptionVerificationType::kNormal,
621
+ OptionTypeFlags::kNone}}};
562
622
 
563
623
  static std::unordered_map<std::string, OptionTypeInfo>
564
624
  compaction_job_stats_type_info = {
@@ -683,6 +743,125 @@ static std::unordered_map<std::string, OptionTypeInfo>
683
743
  OptionTypeFlags::kNone}},
684
744
  };
685
745
 
746
+ static std::unordered_map<std::string, OptionTypeInfo>
747
+ compaction_stats_type_info = {
748
+ {"micros",
749
+ {offsetof(struct InternalStats::CompactionStats, micros),
750
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
751
+ OptionTypeFlags::kNone}},
752
+ {"cpu_micros",
753
+ {offsetof(struct InternalStats::CompactionStats, cpu_micros),
754
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
755
+ OptionTypeFlags::kNone}},
756
+ {"bytes_read_non_output_levels",
757
+ {offsetof(struct InternalStats::CompactionStats,
758
+ bytes_read_non_output_levels),
759
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
760
+ OptionTypeFlags::kNone}},
761
+ {"bytes_read_output_level",
762
+ {offsetof(struct InternalStats::CompactionStats,
763
+ bytes_read_output_level),
764
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
765
+ OptionTypeFlags::kNone}},
766
+ {"bytes_skipped_non_output_levels",
767
+ {offsetof(struct InternalStats::CompactionStats,
768
+ bytes_skipped_non_output_levels),
769
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
770
+ OptionTypeFlags::kNone}},
771
+ {"bytes_skipped_output_level",
772
+ {offsetof(struct InternalStats::CompactionStats,
773
+ bytes_skipped_output_level),
774
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
775
+ OptionTypeFlags::kNone}},
776
+ {"bytes_read_blob",
777
+ {offsetof(struct InternalStats::CompactionStats, bytes_read_blob),
778
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
779
+ OptionTypeFlags::kNone}},
780
+ {"bytes_written",
781
+ {offsetof(struct InternalStats::CompactionStats, bytes_written),
782
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
783
+ OptionTypeFlags::kNone}},
784
+ {"bytes_written_blob",
785
+ {offsetof(struct InternalStats::CompactionStats, bytes_written_blob),
786
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
787
+ OptionTypeFlags::kNone}},
788
+ {"bytes_moved",
789
+ {offsetof(struct InternalStats::CompactionStats, bytes_moved),
790
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
791
+ OptionTypeFlags::kNone}},
792
+ {"num_input_files_in_non_output_levels",
793
+ {offsetof(struct InternalStats::CompactionStats,
794
+ num_input_files_in_non_output_levels),
795
+ OptionType::kInt, OptionVerificationType::kNormal,
796
+ OptionTypeFlags::kNone}},
797
+ {"num_input_files_in_output_level",
798
+ {offsetof(struct InternalStats::CompactionStats,
799
+ num_input_files_in_output_level),
800
+ OptionType::kInt, OptionVerificationType::kNormal,
801
+ OptionTypeFlags::kNone}},
802
+ {"num_filtered_input_files_in_non_output_levels",
803
+ {offsetof(struct InternalStats::CompactionStats,
804
+ num_filtered_input_files_in_non_output_levels),
805
+ OptionType::kInt, OptionVerificationType::kNormal,
806
+ OptionTypeFlags::kNone}},
807
+ {"num_filtered_input_files_in_output_level",
808
+ {offsetof(struct InternalStats::CompactionStats,
809
+ num_filtered_input_files_in_output_level),
810
+ OptionType::kInt, OptionVerificationType::kNormal,
811
+ OptionTypeFlags::kNone}},
812
+ {"num_output_files",
813
+ {offsetof(struct InternalStats::CompactionStats, num_output_files),
814
+ OptionType::kInt, OptionVerificationType::kNormal,
815
+ OptionTypeFlags::kNone}},
816
+ {"num_output_files_blob",
817
+ {offsetof(struct InternalStats::CompactionStats,
818
+ num_output_files_blob),
819
+ OptionType::kInt, OptionVerificationType::kNormal,
820
+ OptionTypeFlags::kNone}},
821
+ {"num_input_records",
822
+ {offsetof(struct InternalStats::CompactionStats, num_input_records),
823
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
824
+ OptionTypeFlags::kNone}},
825
+ {"num_dropped_records",
826
+ {offsetof(struct InternalStats::CompactionStats, num_dropped_records),
827
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
828
+ OptionTypeFlags::kNone}},
829
+ {"num_output_records",
830
+ {offsetof(struct InternalStats::CompactionStats, num_output_records),
831
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
832
+ OptionTypeFlags::kNone}},
833
+ {"count",
834
+ {offsetof(struct InternalStats::CompactionStats, count),
835
+ OptionType::kUInt64T, OptionVerificationType::kNormal,
836
+ OptionTypeFlags::kNone}},
837
+ {"counts", OptionTypeInfo::Array<
838
+ int, static_cast<int>(CompactionReason::kNumOfReasons)>(
839
+ offsetof(struct InternalStats::CompactionStats, counts),
840
+ OptionVerificationType::kNormal, OptionTypeFlags::kNone,
841
+ {0, OptionType::kInt})},
842
+ };
843
+
844
+ static std::unordered_map<std::string, OptionTypeInfo>
845
+ compaction_internal_stats_type_info = {
846
+ {"output_level_stats",
847
+ OptionTypeInfo::Struct(
848
+ "output_level_stats", &compaction_stats_type_info,
849
+ offsetof(struct InternalStats::CompactionStatsFull,
850
+ output_level_stats),
851
+ OptionVerificationType::kNormal, OptionTypeFlags::kNone)},
852
+ {"has_proximal_level_output",
853
+ {offsetof(struct InternalStats::CompactionStatsFull,
854
+ has_proximal_level_output),
855
+ OptionType::kBoolean, OptionVerificationType::kNormal,
856
+ OptionTypeFlags::kNone}},
857
+ {"proximal_level_stats",
858
+ OptionTypeInfo::Struct(
859
+ "proximal_level_stats", &compaction_stats_type_info,
860
+ offsetof(struct InternalStats::CompactionStatsFull,
861
+ proximal_level_stats),
862
+ OptionVerificationType::kNormal, OptionTypeFlags::kNone)},
863
+ };
864
+
686
865
  namespace {
687
866
  // this is a helper struct to serialize and deserialize class Status, because
688
867
  // Status's members are not public.
@@ -789,6 +968,11 @@ static std::unordered_map<std::string, OptionTypeInfo> cs_result_type_info = {
789
968
  "stats", &compaction_job_stats_type_info,
790
969
  offsetof(struct CompactionServiceResult, stats),
791
970
  OptionVerificationType::kNormal, OptionTypeFlags::kNone)},
971
+ {"internal_stats",
972
+ OptionTypeInfo::Struct(
973
+ "internal_stats", &compaction_internal_stats_type_info,
974
+ offsetof(struct CompactionServiceResult, internal_stats),
975
+ OptionVerificationType::kNormal, OptionTypeFlags::kNone)},
792
976
  };
793
977
 
794
978
  Status CompactionServiceInput::Read(const std::string& data_str,