rocksdb-native 2.6.3 → 2.6.4

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 (955) hide show
  1. package/CMakeLists.txt +10 -1
  2. package/package.json +3 -3
  3. package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
  4. package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
  5. package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
  6. package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
  7. package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
  8. package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
  9. package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
  10. package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
  11. package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
  12. package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
  13. package/prebuilds/linux-x64/rocksdb-native.node +0 -0
  14. package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
  15. package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
  16. package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
  17. package/prebuilds/win32-x64/rocksdb-native.node +0 -0
  18. package/vendor/librocksdb/CMakeLists.txt +0 -96
  19. package/vendor/librocksdb/LICENSE +0 -201
  20. package/vendor/librocksdb/NOTICE +0 -13
  21. package/vendor/librocksdb/README.md +0 -11
  22. package/vendor/librocksdb/include/rocksdb.h +0 -294
  23. package/vendor/librocksdb/src/rocksdb.cc +0 -714
  24. package/vendor/librocksdb/vendor/rocksdb/CMakeLists.txt +0 -1642
  25. package/vendor/librocksdb/vendor/rocksdb/cache/cache.cc +0 -193
  26. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench.cc +0 -20
  27. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench_tool.cc +0 -1177
  28. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.cc +0 -104
  29. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.h +0 -20
  30. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_stats.h +0 -182
  31. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.cc +0 -41
  32. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.h +0 -139
  33. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.cc +0 -364
  34. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.h +0 -143
  35. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.cc +0 -184
  36. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.h +0 -318
  37. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.cc +0 -111
  38. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.h +0 -61
  39. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.cc +0 -3657
  40. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.h +0 -1165
  41. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.cc +0 -414
  42. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.h +0 -151
  43. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.cc +0 -726
  44. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.h +0 -467
  45. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache.cc +0 -12
  46. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.cc +0 -743
  47. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.h +0 -103
  48. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.cc +0 -147
  49. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.h +0 -322
  50. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.cc +0 -125
  51. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.h +0 -158
  52. package/vendor/librocksdb/vendor/rocksdb/cache/typed_cache.h +0 -380
  53. package/vendor/librocksdb/vendor/rocksdb/cmake/RocksDBConfig.cmake.in +0 -54
  54. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.cc +0 -182
  55. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.h +0 -128
  56. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.cc +0 -20
  57. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.h +0 -83
  58. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_constants.h +0 -16
  59. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.cc +0 -42
  60. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.h +0 -60
  61. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_counting_iterator.h +0 -150
  62. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.cc +0 -34
  63. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.h +0 -37
  64. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.cc +0 -156
  65. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.h +0 -67
  66. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.cc +0 -429
  67. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.h +0 -113
  68. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.cc +0 -101
  69. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.h +0 -56
  70. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_completion_callback.h +0 -84
  71. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.cc +0 -134
  72. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.h +0 -57
  73. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.cc +0 -62
  74. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.h +0 -170
  75. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.cc +0 -622
  76. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.h +0 -111
  77. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.cc +0 -100
  78. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.h +0 -102
  79. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_index.h +0 -187
  80. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.cc +0 -143
  81. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.h +0 -164
  82. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.cc +0 -133
  83. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.h +0 -83
  84. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.cc +0 -207
  85. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.h +0 -87
  86. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_read_request.h +0 -58
  87. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.cc +0 -459
  88. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.h +0 -161
  89. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.cc +0 -23
  90. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.h +0 -38
  91. package/vendor/librocksdb/vendor/rocksdb/db/builder.cc +0 -517
  92. package/vendor/librocksdb/vendor/rocksdb/db/builder.h +0 -76
  93. package/vendor/librocksdb/vendor/rocksdb/db/c.cc +0 -7133
  94. package/vendor/librocksdb/vendor/rocksdb/db/c_test.c +0 -4052
  95. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.cc +0 -47
  96. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.h +0 -79
  97. package/vendor/librocksdb/vendor/rocksdb/db/column_family.cc +0 -1859
  98. package/vendor/librocksdb/vendor/rocksdb/db/column_family.h +0 -918
  99. package/vendor/librocksdb/vendor/rocksdb/db/compaction/clipping_iterator.h +0 -281
  100. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.cc +0 -995
  101. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.h +0 -602
  102. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iteration_stats.h +0 -56
  103. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.cc +0 -1523
  104. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.h +0 -557
  105. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.cc +0 -2155
  106. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.h +0 -520
  107. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.cc +0 -802
  108. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.h +0 -411
  109. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.cc +0 -1245
  110. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.h +0 -322
  111. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.cc +0 -478
  112. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.h +0 -61
  113. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.cc +0 -977
  114. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.h +0 -32
  115. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +0 -1578
  116. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.h +0 -29
  117. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_service_job.cc +0 -835
  118. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.cc +0 -46
  119. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.h +0 -42
  120. package/vendor/librocksdb/vendor/rocksdb/db/compaction/file_pri.h +0 -94
  121. package/vendor/librocksdb/vendor/rocksdb/db/compaction/sst_partitioner.cc +0 -83
  122. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.cc +0 -106
  123. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.h +0 -220
  124. package/vendor/librocksdb/vendor/rocksdb/db/convenience.cc +0 -101
  125. package/vendor/librocksdb/vendor/rocksdb/db/convenience_impl.h +0 -15
  126. package/vendor/librocksdb/vendor/rocksdb/db/db_filesnapshot.cc +0 -506
  127. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.cc +0 -275
  128. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.h +0 -147
  129. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.cc +0 -6767
  130. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.h +0 -3056
  131. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +0 -4390
  132. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_debug.cc +0 -327
  133. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_experimental.cc +0 -164
  134. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_files.cc +0 -1032
  135. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.cc +0 -348
  136. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.h +0 -54
  137. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_open.cc +0 -2325
  138. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.cc +0 -376
  139. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.h +0 -179
  140. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +0 -1025
  141. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.h +0 -322
  142. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_write.cc +0 -2624
  143. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.cc +0 -165
  144. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.h +0 -15
  145. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.cc +0 -1774
  146. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.h +0 -444
  147. package/vendor/librocksdb/vendor/rocksdb/db/db_test2.cc +0 -7839
  148. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.cc +0 -1800
  149. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.h +0 -1427
  150. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.cc +0 -96
  151. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.h +0 -126
  152. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.cc +0 -282
  153. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.h +0 -1101
  154. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.cc +0 -806
  155. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.h +0 -149
  156. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.cc +0 -332
  157. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.h +0 -78
  158. package/vendor/librocksdb/vendor/rocksdb/db/experimental.cc +0 -1212
  159. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +0 -1249
  160. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.h +0 -268
  161. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.cc +0 -216
  162. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.h +0 -140
  163. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.cc +0 -1217
  164. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.h +0 -240
  165. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.cc +0 -86
  166. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.h +0 -55
  167. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.cc +0 -1082
  168. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.h +0 -166
  169. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator_bench.cc +0 -378
  170. package/vendor/librocksdb/vendor/rocksdb/db/history_trimming_iterator.h +0 -95
  171. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.cc +0 -463
  172. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.h +0 -91
  173. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.cc +0 -2198
  174. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.h +0 -896
  175. package/vendor/librocksdb/vendor/rocksdb/db/job_context.h +0 -254
  176. package/vendor/librocksdb/vendor/rocksdb/db/kv_checksum.h +0 -484
  177. package/vendor/librocksdb/vendor/rocksdb/db/log_format.h +0 -55
  178. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.cc +0 -958
  179. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.h +0 -245
  180. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.cc +0 -355
  181. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.h +0 -151
  182. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.cc +0 -67
  183. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.h +0 -62
  184. package/vendor/librocksdb/vendor/rocksdb/db/lookup_key.h +0 -68
  185. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.cc +0 -52
  186. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.h +0 -22
  187. package/vendor/librocksdb/vendor/rocksdb/db/memtable.cc +0 -1684
  188. package/vendor/librocksdb/vendor/rocksdb/db/memtable.h +0 -712
  189. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.cc +0 -1028
  190. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.h +0 -514
  191. package/vendor/librocksdb/vendor/rocksdb/db/merge_context.h +0 -150
  192. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.cc +0 -699
  193. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.h +0 -318
  194. package/vendor/librocksdb/vendor/rocksdb/db/merge_operator.cc +0 -167
  195. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator_impl.h +0 -296
  196. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.cc +0 -29
  197. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.h +0 -45
  198. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.cc +0 -110
  199. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.h +0 -108
  200. package/vendor/librocksdb/vendor/rocksdb/db/pinned_iterators_manager.h +0 -92
  201. package/vendor/librocksdb/vendor/rocksdb/db/post_memtable_callback.h +0 -25
  202. package/vendor/librocksdb/vendor/rocksdb/db/pre_release_callback.h +0 -37
  203. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.cc +0 -553
  204. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.h +0 -481
  205. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator_bench.cc +0 -280
  206. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.cc +0 -515
  207. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.h +0 -361
  208. package/vendor/librocksdb/vendor/rocksdb/db/read_callback.h +0 -54
  209. package/vendor/librocksdb/vendor/rocksdb/db/repair.cc +0 -864
  210. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.cc +0 -573
  211. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.h +0 -307
  212. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_checker.h +0 -58
  213. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.cc +0 -25
  214. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.h +0 -239
  215. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.cc +0 -745
  216. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.h +0 -298
  217. package/vendor/librocksdb/vendor/rocksdb/db/table_cache_sync_and_async.h +0 -135
  218. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.cc +0 -74
  219. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.h +0 -185
  220. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.cc +0 -296
  221. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.h +0 -128
  222. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.cc +0 -54
  223. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.h +0 -46
  224. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.cc +0 -1431
  225. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.h +0 -93
  226. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.cc +0 -1119
  227. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.h +0 -769
  228. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.cc +0 -1264
  229. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.h +0 -390
  230. package/vendor/librocksdb/vendor/rocksdb/db/version_set.cc +0 -7562
  231. package/vendor/librocksdb/vendor/rocksdb/db/version_set.h +0 -1799
  232. package/vendor/librocksdb/vendor/rocksdb/db/version_set_sync_and_async.h +0 -169
  233. package/vendor/librocksdb/vendor/rocksdb/db/version_util.h +0 -77
  234. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.cc +0 -211
  235. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.h +0 -177
  236. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.cc +0 -539
  237. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.h +0 -138
  238. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.cc +0 -166
  239. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.h +0 -57
  240. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns.cc +0 -22
  241. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.cc +0 -52
  242. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.h +0 -40
  243. package/vendor/librocksdb/vendor/rocksdb/db/write_batch.cc +0 -3394
  244. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_base.cc +0 -94
  245. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_internal.h +0 -408
  246. package/vendor/librocksdb/vendor/rocksdb/db/write_callback.h +0 -27
  247. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.cc +0 -121
  248. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.h +0 -148
  249. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.cc +0 -179
  250. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.h +0 -47
  251. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.cc +0 -931
  252. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.h +0 -498
  253. package/vendor/librocksdb/vendor/rocksdb/env/composite_env.cc +0 -534
  254. package/vendor/librocksdb/vendor/rocksdb/env/composite_env_wrapper.h +0 -399
  255. package/vendor/librocksdb/vendor/rocksdb/env/emulated_clock.h +0 -114
  256. package/vendor/librocksdb/vendor/rocksdb/env/env.cc +0 -1253
  257. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.cc +0 -149
  258. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.h +0 -55
  259. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption.cc +0 -1192
  260. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption_ctr.h +0 -97
  261. package/vendor/librocksdb/vendor/rocksdb/env/env_posix.cc +0 -530
  262. package/vendor/librocksdb/vendor/rocksdb/env/file_system.cc +0 -278
  263. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.cc +0 -564
  264. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.h +0 -461
  265. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.cc +0 -331
  266. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.h +0 -139
  267. package/vendor/librocksdb/vendor/rocksdb/env/fs_posix.cc +0 -1285
  268. package/vendor/librocksdb/vendor/rocksdb/env/fs_readonly.h +0 -105
  269. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.cc +0 -341
  270. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.h +0 -137
  271. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.cc +0 -1738
  272. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.h +0 -517
  273. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.cc +0 -1058
  274. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.h +0 -144
  275. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.cc +0 -243
  276. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.h +0 -119
  277. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.cc +0 -513
  278. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.h +0 -200
  279. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.cc +0 -992
  280. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.h +0 -629
  281. package/vendor/librocksdb/vendor/rocksdb/file/file_util.cc +0 -308
  282. package/vendor/librocksdb/vendor/rocksdb/file/file_util.h +0 -123
  283. package/vendor/librocksdb/vendor/rocksdb/file/filename.cc +0 -538
  284. package/vendor/librocksdb/vendor/rocksdb/file/filename.h +0 -186
  285. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.cc +0 -73
  286. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.h +0 -60
  287. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.cc +0 -639
  288. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.h +0 -197
  289. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.cc +0 -33
  290. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.h +0 -31
  291. package/vendor/librocksdb/vendor/rocksdb/file/readahead_file_info.h +0 -33
  292. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.cc +0 -169
  293. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.h +0 -29
  294. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.cc +0 -324
  295. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.h +0 -127
  296. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.cc +0 -525
  297. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.h +0 -220
  298. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.cc +0 -1007
  299. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.h +0 -370
  300. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_cache.h +0 -665
  301. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_options.h +0 -1101
  302. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/attribute_groups.h +0 -114
  303. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/block_cache_trace_writer.h +0 -149
  304. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/c.h +0 -3122
  305. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache.h +0 -579
  306. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache_bench_tool.h +0 -14
  307. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cleanable.h +0 -128
  308. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_filter.h +0 -374
  309. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_job_stats.h +0 -112
  310. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/comparator.h +0 -231
  311. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compression_type.h +0 -186
  312. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/concurrent_task_limiter.h +0 -51
  313. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/configurable.h +0 -390
  314. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/convenience.h +0 -466
  315. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/customizable.h +0 -229
  316. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/data_structure.h +0 -186
  317. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db.h +0 -2174
  318. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_bench_tool.h +0 -11
  319. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_dump_tool.h +0 -43
  320. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_stress_tool.h +0 -11
  321. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env.h +0 -1920
  322. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env_encryption.h +0 -363
  323. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/experimental.h +0 -492
  324. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_checksum.h +0 -146
  325. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_system.h +0 -1961
  326. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/filter_policy.h +0 -211
  327. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/flush_block_policy.h +0 -75
  328. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/functor_wrapper.h +0 -56
  329. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/io_status.h +0 -244
  330. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iostats_context.h +0 -98
  331. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator.h +0 -104
  332. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator_base.h +0 -90
  333. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/ldb_tool.h +0 -42
  334. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/listener.h +0 -869
  335. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memory_allocator.h +0 -87
  336. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memtablerep.h +0 -421
  337. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/merge_operator.h +0 -337
  338. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/metadata.h +0 -258
  339. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/options.h +0 -2339
  340. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_context.h +0 -319
  341. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_level.h +0 -39
  342. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/persistent_cache.h +0 -74
  343. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/port_defs.h +0 -26
  344. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rate_limiter.h +0 -172
  345. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rocksdb_namespace.h +0 -16
  346. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/secondary_cache.h +0 -220
  347. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice.h +0 -264
  348. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice_transform.h +0 -135
  349. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/snapshot.h +0 -53
  350. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_dump_tool.h +0 -17
  351. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_manager.h +0 -139
  352. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_reader.h +0 -61
  353. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_writer.h +0 -203
  354. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_partitioner.h +0 -142
  355. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/statistics.h +0 -794
  356. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/stats_history.h +0 -70
  357. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/status.h +0 -609
  358. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/system_clock.h +0 -129
  359. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table.h +0 -938
  360. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_properties.h +0 -380
  361. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_reader_caller.h +0 -41
  362. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/thread_status.h +0 -197
  363. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/threadpool.h +0 -67
  364. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_reader_writer.h +0 -52
  365. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record.h +0 -248
  366. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record_result.h +0 -187
  367. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/transaction_log.h +0 -128
  368. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/types.h +0 -113
  369. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/unique_id.h +0 -55
  370. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/universal_compaction.h +0 -127
  371. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/user_write_callback.h +0 -29
  372. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/agg_merge.h +0 -138
  373. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/backup_engine.h +0 -689
  374. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +0 -144
  375. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +0 -65
  376. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/convenience.h +0 -10
  377. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -321
  378. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/db_ttl.h +0 -70
  379. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/debug.h +0 -46
  380. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -179
  381. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/info_log_finder.h +0 -19
  382. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +0 -338
  383. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +0 -75
  384. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/leveldb_options.h +0 -145
  385. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  386. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
  387. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/memory_util.h +0 -48
  388. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/object_registry.h +0 -583
  389. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +0 -129
  390. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +0 -24
  391. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_type.h +0 -1222
  392. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_util.h +0 -105
  393. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/replayer.h +0 -85
  394. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/sim_cache.h +0 -92
  395. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +0 -593
  396. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +0 -133
  397. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction.h +0 -765
  398. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +0 -510
  399. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -89
  400. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/types_util.h +0 -36
  401. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -402
  402. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/version.h +0 -43
  403. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wal_filter.h +0 -111
  404. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wide_columns.h +0 -303
  405. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch.h +0 -518
  406. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch_base.h +0 -165
  407. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_buffer_manager.h +0 -183
  408. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.cc +0 -366
  409. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.h +0 -165
  410. package/vendor/librocksdb/vendor/rocksdb/logging/env_logger.h +0 -195
  411. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.cc +0 -68
  412. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.h +0 -202
  413. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.cc +0 -91
  414. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.h +0 -57
  415. package/vendor/librocksdb/vendor/rocksdb/logging/logging.h +0 -62
  416. package/vendor/librocksdb/vendor/rocksdb/memory/allocator.h +0 -58
  417. package/vendor/librocksdb/vendor/rocksdb/memory/arena.cc +0 -170
  418. package/vendor/librocksdb/vendor/rocksdb/memory/arena.h +0 -146
  419. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.cc +0 -45
  420. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.h +0 -215
  421. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.cc +0 -304
  422. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.h +0 -99
  423. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.cc +0 -44
  424. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.h +0 -43
  425. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator.cc +0 -81
  426. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator_impl.h +0 -47
  427. package/vendor/librocksdb/vendor/rocksdb/memory/memory_usage.h +0 -38
  428. package/vendor/librocksdb/vendor/rocksdb/memtable/alloc_tracker.cc +0 -63
  429. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_linklist_rep.cc +0 -925
  430. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_skiplist_rep.cc +0 -392
  431. package/vendor/librocksdb/vendor/rocksdb/memtable/inlineskiplist.h +0 -1051
  432. package/vendor/librocksdb/vendor/rocksdb/memtable/memtablerep_bench.cc +0 -687
  433. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplist.h +0 -498
  434. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplistrep.cc +0 -368
  435. package/vendor/librocksdb/vendor/rocksdb/memtable/stl_wrappers.h +0 -33
  436. package/vendor/librocksdb/vendor/rocksdb/memtable/vectorrep.cc +0 -307
  437. package/vendor/librocksdb/vendor/rocksdb/memtable/write_buffer_manager.cc +0 -185
  438. package/vendor/librocksdb/vendor/rocksdb/monitoring/file_read_sample.h +0 -23
  439. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.cc +0 -280
  440. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.h +0 -143
  441. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.cc +0 -198
  442. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.h +0 -84
  443. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.cc +0 -50
  444. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.h +0 -74
  445. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.cc +0 -90
  446. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.h +0 -126
  447. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context.cc +0 -78
  448. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context_imp.h +0 -62
  449. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context.cc +0 -317
  450. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context_imp.h +0 -103
  451. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level.cc +0 -23
  452. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level_imp.h +0 -14
  453. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_step_timer.h +0 -77
  454. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.cc +0 -173
  455. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.h +0 -83
  456. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics.cc +0 -561
  457. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics_impl.h +0 -143
  458. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_impl.cc +0 -163
  459. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.cc +0 -328
  460. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.h +0 -226
  461. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater_debug.cc +0 -43
  462. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.cc +0 -214
  463. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.h +0 -139
  464. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util_debug.cc +0 -60
  465. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.cc +0 -1218
  466. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.h +0 -352
  467. package/vendor/librocksdb/vendor/rocksdb/options/configurable.cc +0 -720
  468. package/vendor/librocksdb/vendor/rocksdb/options/configurable_helper.h +0 -185
  469. package/vendor/librocksdb/vendor/rocksdb/options/configurable_test.h +0 -116
  470. package/vendor/librocksdb/vendor/rocksdb/options/customizable.cc +0 -133
  471. package/vendor/librocksdb/vendor/rocksdb/options/db_options.cc +0 -1113
  472. package/vendor/librocksdb/vendor/rocksdb/options/db_options.h +0 -160
  473. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.cc +0 -59
  474. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.h +0 -37
  475. package/vendor/librocksdb/vendor/rocksdb/options/options.cc +0 -717
  476. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.cc +0 -1438
  477. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.h +0 -115
  478. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.cc +0 -745
  479. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.h +0 -151
  480. package/vendor/librocksdb/vendor/rocksdb/port/jemalloc_helper.h +0 -107
  481. package/vendor/librocksdb/vendor/rocksdb/port/lang.h +0 -97
  482. package/vendor/librocksdb/vendor/rocksdb/port/likely.h +0 -18
  483. package/vendor/librocksdb/vendor/rocksdb/port/malloc.h +0 -17
  484. package/vendor/librocksdb/vendor/rocksdb/port/mmap.cc +0 -98
  485. package/vendor/librocksdb/vendor/rocksdb/port/mmap.h +0 -90
  486. package/vendor/librocksdb/vendor/rocksdb/port/port.h +0 -21
  487. package/vendor/librocksdb/vendor/rocksdb/port/port_dirent.h +0 -44
  488. package/vendor/librocksdb/vendor/rocksdb/port/port_example.h +0 -101
  489. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.cc +0 -300
  490. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.h +0 -246
  491. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.cc +0 -418
  492. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.h +0 -31
  493. package/vendor/librocksdb/vendor/rocksdb/port/sys_time.h +0 -63
  494. package/vendor/librocksdb/vendor/rocksdb/port/util_logger.h +0 -18
  495. package/vendor/librocksdb/vendor/rocksdb/port/win/env_default.cc +0 -45
  496. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.cc +0 -1436
  497. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.h +0 -305
  498. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.cc +0 -1101
  499. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.h +0 -504
  500. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.cc +0 -305
  501. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.h +0 -382
  502. package/vendor/librocksdb/vendor/rocksdb/port/win/win_jemalloc.cc +0 -80
  503. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.cc +0 -192
  504. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.h +0 -64
  505. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.cc +0 -170
  506. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.h +0 -117
  507. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.cc +0 -210
  508. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.h +0 -26
  509. package/vendor/librocksdb/vendor/rocksdb/port/xpress.h +0 -17
  510. package/vendor/librocksdb/vendor/rocksdb/rocksdb.pc.in +0 -10
  511. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.cc +0 -119
  512. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.h +0 -56
  513. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +0 -73
  514. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.h +0 -48
  515. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.cc +0 -1341
  516. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.h +0 -969
  517. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.cc +0 -2148
  518. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.h +0 -208
  519. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.cc +0 -980
  520. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.h +0 -102
  521. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +0 -893
  522. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.h +0 -445
  523. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.cc +0 -3296
  524. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.h +0 -785
  525. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -205
  526. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +0 -819
  527. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.cc +0 -266
  528. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.h +0 -128
  529. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.cc +0 -108
  530. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.h +0 -190
  531. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.cc +0 -158
  532. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.h +0 -74
  533. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.cc +0 -226
  534. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.h +0 -70
  535. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_type.h +0 -34
  536. package/vendor/librocksdb/vendor/rocksdb/table/block_based/cachable_entry.h +0 -249
  537. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.cc +0 -59
  538. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.h +0 -25
  539. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.cc +0 -94
  540. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.h +0 -137
  541. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block.h +0 -189
  542. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +0 -169
  543. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.h +0 -79
  544. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy.cc +0 -1989
  545. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy_internal.h +0 -341
  546. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy.cc +0 -132
  547. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy_impl.h +0 -40
  548. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.cc +0 -297
  549. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.h +0 -142
  550. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.cc +0 -146
  551. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.h +0 -49
  552. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.cc +0 -305
  553. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.h +0 -534
  554. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.cc +0 -62
  555. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.h +0 -94
  556. package/vendor/librocksdb/vendor/rocksdb/table/block_based/mock_block_based_table.h +0 -62
  557. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.cc +0 -23
  558. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.h +0 -47
  559. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +0 -610
  560. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.h +0 -188
  561. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.cc +0 -164
  562. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.h +0 -160
  563. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +0 -264
  564. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.h +0 -58
  565. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.cc +0 -64
  566. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.h +0 -36
  567. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +0 -118
  568. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +0 -60
  569. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.cc +0 -458
  570. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.h +0 -168
  571. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.cc +0 -370
  572. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.h +0 -45
  573. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.cc +0 -555
  574. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -136
  575. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.cc +0 -100
  576. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.h +0 -80
  577. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.cc +0 -416
  578. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.h +0 -100
  579. package/vendor/librocksdb/vendor/rocksdb/table/format.cc +0 -708
  580. package/vendor/librocksdb/vendor/rocksdb/table/format.h +0 -439
  581. package/vendor/librocksdb/vendor/rocksdb/table/get_context.cc +0 -622
  582. package/vendor/librocksdb/vendor/rocksdb/table/get_context.h +0 -259
  583. package/vendor/librocksdb/vendor/rocksdb/table/internal_iterator.h +0 -242
  584. package/vendor/librocksdb/vendor/rocksdb/table/iter_heap.h +0 -44
  585. package/vendor/librocksdb/vendor/rocksdb/table/iterator.cc +0 -134
  586. package/vendor/librocksdb/vendor/rocksdb/table/iterator_wrapper.h +0 -225
  587. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.cc +0 -1755
  588. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.h +0 -100
  589. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.cc +0 -590
  590. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.h +0 -181
  591. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.cc +0 -355
  592. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.h +0 -92
  593. package/vendor/librocksdb/vendor/rocksdb/table/multiget_context.h +0 -405
  594. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.cc +0 -110
  595. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.h +0 -46
  596. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_options.h +0 -34
  597. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.cc +0 -78
  598. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.h +0 -132
  599. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.cc +0 -348
  600. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.h +0 -151
  601. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.cc +0 -295
  602. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.h +0 -180
  603. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.cc +0 -211
  604. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.h +0 -246
  605. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.cc +0 -508
  606. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.h +0 -199
  607. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.cc +0 -778
  608. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.h +0 -243
  609. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.cc +0 -601
  610. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.h +0 -104
  611. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_reader.cc +0 -166
  612. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer.cc +0 -536
  613. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer_collectors.h +0 -97
  614. package/vendor/librocksdb/vendor/rocksdb/table/table_builder.h +0 -239
  615. package/vendor/librocksdb/vendor/rocksdb/table/table_factory.cc +0 -52
  616. package/vendor/librocksdb/vendor/rocksdb/table/table_iterator.h +0 -69
  617. package/vendor/librocksdb/vendor/rocksdb/table/table_properties.cc +0 -357
  618. package/vendor/librocksdb/vendor/rocksdb/table/table_properties_internal.h +0 -14
  619. package/vendor/librocksdb/vendor/rocksdb/table/table_reader.h +0 -202
  620. package/vendor/librocksdb/vendor/rocksdb/table/table_reader_bench.cc +0 -341
  621. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.cc +0 -222
  622. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.h +0 -43
  623. package/vendor/librocksdb/vendor/rocksdb/table/unique_id.cc +0 -223
  624. package/vendor/librocksdb/vendor/rocksdb/table/unique_id_impl.h +0 -93
  625. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.cc +0 -38
  626. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.h +0 -109
  627. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.cc +0 -93
  628. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.h +0 -131
  629. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.cc +0 -82
  630. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.h +0 -182
  631. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.cc +0 -152
  632. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.h +0 -96
  633. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.cc +0 -105
  634. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.h +0 -124
  635. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.cc +0 -776
  636. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.h +0 -908
  637. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.cc +0 -400
  638. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.h +0 -147
  639. package/vendor/librocksdb/vendor/rocksdb/tools/CMakeLists.txt +0 -30
  640. package/vendor/librocksdb/vendor/rocksdb/tools/blob_dump.cc +0 -103
  641. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +0 -2331
  642. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +0 -398
  643. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +0 -17
  644. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench.cc +0 -21
  645. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench_tool.cc +0 -8743
  646. package/vendor/librocksdb/vendor/rocksdb/tools/db_repl_stress.cc +0 -132
  647. package/vendor/librocksdb/vendor/rocksdb/tools/dump/db_dump_tool.cc +0 -264
  648. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_dump.cc +0 -60
  649. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_undump.cc +0 -59
  650. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser.cc +0 -17
  651. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.cc +0 -142
  652. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.h +0 -38
  653. package/vendor/librocksdb/vendor/rocksdb/tools/ldb.cc +0 -13
  654. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd.cc +0 -5044
  655. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd_impl.h +0 -814
  656. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_tool.cc +0 -192
  657. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.cc +0 -244
  658. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.h +0 -124
  659. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump.cc +0 -12
  660. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump_tool.cc +0 -588
  661. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer.cc +0 -17
  662. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.cc +0 -1935
  663. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.h +0 -329
  664. package/vendor/librocksdb/vendor/rocksdb/tools/write_stress.cc +0 -305
  665. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.cc +0 -509
  666. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.h +0 -239
  667. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.cc +0 -303
  668. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.h +0 -185
  669. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record.cc +0 -206
  670. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.cc +0 -190
  671. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.h +0 -46
  672. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_result.cc +0 -146
  673. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.cc +0 -632
  674. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.h +0 -184
  675. package/vendor/librocksdb/vendor/rocksdb/util/aligned_buffer.h +0 -235
  676. package/vendor/librocksdb/vendor/rocksdb/util/aligned_storage.h +0 -24
  677. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.cc +0 -84
  678. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.h +0 -144
  679. package/vendor/librocksdb/vendor/rocksdb/util/atomic.h +0 -111
  680. package/vendor/librocksdb/vendor/rocksdb/util/autovector.h +0 -397
  681. package/vendor/librocksdb/vendor/rocksdb/util/bloom_impl.h +0 -489
  682. package/vendor/librocksdb/vendor/rocksdb/util/build_version.cc.in +0 -79
  683. package/vendor/librocksdb/vendor/rocksdb/util/cast_util.h +0 -88
  684. package/vendor/librocksdb/vendor/rocksdb/util/channel.h +0 -69
  685. package/vendor/librocksdb/vendor/rocksdb/util/cleanable.cc +0 -181
  686. package/vendor/librocksdb/vendor/rocksdb/util/coding.cc +0 -90
  687. package/vendor/librocksdb/vendor/rocksdb/util/coding.h +0 -385
  688. package/vendor/librocksdb/vendor/rocksdb/util/coding_lean.h +0 -101
  689. package/vendor/librocksdb/vendor/rocksdb/util/compaction_job_stats_impl.cc +0 -94
  690. package/vendor/librocksdb/vendor/rocksdb/util/comparator.cc +0 -443
  691. package/vendor/librocksdb/vendor/rocksdb/util/compression.cc +0 -122
  692. package/vendor/librocksdb/vendor/rocksdb/util/compression.h +0 -1879
  693. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.cc +0 -106
  694. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.h +0 -47
  695. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.cc +0 -64
  696. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.h +0 -67
  697. package/vendor/librocksdb/vendor/rocksdb/util/core_local.h +0 -85
  698. package/vendor/librocksdb/vendor/rocksdb/util/coro_utils.h +0 -112
  699. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.cc +0 -1295
  700. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.h +0 -56
  701. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.cc +0 -213
  702. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.h +0 -51
  703. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.c +0 -94
  704. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.h +0 -21
  705. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_asm.S +0 -756
  706. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_constants.h +0 -900
  707. package/vendor/librocksdb/vendor/rocksdb/util/data_structure.cc +0 -16
  708. package/vendor/librocksdb/vendor/rocksdb/util/defer.h +0 -82
  709. package/vendor/librocksdb/vendor/rocksdb/util/distributed_mutex.h +0 -50
  710. package/vendor/librocksdb/vendor/rocksdb/util/duplicate_detector.h +0 -69
  711. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.cc +0 -70
  712. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.h +0 -214
  713. package/vendor/librocksdb/vendor/rocksdb/util/fastrange.h +0 -114
  714. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.cc +0 -170
  715. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.h +0 -101
  716. package/vendor/librocksdb/vendor/rocksdb/util/filter_bench.cc +0 -840
  717. package/vendor/librocksdb/vendor/rocksdb/util/gflags_compat.h +0 -29
  718. package/vendor/librocksdb/vendor/rocksdb/util/hash.cc +0 -201
  719. package/vendor/librocksdb/vendor/rocksdb/util/hash.h +0 -141
  720. package/vendor/librocksdb/vendor/rocksdb/util/hash128.h +0 -26
  721. package/vendor/librocksdb/vendor/rocksdb/util/hash_containers.h +0 -51
  722. package/vendor/librocksdb/vendor/rocksdb/util/hash_map.h +0 -67
  723. package/vendor/librocksdb/vendor/rocksdb/util/heap.h +0 -174
  724. package/vendor/librocksdb/vendor/rocksdb/util/kv_map.h +0 -33
  725. package/vendor/librocksdb/vendor/rocksdb/util/log_write_bench.cc +0 -88
  726. package/vendor/librocksdb/vendor/rocksdb/util/math.h +0 -351
  727. package/vendor/librocksdb/vendor/rocksdb/util/math128.h +0 -338
  728. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.cc +0 -196
  729. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.h +0 -43
  730. package/vendor/librocksdb/vendor/rocksdb/util/mutexlock.h +0 -189
  731. package/vendor/librocksdb/vendor/rocksdb/util/overload.h +0 -23
  732. package/vendor/librocksdb/vendor/rocksdb/util/ppc-opcode.h +0 -27
  733. package/vendor/librocksdb/vendor/rocksdb/util/random.cc +0 -63
  734. package/vendor/librocksdb/vendor/rocksdb/util/random.h +0 -190
  735. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter.cc +0 -391
  736. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter_impl.h +0 -156
  737. package/vendor/librocksdb/vendor/rocksdb/util/repeatable_thread.h +0 -149
  738. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_alg.h +0 -1225
  739. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.cc +0 -498
  740. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.h +0 -182
  741. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_impl.h +0 -1137
  742. package/vendor/librocksdb/vendor/rocksdb/util/set_comparator.h +0 -24
  743. package/vendor/librocksdb/vendor/rocksdb/util/single_thread_executor.h +0 -57
  744. package/vendor/librocksdb/vendor/rocksdb/util/slice.cc +0 -366
  745. package/vendor/librocksdb/vendor/rocksdb/util/status.cc +0 -163
  746. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.cc +0 -62
  747. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.h +0 -41
  748. package/vendor/librocksdb/vendor/rocksdb/util/stop_watch.h +0 -136
  749. package/vendor/librocksdb/vendor/rocksdb/util/string_util.cc +0 -554
  750. package/vendor/librocksdb/vendor/rocksdb/util/string_util.h +0 -185
  751. package/vendor/librocksdb/vendor/rocksdb/util/thread_guard.h +0 -41
  752. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.cc +0 -521
  753. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.h +0 -100
  754. package/vendor/librocksdb/vendor/rocksdb/util/thread_operation.h +0 -122
  755. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.cc +0 -550
  756. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.h +0 -120
  757. package/vendor/librocksdb/vendor/rocksdb/util/timer.h +0 -340
  758. package/vendor/librocksdb/vendor/rocksdb/util/timer_queue.h +0 -231
  759. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.cc +0 -418
  760. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.h +0 -275
  761. package/vendor/librocksdb/vendor/rocksdb/util/user_comparator_wrapper.h +0 -64
  762. package/vendor/librocksdb/vendor/rocksdb/util/vector_iterator.h +0 -114
  763. package/vendor/librocksdb/vendor/rocksdb/util/work_queue.h +0 -150
  764. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.cc +0 -25
  765. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.h +0 -90
  766. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.cc +0 -48
  767. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.h +0 -6364
  768. package/vendor/librocksdb/vendor/rocksdb/util/xxph3.h +0 -1760
  769. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge.cc +0 -237
  770. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge_impl.h +0 -49
  771. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.cc +0 -103
  772. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.h +0 -47
  773. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine.cc +0 -3357
  774. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine_impl.h +0 -34
  775. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -490
  776. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.h +0 -202
  777. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.cc +0 -109
  778. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.h +0 -231
  779. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -54
  780. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.cc +0 -2269
  781. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +0 -514
  782. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -127
  783. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_iterator.h +0 -148
  784. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_listener.h +0 -71
  785. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.cc +0 -276
  786. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -56
  787. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.cc +0 -311
  788. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.h +0 -245
  789. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load.cc +0 -67
  790. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.cc +0 -389
  791. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.h +0 -368
  792. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +0 -104
  793. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +0 -57
  794. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_options.h +0 -41
  795. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.cc +0 -365
  796. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.h +0 -183
  797. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.cc +0 -76
  798. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.h +0 -43
  799. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/serialize.h +0 -81
  800. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.cc +0 -67
  801. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.h +0 -42
  802. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.cc +0 -472
  803. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.h +0 -64
  804. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +0 -41
  805. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -24
  806. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -26
  807. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters.cc +0 -52
  808. package/vendor/librocksdb/vendor/rocksdb/utilities/convenience/info_log_finder.cc +0 -26
  809. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.cc +0 -379
  810. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.h +0 -158
  811. package/vendor/librocksdb/vendor/rocksdb/utilities/debug.cc +0 -134
  812. package/vendor/librocksdb/vendor/rocksdb/utilities/env_mirror.cc +0 -280
  813. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.cc +0 -181
  814. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.h +0 -95
  815. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.cc +0 -555
  816. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.h +0 -252
  817. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.cc +0 -1507
  818. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.h +0 -760
  819. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.cc +0 -138
  820. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.h +0 -115
  821. package/vendor/librocksdb/vendor/rocksdb/utilities/leveldb_options/leveldb_options.cc +0 -57
  822. package/vendor/librocksdb/vendor/rocksdb/utilities/memory/memory_util.cc +0 -50
  823. package/vendor/librocksdb/vendor/rocksdb/utilities/memory_allocators.h +0 -103
  824. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.cc +0 -57
  825. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.h +0 -39
  826. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max.cc +0 -64
  827. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max_operator.h +0 -35
  828. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put.cc +0 -74
  829. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put_operator.h +0 -56
  830. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.cc +0 -97
  831. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.h +0 -42
  832. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.cc +0 -76
  833. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.h +0 -32
  834. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +0 -129
  835. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.h +0 -51
  836. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.cc +0 -56
  837. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.h +0 -35
  838. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.cc +0 -115
  839. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.h +0 -36
  840. package/vendor/librocksdb/vendor/rocksdb/utilities/object_registry.cc +0 -381
  841. package/vendor/librocksdb/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +0 -169
  842. package/vendor/librocksdb/vendor/rocksdb/utilities/options/options_util.cc +0 -117
  843. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -420
  844. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -154
  845. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +0 -607
  846. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -291
  847. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +0 -127
  848. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -84
  849. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -122
  850. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table.h +0 -237
  851. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_bench.cc +0 -310
  852. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -166
  853. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/lrulist.h +0 -172
  854. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +0 -355
  855. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -284
  856. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -165
  857. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -340
  858. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_util.h +0 -67
  859. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -138
  860. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -139
  861. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.cc +0 -287
  862. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.h +0 -231
  863. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/sim_cache.cc +0 -375
  864. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +0 -144
  865. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +0 -45
  866. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +0 -233
  867. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +0 -65
  868. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.cc +0 -132
  869. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.h +0 -48
  870. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.cc +0 -313
  871. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.h +0 -84
  872. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -27
  873. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.h +0 -80
  874. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_tracker.h +0 -207
  875. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +0 -718
  876. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +0 -222
  877. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +0 -324
  878. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -255
  879. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +0 -97
  880. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +0 -34
  881. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +0 -81
  882. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +0 -138
  883. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +0 -102
  884. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +0 -137
  885. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +0 -174
  886. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +0 -220
  887. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +0 -141
  888. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +0 -525
  889. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +0 -255
  890. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +0 -1021
  891. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +0 -580
  892. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +0 -525
  893. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +0 -263
  894. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +0 -178
  895. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +0 -518
  896. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +0 -302
  897. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +0 -118
  898. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +0 -92
  899. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +0 -211
  900. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +0 -124
  901. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +0 -215
  902. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +0 -43
  903. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +0 -130
  904. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +0 -87
  905. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +0 -286
  906. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +0 -87
  907. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +0 -520
  908. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +0 -179
  909. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +0 -197
  910. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +0 -31
  911. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +0 -139
  912. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +0 -165
  913. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +0 -98
  914. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +0 -144
  915. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +0 -199
  916. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +0 -141
  917. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +0 -794
  918. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +0 -1295
  919. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +0 -165
  920. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +0 -76
  921. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +0 -501
  922. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +0 -135
  923. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +0 -156
  924. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +0 -146
  925. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -208
  926. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.h +0 -99
  927. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +0 -111
  928. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +0 -110
  929. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +0 -1278
  930. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -345
  931. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +0 -845
  932. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +0 -345
  933. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/snapshot_checker.cc +0 -37
  934. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.cc +0 -912
  935. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.h +0 -455
  936. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -133
  937. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -24
  938. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_test.h +0 -589
  939. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.cc +0 -207
  940. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.h +0 -86
  941. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +0 -548
  942. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.h +0 -118
  943. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1100
  944. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +0 -1149
  945. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +0 -1089
  946. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.h +0 -333
  947. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -486
  948. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.h +0 -105
  949. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.cc +0 -638
  950. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.h +0 -239
  951. package/vendor/librocksdb/vendor/rocksdb/utilities/types_util.cc +0 -88
  952. package/vendor/librocksdb/vendor/rocksdb/utilities/wal_filter.cc +0 -22
  953. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +0 -1134
  954. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +0 -934
  955. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +0 -468
@@ -1,2155 +0,0 @@
1
- // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2
- // This source code is licensed under both the GPLv2 (found in the
3
- // COPYING file in the root directory) and Apache 2.0 License
4
- // (found in the LICENSE.Apache file in the root directory).
5
- //
6
- // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
7
- // Use of this source code is governed by a BSD-style license that can be
8
- // found in the LICENSE file. See the AUTHORS file for names of contributors.
9
-
10
- #include "db/compaction/compaction_job.h"
11
-
12
- #include <algorithm>
13
- #include <cinttypes>
14
- #include <memory>
15
- #include <optional>
16
- #include <set>
17
- #include <utility>
18
- #include <vector>
19
-
20
- #include "db/blob/blob_counting_iterator.h"
21
- #include "db/blob/blob_file_addition.h"
22
- #include "db/blob/blob_file_builder.h"
23
- #include "db/builder.h"
24
- #include "db/compaction/clipping_iterator.h"
25
- #include "db/compaction/compaction_state.h"
26
- #include "db/db_impl/db_impl.h"
27
- #include "db/dbformat.h"
28
- #include "db/error_handler.h"
29
- #include "db/event_helpers.h"
30
- #include "db/history_trimming_iterator.h"
31
- #include "db/log_writer.h"
32
- #include "db/merge_helper.h"
33
- #include "db/range_del_aggregator.h"
34
- #include "db/version_edit.h"
35
- #include "db/version_set.h"
36
- #include "file/filename.h"
37
- #include "file/read_write_util.h"
38
- #include "file/sst_file_manager_impl.h"
39
- #include "file/writable_file_writer.h"
40
- #include "logging/log_buffer.h"
41
- #include "logging/logging.h"
42
- #include "monitoring/iostats_context_imp.h"
43
- #include "monitoring/thread_status_util.h"
44
- #include "options/configurable_helper.h"
45
- #include "options/options_helper.h"
46
- #include "port/port.h"
47
- #include "rocksdb/db.h"
48
- #include "rocksdb/env.h"
49
- #include "rocksdb/options.h"
50
- #include "rocksdb/statistics.h"
51
- #include "rocksdb/status.h"
52
- #include "rocksdb/table.h"
53
- #include "rocksdb/utilities/options_type.h"
54
- #include "table/merging_iterator.h"
55
- #include "table/table_builder.h"
56
- #include "table/unique_id_impl.h"
57
- #include "test_util/sync_point.h"
58
- #include "util/stop_watch.h"
59
-
60
- namespace ROCKSDB_NAMESPACE {
61
-
62
- const char* GetCompactionReasonString(CompactionReason compaction_reason) {
63
- switch (compaction_reason) {
64
- case CompactionReason::kUnknown:
65
- return "Unknown";
66
- case CompactionReason::kLevelL0FilesNum:
67
- return "LevelL0FilesNum";
68
- case CompactionReason::kLevelMaxLevelSize:
69
- return "LevelMaxLevelSize";
70
- case CompactionReason::kUniversalSizeAmplification:
71
- return "UniversalSizeAmplification";
72
- case CompactionReason::kUniversalSizeRatio:
73
- return "UniversalSizeRatio";
74
- case CompactionReason::kUniversalSortedRunNum:
75
- return "UniversalSortedRunNum";
76
- case CompactionReason::kFIFOMaxSize:
77
- return "FIFOMaxSize";
78
- case CompactionReason::kFIFOReduceNumFiles:
79
- return "FIFOReduceNumFiles";
80
- case CompactionReason::kFIFOTtl:
81
- return "FIFOTtl";
82
- case CompactionReason::kManualCompaction:
83
- return "ManualCompaction";
84
- case CompactionReason::kFilesMarkedForCompaction:
85
- return "FilesMarkedForCompaction";
86
- case CompactionReason::kBottommostFiles:
87
- return "BottommostFiles";
88
- case CompactionReason::kTtl:
89
- return "Ttl";
90
- case CompactionReason::kFlush:
91
- return "Flush";
92
- case CompactionReason::kExternalSstIngestion:
93
- return "ExternalSstIngestion";
94
- case CompactionReason::kPeriodicCompaction:
95
- return "PeriodicCompaction";
96
- case CompactionReason::kChangeTemperature:
97
- return "ChangeTemperature";
98
- case CompactionReason::kForcedBlobGC:
99
- return "ForcedBlobGC";
100
- case CompactionReason::kRoundRobinTtl:
101
- return "RoundRobinTtl";
102
- case CompactionReason::kRefitLevel:
103
- return "RefitLevel";
104
- case CompactionReason::kNumOfReasons:
105
- // fall through
106
- default:
107
- assert(false);
108
- return "Invalid";
109
- }
110
- }
111
-
112
- const char* GetCompactionPenultimateOutputRangeTypeString(
113
- Compaction::PenultimateOutputRangeType range_type) {
114
- switch (range_type) {
115
- case Compaction::PenultimateOutputRangeType::kNotSupported:
116
- return "NotSupported";
117
- case Compaction::PenultimateOutputRangeType::kFullRange:
118
- return "FullRange";
119
- case Compaction::PenultimateOutputRangeType::kNonLastRange:
120
- return "NonLastRange";
121
- case Compaction::PenultimateOutputRangeType::kDisabled:
122
- return "Disabled";
123
- default:
124
- assert(false);
125
- return "Invalid";
126
- }
127
- }
128
-
129
- CompactionJob::CompactionJob(
130
- int job_id, Compaction* compaction, const ImmutableDBOptions& db_options,
131
- const MutableDBOptions& mutable_db_options, const FileOptions& file_options,
132
- VersionSet* versions, const std::atomic<bool>* shutting_down,
133
- LogBuffer* log_buffer, FSDirectory* db_directory,
134
- FSDirectory* output_directory, FSDirectory* blob_output_directory,
135
- Statistics* stats, InstrumentedMutex* db_mutex,
136
- ErrorHandler* db_error_handler,
137
- std::vector<SequenceNumber> existing_snapshots,
138
- SequenceNumber earliest_write_conflict_snapshot,
139
- const SnapshotChecker* snapshot_checker, JobContext* job_context,
140
- std::shared_ptr<Cache> table_cache, EventLogger* event_logger,
141
- bool paranoid_file_checks, bool measure_io_stats, const std::string& dbname,
142
- CompactionJobStats* compaction_job_stats, Env::Priority thread_pri,
143
- const std::shared_ptr<IOTracer>& io_tracer,
144
- const std::atomic<bool>& manual_compaction_canceled,
145
- const std::string& db_id, const std::string& db_session_id,
146
- std::string full_history_ts_low, std::string trim_ts,
147
- BlobFileCompletionCallback* blob_callback, int* bg_compaction_scheduled,
148
- int* bg_bottom_compaction_scheduled)
149
- : compact_(new CompactionState(compaction)),
150
- compaction_stats_(compaction->compaction_reason(), 1),
151
- db_options_(db_options),
152
- mutable_db_options_copy_(mutable_db_options),
153
- log_buffer_(log_buffer),
154
- output_directory_(output_directory),
155
- stats_(stats),
156
- bottommost_level_(false),
157
- write_hint_(Env::WLTH_NOT_SET),
158
- compaction_job_stats_(compaction_job_stats),
159
- job_id_(job_id),
160
- dbname_(dbname),
161
- db_id_(db_id),
162
- db_session_id_(db_session_id),
163
- file_options_(file_options),
164
- env_(db_options.env),
165
- io_tracer_(io_tracer),
166
- fs_(db_options.fs, io_tracer),
167
- file_options_for_read_(
168
- fs_->OptimizeForCompactionTableRead(file_options, db_options_)),
169
- versions_(versions),
170
- shutting_down_(shutting_down),
171
- manual_compaction_canceled_(manual_compaction_canceled),
172
- db_directory_(db_directory),
173
- blob_output_directory_(blob_output_directory),
174
- db_mutex_(db_mutex),
175
- db_error_handler_(db_error_handler),
176
- existing_snapshots_(std::move(existing_snapshots)),
177
- earliest_snapshot_(existing_snapshots_.empty()
178
- ? kMaxSequenceNumber
179
- : existing_snapshots_.at(0)),
180
- earliest_write_conflict_snapshot_(earliest_write_conflict_snapshot),
181
- snapshot_checker_(snapshot_checker),
182
- job_context_(job_context),
183
- table_cache_(std::move(table_cache)),
184
- event_logger_(event_logger),
185
- paranoid_file_checks_(paranoid_file_checks),
186
- measure_io_stats_(measure_io_stats),
187
- thread_pri_(thread_pri),
188
- full_history_ts_low_(std::move(full_history_ts_low)),
189
- trim_ts_(std::move(trim_ts)),
190
- blob_callback_(blob_callback),
191
- extra_num_subcompaction_threads_reserved_(0),
192
- bg_compaction_scheduled_(bg_compaction_scheduled),
193
- bg_bottom_compaction_scheduled_(bg_bottom_compaction_scheduled) {
194
- assert(compaction_job_stats_ != nullptr);
195
- assert(log_buffer_ != nullptr);
196
-
197
- const auto* cfd = compact_->compaction->column_family_data();
198
- ThreadStatusUtil::SetEnableTracking(db_options_.enable_thread_tracking);
199
- ThreadStatusUtil::SetColumnFamily(cfd);
200
- ThreadStatusUtil::SetThreadOperation(ThreadStatus::OP_COMPACTION);
201
- ReportStartedCompaction(compaction);
202
- }
203
-
204
- CompactionJob::~CompactionJob() {
205
- assert(compact_ == nullptr);
206
- ThreadStatusUtil::ResetThreadStatus();
207
- }
208
-
209
- void CompactionJob::ReportStartedCompaction(Compaction* compaction) {
210
- ThreadStatusUtil::SetThreadOperationProperty(ThreadStatus::COMPACTION_JOB_ID,
211
- job_id_);
212
-
213
- ThreadStatusUtil::SetThreadOperationProperty(
214
- ThreadStatus::COMPACTION_INPUT_OUTPUT_LEVEL,
215
- (static_cast<uint64_t>(compact_->compaction->start_level()) << 32) +
216
- compact_->compaction->output_level());
217
-
218
- // In the current design, a CompactionJob is always created
219
- // for non-trivial compaction.
220
- assert(compaction->IsTrivialMove() == false ||
221
- compaction->is_manual_compaction() == true);
222
-
223
- ThreadStatusUtil::SetThreadOperationProperty(
224
- ThreadStatus::COMPACTION_PROP_FLAGS,
225
- compaction->is_manual_compaction() +
226
- (compaction->deletion_compaction() << 1));
227
-
228
- ThreadStatusUtil::SetThreadOperationProperty(
229
- ThreadStatus::COMPACTION_TOTAL_INPUT_BYTES,
230
- compaction->CalculateTotalInputSize());
231
-
232
- IOSTATS_RESET(bytes_written);
233
- IOSTATS_RESET(bytes_read);
234
- ThreadStatusUtil::SetThreadOperationProperty(
235
- ThreadStatus::COMPACTION_BYTES_WRITTEN, 0);
236
- ThreadStatusUtil::SetThreadOperationProperty(
237
- ThreadStatus::COMPACTION_BYTES_READ, 0);
238
-
239
- // Set the thread operation after operation properties
240
- // to ensure GetThreadList() can always show them all together.
241
- ThreadStatusUtil::SetThreadOperation(ThreadStatus::OP_COMPACTION);
242
-
243
- compaction_job_stats_->is_manual_compaction =
244
- compaction->is_manual_compaction();
245
- compaction_job_stats_->is_full_compaction = compaction->is_full_compaction();
246
- }
247
-
248
- void CompactionJob::Prepare() {
249
- AutoThreadOperationStageUpdater stage_updater(
250
- ThreadStatus::STAGE_COMPACTION_PREPARE);
251
-
252
- // Generate file_levels_ for compaction before making Iterator
253
- auto* c = compact_->compaction;
254
- ColumnFamilyData* cfd = c->column_family_data();
255
- assert(cfd != nullptr);
256
- assert(cfd->current()->storage_info()->NumLevelFiles(
257
- compact_->compaction->level()) > 0);
258
-
259
- write_hint_ = cfd->CalculateSSTWriteHint(c->output_level());
260
- bottommost_level_ = c->bottommost_level();
261
-
262
- if (c->ShouldFormSubcompactions()) {
263
- StopWatch sw(db_options_.clock, stats_, SUBCOMPACTION_SETUP_TIME);
264
- GenSubcompactionBoundaries();
265
- }
266
- if (boundaries_.size() >= 1) {
267
- for (size_t i = 0; i <= boundaries_.size(); i++) {
268
- compact_->sub_compact_states.emplace_back(
269
- c, (i != 0) ? std::optional<Slice>(boundaries_[i - 1]) : std::nullopt,
270
- (i != boundaries_.size()) ? std::optional<Slice>(boundaries_[i])
271
- : std::nullopt,
272
- static_cast<uint32_t>(i));
273
- // assert to validate that boundaries don't have same user keys (without
274
- // timestamp part).
275
- assert(i == 0 || i == boundaries_.size() ||
276
- cfd->user_comparator()->CompareWithoutTimestamp(
277
- boundaries_[i - 1], boundaries_[i]) < 0);
278
- }
279
- RecordInHistogram(stats_, NUM_SUBCOMPACTIONS_SCHEDULED,
280
- compact_->sub_compact_states.size());
281
- } else {
282
- compact_->sub_compact_states.emplace_back(c, std::nullopt, std::nullopt,
283
- /*sub_job_id*/ 0);
284
- }
285
-
286
- // collect all seqno->time information from the input files which will be used
287
- // to encode seqno->time to the output files.
288
-
289
- uint64_t preserve_time_duration =
290
- std::max(c->immutable_options()->preserve_internal_time_seconds,
291
- c->immutable_options()->preclude_last_level_data_seconds);
292
-
293
- if (preserve_time_duration > 0) {
294
- const ReadOptions read_options(Env::IOActivity::kCompaction);
295
- // Setup seqno_to_time_mapping_ with relevant time range.
296
- seqno_to_time_mapping_.SetMaxTimeSpan(preserve_time_duration);
297
- for (const auto& each_level : *c->inputs()) {
298
- for (const auto& fmd : each_level.files) {
299
- std::shared_ptr<const TableProperties> tp;
300
- Status s =
301
- cfd->current()->GetTableProperties(read_options, &tp, fmd, nullptr);
302
- if (s.ok()) {
303
- s = seqno_to_time_mapping_.DecodeFrom(tp->seqno_to_time_mapping);
304
- }
305
- if (!s.ok()) {
306
- ROCKS_LOG_WARN(
307
- db_options_.info_log,
308
- "Problem reading or processing seqno-to-time mapping: %s",
309
- s.ToString().c_str());
310
- }
311
- }
312
- }
313
-
314
- int64_t _current_time = 0;
315
- Status s = db_options_.clock->GetCurrentTime(&_current_time);
316
- if (!s.ok()) {
317
- ROCKS_LOG_WARN(db_options_.info_log,
318
- "Failed to get current time in compaction: Status: %s",
319
- s.ToString().c_str());
320
- // preserve all time information
321
- preserve_time_min_seqno_ = 0;
322
- preclude_last_level_min_seqno_ = 0;
323
- seqno_to_time_mapping_.Enforce();
324
- } else {
325
- seqno_to_time_mapping_.Enforce(_current_time);
326
- seqno_to_time_mapping_.GetCurrentTieringCutoffSeqnos(
327
- static_cast<uint64_t>(_current_time),
328
- c->immutable_options()->preserve_internal_time_seconds,
329
- c->immutable_options()->preclude_last_level_data_seconds,
330
- &preserve_time_min_seqno_, &preclude_last_level_min_seqno_);
331
- }
332
- // For accuracy of the GetProximalSeqnoBeforeTime queries above, we only
333
- // limit the capacity after them.
334
- // Here If we set capacity to the per-SST limit, we could be throwing away
335
- // fidelity when a compaction output file has a narrower seqno range than
336
- // all the inputs. If we only limit capacity for each compaction output, we
337
- // could be doing a lot of unnecessary recomputation in a large compaction
338
- // (up to quadratic in number of files). Thus, we do soemthing in the
339
- // middle: enforce a resonably large constant size limit substantially
340
- // larger than kMaxSeqnoTimePairsPerSST.
341
- seqno_to_time_mapping_.SetCapacity(kMaxSeqnoToTimeEntries);
342
- }
343
- }
344
-
345
- uint64_t CompactionJob::GetSubcompactionsLimit() {
346
- return extra_num_subcompaction_threads_reserved_ +
347
- std::max(
348
- std::uint64_t(1),
349
- static_cast<uint64_t>(compact_->compaction->max_subcompactions()));
350
- }
351
-
352
- void CompactionJob::AcquireSubcompactionResources(
353
- int num_extra_required_subcompactions) {
354
- TEST_SYNC_POINT("CompactionJob::AcquireSubcompactionResources:0");
355
- TEST_SYNC_POINT("CompactionJob::AcquireSubcompactionResources:1");
356
- int max_db_compactions =
357
- DBImpl::GetBGJobLimits(
358
- mutable_db_options_copy_.max_background_flushes,
359
- mutable_db_options_copy_.max_background_compactions,
360
- mutable_db_options_copy_.max_background_jobs,
361
- versions_->GetColumnFamilySet()
362
- ->write_controller()
363
- ->NeedSpeedupCompaction())
364
- .max_compactions;
365
- InstrumentedMutexLock l(db_mutex_);
366
- // Apply min function first since We need to compute the extra subcompaction
367
- // against compaction limits. And then try to reserve threads for extra
368
- // subcompactions. The actual number of reserved threads could be less than
369
- // the desired number.
370
- int available_bg_compactions_against_db_limit =
371
- std::max(max_db_compactions - *bg_compaction_scheduled_ -
372
- *bg_bottom_compaction_scheduled_,
373
- 0);
374
- // Reservation only supports backgrdoun threads of which the priority is
375
- // between BOTTOM and HIGH. Need to degrade the priority to HIGH if the
376
- // origin thread_pri_ is higher than that. Similar to ReleaseThreads().
377
- extra_num_subcompaction_threads_reserved_ =
378
- env_->ReserveThreads(std::min(num_extra_required_subcompactions,
379
- available_bg_compactions_against_db_limit),
380
- std::min(thread_pri_, Env::Priority::HIGH));
381
-
382
- // Update bg_compaction_scheduled_ or bg_bottom_compaction_scheduled_
383
- // depending on if this compaction has the bottommost priority
384
- if (thread_pri_ == Env::Priority::BOTTOM) {
385
- *bg_bottom_compaction_scheduled_ +=
386
- extra_num_subcompaction_threads_reserved_;
387
- } else {
388
- *bg_compaction_scheduled_ += extra_num_subcompaction_threads_reserved_;
389
- }
390
- }
391
-
392
- void CompactionJob::ShrinkSubcompactionResources(uint64_t num_extra_resources) {
393
- // Do nothing when we have zero resources to shrink
394
- if (num_extra_resources == 0) {
395
- return;
396
- }
397
- db_mutex_->Lock();
398
- // We cannot release threads more than what we reserved before
399
- int extra_num_subcompaction_threads_released = env_->ReleaseThreads(
400
- (int)num_extra_resources, std::min(thread_pri_, Env::Priority::HIGH));
401
- // Update the number of reserved threads and the number of background
402
- // scheduled compactions for this compaction job
403
- extra_num_subcompaction_threads_reserved_ -=
404
- extra_num_subcompaction_threads_released;
405
- // TODO (zichen): design a test case with new subcompaction partitioning
406
- // when the number of actual partitions is less than the number of planned
407
- // partitions
408
- assert(extra_num_subcompaction_threads_released == (int)num_extra_resources);
409
- // Update bg_compaction_scheduled_ or bg_bottom_compaction_scheduled_
410
- // depending on if this compaction has the bottommost priority
411
- if (thread_pri_ == Env::Priority::BOTTOM) {
412
- *bg_bottom_compaction_scheduled_ -=
413
- extra_num_subcompaction_threads_released;
414
- } else {
415
- *bg_compaction_scheduled_ -= extra_num_subcompaction_threads_released;
416
- }
417
- db_mutex_->Unlock();
418
- TEST_SYNC_POINT("CompactionJob::ShrinkSubcompactionResources:0");
419
- }
420
-
421
- void CompactionJob::ReleaseSubcompactionResources() {
422
- if (extra_num_subcompaction_threads_reserved_ == 0) {
423
- return;
424
- }
425
- {
426
- InstrumentedMutexLock l(db_mutex_);
427
- // The number of reserved threads becomes larger than 0 only if the
428
- // compaction prioity is round robin and there is no sufficient
429
- // sub-compactions available
430
-
431
- // The scheduled compaction must be no less than 1 + extra number
432
- // subcompactions using acquired resources since this compaction job has not
433
- // finished yet
434
- assert(*bg_bottom_compaction_scheduled_ >=
435
- 1 + extra_num_subcompaction_threads_reserved_ ||
436
- *bg_compaction_scheduled_ >=
437
- 1 + extra_num_subcompaction_threads_reserved_);
438
- }
439
- ShrinkSubcompactionResources(extra_num_subcompaction_threads_reserved_);
440
- }
441
-
442
- void CompactionJob::GenSubcompactionBoundaries() {
443
- // The goal is to find some boundary keys so that we can evenly partition
444
- // the compaction input data into max_subcompactions ranges.
445
- // For every input file, we ask TableReader to estimate 128 anchor points
446
- // that evenly partition the input file into 128 ranges and the range
447
- // sizes. This can be calculated by scanning index blocks of the file.
448
- // Once we have the anchor points for all the input files, we merge them
449
- // together and try to find keys dividing ranges evenly.
450
- // For example, if we have two input files, and each returns following
451
- // ranges:
452
- // File1: (a1, 1000), (b1, 1200), (c1, 1100)
453
- // File2: (a2, 1100), (b2, 1000), (c2, 1000)
454
- // We total sort the keys to following:
455
- // (a1, 1000), (a2, 1100), (b1, 1200), (b2, 1000), (c1, 1100), (c2, 1000)
456
- // We calculate the total size by adding up all ranges' size, which is 6400.
457
- // If we would like to partition into 2 subcompactions, the target of the
458
- // range size is 3200. Based on the size, we take "b1" as the partition key
459
- // since the first three ranges would hit 3200.
460
- //
461
- // Note that the ranges are actually overlapping. For example, in the example
462
- // above, the range ending with "b1" is overlapping with the range ending with
463
- // "b2". So the size 1000+1100+1200 is an underestimation of data size up to
464
- // "b1". In extreme cases where we only compact N L0 files, a range can
465
- // overlap with N-1 other ranges. Since we requested a relatively large number
466
- // (128) of ranges from each input files, even N range overlapping would
467
- // cause relatively small inaccuracy.
468
- ReadOptions read_options(Env::IOActivity::kCompaction);
469
- read_options.rate_limiter_priority = GetRateLimiterPriority();
470
- auto* c = compact_->compaction;
471
- if (c->immutable_options()->table_factory->Name() ==
472
- TableFactory::kPlainTableName()) {
473
- return;
474
- }
475
-
476
- if (c->max_subcompactions() <= 1 &&
477
- !(c->immutable_options()->compaction_pri == kRoundRobin &&
478
- c->immutable_options()->compaction_style == kCompactionStyleLevel)) {
479
- return;
480
- }
481
- auto* cfd = c->column_family_data();
482
- const Comparator* cfd_comparator = cfd->user_comparator();
483
- const InternalKeyComparator& icomp = cfd->internal_comparator();
484
-
485
- auto* v = compact_->compaction->input_version();
486
- int base_level = v->storage_info()->base_level();
487
- InstrumentedMutexUnlock unlock_guard(db_mutex_);
488
-
489
- uint64_t total_size = 0;
490
- std::vector<TableReader::Anchor> all_anchors;
491
- int start_lvl = c->start_level();
492
- int out_lvl = c->output_level();
493
-
494
- for (size_t lvl_idx = 0; lvl_idx < c->num_input_levels(); lvl_idx++) {
495
- int lvl = c->level(lvl_idx);
496
- if (lvl >= start_lvl && lvl <= out_lvl) {
497
- const LevelFilesBrief* flevel = c->input_levels(lvl_idx);
498
- size_t num_files = flevel->num_files;
499
-
500
- if (num_files == 0) {
501
- continue;
502
- }
503
-
504
- for (size_t i = 0; i < num_files; i++) {
505
- FileMetaData* f = flevel->files[i].file_metadata;
506
- std::vector<TableReader::Anchor> my_anchors;
507
- Status s = cfd->table_cache()->ApproximateKeyAnchors(
508
- read_options, icomp, *f,
509
- c->mutable_cf_options()->block_protection_bytes_per_key,
510
- my_anchors);
511
- if (!s.ok() || my_anchors.empty()) {
512
- my_anchors.emplace_back(f->largest.user_key(), f->fd.GetFileSize());
513
- }
514
- for (auto& ac : my_anchors) {
515
- // Can be optimize to avoid this loop.
516
- total_size += ac.range_size;
517
- }
518
-
519
- all_anchors.insert(all_anchors.end(), my_anchors.begin(),
520
- my_anchors.end());
521
- }
522
- }
523
- }
524
- // Here we total sort all the anchor points across all files and go through
525
- // them in the sorted order to find partitioning boundaries.
526
- // Not the most efficient implementation. A much more efficient algorithm
527
- // probably exists. But they are more complex. If performance turns out to
528
- // be a problem, we can optimize.
529
- std::sort(
530
- all_anchors.begin(), all_anchors.end(),
531
- [cfd_comparator](TableReader::Anchor& a, TableReader::Anchor& b) -> bool {
532
- return cfd_comparator->CompareWithoutTimestamp(a.user_key, b.user_key) <
533
- 0;
534
- });
535
-
536
- // Remove duplicated entries from boundaries.
537
- all_anchors.erase(
538
- std::unique(all_anchors.begin(), all_anchors.end(),
539
- [cfd_comparator](TableReader::Anchor& a,
540
- TableReader::Anchor& b) -> bool {
541
- return cfd_comparator->CompareWithoutTimestamp(
542
- a.user_key, b.user_key) == 0;
543
- }),
544
- all_anchors.end());
545
-
546
- // Get the number of planned subcompactions, may update reserve threads
547
- // and update extra_num_subcompaction_threads_reserved_ for round-robin
548
- uint64_t num_planned_subcompactions;
549
- if (c->immutable_options()->compaction_pri == kRoundRobin &&
550
- c->immutable_options()->compaction_style == kCompactionStyleLevel) {
551
- // For round-robin compaction prioity, we need to employ more
552
- // subcompactions (may exceed the max_subcompaction limit). The extra
553
- // subcompactions will be executed using reserved threads and taken into
554
- // account bg_compaction_scheduled or bg_bottom_compaction_scheduled.
555
-
556
- // Initialized by the number of input files
557
- num_planned_subcompactions = static_cast<uint64_t>(c->num_input_files(0));
558
- uint64_t max_subcompactions_limit = GetSubcompactionsLimit();
559
- if (max_subcompactions_limit < num_planned_subcompactions) {
560
- // Assert two pointers are not empty so that we can use extra
561
- // subcompactions against db compaction limits
562
- assert(bg_bottom_compaction_scheduled_ != nullptr);
563
- assert(bg_compaction_scheduled_ != nullptr);
564
- // Reserve resources when max_subcompaction is not sufficient
565
- AcquireSubcompactionResources(
566
- (int)(num_planned_subcompactions - max_subcompactions_limit));
567
- // Subcompactions limit changes after acquiring additional resources.
568
- // Need to call GetSubcompactionsLimit() again to update the number
569
- // of planned subcompactions
570
- num_planned_subcompactions =
571
- std::min(num_planned_subcompactions, GetSubcompactionsLimit());
572
- } else {
573
- num_planned_subcompactions = max_subcompactions_limit;
574
- }
575
- } else {
576
- num_planned_subcompactions = GetSubcompactionsLimit();
577
- }
578
-
579
- TEST_SYNC_POINT_CALLBACK("CompactionJob::GenSubcompactionBoundaries:0",
580
- &num_planned_subcompactions);
581
- if (num_planned_subcompactions == 1) {
582
- return;
583
- }
584
-
585
- // Group the ranges into subcompactions
586
- uint64_t target_range_size = std::max(
587
- total_size / num_planned_subcompactions,
588
- MaxFileSizeForLevel(
589
- *(c->mutable_cf_options()), out_lvl,
590
- c->immutable_options()->compaction_style, base_level,
591
- c->immutable_options()->level_compaction_dynamic_level_bytes));
592
-
593
- if (target_range_size >= total_size) {
594
- return;
595
- }
596
-
597
- uint64_t next_threshold = target_range_size;
598
- uint64_t cumulative_size = 0;
599
- uint64_t num_actual_subcompactions = 1U;
600
- for (TableReader::Anchor& anchor : all_anchors) {
601
- cumulative_size += anchor.range_size;
602
- if (cumulative_size > next_threshold) {
603
- next_threshold += target_range_size;
604
- num_actual_subcompactions++;
605
- boundaries_.push_back(anchor.user_key);
606
- }
607
- if (num_actual_subcompactions == num_planned_subcompactions) {
608
- break;
609
- }
610
- }
611
- TEST_SYNC_POINT_CALLBACK("CompactionJob::GenSubcompactionBoundaries:1",
612
- &num_actual_subcompactions);
613
- // Shrink extra subcompactions resources when extra resrouces are acquired
614
- ShrinkSubcompactionResources(
615
- std::min((int)(num_planned_subcompactions - num_actual_subcompactions),
616
- extra_num_subcompaction_threads_reserved_));
617
- }
618
-
619
- Status CompactionJob::Run() {
620
- AutoThreadOperationStageUpdater stage_updater(
621
- ThreadStatus::STAGE_COMPACTION_RUN);
622
- TEST_SYNC_POINT("CompactionJob::Run():Start");
623
- log_buffer_->FlushBufferToLog();
624
- LogCompaction();
625
-
626
- const size_t num_threads = compact_->sub_compact_states.size();
627
- assert(num_threads > 0);
628
- const uint64_t start_micros = db_options_.clock->NowMicros();
629
- compact_->compaction->GetOrInitInputTableProperties();
630
-
631
- // Launch a thread for each of subcompactions 1...num_threads-1
632
- std::vector<port::Thread> thread_pool;
633
- thread_pool.reserve(num_threads - 1);
634
- for (size_t i = 1; i < compact_->sub_compact_states.size(); i++) {
635
- thread_pool.emplace_back(&CompactionJob::ProcessKeyValueCompaction, this,
636
- &compact_->sub_compact_states[i]);
637
- }
638
-
639
- // Always schedule the first subcompaction (whether or not there are also
640
- // others) in the current thread to be efficient with resources
641
- ProcessKeyValueCompaction(compact_->sub_compact_states.data());
642
-
643
- // Wait for all other threads (if there are any) to finish execution
644
- for (auto& thread : thread_pool) {
645
- thread.join();
646
- }
647
-
648
- compaction_stats_.SetMicros(db_options_.clock->NowMicros() - start_micros);
649
-
650
- for (auto& state : compact_->sub_compact_states) {
651
- compaction_stats_.AddCpuMicros(state.compaction_job_stats.cpu_micros);
652
- state.RemoveLastEmptyOutput();
653
- }
654
-
655
- RecordTimeToHistogram(stats_, COMPACTION_TIME,
656
- compaction_stats_.stats.micros);
657
- RecordTimeToHistogram(stats_, COMPACTION_CPU_TIME,
658
- compaction_stats_.stats.cpu_micros);
659
-
660
- TEST_SYNC_POINT("CompactionJob::Run:BeforeVerify");
661
-
662
- // Check if any thread encountered an error during execution
663
- Status status;
664
- IOStatus io_s;
665
- bool wrote_new_blob_files = false;
666
-
667
- for (const auto& state : compact_->sub_compact_states) {
668
- if (!state.status.ok()) {
669
- status = state.status;
670
- io_s = state.io_status;
671
- break;
672
- }
673
-
674
- if (state.Current().HasBlobFileAdditions()) {
675
- wrote_new_blob_files = true;
676
- }
677
- }
678
-
679
- if (io_status_.ok()) {
680
- io_status_ = io_s;
681
- }
682
- if (status.ok()) {
683
- constexpr IODebugContext* dbg = nullptr;
684
-
685
- if (output_directory_) {
686
- io_s = output_directory_->FsyncWithDirOptions(
687
- IOOptions(), dbg,
688
- DirFsyncOptions(DirFsyncOptions::FsyncReason::kNewFileSynced));
689
- }
690
-
691
- if (io_s.ok() && wrote_new_blob_files && blob_output_directory_ &&
692
- blob_output_directory_ != output_directory_) {
693
- io_s = blob_output_directory_->FsyncWithDirOptions(
694
- IOOptions(), dbg,
695
- DirFsyncOptions(DirFsyncOptions::FsyncReason::kNewFileSynced));
696
- }
697
- }
698
- if (io_status_.ok()) {
699
- io_status_ = io_s;
700
- }
701
- if (status.ok()) {
702
- status = io_s;
703
- }
704
- if (status.ok()) {
705
- thread_pool.clear();
706
- std::vector<const CompactionOutputs::Output*> files_output;
707
- for (const auto& state : compact_->sub_compact_states) {
708
- for (const auto& output : state.GetOutputs()) {
709
- files_output.emplace_back(&output);
710
- }
711
- }
712
- ColumnFamilyData* cfd = compact_->compaction->column_family_data();
713
- auto& prefix_extractor =
714
- compact_->compaction->mutable_cf_options()->prefix_extractor;
715
- std::atomic<size_t> next_file_idx(0);
716
- auto verify_table = [&](Status& output_status) {
717
- while (true) {
718
- size_t file_idx = next_file_idx.fetch_add(1);
719
- if (file_idx >= files_output.size()) {
720
- break;
721
- }
722
- // Verify that the table is usable
723
- // We set for_compaction to false and don't
724
- // OptimizeForCompactionTableRead here because this is a special case
725
- // after we finish the table building No matter whether
726
- // use_direct_io_for_flush_and_compaction is true, we will regard this
727
- // verification as user reads since the goal is to cache it here for
728
- // further user reads
729
- ReadOptions verify_table_read_options(Env::IOActivity::kCompaction);
730
- verify_table_read_options.rate_limiter_priority =
731
- GetRateLimiterPriority();
732
- InternalIterator* iter = cfd->table_cache()->NewIterator(
733
- verify_table_read_options, file_options_,
734
- cfd->internal_comparator(), files_output[file_idx]->meta,
735
- /*range_del_agg=*/nullptr, prefix_extractor,
736
- /*table_reader_ptr=*/nullptr,
737
- cfd->internal_stats()->GetFileReadHist(
738
- compact_->compaction->output_level()),
739
- TableReaderCaller::kCompactionRefill, /*arena=*/nullptr,
740
- /*skip_filters=*/false, compact_->compaction->output_level(),
741
- MaxFileSizeForL0MetaPin(
742
- *compact_->compaction->mutable_cf_options()),
743
- /*smallest_compaction_key=*/nullptr,
744
- /*largest_compaction_key=*/nullptr,
745
- /*allow_unprepared_value=*/false,
746
- compact_->compaction->mutable_cf_options()
747
- ->block_protection_bytes_per_key);
748
- auto s = iter->status();
749
-
750
- if (s.ok() && paranoid_file_checks_) {
751
- OutputValidator validator(cfd->internal_comparator(),
752
- /*_enable_hash=*/true);
753
- for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
754
- s = validator.Add(iter->key(), iter->value());
755
- if (!s.ok()) {
756
- break;
757
- }
758
- }
759
- if (s.ok()) {
760
- s = iter->status();
761
- }
762
- if (s.ok() &&
763
- !validator.CompareValidator(files_output[file_idx]->validator)) {
764
- s = Status::Corruption("Paranoid checksums do not match");
765
- }
766
- }
767
-
768
- delete iter;
769
-
770
- if (!s.ok()) {
771
- output_status = s;
772
- break;
773
- }
774
- }
775
- };
776
- for (size_t i = 1; i < compact_->sub_compact_states.size(); i++) {
777
- thread_pool.emplace_back(
778
- verify_table, std::ref(compact_->sub_compact_states[i].status));
779
- }
780
- verify_table(compact_->sub_compact_states[0].status);
781
- for (auto& thread : thread_pool) {
782
- thread.join();
783
- }
784
-
785
- for (const auto& state : compact_->sub_compact_states) {
786
- if (!state.status.ok()) {
787
- status = state.status;
788
- break;
789
- }
790
- }
791
- }
792
-
793
- ReleaseSubcompactionResources();
794
- TEST_SYNC_POINT("CompactionJob::ReleaseSubcompactionResources:0");
795
- TEST_SYNC_POINT("CompactionJob::ReleaseSubcompactionResources:1");
796
-
797
- TablePropertiesCollection tp;
798
- for (const auto& state : compact_->sub_compact_states) {
799
- for (const auto& output : state.GetOutputs()) {
800
- auto fn =
801
- TableFileName(state.compaction->immutable_options()->cf_paths,
802
- output.meta.fd.GetNumber(), output.meta.fd.GetPathId());
803
- compact_->compaction->SetOutputTableProperties(fn,
804
- output.table_properties);
805
- }
806
- }
807
-
808
- // Finish up all bookkeeping to unify the subcompaction results.
809
- compact_->AggregateCompactionStats(compaction_stats_, *compaction_job_stats_);
810
- uint64_t num_input_range_del = 0;
811
- bool ok = UpdateCompactionStats(&num_input_range_del);
812
- // (Sub)compactions returned ok, do sanity check on the number of input keys.
813
- if (status.ok() && ok && compaction_job_stats_->has_num_input_records) {
814
- size_t ts_sz = compact_->compaction->column_family_data()
815
- ->user_comparator()
816
- ->timestamp_size();
817
- // When trim_ts_ is non-empty, CompactionIterator takes
818
- // HistoryTrimmingIterator as input iterator and sees a trimmed view of
819
- // input keys. So the number of keys it processed is not suitable for
820
- // verification here.
821
- // TODO: support verification when trim_ts_ is non-empty.
822
- if (!(ts_sz > 0 && !trim_ts_.empty())) {
823
- assert(compaction_stats_.stats.num_input_records > 0);
824
- // TODO: verify the number of range deletion entries.
825
- uint64_t expected =
826
- compaction_stats_.stats.num_input_records - num_input_range_del;
827
- uint64_t actual = compaction_job_stats_->num_input_records;
828
- if (expected != actual) {
829
- char scratch[2345];
830
- compact_->compaction->Summary(scratch, sizeof(scratch));
831
- std::string msg =
832
- "Compaction number of input keys does not match "
833
- "number of keys processed. Expected " +
834
- std::to_string(expected) + " but processed " +
835
- std::to_string(actual) + ". Compaction summary: " + scratch;
836
- ROCKS_LOG_WARN(
837
- db_options_.info_log, "[%s] [JOB %d] Compaction with status: %s",
838
- compact_->compaction->column_family_data()->GetName().c_str(),
839
- job_context_->job_id, msg.c_str());
840
- if (db_options_.compaction_verify_record_count) {
841
- status = Status::Corruption(msg);
842
- }
843
- }
844
- }
845
- }
846
- RecordCompactionIOStats();
847
- LogFlush(db_options_.info_log);
848
- TEST_SYNC_POINT("CompactionJob::Run():End");
849
- compact_->status = status;
850
- TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():EndStatusSet", &status);
851
- return status;
852
- }
853
-
854
- Status CompactionJob::Install(const MutableCFOptions& mutable_cf_options,
855
- bool* compaction_released) {
856
- assert(compact_);
857
-
858
- AutoThreadOperationStageUpdater stage_updater(
859
- ThreadStatus::STAGE_COMPACTION_INSTALL);
860
- db_mutex_->AssertHeld();
861
- Status status = compact_->status;
862
-
863
- ColumnFamilyData* cfd = compact_->compaction->column_family_data();
864
- assert(cfd);
865
-
866
- int output_level = compact_->compaction->output_level();
867
- cfd->internal_stats()->AddCompactionStats(output_level, thread_pri_,
868
- compaction_stats_);
869
-
870
- if (status.ok()) {
871
- status = InstallCompactionResults(mutable_cf_options, compaction_released);
872
- }
873
- if (!versions_->io_status().ok()) {
874
- io_status_ = versions_->io_status();
875
- }
876
-
877
- VersionStorageInfo::LevelSummaryStorage tmp;
878
- auto vstorage = cfd->current()->storage_info();
879
- const auto& stats = compaction_stats_.stats;
880
-
881
- double read_write_amp = 0.0;
882
- double write_amp = 0.0;
883
- double bytes_read_per_sec = 0;
884
- double bytes_written_per_sec = 0;
885
-
886
- const uint64_t bytes_read_non_output_and_blob =
887
- stats.bytes_read_non_output_levels + stats.bytes_read_blob;
888
- const uint64_t bytes_read_all =
889
- stats.bytes_read_output_level + bytes_read_non_output_and_blob;
890
- const uint64_t bytes_written_all =
891
- stats.bytes_written + stats.bytes_written_blob;
892
-
893
- if (bytes_read_non_output_and_blob > 0) {
894
- read_write_amp = (bytes_written_all + bytes_read_all) /
895
- static_cast<double>(bytes_read_non_output_and_blob);
896
- write_amp =
897
- bytes_written_all / static_cast<double>(bytes_read_non_output_and_blob);
898
- }
899
- if (stats.micros > 0) {
900
- bytes_read_per_sec = bytes_read_all / static_cast<double>(stats.micros);
901
- bytes_written_per_sec =
902
- bytes_written_all / static_cast<double>(stats.micros);
903
- }
904
-
905
- const std::string& column_family_name = cfd->GetName();
906
-
907
- constexpr double kMB = 1048576.0;
908
-
909
- ROCKS_LOG_BUFFER(
910
- log_buffer_,
911
- "[%s] compacted to: %s, MB/sec: %.1f rd, %.1f wr, level %d, "
912
- "files in(%d, %d) out(%d +%d blob) "
913
- "MB in(%.1f, %.1f +%.1f blob) out(%.1f +%.1f blob), "
914
- "read-write-amplify(%.1f) write-amplify(%.1f) %s, records in: %" PRIu64
915
- ", records dropped: %" PRIu64 " output_compression: %s\n",
916
- column_family_name.c_str(), vstorage->LevelSummary(&tmp),
917
- bytes_read_per_sec, bytes_written_per_sec,
918
- compact_->compaction->output_level(),
919
- stats.num_input_files_in_non_output_levels,
920
- stats.num_input_files_in_output_level, stats.num_output_files,
921
- stats.num_output_files_blob, stats.bytes_read_non_output_levels / kMB,
922
- stats.bytes_read_output_level / kMB, stats.bytes_read_blob / kMB,
923
- stats.bytes_written / kMB, stats.bytes_written_blob / kMB, read_write_amp,
924
- write_amp, status.ToString().c_str(), stats.num_input_records,
925
- stats.num_dropped_records,
926
- CompressionTypeToString(compact_->compaction->output_compression())
927
- .c_str());
928
-
929
- const auto& blob_files = vstorage->GetBlobFiles();
930
- if (!blob_files.empty()) {
931
- assert(blob_files.front());
932
- assert(blob_files.back());
933
-
934
- ROCKS_LOG_BUFFER(
935
- log_buffer_,
936
- "[%s] Blob file summary: head=%" PRIu64 ", tail=%" PRIu64 "\n",
937
- column_family_name.c_str(), blob_files.front()->GetBlobFileNumber(),
938
- blob_files.back()->GetBlobFileNumber());
939
- }
940
-
941
- if (compaction_stats_.has_penultimate_level_output) {
942
- ROCKS_LOG_BUFFER(
943
- log_buffer_,
944
- "[%s] has Penultimate Level output: %" PRIu64
945
- ", level %d, number of files: %" PRIu64 ", number of records: %" PRIu64,
946
- column_family_name.c_str(),
947
- compaction_stats_.penultimate_level_stats.bytes_written,
948
- compact_->compaction->GetPenultimateLevel(),
949
- compaction_stats_.penultimate_level_stats.num_output_files,
950
- compaction_stats_.penultimate_level_stats.num_output_records);
951
- }
952
-
953
- UpdateCompactionJobStats(stats);
954
-
955
- auto stream = event_logger_->LogToBuffer(log_buffer_, 8192);
956
- stream << "job" << job_id_ << "event"
957
- << "compaction_finished"
958
- << "compaction_time_micros" << stats.micros
959
- << "compaction_time_cpu_micros" << stats.cpu_micros << "output_level"
960
- << compact_->compaction->output_level() << "num_output_files"
961
- << stats.num_output_files << "total_output_size"
962
- << stats.bytes_written;
963
-
964
- if (stats.num_output_files_blob > 0) {
965
- stream << "num_blob_output_files" << stats.num_output_files_blob
966
- << "total_blob_output_size" << stats.bytes_written_blob;
967
- }
968
-
969
- stream << "num_input_records" << stats.num_input_records
970
- << "num_output_records" << stats.num_output_records
971
- << "num_subcompactions" << compact_->sub_compact_states.size()
972
- << "output_compression"
973
- << CompressionTypeToString(compact_->compaction->output_compression());
974
-
975
- stream << "num_single_delete_mismatches"
976
- << compaction_job_stats_->num_single_del_mismatch;
977
- stream << "num_single_delete_fallthrough"
978
- << compaction_job_stats_->num_single_del_fallthru;
979
-
980
- if (measure_io_stats_) {
981
- stream << "file_write_nanos" << compaction_job_stats_->file_write_nanos;
982
- stream << "file_range_sync_nanos"
983
- << compaction_job_stats_->file_range_sync_nanos;
984
- stream << "file_fsync_nanos" << compaction_job_stats_->file_fsync_nanos;
985
- stream << "file_prepare_write_nanos"
986
- << compaction_job_stats_->file_prepare_write_nanos;
987
- }
988
-
989
- stream << "lsm_state";
990
- stream.StartArray();
991
- for (int level = 0; level < vstorage->num_levels(); ++level) {
992
- stream << vstorage->NumLevelFiles(level);
993
- }
994
- stream.EndArray();
995
-
996
- if (!blob_files.empty()) {
997
- assert(blob_files.front());
998
- stream << "blob_file_head" << blob_files.front()->GetBlobFileNumber();
999
-
1000
- assert(blob_files.back());
1001
- stream << "blob_file_tail" << blob_files.back()->GetBlobFileNumber();
1002
- }
1003
-
1004
- if (compaction_stats_.has_penultimate_level_output) {
1005
- InternalStats::CompactionStats& pl_stats =
1006
- compaction_stats_.penultimate_level_stats;
1007
- stream << "penultimate_level_num_output_files" << pl_stats.num_output_files;
1008
- stream << "penultimate_level_bytes_written" << pl_stats.bytes_written;
1009
- stream << "penultimate_level_num_output_records"
1010
- << pl_stats.num_output_records;
1011
- stream << "penultimate_level_num_output_files_blob"
1012
- << pl_stats.num_output_files_blob;
1013
- stream << "penultimate_level_bytes_written_blob"
1014
- << pl_stats.bytes_written_blob;
1015
- }
1016
-
1017
- CleanupCompaction();
1018
- return status;
1019
- }
1020
-
1021
- void CompactionJob::NotifyOnSubcompactionBegin(
1022
- SubcompactionState* sub_compact) {
1023
- Compaction* c = compact_->compaction;
1024
-
1025
- if (db_options_.listeners.empty()) {
1026
- return;
1027
- }
1028
- if (shutting_down_->load(std::memory_order_acquire)) {
1029
- return;
1030
- }
1031
- if (c->is_manual_compaction() &&
1032
- manual_compaction_canceled_.load(std::memory_order_acquire)) {
1033
- return;
1034
- }
1035
-
1036
- sub_compact->notify_on_subcompaction_completion = true;
1037
-
1038
- SubcompactionJobInfo info{};
1039
- sub_compact->BuildSubcompactionJobInfo(info);
1040
- info.job_id = static_cast<int>(job_id_);
1041
- info.thread_id = env_->GetThreadID();
1042
-
1043
- for (const auto& listener : db_options_.listeners) {
1044
- listener->OnSubcompactionBegin(info);
1045
- }
1046
- info.status.PermitUncheckedError();
1047
-
1048
- }
1049
-
1050
- void CompactionJob::NotifyOnSubcompactionCompleted(
1051
- SubcompactionState* sub_compact) {
1052
-
1053
- if (db_options_.listeners.empty()) {
1054
- return;
1055
- }
1056
- if (shutting_down_->load(std::memory_order_acquire)) {
1057
- return;
1058
- }
1059
-
1060
- if (sub_compact->notify_on_subcompaction_completion == false) {
1061
- return;
1062
- }
1063
-
1064
- SubcompactionJobInfo info{};
1065
- sub_compact->BuildSubcompactionJobInfo(info);
1066
- info.job_id = static_cast<int>(job_id_);
1067
- info.thread_id = env_->GetThreadID();
1068
-
1069
- for (const auto& listener : db_options_.listeners) {
1070
- listener->OnSubcompactionCompleted(info);
1071
- }
1072
- }
1073
-
1074
- void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
1075
- assert(sub_compact);
1076
- assert(sub_compact->compaction);
1077
- if (db_options_.compaction_service) {
1078
- CompactionServiceJobStatus comp_status =
1079
- ProcessKeyValueCompactionWithCompactionService(sub_compact);
1080
- if (comp_status == CompactionServiceJobStatus::kSuccess ||
1081
- comp_status == CompactionServiceJobStatus::kFailure) {
1082
- return;
1083
- }
1084
- // fallback to local compaction
1085
- assert(comp_status == CompactionServiceJobStatus::kUseLocal);
1086
- }
1087
-
1088
- uint64_t prev_cpu_micros = db_options_.clock->CPUMicros();
1089
-
1090
- ColumnFamilyData* cfd = sub_compact->compaction->column_family_data();
1091
-
1092
- // Create compaction filter and fail the compaction if
1093
- // IgnoreSnapshots() = false because it is not supported anymore
1094
- const CompactionFilter* compaction_filter =
1095
- cfd->ioptions()->compaction_filter;
1096
- std::unique_ptr<CompactionFilter> compaction_filter_from_factory = nullptr;
1097
- if (compaction_filter == nullptr) {
1098
- compaction_filter_from_factory =
1099
- sub_compact->compaction->CreateCompactionFilter();
1100
- compaction_filter = compaction_filter_from_factory.get();
1101
- }
1102
- if (compaction_filter != nullptr && !compaction_filter->IgnoreSnapshots()) {
1103
- sub_compact->status = Status::NotSupported(
1104
- "CompactionFilter::IgnoreSnapshots() = false is not supported "
1105
- "anymore.");
1106
- return;
1107
- }
1108
-
1109
- NotifyOnSubcompactionBegin(sub_compact);
1110
-
1111
- auto range_del_agg = std::make_unique<CompactionRangeDelAggregator>(
1112
- &cfd->internal_comparator(), existing_snapshots_, &full_history_ts_low_,
1113
- &trim_ts_);
1114
-
1115
- // TODO: since we already use C++17, should use
1116
- // std::optional<const Slice> instead.
1117
- const std::optional<Slice> start = sub_compact->start;
1118
- const std::optional<Slice> end = sub_compact->end;
1119
-
1120
- std::optional<Slice> start_without_ts;
1121
- std::optional<Slice> end_without_ts;
1122
-
1123
- ReadOptions read_options;
1124
- read_options.verify_checksums = true;
1125
- read_options.fill_cache = false;
1126
- read_options.rate_limiter_priority = GetRateLimiterPriority();
1127
- read_options.io_activity = Env::IOActivity::kCompaction;
1128
- // Compaction iterators shouldn't be confined to a single prefix.
1129
- // Compactions use Seek() for
1130
- // (a) concurrent compactions,
1131
- // (b) CompactionFilter::Decision::kRemoveAndSkipUntil.
1132
- read_options.total_order_seek = true;
1133
-
1134
- const WriteOptions write_options(Env::IOPriority::IO_LOW,
1135
- Env::IOActivity::kCompaction);
1136
-
1137
- // Remove the timestamps from boundaries because boundaries created in
1138
- // GenSubcompactionBoundaries doesn't strip away the timestamp.
1139
- size_t ts_sz = cfd->user_comparator()->timestamp_size();
1140
- if (start.has_value()) {
1141
- read_options.iterate_lower_bound = &(*start);
1142
- if (ts_sz > 0) {
1143
- start_without_ts = StripTimestampFromUserKey(*start, ts_sz);
1144
- read_options.iterate_lower_bound = &(*start_without_ts);
1145
- }
1146
- }
1147
- if (end.has_value()) {
1148
- read_options.iterate_upper_bound = &(*end);
1149
- if (ts_sz > 0) {
1150
- end_without_ts = StripTimestampFromUserKey(*end, ts_sz);
1151
- read_options.iterate_upper_bound = &(*end_without_ts);
1152
- }
1153
- }
1154
-
1155
- // Although the v2 aggregator is what the level iterator(s) know about,
1156
- // the AddTombstones calls will be propagated down to the v1 aggregator.
1157
- std::unique_ptr<InternalIterator> raw_input(versions_->MakeInputIterator(
1158
- read_options, sub_compact->compaction, range_del_agg.get(),
1159
- file_options_for_read_, start, end));
1160
- InternalIterator* input = raw_input.get();
1161
-
1162
- IterKey start_ikey;
1163
- IterKey end_ikey;
1164
- Slice start_slice;
1165
- Slice end_slice;
1166
- Slice start_user_key{};
1167
- Slice end_user_key{};
1168
-
1169
- static constexpr char kMaxTs[] =
1170
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
1171
- Slice ts_slice;
1172
- std::string max_ts;
1173
- if (ts_sz > 0) {
1174
- if (ts_sz <= strlen(kMaxTs)) {
1175
- ts_slice = Slice(kMaxTs, ts_sz);
1176
- } else {
1177
- max_ts = std::string(ts_sz, '\xff');
1178
- ts_slice = Slice(max_ts);
1179
- }
1180
- }
1181
-
1182
- if (start.has_value()) {
1183
- start_ikey.SetInternalKey(*start, kMaxSequenceNumber, kValueTypeForSeek);
1184
- if (ts_sz > 0) {
1185
- start_ikey.UpdateInternalKey(kMaxSequenceNumber, kValueTypeForSeek,
1186
- &ts_slice);
1187
- }
1188
- start_slice = start_ikey.GetInternalKey();
1189
- start_user_key = start_ikey.GetUserKey();
1190
- }
1191
- if (end.has_value()) {
1192
- end_ikey.SetInternalKey(*end, kMaxSequenceNumber, kValueTypeForSeek);
1193
- if (ts_sz > 0) {
1194
- end_ikey.UpdateInternalKey(kMaxSequenceNumber, kValueTypeForSeek,
1195
- &ts_slice);
1196
- }
1197
- end_slice = end_ikey.GetInternalKey();
1198
- end_user_key = end_ikey.GetUserKey();
1199
- }
1200
-
1201
- std::unique_ptr<InternalIterator> clip;
1202
- if (start.has_value() || end.has_value()) {
1203
- clip = std::make_unique<ClippingIterator>(
1204
- raw_input.get(), start.has_value() ? &start_slice : nullptr,
1205
- end.has_value() ? &end_slice : nullptr, &cfd->internal_comparator());
1206
- input = clip.get();
1207
- }
1208
-
1209
- std::unique_ptr<InternalIterator> blob_counter;
1210
-
1211
- if (sub_compact->compaction->DoesInputReferenceBlobFiles()) {
1212
- BlobGarbageMeter* meter = sub_compact->Current().CreateBlobGarbageMeter();
1213
- blob_counter = std::make_unique<BlobCountingIterator>(input, meter);
1214
- input = blob_counter.get();
1215
- }
1216
-
1217
- std::unique_ptr<InternalIterator> trim_history_iter;
1218
- if (ts_sz > 0 && !trim_ts_.empty()) {
1219
- trim_history_iter = std::make_unique<HistoryTrimmingIterator>(
1220
- input, cfd->user_comparator(), trim_ts_);
1221
- input = trim_history_iter.get();
1222
- }
1223
-
1224
- input->SeekToFirst();
1225
-
1226
- AutoThreadOperationStageUpdater stage_updater(
1227
- ThreadStatus::STAGE_COMPACTION_PROCESS_KV);
1228
-
1229
- // I/O measurement variables
1230
- PerfLevel prev_perf_level = PerfLevel::kEnableTime;
1231
- const uint64_t kRecordStatsEvery = 1000;
1232
- uint64_t prev_write_nanos = 0;
1233
- uint64_t prev_fsync_nanos = 0;
1234
- uint64_t prev_range_sync_nanos = 0;
1235
- uint64_t prev_prepare_write_nanos = 0;
1236
- uint64_t prev_cpu_write_nanos = 0;
1237
- uint64_t prev_cpu_read_nanos = 0;
1238
- if (measure_io_stats_) {
1239
- prev_perf_level = GetPerfLevel();
1240
- SetPerfLevel(PerfLevel::kEnableTimeAndCPUTimeExceptForMutex);
1241
- prev_write_nanos = IOSTATS(write_nanos);
1242
- prev_fsync_nanos = IOSTATS(fsync_nanos);
1243
- prev_range_sync_nanos = IOSTATS(range_sync_nanos);
1244
- prev_prepare_write_nanos = IOSTATS(prepare_write_nanos);
1245
- prev_cpu_write_nanos = IOSTATS(cpu_write_nanos);
1246
- prev_cpu_read_nanos = IOSTATS(cpu_read_nanos);
1247
- }
1248
-
1249
- MergeHelper merge(
1250
- env_, cfd->user_comparator(), cfd->ioptions()->merge_operator.get(),
1251
- compaction_filter, db_options_.info_log.get(),
1252
- false /* internal key corruption is expected */,
1253
- existing_snapshots_.empty() ? 0 : existing_snapshots_.back(),
1254
- snapshot_checker_, compact_->compaction->level(), db_options_.stats);
1255
-
1256
- const MutableCFOptions* mutable_cf_options =
1257
- sub_compact->compaction->mutable_cf_options();
1258
- assert(mutable_cf_options);
1259
-
1260
- std::vector<std::string> blob_file_paths;
1261
-
1262
- // TODO: BlobDB to support output_to_penultimate_level compaction, which needs
1263
- // 2 builders, so may need to move to `CompactionOutputs`
1264
- std::unique_ptr<BlobFileBuilder> blob_file_builder(
1265
- (mutable_cf_options->enable_blob_files &&
1266
- sub_compact->compaction->output_level() >=
1267
- mutable_cf_options->blob_file_starting_level)
1268
- ? new BlobFileBuilder(
1269
- versions_, fs_.get(),
1270
- sub_compact->compaction->immutable_options(),
1271
- mutable_cf_options, &file_options_, &write_options, db_id_,
1272
- db_session_id_, job_id_, cfd->GetID(), cfd->GetName(),
1273
- write_hint_, io_tracer_, blob_callback_,
1274
- BlobFileCreationReason::kCompaction, &blob_file_paths,
1275
- sub_compact->Current().GetBlobFileAdditionsPtr())
1276
- : nullptr);
1277
-
1278
- TEST_SYNC_POINT("CompactionJob::Run():Inprogress");
1279
- TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():PausingManualCompaction:1",
1280
- static_cast<void*>(const_cast<std::atomic<bool>*>(
1281
- &manual_compaction_canceled_)));
1282
-
1283
- const std::string* const full_history_ts_low =
1284
- full_history_ts_low_.empty() ? nullptr : &full_history_ts_low_;
1285
- const SequenceNumber job_snapshot_seq =
1286
- job_context_ ? job_context_->GetJobSnapshotSequence()
1287
- : kMaxSequenceNumber;
1288
-
1289
- auto c_iter = std::make_unique<CompactionIterator>(
1290
- input, cfd->user_comparator(), &merge, versions_->LastSequence(),
1291
- &existing_snapshots_, earliest_snapshot_,
1292
- earliest_write_conflict_snapshot_, job_snapshot_seq, snapshot_checker_,
1293
- env_, ShouldReportDetailedTime(env_, stats_),
1294
- /*expect_valid_internal_key=*/true, range_del_agg.get(),
1295
- blob_file_builder.get(), db_options_.allow_data_in_errors,
1296
- db_options_.enforce_single_del_contracts, manual_compaction_canceled_,
1297
- sub_compact->compaction
1298
- ->DoesInputReferenceBlobFiles() /* must_count_input_entries */,
1299
- sub_compact->compaction, compaction_filter, shutting_down_,
1300
- db_options_.info_log, full_history_ts_low, preserve_time_min_seqno_,
1301
- preclude_last_level_min_seqno_);
1302
- c_iter->SeekToFirst();
1303
-
1304
- // Assign range delete aggregator to the target output level, which makes sure
1305
- // it only output to single level
1306
- sub_compact->AssignRangeDelAggregator(std::move(range_del_agg));
1307
-
1308
- const auto& c_iter_stats = c_iter->iter_stats();
1309
-
1310
- // define the open and close functions for the compaction files, which will be
1311
- // used open/close output files when needed.
1312
- const CompactionFileOpenFunc open_file_func =
1313
- [this, sub_compact](CompactionOutputs& outputs) {
1314
- return this->OpenCompactionOutputFile(sub_compact, outputs);
1315
- };
1316
-
1317
- const CompactionFileCloseFunc close_file_func =
1318
- [this, sub_compact, start_user_key, end_user_key](
1319
- CompactionOutputs& outputs, const Status& status,
1320
- const Slice& next_table_min_key) {
1321
- return this->FinishCompactionOutputFile(
1322
- status, sub_compact, outputs, next_table_min_key,
1323
- sub_compact->start.has_value() ? &start_user_key : nullptr,
1324
- sub_compact->end.has_value() ? &end_user_key : nullptr);
1325
- };
1326
-
1327
- Status status;
1328
- TEST_SYNC_POINT_CALLBACK(
1329
- "CompactionJob::ProcessKeyValueCompaction()::Processing",
1330
- static_cast<void*>(const_cast<Compaction*>(sub_compact->compaction)));
1331
- uint64_t last_cpu_micros = prev_cpu_micros;
1332
- while (status.ok() && !cfd->IsDropped() && c_iter->Valid()) {
1333
- // Invariant: c_iter.status() is guaranteed to be OK if c_iter->Valid()
1334
- // returns true.
1335
- assert(!end.has_value() ||
1336
- cfd->user_comparator()->Compare(c_iter->user_key(), *end) < 0);
1337
-
1338
- if (c_iter_stats.num_input_records % kRecordStatsEvery ==
1339
- kRecordStatsEvery - 1) {
1340
- RecordDroppedKeys(c_iter_stats, &sub_compact->compaction_job_stats);
1341
- c_iter->ResetRecordCounts();
1342
- RecordCompactionIOStats();
1343
-
1344
- uint64_t cur_cpu_micros = db_options_.clock->CPUMicros();
1345
- assert(cur_cpu_micros >= last_cpu_micros);
1346
- RecordTick(stats_, COMPACTION_CPU_TOTAL_TIME,
1347
- cur_cpu_micros - last_cpu_micros);
1348
- last_cpu_micros = cur_cpu_micros;
1349
- }
1350
-
1351
- // Add current compaction_iterator key to target compaction output, if the
1352
- // output file needs to be close or open, it will call the `open_file_func`
1353
- // and `close_file_func`.
1354
- // TODO: it would be better to have the compaction file open/close moved
1355
- // into `CompactionOutputs` which has the output file information.
1356
- status = sub_compact->AddToOutput(*c_iter, open_file_func, close_file_func);
1357
- if (!status.ok()) {
1358
- break;
1359
- }
1360
-
1361
- TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():PausingManualCompaction:2",
1362
- static_cast<void*>(const_cast<std::atomic<bool>*>(
1363
- &manual_compaction_canceled_)));
1364
- c_iter->Next();
1365
- if (c_iter->status().IsManualCompactionPaused()) {
1366
- break;
1367
- }
1368
-
1369
- #ifndef NDEBUG
1370
- bool stop = false;
1371
- TEST_SYNC_POINT_CALLBACK("CompactionJob::ProcessKeyValueCompaction()::stop",
1372
- static_cast<void*>(&stop));
1373
- if (stop) {
1374
- break;
1375
- }
1376
- #endif // NDEBUG
1377
- }
1378
-
1379
- // This number may not be accurate when CompactionIterator was created
1380
- // with `must_count_input_entries=false`.
1381
- assert(!sub_compact->compaction->DoesInputReferenceBlobFiles() ||
1382
- c_iter->HasNumInputEntryScanned());
1383
- sub_compact->compaction_job_stats.has_num_input_records =
1384
- c_iter->HasNumInputEntryScanned();
1385
- sub_compact->compaction_job_stats.num_input_records =
1386
- c_iter->NumInputEntryScanned();
1387
- sub_compact->compaction_job_stats.num_blobs_read =
1388
- c_iter_stats.num_blobs_read;
1389
- sub_compact->compaction_job_stats.total_blob_bytes_read =
1390
- c_iter_stats.total_blob_bytes_read;
1391
- sub_compact->compaction_job_stats.num_input_deletion_records =
1392
- c_iter_stats.num_input_deletion_records;
1393
- sub_compact->compaction_job_stats.num_corrupt_keys =
1394
- c_iter_stats.num_input_corrupt_records;
1395
- sub_compact->compaction_job_stats.num_single_del_fallthru =
1396
- c_iter_stats.num_single_del_fallthru;
1397
- sub_compact->compaction_job_stats.num_single_del_mismatch =
1398
- c_iter_stats.num_single_del_mismatch;
1399
- sub_compact->compaction_job_stats.total_input_raw_key_bytes +=
1400
- c_iter_stats.total_input_raw_key_bytes;
1401
- sub_compact->compaction_job_stats.total_input_raw_value_bytes +=
1402
- c_iter_stats.total_input_raw_value_bytes;
1403
-
1404
- RecordTick(stats_, FILTER_OPERATION_TOTAL_TIME,
1405
- c_iter_stats.total_filter_time);
1406
-
1407
- if (c_iter_stats.num_blobs_relocated > 0) {
1408
- RecordTick(stats_, BLOB_DB_GC_NUM_KEYS_RELOCATED,
1409
- c_iter_stats.num_blobs_relocated);
1410
- }
1411
- if (c_iter_stats.total_blob_bytes_relocated > 0) {
1412
- RecordTick(stats_, BLOB_DB_GC_BYTES_RELOCATED,
1413
- c_iter_stats.total_blob_bytes_relocated);
1414
- }
1415
-
1416
- RecordDroppedKeys(c_iter_stats, &sub_compact->compaction_job_stats);
1417
- RecordCompactionIOStats();
1418
-
1419
- if (status.ok() && cfd->IsDropped()) {
1420
- status =
1421
- Status::ColumnFamilyDropped("Column family dropped during compaction");
1422
- }
1423
- if ((status.ok() || status.IsColumnFamilyDropped()) &&
1424
- shutting_down_->load(std::memory_order_relaxed)) {
1425
- status = Status::ShutdownInProgress("Database shutdown");
1426
- }
1427
- if ((status.ok() || status.IsColumnFamilyDropped()) &&
1428
- (manual_compaction_canceled_.load(std::memory_order_relaxed))) {
1429
- status = Status::Incomplete(Status::SubCode::kManualCompactionPaused);
1430
- }
1431
- if (status.ok()) {
1432
- status = input->status();
1433
- }
1434
- if (status.ok()) {
1435
- status = c_iter->status();
1436
- }
1437
-
1438
- // Call FinishCompactionOutputFile() even if status is not ok: it needs to
1439
- // close the output files. Open file function is also passed, in case there's
1440
- // only range-dels, no file was opened, to save the range-dels, it need to
1441
- // create a new output file.
1442
- status = sub_compact->CloseCompactionFiles(status, open_file_func,
1443
- close_file_func);
1444
-
1445
- if (blob_file_builder) {
1446
- if (status.ok()) {
1447
- status = blob_file_builder->Finish();
1448
- } else {
1449
- blob_file_builder->Abandon(status);
1450
- }
1451
- blob_file_builder.reset();
1452
- sub_compact->Current().UpdateBlobStats();
1453
- }
1454
-
1455
- uint64_t cur_cpu_micros = db_options_.clock->CPUMicros();
1456
- sub_compact->compaction_job_stats.cpu_micros =
1457
- cur_cpu_micros - prev_cpu_micros;
1458
- RecordTick(stats_, COMPACTION_CPU_TOTAL_TIME,
1459
- cur_cpu_micros - last_cpu_micros);
1460
-
1461
- if (measure_io_stats_) {
1462
- sub_compact->compaction_job_stats.file_write_nanos +=
1463
- IOSTATS(write_nanos) - prev_write_nanos;
1464
- sub_compact->compaction_job_stats.file_fsync_nanos +=
1465
- IOSTATS(fsync_nanos) - prev_fsync_nanos;
1466
- sub_compact->compaction_job_stats.file_range_sync_nanos +=
1467
- IOSTATS(range_sync_nanos) - prev_range_sync_nanos;
1468
- sub_compact->compaction_job_stats.file_prepare_write_nanos +=
1469
- IOSTATS(prepare_write_nanos) - prev_prepare_write_nanos;
1470
- sub_compact->compaction_job_stats.cpu_micros -=
1471
- (IOSTATS(cpu_write_nanos) - prev_cpu_write_nanos +
1472
- IOSTATS(cpu_read_nanos) - prev_cpu_read_nanos) /
1473
- 1000;
1474
- if (prev_perf_level != PerfLevel::kEnableTimeAndCPUTimeExceptForMutex) {
1475
- SetPerfLevel(prev_perf_level);
1476
- }
1477
- }
1478
- #ifdef ROCKSDB_ASSERT_STATUS_CHECKED
1479
- if (!status.ok()) {
1480
- if (c_iter) {
1481
- c_iter->status().PermitUncheckedError();
1482
- }
1483
- if (input) {
1484
- input->status().PermitUncheckedError();
1485
- }
1486
- }
1487
- #endif // ROCKSDB_ASSERT_STATUS_CHECKED
1488
-
1489
- blob_counter.reset();
1490
- clip.reset();
1491
- raw_input.reset();
1492
- sub_compact->status = status;
1493
- NotifyOnSubcompactionCompleted(sub_compact);
1494
- }
1495
-
1496
- uint64_t CompactionJob::GetCompactionId(SubcompactionState* sub_compact) const {
1497
- return (uint64_t)job_id_ << 32 | sub_compact->sub_job_id;
1498
- }
1499
-
1500
- void CompactionJob::RecordDroppedKeys(
1501
- const CompactionIterationStats& c_iter_stats,
1502
- CompactionJobStats* compaction_job_stats) {
1503
- if (c_iter_stats.num_record_drop_user > 0) {
1504
- RecordTick(stats_, COMPACTION_KEY_DROP_USER,
1505
- c_iter_stats.num_record_drop_user);
1506
- }
1507
- if (c_iter_stats.num_record_drop_hidden > 0) {
1508
- RecordTick(stats_, COMPACTION_KEY_DROP_NEWER_ENTRY,
1509
- c_iter_stats.num_record_drop_hidden);
1510
- if (compaction_job_stats) {
1511
- compaction_job_stats->num_records_replaced +=
1512
- c_iter_stats.num_record_drop_hidden;
1513
- }
1514
- }
1515
- if (c_iter_stats.num_record_drop_obsolete > 0) {
1516
- RecordTick(stats_, COMPACTION_KEY_DROP_OBSOLETE,
1517
- c_iter_stats.num_record_drop_obsolete);
1518
- if (compaction_job_stats) {
1519
- compaction_job_stats->num_expired_deletion_records +=
1520
- c_iter_stats.num_record_drop_obsolete;
1521
- }
1522
- }
1523
- if (c_iter_stats.num_record_drop_range_del > 0) {
1524
- RecordTick(stats_, COMPACTION_KEY_DROP_RANGE_DEL,
1525
- c_iter_stats.num_record_drop_range_del);
1526
- }
1527
- if (c_iter_stats.num_range_del_drop_obsolete > 0) {
1528
- RecordTick(stats_, COMPACTION_RANGE_DEL_DROP_OBSOLETE,
1529
- c_iter_stats.num_range_del_drop_obsolete);
1530
- }
1531
- if (c_iter_stats.num_optimized_del_drop_obsolete > 0) {
1532
- RecordTick(stats_, COMPACTION_OPTIMIZED_DEL_DROP_OBSOLETE,
1533
- c_iter_stats.num_optimized_del_drop_obsolete);
1534
- }
1535
- }
1536
-
1537
- Status CompactionJob::FinishCompactionOutputFile(
1538
- const Status& input_status, SubcompactionState* sub_compact,
1539
- CompactionOutputs& outputs, const Slice& next_table_min_key,
1540
- const Slice* comp_start_user_key, const Slice* comp_end_user_key) {
1541
- AutoThreadOperationStageUpdater stage_updater(
1542
- ThreadStatus::STAGE_COMPACTION_SYNC_FILE);
1543
- assert(sub_compact != nullptr);
1544
- assert(outputs.HasBuilder());
1545
-
1546
- FileMetaData* meta = outputs.GetMetaData();
1547
- uint64_t output_number = meta->fd.GetNumber();
1548
- assert(output_number != 0);
1549
-
1550
- ColumnFamilyData* cfd = sub_compact->compaction->column_family_data();
1551
- std::string file_checksum = kUnknownFileChecksum;
1552
- std::string file_checksum_func_name = kUnknownFileChecksumFuncName;
1553
-
1554
- // Check for iterator errors
1555
- Status s = input_status;
1556
-
1557
- // Add range tombstones
1558
- auto earliest_snapshot = kMaxSequenceNumber;
1559
- if (existing_snapshots_.size() > 0) {
1560
- earliest_snapshot = existing_snapshots_[0];
1561
- }
1562
- if (s.ok()) {
1563
- CompactionIterationStats range_del_out_stats;
1564
- // if the compaction supports per_key_placement, only output range dels to
1565
- // the penultimate level.
1566
- // Note: Use `bottommost_level_ = true` for both bottommost and
1567
- // output_to_penultimate_level compaction here, as it's only used to decide
1568
- // if range dels could be dropped.
1569
- if (outputs.HasRangeDel()) {
1570
- s = outputs.AddRangeDels(comp_start_user_key, comp_end_user_key,
1571
- range_del_out_stats, bottommost_level_,
1572
- cfd->internal_comparator(), earliest_snapshot,
1573
- next_table_min_key, full_history_ts_low_);
1574
- }
1575
- RecordDroppedKeys(range_del_out_stats, &sub_compact->compaction_job_stats);
1576
- TEST_SYNC_POINT("CompactionJob::FinishCompactionOutputFile1");
1577
- }
1578
-
1579
- const uint64_t current_entries = outputs.NumEntries();
1580
-
1581
- s = outputs.Finish(s, seqno_to_time_mapping_);
1582
-
1583
- if (s.ok()) {
1584
- // With accurate smallest and largest key, we can get a slightly more
1585
- // accurate oldest ancester time.
1586
- // This makes oldest ancester time in manifest more accurate than in
1587
- // table properties. Not sure how to resolve it.
1588
- if (meta->smallest.size() > 0 && meta->largest.size() > 0) {
1589
- uint64_t refined_oldest_ancester_time;
1590
- Slice new_smallest = meta->smallest.user_key();
1591
- Slice new_largest = meta->largest.user_key();
1592
- if (!new_largest.empty() && !new_smallest.empty()) {
1593
- refined_oldest_ancester_time =
1594
- sub_compact->compaction->MinInputFileOldestAncesterTime(
1595
- &(meta->smallest), &(meta->largest));
1596
- if (refined_oldest_ancester_time !=
1597
- std::numeric_limits<uint64_t>::max()) {
1598
- meta->oldest_ancester_time = refined_oldest_ancester_time;
1599
- }
1600
- }
1601
- }
1602
- }
1603
-
1604
- // Finish and check for file errors
1605
- IOStatus io_s = outputs.WriterSyncClose(s, db_options_.clock, stats_,
1606
- db_options_.use_fsync);
1607
-
1608
- if (s.ok() && io_s.ok()) {
1609
- file_checksum = meta->file_checksum;
1610
- file_checksum_func_name = meta->file_checksum_func_name;
1611
- }
1612
-
1613
- if (s.ok()) {
1614
- s = io_s;
1615
- }
1616
- if (sub_compact->io_status.ok()) {
1617
- sub_compact->io_status = io_s;
1618
- // Since this error is really a copy of the
1619
- // "normal" status, it does not also need to be checked
1620
- sub_compact->io_status.PermitUncheckedError();
1621
- }
1622
-
1623
- TableProperties tp;
1624
- if (s.ok()) {
1625
- tp = outputs.GetTableProperties();
1626
- }
1627
-
1628
- if (s.ok() && current_entries == 0 && tp.num_range_deletions == 0) {
1629
- // If there is nothing to output, no necessary to generate a sst file.
1630
- // This happens when the output level is bottom level, at the same time
1631
- // the sub_compact output nothing.
1632
- std::string fname =
1633
- TableFileName(sub_compact->compaction->immutable_options()->cf_paths,
1634
- meta->fd.GetNumber(), meta->fd.GetPathId());
1635
-
1636
- // TODO(AR) it is not clear if there are any larger implications if
1637
- // DeleteFile fails here
1638
- Status ds = env_->DeleteFile(fname);
1639
- if (!ds.ok()) {
1640
- ROCKS_LOG_WARN(
1641
- db_options_.info_log,
1642
- "[%s] [JOB %d] Unable to remove SST file for table #%" PRIu64
1643
- " at bottom level%s",
1644
- cfd->GetName().c_str(), job_id_, output_number,
1645
- meta->marked_for_compaction ? " (need compaction)" : "");
1646
- }
1647
-
1648
- // Also need to remove the file from outputs, or it will be added to the
1649
- // VersionEdit.
1650
- outputs.RemoveLastOutput();
1651
- meta = nullptr;
1652
- }
1653
-
1654
- if (s.ok() && (current_entries > 0 || tp.num_range_deletions > 0)) {
1655
- // Output to event logger and fire events.
1656
- outputs.UpdateTableProperties();
1657
- ROCKS_LOG_INFO(db_options_.info_log,
1658
- "[%s] [JOB %d] Generated table #%" PRIu64 ": %" PRIu64
1659
- " keys, %" PRIu64 " bytes%s, temperature: %s",
1660
- cfd->GetName().c_str(), job_id_, output_number,
1661
- current_entries, meta->fd.file_size,
1662
- meta->marked_for_compaction ? " (need compaction)" : "",
1663
- temperature_to_string[meta->temperature].c_str());
1664
- }
1665
- std::string fname;
1666
- FileDescriptor output_fd;
1667
- uint64_t oldest_blob_file_number = kInvalidBlobFileNumber;
1668
- Status status_for_listener = s;
1669
- if (meta != nullptr) {
1670
- fname = GetTableFileName(meta->fd.GetNumber());
1671
- output_fd = meta->fd;
1672
- oldest_blob_file_number = meta->oldest_blob_file_number;
1673
- } else {
1674
- fname = "(nil)";
1675
- if (s.ok()) {
1676
- status_for_listener = Status::Aborted("Empty SST file not kept");
1677
- }
1678
- }
1679
- EventHelpers::LogAndNotifyTableFileCreationFinished(
1680
- event_logger_, cfd->ioptions()->listeners, dbname_, cfd->GetName(), fname,
1681
- job_id_, output_fd, oldest_blob_file_number, tp,
1682
- TableFileCreationReason::kCompaction, status_for_listener, file_checksum,
1683
- file_checksum_func_name);
1684
-
1685
- // Report new file to SstFileManagerImpl
1686
- auto sfm =
1687
- static_cast<SstFileManagerImpl*>(db_options_.sst_file_manager.get());
1688
- if (sfm && meta != nullptr && meta->fd.GetPathId() == 0) {
1689
- Status add_s = sfm->OnAddFile(fname);
1690
- if (!add_s.ok() && s.ok()) {
1691
- s = add_s;
1692
- }
1693
- if (sfm->IsMaxAllowedSpaceReached()) {
1694
- // TODO(ajkr): should we return OK() if max space was reached by the final
1695
- // compaction output file (similarly to how flush works when full)?
1696
- s = Status::SpaceLimit("Max allowed space was reached");
1697
- TEST_SYNC_POINT(
1698
- "CompactionJob::FinishCompactionOutputFile:MaxAllowedSpaceReached");
1699
- InstrumentedMutexLock l(db_mutex_);
1700
- db_error_handler_->SetBGError(s, BackgroundErrorReason::kCompaction);
1701
- }
1702
- }
1703
-
1704
- outputs.ResetBuilder();
1705
- return s;
1706
- }
1707
-
1708
- Status CompactionJob::InstallCompactionResults(
1709
- const MutableCFOptions& mutable_cf_options, bool* compaction_released) {
1710
- assert(compact_);
1711
-
1712
- db_mutex_->AssertHeld();
1713
-
1714
- const ReadOptions read_options(Env::IOActivity::kCompaction);
1715
- const WriteOptions write_options(Env::IOActivity::kCompaction);
1716
-
1717
- auto* compaction = compact_->compaction;
1718
- assert(compaction);
1719
-
1720
- {
1721
- Compaction::InputLevelSummaryBuffer inputs_summary;
1722
- if (compaction_stats_.has_penultimate_level_output) {
1723
- ROCKS_LOG_BUFFER(
1724
- log_buffer_,
1725
- "[%s] [JOB %d] Compacted %s => output_to_penultimate_level: %" PRIu64
1726
- " bytes + last: %" PRIu64 " bytes. Total: %" PRIu64 " bytes",
1727
- compaction->column_family_data()->GetName().c_str(), job_id_,
1728
- compaction->InputLevelSummary(&inputs_summary),
1729
- compaction_stats_.penultimate_level_stats.bytes_written,
1730
- compaction_stats_.stats.bytes_written,
1731
- compaction_stats_.TotalBytesWritten());
1732
- } else {
1733
- ROCKS_LOG_BUFFER(log_buffer_,
1734
- "[%s] [JOB %d] Compacted %s => %" PRIu64 " bytes",
1735
- compaction->column_family_data()->GetName().c_str(),
1736
- job_id_, compaction->InputLevelSummary(&inputs_summary),
1737
- compaction_stats_.TotalBytesWritten());
1738
- }
1739
- }
1740
-
1741
- VersionEdit* const edit = compaction->edit();
1742
- assert(edit);
1743
-
1744
- // Add compaction inputs
1745
- compaction->AddInputDeletions(edit);
1746
-
1747
- std::unordered_map<uint64_t, BlobGarbageMeter::BlobStats> blob_total_garbage;
1748
-
1749
- for (const auto& sub_compact : compact_->sub_compact_states) {
1750
- sub_compact.AddOutputsEdit(edit);
1751
-
1752
- for (const auto& blob : sub_compact.Current().GetBlobFileAdditions()) {
1753
- edit->AddBlobFile(blob);
1754
- }
1755
-
1756
- if (sub_compact.Current().GetBlobGarbageMeter()) {
1757
- const auto& flows = sub_compact.Current().GetBlobGarbageMeter()->flows();
1758
-
1759
- for (const auto& pair : flows) {
1760
- const uint64_t blob_file_number = pair.first;
1761
- const BlobGarbageMeter::BlobInOutFlow& flow = pair.second;
1762
-
1763
- assert(flow.IsValid());
1764
- if (flow.HasGarbage()) {
1765
- blob_total_garbage[blob_file_number].Add(flow.GetGarbageCount(),
1766
- flow.GetGarbageBytes());
1767
- }
1768
- }
1769
- }
1770
- }
1771
-
1772
- for (const auto& pair : blob_total_garbage) {
1773
- const uint64_t blob_file_number = pair.first;
1774
- const BlobGarbageMeter::BlobStats& stats = pair.second;
1775
-
1776
- edit->AddBlobFileGarbage(blob_file_number, stats.GetCount(),
1777
- stats.GetBytes());
1778
- }
1779
-
1780
- if ((compaction->compaction_reason() ==
1781
- CompactionReason::kLevelMaxLevelSize ||
1782
- compaction->compaction_reason() == CompactionReason::kRoundRobinTtl) &&
1783
- compaction->immutable_options()->compaction_pri == kRoundRobin) {
1784
- int start_level = compaction->start_level();
1785
- if (start_level > 0) {
1786
- auto vstorage = compaction->input_version()->storage_info();
1787
- edit->AddCompactCursor(start_level,
1788
- vstorage->GetNextCompactCursor(
1789
- start_level, compaction->num_input_files(0)));
1790
- }
1791
- }
1792
-
1793
- auto manifest_wcb = [&compaction, &compaction_released](const Status& s) {
1794
- compaction->ReleaseCompactionFiles(s);
1795
- *compaction_released = true;
1796
- };
1797
-
1798
- return versions_->LogAndApply(
1799
- compaction->column_family_data(), mutable_cf_options, read_options,
1800
- write_options, edit, db_mutex_, db_directory_,
1801
- /*new_descriptor_log=*/false,
1802
- /*column_family_options=*/nullptr, manifest_wcb);
1803
- }
1804
-
1805
- void CompactionJob::RecordCompactionIOStats() {
1806
- RecordTick(stats_, COMPACT_READ_BYTES, IOSTATS(bytes_read));
1807
- RecordTick(stats_, COMPACT_WRITE_BYTES, IOSTATS(bytes_written));
1808
- CompactionReason compaction_reason =
1809
- compact_->compaction->compaction_reason();
1810
- if (compaction_reason == CompactionReason::kFilesMarkedForCompaction) {
1811
- RecordTick(stats_, COMPACT_READ_BYTES_MARKED, IOSTATS(bytes_read));
1812
- RecordTick(stats_, COMPACT_WRITE_BYTES_MARKED, IOSTATS(bytes_written));
1813
- } else if (compaction_reason == CompactionReason::kPeriodicCompaction) {
1814
- RecordTick(stats_, COMPACT_READ_BYTES_PERIODIC, IOSTATS(bytes_read));
1815
- RecordTick(stats_, COMPACT_WRITE_BYTES_PERIODIC, IOSTATS(bytes_written));
1816
- } else if (compaction_reason == CompactionReason::kTtl) {
1817
- RecordTick(stats_, COMPACT_READ_BYTES_TTL, IOSTATS(bytes_read));
1818
- RecordTick(stats_, COMPACT_WRITE_BYTES_TTL, IOSTATS(bytes_written));
1819
- }
1820
- ThreadStatusUtil::IncreaseThreadOperationProperty(
1821
- ThreadStatus::COMPACTION_BYTES_READ, IOSTATS(bytes_read));
1822
- IOSTATS_RESET(bytes_read);
1823
- ThreadStatusUtil::IncreaseThreadOperationProperty(
1824
- ThreadStatus::COMPACTION_BYTES_WRITTEN, IOSTATS(bytes_written));
1825
- IOSTATS_RESET(bytes_written);
1826
- }
1827
-
1828
- Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
1829
- CompactionOutputs& outputs) {
1830
- assert(sub_compact != nullptr);
1831
-
1832
- // no need to lock because VersionSet::next_file_number_ is atomic
1833
- uint64_t file_number = versions_->NewFileNumber();
1834
- std::string fname = GetTableFileName(file_number);
1835
- // Fire events.
1836
- ColumnFamilyData* cfd = sub_compact->compaction->column_family_data();
1837
- EventHelpers::NotifyTableFileCreationStarted(
1838
- cfd->ioptions()->listeners, dbname_, cfd->GetName(), fname, job_id_,
1839
- TableFileCreationReason::kCompaction);
1840
- // Make the output file
1841
- std::unique_ptr<FSWritableFile> writable_file;
1842
- #ifndef NDEBUG
1843
- bool syncpoint_arg = file_options_.use_direct_writes;
1844
- TEST_SYNC_POINT_CALLBACK("CompactionJob::OpenCompactionOutputFile",
1845
- &syncpoint_arg);
1846
- #endif
1847
-
1848
- // Pass temperature of the last level files to FileSystem.
1849
- FileOptions fo_copy = file_options_;
1850
- Temperature temperature = sub_compact->compaction->output_temperature();
1851
- Temperature last_level_temp =
1852
- sub_compact->compaction->mutable_cf_options()->last_level_temperature;
1853
- // Here last_level_temperature supersedes default_write_temperature, when
1854
- // enabled and applicable
1855
- if (last_level_temp != Temperature::kUnknown &&
1856
- sub_compact->compaction->is_last_level() &&
1857
- !sub_compact->IsCurrentPenultimateLevel()) {
1858
- temperature = last_level_temp;
1859
- }
1860
- fo_copy.temperature = temperature;
1861
-
1862
- Status s;
1863
- IOStatus io_s = NewWritableFile(fs_.get(), fname, &writable_file, fo_copy);
1864
- s = io_s;
1865
- if (sub_compact->io_status.ok()) {
1866
- sub_compact->io_status = io_s;
1867
- // Since this error is really a copy of the io_s that is checked below as s,
1868
- // it does not also need to be checked.
1869
- sub_compact->io_status.PermitUncheckedError();
1870
- }
1871
- if (!s.ok()) {
1872
- ROCKS_LOG_ERROR(
1873
- db_options_.info_log,
1874
- "[%s] [JOB %d] OpenCompactionOutputFiles for table #%" PRIu64
1875
- " fails at NewWritableFile with status %s",
1876
- sub_compact->compaction->column_family_data()->GetName().c_str(),
1877
- job_id_, file_number, s.ToString().c_str());
1878
- LogFlush(db_options_.info_log);
1879
- EventHelpers::LogAndNotifyTableFileCreationFinished(
1880
- event_logger_, cfd->ioptions()->listeners, dbname_, cfd->GetName(),
1881
- fname, job_id_, FileDescriptor(), kInvalidBlobFileNumber,
1882
- TableProperties(), TableFileCreationReason::kCompaction, s,
1883
- kUnknownFileChecksum, kUnknownFileChecksumFuncName);
1884
- return s;
1885
- }
1886
-
1887
- // Try to figure out the output file's oldest ancester time.
1888
- int64_t temp_current_time = 0;
1889
- auto get_time_status = db_options_.clock->GetCurrentTime(&temp_current_time);
1890
- // Safe to proceed even if GetCurrentTime fails. So, log and proceed.
1891
- if (!get_time_status.ok()) {
1892
- ROCKS_LOG_WARN(db_options_.info_log,
1893
- "Failed to get current time. Status: %s",
1894
- get_time_status.ToString().c_str());
1895
- }
1896
- uint64_t current_time = static_cast<uint64_t>(temp_current_time);
1897
- InternalKey tmp_start, tmp_end;
1898
- if (sub_compact->start.has_value()) {
1899
- tmp_start.SetMinPossibleForUserKey(*(sub_compact->start));
1900
- }
1901
- if (sub_compact->end.has_value()) {
1902
- tmp_end.SetMinPossibleForUserKey(*(sub_compact->end));
1903
- }
1904
- uint64_t oldest_ancester_time =
1905
- sub_compact->compaction->MinInputFileOldestAncesterTime(
1906
- sub_compact->start.has_value() ? &tmp_start : nullptr,
1907
- sub_compact->end.has_value() ? &tmp_end : nullptr);
1908
- if (oldest_ancester_time == std::numeric_limits<uint64_t>::max()) {
1909
- // TODO: fix DBSSTTest.GetTotalSstFilesSize and use
1910
- // kUnknownOldestAncesterTime
1911
- oldest_ancester_time = current_time;
1912
- }
1913
-
1914
- // Initialize a SubcompactionState::Output and add it to sub_compact->outputs
1915
- uint64_t epoch_number = sub_compact->compaction->MinInputFileEpochNumber();
1916
- {
1917
- FileMetaData meta;
1918
- meta.fd = FileDescriptor(file_number,
1919
- sub_compact->compaction->output_path_id(), 0);
1920
- meta.oldest_ancester_time = oldest_ancester_time;
1921
- meta.file_creation_time = current_time;
1922
- meta.epoch_number = epoch_number;
1923
- meta.temperature = temperature;
1924
- assert(!db_id_.empty());
1925
- assert(!db_session_id_.empty());
1926
- s = GetSstInternalUniqueId(db_id_, db_session_id_, meta.fd.GetNumber(),
1927
- &meta.unique_id);
1928
- if (!s.ok()) {
1929
- ROCKS_LOG_ERROR(db_options_.info_log,
1930
- "[%s] [JOB %d] file #%" PRIu64
1931
- " failed to generate unique id: %s.",
1932
- cfd->GetName().c_str(), job_id_, meta.fd.GetNumber(),
1933
- s.ToString().c_str());
1934
- return s;
1935
- }
1936
-
1937
- outputs.AddOutput(std::move(meta), cfd->internal_comparator(),
1938
- paranoid_file_checks_);
1939
- }
1940
-
1941
- writable_file->SetIOPriority(GetRateLimiterPriority());
1942
- writable_file->SetWriteLifeTimeHint(write_hint_);
1943
- FileTypeSet tmp_set = db_options_.checksum_handoff_file_types;
1944
- writable_file->SetPreallocationBlockSize(static_cast<size_t>(
1945
- sub_compact->compaction->OutputFilePreallocationSize()));
1946
- const auto& listeners =
1947
- sub_compact->compaction->immutable_options()->listeners;
1948
- outputs.AssignFileWriter(new WritableFileWriter(
1949
- std::move(writable_file), fname, fo_copy, db_options_.clock, io_tracer_,
1950
- db_options_.stats, Histograms::SST_WRITE_MICROS, listeners,
1951
- db_options_.file_checksum_gen_factory.get(),
1952
- tmp_set.Contains(FileType::kTableFile), false));
1953
-
1954
- // TODO(hx235): pass in the correct `oldest_key_time` instead of `0`
1955
- const ReadOptions read_options(Env::IOActivity::kCompaction);
1956
- const WriteOptions write_options(Env::IOActivity::kCompaction);
1957
- TableBuilderOptions tboptions(
1958
- *cfd->ioptions(), *(sub_compact->compaction->mutable_cf_options()),
1959
- read_options, write_options, cfd->internal_comparator(),
1960
- cfd->internal_tbl_prop_coll_factories(),
1961
- sub_compact->compaction->output_compression(),
1962
- sub_compact->compaction->output_compression_opts(), cfd->GetID(),
1963
- cfd->GetName(), sub_compact->compaction->output_level(),
1964
- bottommost_level_, TableFileCreationReason::kCompaction,
1965
- 0 /* oldest_key_time */, current_time, db_id_, db_session_id_,
1966
- sub_compact->compaction->max_output_file_size(), file_number,
1967
- preclude_last_level_min_seqno_ == kMaxSequenceNumber
1968
- ? preclude_last_level_min_seqno_
1969
- : std::min(earliest_snapshot_, preclude_last_level_min_seqno_));
1970
-
1971
- outputs.NewBuilder(tboptions);
1972
-
1973
- LogFlush(db_options_.info_log);
1974
- return s;
1975
- }
1976
-
1977
- void CompactionJob::CleanupCompaction() {
1978
- for (SubcompactionState& sub_compact : compact_->sub_compact_states) {
1979
- sub_compact.Cleanup(table_cache_.get());
1980
- }
1981
- delete compact_;
1982
- compact_ = nullptr;
1983
- }
1984
-
1985
- namespace {
1986
- void CopyPrefix(const Slice& src, size_t prefix_length, std::string* dst) {
1987
- assert(prefix_length > 0);
1988
- size_t length = src.size() > prefix_length ? prefix_length : src.size();
1989
- dst->assign(src.data(), length);
1990
- }
1991
- } // namespace
1992
-
1993
- bool CompactionJob::UpdateCompactionStats(uint64_t* num_input_range_del) {
1994
- assert(compact_);
1995
-
1996
- Compaction* compaction = compact_->compaction;
1997
- compaction_stats_.stats.num_input_files_in_non_output_levels = 0;
1998
- compaction_stats_.stats.num_input_files_in_output_level = 0;
1999
-
2000
- bool has_error = false;
2001
- const ReadOptions read_options(Env::IOActivity::kCompaction);
2002
- const auto& input_table_properties = compaction->GetInputTableProperties();
2003
- for (int input_level = 0;
2004
- input_level < static_cast<int>(compaction->num_input_levels());
2005
- ++input_level) {
2006
- size_t num_input_files = compaction->num_input_files(input_level);
2007
- uint64_t* bytes_read;
2008
- if (compaction->level(input_level) != compaction->output_level()) {
2009
- compaction_stats_.stats.num_input_files_in_non_output_levels +=
2010
- static_cast<int>(num_input_files);
2011
- bytes_read = &compaction_stats_.stats.bytes_read_non_output_levels;
2012
- } else {
2013
- compaction_stats_.stats.num_input_files_in_output_level +=
2014
- static_cast<int>(num_input_files);
2015
- bytes_read = &compaction_stats_.stats.bytes_read_output_level;
2016
- }
2017
- for (size_t i = 0; i < num_input_files; ++i) {
2018
- const FileMetaData* file_meta = compaction->input(input_level, i);
2019
- *bytes_read += file_meta->fd.GetFileSize();
2020
- uint64_t file_input_entries = file_meta->num_entries;
2021
- uint64_t file_num_range_del = file_meta->num_range_deletions;
2022
- if (file_input_entries == 0) {
2023
- uint64_t file_number = file_meta->fd.GetNumber();
2024
- // Try getting info from table property
2025
- std::string fn =
2026
- TableFileName(compaction->immutable_options()->cf_paths,
2027
- file_number, file_meta->fd.GetPathId());
2028
- const auto& tp = input_table_properties.find(fn);
2029
- if (tp != input_table_properties.end()) {
2030
- file_input_entries = tp->second->num_entries;
2031
- file_num_range_del = tp->second->num_range_deletions;
2032
- } else {
2033
- has_error = true;
2034
- }
2035
- }
2036
- compaction_stats_.stats.num_input_records += file_input_entries;
2037
- if (num_input_range_del) {
2038
- *num_input_range_del += file_num_range_del;
2039
- }
2040
- }
2041
- }
2042
-
2043
- assert(compaction_job_stats_);
2044
- compaction_stats_.stats.bytes_read_blob =
2045
- compaction_job_stats_->total_blob_bytes_read;
2046
-
2047
- compaction_stats_.stats.num_dropped_records =
2048
- compaction_stats_.DroppedRecords();
2049
- return !has_error;
2050
- }
2051
-
2052
- void CompactionJob::UpdateCompactionJobStats(
2053
- const InternalStats::CompactionStats& stats) const {
2054
- compaction_job_stats_->elapsed_micros = stats.micros;
2055
-
2056
- // input information
2057
- compaction_job_stats_->total_input_bytes =
2058
- stats.bytes_read_non_output_levels + stats.bytes_read_output_level;
2059
- compaction_job_stats_->num_input_records = stats.num_input_records;
2060
- compaction_job_stats_->num_input_files =
2061
- stats.num_input_files_in_non_output_levels +
2062
- stats.num_input_files_in_output_level;
2063
- compaction_job_stats_->num_input_files_at_output_level =
2064
- stats.num_input_files_in_output_level;
2065
-
2066
- // output information
2067
- compaction_job_stats_->total_output_bytes = stats.bytes_written;
2068
- compaction_job_stats_->total_output_bytes_blob = stats.bytes_written_blob;
2069
- compaction_job_stats_->num_output_records = stats.num_output_records;
2070
- compaction_job_stats_->num_output_files = stats.num_output_files;
2071
- compaction_job_stats_->num_output_files_blob = stats.num_output_files_blob;
2072
-
2073
- if (stats.num_output_files > 0) {
2074
- CopyPrefix(compact_->SmallestUserKey(),
2075
- CompactionJobStats::kMaxPrefixLength,
2076
- &compaction_job_stats_->smallest_output_key_prefix);
2077
- CopyPrefix(compact_->LargestUserKey(), CompactionJobStats::kMaxPrefixLength,
2078
- &compaction_job_stats_->largest_output_key_prefix);
2079
- }
2080
- }
2081
-
2082
- void CompactionJob::LogCompaction() {
2083
- Compaction* compaction = compact_->compaction;
2084
- ColumnFamilyData* cfd = compaction->column_family_data();
2085
-
2086
- // Let's check if anything will get logged. Don't prepare all the info if
2087
- // we're not logging
2088
- if (db_options_.info_log_level <= InfoLogLevel::INFO_LEVEL) {
2089
- Compaction::InputLevelSummaryBuffer inputs_summary;
2090
- ROCKS_LOG_INFO(
2091
- db_options_.info_log, "[%s] [JOB %d] Compacting %s, score %.2f",
2092
- cfd->GetName().c_str(), job_id_,
2093
- compaction->InputLevelSummary(&inputs_summary), compaction->score());
2094
- char scratch[2345];
2095
- compaction->Summary(scratch, sizeof(scratch));
2096
- ROCKS_LOG_INFO(db_options_.info_log, "[%s]: Compaction start summary: %s\n",
2097
- cfd->GetName().c_str(), scratch);
2098
- // build event logger report
2099
- auto stream = event_logger_->Log();
2100
- stream << "job" << job_id_ << "event"
2101
- << "compaction_started"
2102
- << "compaction_reason"
2103
- << GetCompactionReasonString(compaction->compaction_reason());
2104
- for (size_t i = 0; i < compaction->num_input_levels(); ++i) {
2105
- stream << ("files_L" + std::to_string(compaction->level(i)));
2106
- stream.StartArray();
2107
- for (auto f : *compaction->inputs(i)) {
2108
- stream << f->fd.GetNumber();
2109
- }
2110
- stream.EndArray();
2111
- }
2112
- stream << "score" << compaction->score() << "input_data_size"
2113
- << compaction->CalculateTotalInputSize() << "oldest_snapshot_seqno"
2114
- << (existing_snapshots_.empty()
2115
- ? int64_t{-1} // Use -1 for "none"
2116
- : static_cast<int64_t>(existing_snapshots_[0]));
2117
- if (compaction->SupportsPerKeyPlacement()) {
2118
- stream << "preclude_last_level_min_seqno"
2119
- << preclude_last_level_min_seqno_;
2120
- stream << "penultimate_output_level" << compaction->GetPenultimateLevel();
2121
- stream << "penultimate_output_range"
2122
- << GetCompactionPenultimateOutputRangeTypeString(
2123
- compaction->GetPenultimateOutputRangeType());
2124
-
2125
- if (compaction->GetPenultimateOutputRangeType() ==
2126
- Compaction::PenultimateOutputRangeType::kDisabled) {
2127
- ROCKS_LOG_WARN(
2128
- db_options_.info_log,
2129
- "[%s] [JOB %d] Penultimate level output is disabled, likely "
2130
- "because of the range conflict in the penultimate level",
2131
- cfd->GetName().c_str(), job_id_);
2132
- }
2133
- }
2134
- }
2135
- }
2136
-
2137
- std::string CompactionJob::GetTableFileName(uint64_t file_number) {
2138
- return TableFileName(compact_->compaction->immutable_options()->cf_paths,
2139
- file_number, compact_->compaction->output_path_id());
2140
- }
2141
-
2142
- Env::IOPriority CompactionJob::GetRateLimiterPriority() {
2143
- if (versions_ && versions_->GetColumnFamilySet() &&
2144
- versions_->GetColumnFamilySet()->write_controller()) {
2145
- WriteController* write_controller =
2146
- versions_->GetColumnFamilySet()->write_controller();
2147
- if (write_controller->NeedsDelay() || write_controller->IsStopped()) {
2148
- return Env::IO_USER;
2149
- }
2150
- }
2151
-
2152
- return Env::IO_LOW;
2153
- }
2154
-
2155
- } // namespace ROCKSDB_NAMESPACE