rocksdb-native 2.6.3 → 2.6.5

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 (958) hide show
  1. package/CMakeLists.txt +10 -1
  2. package/package.json +3 -3
  3. package/prebuilds/android-arm64/rocksdb-native.bare +0 -0
  4. package/prebuilds/android-ia32/rocksdb-native.bare +0 -0
  5. package/prebuilds/android-x64/rocksdb-native.bare +0 -0
  6. package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
  7. package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
  8. package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
  9. package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
  10. package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
  11. package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
  12. package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
  13. package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
  14. package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
  15. package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
  16. package/prebuilds/linux-x64/rocksdb-native.node +0 -0
  17. package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
  18. package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
  19. package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
  20. package/prebuilds/win32-x64/rocksdb-native.node +0 -0
  21. package/vendor/librocksdb/CMakeLists.txt +0 -96
  22. package/vendor/librocksdb/LICENSE +0 -201
  23. package/vendor/librocksdb/NOTICE +0 -13
  24. package/vendor/librocksdb/README.md +0 -11
  25. package/vendor/librocksdb/include/rocksdb.h +0 -294
  26. package/vendor/librocksdb/src/rocksdb.cc +0 -714
  27. package/vendor/librocksdb/vendor/rocksdb/CMakeLists.txt +0 -1642
  28. package/vendor/librocksdb/vendor/rocksdb/cache/cache.cc +0 -193
  29. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench.cc +0 -20
  30. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench_tool.cc +0 -1177
  31. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.cc +0 -104
  32. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.h +0 -20
  33. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_stats.h +0 -182
  34. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.cc +0 -41
  35. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.h +0 -139
  36. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.cc +0 -364
  37. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.h +0 -143
  38. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.cc +0 -184
  39. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.h +0 -318
  40. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.cc +0 -111
  41. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.h +0 -61
  42. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.cc +0 -3657
  43. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.h +0 -1165
  44. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.cc +0 -414
  45. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.h +0 -151
  46. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.cc +0 -726
  47. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.h +0 -467
  48. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache.cc +0 -12
  49. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.cc +0 -743
  50. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.h +0 -103
  51. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.cc +0 -147
  52. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.h +0 -322
  53. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.cc +0 -125
  54. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.h +0 -158
  55. package/vendor/librocksdb/vendor/rocksdb/cache/typed_cache.h +0 -380
  56. package/vendor/librocksdb/vendor/rocksdb/cmake/RocksDBConfig.cmake.in +0 -54
  57. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.cc +0 -182
  58. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.h +0 -128
  59. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.cc +0 -20
  60. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.h +0 -83
  61. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_constants.h +0 -16
  62. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.cc +0 -42
  63. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.h +0 -60
  64. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_counting_iterator.h +0 -150
  65. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.cc +0 -34
  66. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.h +0 -37
  67. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.cc +0 -156
  68. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.h +0 -67
  69. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.cc +0 -429
  70. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.h +0 -113
  71. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.cc +0 -101
  72. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.h +0 -56
  73. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_completion_callback.h +0 -84
  74. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.cc +0 -134
  75. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.h +0 -57
  76. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.cc +0 -62
  77. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.h +0 -170
  78. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.cc +0 -622
  79. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.h +0 -111
  80. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.cc +0 -100
  81. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.h +0 -102
  82. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_index.h +0 -187
  83. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.cc +0 -143
  84. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.h +0 -164
  85. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.cc +0 -133
  86. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.h +0 -83
  87. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.cc +0 -207
  88. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.h +0 -87
  89. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_read_request.h +0 -58
  90. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.cc +0 -459
  91. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.h +0 -161
  92. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.cc +0 -23
  93. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.h +0 -38
  94. package/vendor/librocksdb/vendor/rocksdb/db/builder.cc +0 -517
  95. package/vendor/librocksdb/vendor/rocksdb/db/builder.h +0 -76
  96. package/vendor/librocksdb/vendor/rocksdb/db/c.cc +0 -7133
  97. package/vendor/librocksdb/vendor/rocksdb/db/c_test.c +0 -4052
  98. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.cc +0 -47
  99. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.h +0 -79
  100. package/vendor/librocksdb/vendor/rocksdb/db/column_family.cc +0 -1859
  101. package/vendor/librocksdb/vendor/rocksdb/db/column_family.h +0 -918
  102. package/vendor/librocksdb/vendor/rocksdb/db/compaction/clipping_iterator.h +0 -281
  103. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.cc +0 -995
  104. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.h +0 -602
  105. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iteration_stats.h +0 -56
  106. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.cc +0 -1523
  107. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.h +0 -557
  108. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.cc +0 -2155
  109. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.h +0 -520
  110. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.cc +0 -802
  111. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.h +0 -411
  112. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.cc +0 -1245
  113. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.h +0 -322
  114. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.cc +0 -478
  115. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.h +0 -61
  116. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.cc +0 -977
  117. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.h +0 -32
  118. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +0 -1578
  119. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.h +0 -29
  120. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_service_job.cc +0 -835
  121. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.cc +0 -46
  122. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.h +0 -42
  123. package/vendor/librocksdb/vendor/rocksdb/db/compaction/file_pri.h +0 -94
  124. package/vendor/librocksdb/vendor/rocksdb/db/compaction/sst_partitioner.cc +0 -83
  125. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.cc +0 -106
  126. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.h +0 -220
  127. package/vendor/librocksdb/vendor/rocksdb/db/convenience.cc +0 -101
  128. package/vendor/librocksdb/vendor/rocksdb/db/convenience_impl.h +0 -15
  129. package/vendor/librocksdb/vendor/rocksdb/db/db_filesnapshot.cc +0 -506
  130. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.cc +0 -275
  131. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.h +0 -147
  132. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.cc +0 -6767
  133. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.h +0 -3056
  134. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +0 -4390
  135. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_debug.cc +0 -327
  136. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_experimental.cc +0 -164
  137. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_files.cc +0 -1032
  138. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.cc +0 -348
  139. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.h +0 -54
  140. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_open.cc +0 -2325
  141. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.cc +0 -376
  142. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.h +0 -179
  143. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +0 -1025
  144. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.h +0 -322
  145. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_write.cc +0 -2624
  146. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.cc +0 -165
  147. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.h +0 -15
  148. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.cc +0 -1774
  149. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.h +0 -444
  150. package/vendor/librocksdb/vendor/rocksdb/db/db_test2.cc +0 -7839
  151. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.cc +0 -1800
  152. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.h +0 -1427
  153. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.cc +0 -96
  154. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.h +0 -126
  155. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.cc +0 -282
  156. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.h +0 -1101
  157. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.cc +0 -806
  158. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.h +0 -149
  159. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.cc +0 -332
  160. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.h +0 -78
  161. package/vendor/librocksdb/vendor/rocksdb/db/experimental.cc +0 -1212
  162. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +0 -1249
  163. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.h +0 -268
  164. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.cc +0 -216
  165. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.h +0 -140
  166. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.cc +0 -1217
  167. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.h +0 -240
  168. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.cc +0 -86
  169. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.h +0 -55
  170. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.cc +0 -1082
  171. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.h +0 -166
  172. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator_bench.cc +0 -378
  173. package/vendor/librocksdb/vendor/rocksdb/db/history_trimming_iterator.h +0 -95
  174. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.cc +0 -463
  175. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.h +0 -91
  176. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.cc +0 -2198
  177. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.h +0 -896
  178. package/vendor/librocksdb/vendor/rocksdb/db/job_context.h +0 -254
  179. package/vendor/librocksdb/vendor/rocksdb/db/kv_checksum.h +0 -484
  180. package/vendor/librocksdb/vendor/rocksdb/db/log_format.h +0 -55
  181. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.cc +0 -958
  182. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.h +0 -245
  183. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.cc +0 -355
  184. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.h +0 -151
  185. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.cc +0 -67
  186. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.h +0 -62
  187. package/vendor/librocksdb/vendor/rocksdb/db/lookup_key.h +0 -68
  188. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.cc +0 -52
  189. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.h +0 -22
  190. package/vendor/librocksdb/vendor/rocksdb/db/memtable.cc +0 -1684
  191. package/vendor/librocksdb/vendor/rocksdb/db/memtable.h +0 -712
  192. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.cc +0 -1028
  193. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.h +0 -514
  194. package/vendor/librocksdb/vendor/rocksdb/db/merge_context.h +0 -150
  195. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.cc +0 -699
  196. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.h +0 -318
  197. package/vendor/librocksdb/vendor/rocksdb/db/merge_operator.cc +0 -167
  198. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator_impl.h +0 -296
  199. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.cc +0 -29
  200. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.h +0 -45
  201. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.cc +0 -110
  202. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.h +0 -108
  203. package/vendor/librocksdb/vendor/rocksdb/db/pinned_iterators_manager.h +0 -92
  204. package/vendor/librocksdb/vendor/rocksdb/db/post_memtable_callback.h +0 -25
  205. package/vendor/librocksdb/vendor/rocksdb/db/pre_release_callback.h +0 -37
  206. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.cc +0 -553
  207. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.h +0 -481
  208. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator_bench.cc +0 -280
  209. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.cc +0 -515
  210. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.h +0 -361
  211. package/vendor/librocksdb/vendor/rocksdb/db/read_callback.h +0 -54
  212. package/vendor/librocksdb/vendor/rocksdb/db/repair.cc +0 -864
  213. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.cc +0 -573
  214. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.h +0 -307
  215. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_checker.h +0 -58
  216. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.cc +0 -25
  217. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.h +0 -239
  218. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.cc +0 -745
  219. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.h +0 -298
  220. package/vendor/librocksdb/vendor/rocksdb/db/table_cache_sync_and_async.h +0 -135
  221. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.cc +0 -74
  222. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.h +0 -185
  223. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.cc +0 -296
  224. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.h +0 -128
  225. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.cc +0 -54
  226. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.h +0 -46
  227. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.cc +0 -1431
  228. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.h +0 -93
  229. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.cc +0 -1119
  230. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.h +0 -769
  231. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.cc +0 -1264
  232. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.h +0 -390
  233. package/vendor/librocksdb/vendor/rocksdb/db/version_set.cc +0 -7562
  234. package/vendor/librocksdb/vendor/rocksdb/db/version_set.h +0 -1799
  235. package/vendor/librocksdb/vendor/rocksdb/db/version_set_sync_and_async.h +0 -169
  236. package/vendor/librocksdb/vendor/rocksdb/db/version_util.h +0 -77
  237. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.cc +0 -211
  238. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.h +0 -177
  239. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.cc +0 -539
  240. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.h +0 -138
  241. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.cc +0 -166
  242. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.h +0 -57
  243. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns.cc +0 -22
  244. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.cc +0 -52
  245. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.h +0 -40
  246. package/vendor/librocksdb/vendor/rocksdb/db/write_batch.cc +0 -3394
  247. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_base.cc +0 -94
  248. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_internal.h +0 -408
  249. package/vendor/librocksdb/vendor/rocksdb/db/write_callback.h +0 -27
  250. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.cc +0 -121
  251. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.h +0 -148
  252. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.cc +0 -179
  253. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.h +0 -47
  254. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.cc +0 -931
  255. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.h +0 -498
  256. package/vendor/librocksdb/vendor/rocksdb/env/composite_env.cc +0 -534
  257. package/vendor/librocksdb/vendor/rocksdb/env/composite_env_wrapper.h +0 -399
  258. package/vendor/librocksdb/vendor/rocksdb/env/emulated_clock.h +0 -114
  259. package/vendor/librocksdb/vendor/rocksdb/env/env.cc +0 -1253
  260. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.cc +0 -149
  261. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.h +0 -55
  262. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption.cc +0 -1192
  263. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption_ctr.h +0 -97
  264. package/vendor/librocksdb/vendor/rocksdb/env/env_posix.cc +0 -530
  265. package/vendor/librocksdb/vendor/rocksdb/env/file_system.cc +0 -278
  266. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.cc +0 -564
  267. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.h +0 -461
  268. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.cc +0 -331
  269. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.h +0 -139
  270. package/vendor/librocksdb/vendor/rocksdb/env/fs_posix.cc +0 -1285
  271. package/vendor/librocksdb/vendor/rocksdb/env/fs_readonly.h +0 -105
  272. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.cc +0 -341
  273. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.h +0 -137
  274. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.cc +0 -1738
  275. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.h +0 -517
  276. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.cc +0 -1058
  277. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.h +0 -144
  278. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.cc +0 -243
  279. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.h +0 -119
  280. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.cc +0 -513
  281. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.h +0 -200
  282. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.cc +0 -992
  283. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.h +0 -629
  284. package/vendor/librocksdb/vendor/rocksdb/file/file_util.cc +0 -308
  285. package/vendor/librocksdb/vendor/rocksdb/file/file_util.h +0 -123
  286. package/vendor/librocksdb/vendor/rocksdb/file/filename.cc +0 -538
  287. package/vendor/librocksdb/vendor/rocksdb/file/filename.h +0 -186
  288. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.cc +0 -73
  289. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.h +0 -60
  290. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.cc +0 -639
  291. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.h +0 -197
  292. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.cc +0 -33
  293. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.h +0 -31
  294. package/vendor/librocksdb/vendor/rocksdb/file/readahead_file_info.h +0 -33
  295. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.cc +0 -169
  296. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.h +0 -29
  297. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.cc +0 -324
  298. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.h +0 -127
  299. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.cc +0 -525
  300. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.h +0 -220
  301. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.cc +0 -1007
  302. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.h +0 -370
  303. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_cache.h +0 -665
  304. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_options.h +0 -1101
  305. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/attribute_groups.h +0 -114
  306. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/block_cache_trace_writer.h +0 -149
  307. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/c.h +0 -3122
  308. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache.h +0 -579
  309. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache_bench_tool.h +0 -14
  310. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cleanable.h +0 -128
  311. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_filter.h +0 -374
  312. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_job_stats.h +0 -112
  313. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/comparator.h +0 -231
  314. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compression_type.h +0 -186
  315. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/concurrent_task_limiter.h +0 -51
  316. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/configurable.h +0 -390
  317. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/convenience.h +0 -466
  318. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/customizable.h +0 -229
  319. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/data_structure.h +0 -186
  320. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db.h +0 -2174
  321. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_bench_tool.h +0 -11
  322. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_dump_tool.h +0 -43
  323. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_stress_tool.h +0 -11
  324. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env.h +0 -1920
  325. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env_encryption.h +0 -363
  326. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/experimental.h +0 -492
  327. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_checksum.h +0 -146
  328. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_system.h +0 -1961
  329. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/filter_policy.h +0 -211
  330. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/flush_block_policy.h +0 -75
  331. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/functor_wrapper.h +0 -56
  332. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/io_status.h +0 -244
  333. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iostats_context.h +0 -98
  334. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator.h +0 -104
  335. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator_base.h +0 -90
  336. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/ldb_tool.h +0 -42
  337. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/listener.h +0 -869
  338. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memory_allocator.h +0 -87
  339. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memtablerep.h +0 -421
  340. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/merge_operator.h +0 -337
  341. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/metadata.h +0 -258
  342. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/options.h +0 -2339
  343. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_context.h +0 -319
  344. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_level.h +0 -39
  345. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/persistent_cache.h +0 -74
  346. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/port_defs.h +0 -26
  347. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rate_limiter.h +0 -172
  348. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rocksdb_namespace.h +0 -16
  349. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/secondary_cache.h +0 -220
  350. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice.h +0 -264
  351. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice_transform.h +0 -135
  352. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/snapshot.h +0 -53
  353. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_dump_tool.h +0 -17
  354. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_manager.h +0 -139
  355. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_reader.h +0 -61
  356. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_writer.h +0 -203
  357. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_partitioner.h +0 -142
  358. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/statistics.h +0 -794
  359. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/stats_history.h +0 -70
  360. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/status.h +0 -609
  361. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/system_clock.h +0 -129
  362. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table.h +0 -938
  363. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_properties.h +0 -380
  364. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_reader_caller.h +0 -41
  365. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/thread_status.h +0 -197
  366. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/threadpool.h +0 -67
  367. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_reader_writer.h +0 -52
  368. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record.h +0 -248
  369. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record_result.h +0 -187
  370. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/transaction_log.h +0 -128
  371. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/types.h +0 -113
  372. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/unique_id.h +0 -55
  373. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/universal_compaction.h +0 -127
  374. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/user_write_callback.h +0 -29
  375. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/agg_merge.h +0 -138
  376. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/backup_engine.h +0 -689
  377. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +0 -144
  378. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +0 -65
  379. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/convenience.h +0 -10
  380. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -321
  381. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/db_ttl.h +0 -70
  382. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/debug.h +0 -46
  383. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -179
  384. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/info_log_finder.h +0 -19
  385. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +0 -338
  386. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +0 -75
  387. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/leveldb_options.h +0 -145
  388. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  389. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
  390. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/memory_util.h +0 -48
  391. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/object_registry.h +0 -583
  392. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +0 -129
  393. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +0 -24
  394. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_type.h +0 -1222
  395. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_util.h +0 -105
  396. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/replayer.h +0 -85
  397. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/sim_cache.h +0 -92
  398. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +0 -593
  399. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +0 -133
  400. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction.h +0 -765
  401. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +0 -510
  402. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -89
  403. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/types_util.h +0 -36
  404. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -402
  405. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/version.h +0 -43
  406. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wal_filter.h +0 -111
  407. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wide_columns.h +0 -303
  408. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch.h +0 -518
  409. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch_base.h +0 -165
  410. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_buffer_manager.h +0 -183
  411. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.cc +0 -366
  412. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.h +0 -165
  413. package/vendor/librocksdb/vendor/rocksdb/logging/env_logger.h +0 -195
  414. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.cc +0 -68
  415. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.h +0 -202
  416. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.cc +0 -91
  417. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.h +0 -57
  418. package/vendor/librocksdb/vendor/rocksdb/logging/logging.h +0 -62
  419. package/vendor/librocksdb/vendor/rocksdb/memory/allocator.h +0 -58
  420. package/vendor/librocksdb/vendor/rocksdb/memory/arena.cc +0 -170
  421. package/vendor/librocksdb/vendor/rocksdb/memory/arena.h +0 -146
  422. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.cc +0 -45
  423. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.h +0 -215
  424. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.cc +0 -304
  425. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.h +0 -99
  426. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.cc +0 -44
  427. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.h +0 -43
  428. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator.cc +0 -81
  429. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator_impl.h +0 -47
  430. package/vendor/librocksdb/vendor/rocksdb/memory/memory_usage.h +0 -38
  431. package/vendor/librocksdb/vendor/rocksdb/memtable/alloc_tracker.cc +0 -63
  432. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_linklist_rep.cc +0 -925
  433. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_skiplist_rep.cc +0 -392
  434. package/vendor/librocksdb/vendor/rocksdb/memtable/inlineskiplist.h +0 -1051
  435. package/vendor/librocksdb/vendor/rocksdb/memtable/memtablerep_bench.cc +0 -687
  436. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplist.h +0 -498
  437. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplistrep.cc +0 -368
  438. package/vendor/librocksdb/vendor/rocksdb/memtable/stl_wrappers.h +0 -33
  439. package/vendor/librocksdb/vendor/rocksdb/memtable/vectorrep.cc +0 -307
  440. package/vendor/librocksdb/vendor/rocksdb/memtable/write_buffer_manager.cc +0 -185
  441. package/vendor/librocksdb/vendor/rocksdb/monitoring/file_read_sample.h +0 -23
  442. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.cc +0 -280
  443. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.h +0 -143
  444. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.cc +0 -198
  445. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.h +0 -84
  446. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.cc +0 -50
  447. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.h +0 -74
  448. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.cc +0 -90
  449. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.h +0 -126
  450. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context.cc +0 -78
  451. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context_imp.h +0 -62
  452. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context.cc +0 -317
  453. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context_imp.h +0 -103
  454. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level.cc +0 -23
  455. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level_imp.h +0 -14
  456. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_step_timer.h +0 -77
  457. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.cc +0 -173
  458. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.h +0 -83
  459. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics.cc +0 -561
  460. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics_impl.h +0 -143
  461. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_impl.cc +0 -163
  462. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.cc +0 -328
  463. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.h +0 -226
  464. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater_debug.cc +0 -43
  465. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.cc +0 -214
  466. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.h +0 -139
  467. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util_debug.cc +0 -60
  468. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.cc +0 -1218
  469. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.h +0 -352
  470. package/vendor/librocksdb/vendor/rocksdb/options/configurable.cc +0 -720
  471. package/vendor/librocksdb/vendor/rocksdb/options/configurable_helper.h +0 -185
  472. package/vendor/librocksdb/vendor/rocksdb/options/configurable_test.h +0 -116
  473. package/vendor/librocksdb/vendor/rocksdb/options/customizable.cc +0 -133
  474. package/vendor/librocksdb/vendor/rocksdb/options/db_options.cc +0 -1113
  475. package/vendor/librocksdb/vendor/rocksdb/options/db_options.h +0 -160
  476. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.cc +0 -59
  477. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.h +0 -37
  478. package/vendor/librocksdb/vendor/rocksdb/options/options.cc +0 -717
  479. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.cc +0 -1438
  480. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.h +0 -115
  481. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.cc +0 -745
  482. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.h +0 -151
  483. package/vendor/librocksdb/vendor/rocksdb/port/jemalloc_helper.h +0 -107
  484. package/vendor/librocksdb/vendor/rocksdb/port/lang.h +0 -97
  485. package/vendor/librocksdb/vendor/rocksdb/port/likely.h +0 -18
  486. package/vendor/librocksdb/vendor/rocksdb/port/malloc.h +0 -17
  487. package/vendor/librocksdb/vendor/rocksdb/port/mmap.cc +0 -98
  488. package/vendor/librocksdb/vendor/rocksdb/port/mmap.h +0 -90
  489. package/vendor/librocksdb/vendor/rocksdb/port/port.h +0 -21
  490. package/vendor/librocksdb/vendor/rocksdb/port/port_dirent.h +0 -44
  491. package/vendor/librocksdb/vendor/rocksdb/port/port_example.h +0 -101
  492. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.cc +0 -300
  493. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.h +0 -246
  494. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.cc +0 -418
  495. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.h +0 -31
  496. package/vendor/librocksdb/vendor/rocksdb/port/sys_time.h +0 -63
  497. package/vendor/librocksdb/vendor/rocksdb/port/util_logger.h +0 -18
  498. package/vendor/librocksdb/vendor/rocksdb/port/win/env_default.cc +0 -45
  499. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.cc +0 -1436
  500. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.h +0 -305
  501. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.cc +0 -1101
  502. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.h +0 -504
  503. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.cc +0 -305
  504. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.h +0 -382
  505. package/vendor/librocksdb/vendor/rocksdb/port/win/win_jemalloc.cc +0 -80
  506. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.cc +0 -192
  507. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.h +0 -64
  508. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.cc +0 -170
  509. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.h +0 -117
  510. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.cc +0 -210
  511. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.h +0 -26
  512. package/vendor/librocksdb/vendor/rocksdb/port/xpress.h +0 -17
  513. package/vendor/librocksdb/vendor/rocksdb/rocksdb.pc.in +0 -10
  514. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.cc +0 -119
  515. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.h +0 -56
  516. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +0 -73
  517. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.h +0 -48
  518. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.cc +0 -1341
  519. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.h +0 -969
  520. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.cc +0 -2148
  521. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.h +0 -208
  522. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.cc +0 -980
  523. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.h +0 -102
  524. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +0 -893
  525. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.h +0 -445
  526. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.cc +0 -3296
  527. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.h +0 -785
  528. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -205
  529. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +0 -819
  530. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.cc +0 -266
  531. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.h +0 -128
  532. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.cc +0 -108
  533. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.h +0 -190
  534. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.cc +0 -158
  535. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.h +0 -74
  536. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.cc +0 -226
  537. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.h +0 -70
  538. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_type.h +0 -34
  539. package/vendor/librocksdb/vendor/rocksdb/table/block_based/cachable_entry.h +0 -249
  540. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.cc +0 -59
  541. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.h +0 -25
  542. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.cc +0 -94
  543. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.h +0 -137
  544. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block.h +0 -189
  545. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +0 -169
  546. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.h +0 -79
  547. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy.cc +0 -1989
  548. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy_internal.h +0 -341
  549. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy.cc +0 -132
  550. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy_impl.h +0 -40
  551. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.cc +0 -297
  552. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.h +0 -142
  553. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.cc +0 -146
  554. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.h +0 -49
  555. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.cc +0 -305
  556. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.h +0 -534
  557. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.cc +0 -62
  558. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.h +0 -94
  559. package/vendor/librocksdb/vendor/rocksdb/table/block_based/mock_block_based_table.h +0 -62
  560. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.cc +0 -23
  561. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.h +0 -47
  562. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +0 -610
  563. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.h +0 -188
  564. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.cc +0 -164
  565. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.h +0 -160
  566. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +0 -264
  567. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.h +0 -58
  568. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.cc +0 -64
  569. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.h +0 -36
  570. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +0 -118
  571. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +0 -60
  572. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.cc +0 -458
  573. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.h +0 -168
  574. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.cc +0 -370
  575. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.h +0 -45
  576. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.cc +0 -555
  577. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -136
  578. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.cc +0 -100
  579. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.h +0 -80
  580. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.cc +0 -416
  581. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.h +0 -100
  582. package/vendor/librocksdb/vendor/rocksdb/table/format.cc +0 -708
  583. package/vendor/librocksdb/vendor/rocksdb/table/format.h +0 -439
  584. package/vendor/librocksdb/vendor/rocksdb/table/get_context.cc +0 -622
  585. package/vendor/librocksdb/vendor/rocksdb/table/get_context.h +0 -259
  586. package/vendor/librocksdb/vendor/rocksdb/table/internal_iterator.h +0 -242
  587. package/vendor/librocksdb/vendor/rocksdb/table/iter_heap.h +0 -44
  588. package/vendor/librocksdb/vendor/rocksdb/table/iterator.cc +0 -134
  589. package/vendor/librocksdb/vendor/rocksdb/table/iterator_wrapper.h +0 -225
  590. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.cc +0 -1755
  591. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.h +0 -100
  592. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.cc +0 -590
  593. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.h +0 -181
  594. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.cc +0 -355
  595. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.h +0 -92
  596. package/vendor/librocksdb/vendor/rocksdb/table/multiget_context.h +0 -405
  597. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.cc +0 -110
  598. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.h +0 -46
  599. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_options.h +0 -34
  600. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.cc +0 -78
  601. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.h +0 -132
  602. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.cc +0 -348
  603. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.h +0 -151
  604. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.cc +0 -295
  605. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.h +0 -180
  606. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.cc +0 -211
  607. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.h +0 -246
  608. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.cc +0 -508
  609. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.h +0 -199
  610. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.cc +0 -778
  611. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.h +0 -243
  612. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.cc +0 -601
  613. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.h +0 -104
  614. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_reader.cc +0 -166
  615. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer.cc +0 -536
  616. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer_collectors.h +0 -97
  617. package/vendor/librocksdb/vendor/rocksdb/table/table_builder.h +0 -239
  618. package/vendor/librocksdb/vendor/rocksdb/table/table_factory.cc +0 -52
  619. package/vendor/librocksdb/vendor/rocksdb/table/table_iterator.h +0 -69
  620. package/vendor/librocksdb/vendor/rocksdb/table/table_properties.cc +0 -357
  621. package/vendor/librocksdb/vendor/rocksdb/table/table_properties_internal.h +0 -14
  622. package/vendor/librocksdb/vendor/rocksdb/table/table_reader.h +0 -202
  623. package/vendor/librocksdb/vendor/rocksdb/table/table_reader_bench.cc +0 -341
  624. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.cc +0 -222
  625. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.h +0 -43
  626. package/vendor/librocksdb/vendor/rocksdb/table/unique_id.cc +0 -223
  627. package/vendor/librocksdb/vendor/rocksdb/table/unique_id_impl.h +0 -93
  628. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.cc +0 -38
  629. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.h +0 -109
  630. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.cc +0 -93
  631. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.h +0 -131
  632. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.cc +0 -82
  633. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.h +0 -182
  634. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.cc +0 -152
  635. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.h +0 -96
  636. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.cc +0 -105
  637. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.h +0 -124
  638. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.cc +0 -776
  639. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.h +0 -908
  640. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.cc +0 -400
  641. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.h +0 -147
  642. package/vendor/librocksdb/vendor/rocksdb/tools/CMakeLists.txt +0 -30
  643. package/vendor/librocksdb/vendor/rocksdb/tools/blob_dump.cc +0 -103
  644. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +0 -2331
  645. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +0 -398
  646. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +0 -17
  647. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench.cc +0 -21
  648. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench_tool.cc +0 -8743
  649. package/vendor/librocksdb/vendor/rocksdb/tools/db_repl_stress.cc +0 -132
  650. package/vendor/librocksdb/vendor/rocksdb/tools/dump/db_dump_tool.cc +0 -264
  651. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_dump.cc +0 -60
  652. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_undump.cc +0 -59
  653. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser.cc +0 -17
  654. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.cc +0 -142
  655. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.h +0 -38
  656. package/vendor/librocksdb/vendor/rocksdb/tools/ldb.cc +0 -13
  657. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd.cc +0 -5044
  658. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd_impl.h +0 -814
  659. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_tool.cc +0 -192
  660. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.cc +0 -244
  661. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.h +0 -124
  662. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump.cc +0 -12
  663. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump_tool.cc +0 -588
  664. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer.cc +0 -17
  665. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.cc +0 -1935
  666. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.h +0 -329
  667. package/vendor/librocksdb/vendor/rocksdb/tools/write_stress.cc +0 -305
  668. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.cc +0 -509
  669. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.h +0 -239
  670. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.cc +0 -303
  671. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.h +0 -185
  672. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record.cc +0 -206
  673. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.cc +0 -190
  674. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.h +0 -46
  675. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_result.cc +0 -146
  676. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.cc +0 -632
  677. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.h +0 -184
  678. package/vendor/librocksdb/vendor/rocksdb/util/aligned_buffer.h +0 -235
  679. package/vendor/librocksdb/vendor/rocksdb/util/aligned_storage.h +0 -24
  680. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.cc +0 -84
  681. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.h +0 -144
  682. package/vendor/librocksdb/vendor/rocksdb/util/atomic.h +0 -111
  683. package/vendor/librocksdb/vendor/rocksdb/util/autovector.h +0 -397
  684. package/vendor/librocksdb/vendor/rocksdb/util/bloom_impl.h +0 -489
  685. package/vendor/librocksdb/vendor/rocksdb/util/build_version.cc.in +0 -79
  686. package/vendor/librocksdb/vendor/rocksdb/util/cast_util.h +0 -88
  687. package/vendor/librocksdb/vendor/rocksdb/util/channel.h +0 -69
  688. package/vendor/librocksdb/vendor/rocksdb/util/cleanable.cc +0 -181
  689. package/vendor/librocksdb/vendor/rocksdb/util/coding.cc +0 -90
  690. package/vendor/librocksdb/vendor/rocksdb/util/coding.h +0 -385
  691. package/vendor/librocksdb/vendor/rocksdb/util/coding_lean.h +0 -101
  692. package/vendor/librocksdb/vendor/rocksdb/util/compaction_job_stats_impl.cc +0 -94
  693. package/vendor/librocksdb/vendor/rocksdb/util/comparator.cc +0 -443
  694. package/vendor/librocksdb/vendor/rocksdb/util/compression.cc +0 -122
  695. package/vendor/librocksdb/vendor/rocksdb/util/compression.h +0 -1879
  696. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.cc +0 -106
  697. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.h +0 -47
  698. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.cc +0 -64
  699. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.h +0 -67
  700. package/vendor/librocksdb/vendor/rocksdb/util/core_local.h +0 -85
  701. package/vendor/librocksdb/vendor/rocksdb/util/coro_utils.h +0 -112
  702. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.cc +0 -1295
  703. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.h +0 -56
  704. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.cc +0 -213
  705. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.h +0 -51
  706. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.c +0 -94
  707. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.h +0 -21
  708. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_asm.S +0 -756
  709. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_constants.h +0 -900
  710. package/vendor/librocksdb/vendor/rocksdb/util/data_structure.cc +0 -16
  711. package/vendor/librocksdb/vendor/rocksdb/util/defer.h +0 -82
  712. package/vendor/librocksdb/vendor/rocksdb/util/distributed_mutex.h +0 -50
  713. package/vendor/librocksdb/vendor/rocksdb/util/duplicate_detector.h +0 -69
  714. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.cc +0 -70
  715. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.h +0 -214
  716. package/vendor/librocksdb/vendor/rocksdb/util/fastrange.h +0 -114
  717. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.cc +0 -170
  718. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.h +0 -101
  719. package/vendor/librocksdb/vendor/rocksdb/util/filter_bench.cc +0 -840
  720. package/vendor/librocksdb/vendor/rocksdb/util/gflags_compat.h +0 -29
  721. package/vendor/librocksdb/vendor/rocksdb/util/hash.cc +0 -201
  722. package/vendor/librocksdb/vendor/rocksdb/util/hash.h +0 -141
  723. package/vendor/librocksdb/vendor/rocksdb/util/hash128.h +0 -26
  724. package/vendor/librocksdb/vendor/rocksdb/util/hash_containers.h +0 -51
  725. package/vendor/librocksdb/vendor/rocksdb/util/hash_map.h +0 -67
  726. package/vendor/librocksdb/vendor/rocksdb/util/heap.h +0 -174
  727. package/vendor/librocksdb/vendor/rocksdb/util/kv_map.h +0 -33
  728. package/vendor/librocksdb/vendor/rocksdb/util/log_write_bench.cc +0 -88
  729. package/vendor/librocksdb/vendor/rocksdb/util/math.h +0 -351
  730. package/vendor/librocksdb/vendor/rocksdb/util/math128.h +0 -338
  731. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.cc +0 -196
  732. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.h +0 -43
  733. package/vendor/librocksdb/vendor/rocksdb/util/mutexlock.h +0 -189
  734. package/vendor/librocksdb/vendor/rocksdb/util/overload.h +0 -23
  735. package/vendor/librocksdb/vendor/rocksdb/util/ppc-opcode.h +0 -27
  736. package/vendor/librocksdb/vendor/rocksdb/util/random.cc +0 -63
  737. package/vendor/librocksdb/vendor/rocksdb/util/random.h +0 -190
  738. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter.cc +0 -391
  739. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter_impl.h +0 -156
  740. package/vendor/librocksdb/vendor/rocksdb/util/repeatable_thread.h +0 -149
  741. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_alg.h +0 -1225
  742. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.cc +0 -498
  743. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.h +0 -182
  744. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_impl.h +0 -1137
  745. package/vendor/librocksdb/vendor/rocksdb/util/set_comparator.h +0 -24
  746. package/vendor/librocksdb/vendor/rocksdb/util/single_thread_executor.h +0 -57
  747. package/vendor/librocksdb/vendor/rocksdb/util/slice.cc +0 -366
  748. package/vendor/librocksdb/vendor/rocksdb/util/status.cc +0 -163
  749. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.cc +0 -62
  750. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.h +0 -41
  751. package/vendor/librocksdb/vendor/rocksdb/util/stop_watch.h +0 -136
  752. package/vendor/librocksdb/vendor/rocksdb/util/string_util.cc +0 -554
  753. package/vendor/librocksdb/vendor/rocksdb/util/string_util.h +0 -185
  754. package/vendor/librocksdb/vendor/rocksdb/util/thread_guard.h +0 -41
  755. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.cc +0 -521
  756. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.h +0 -100
  757. package/vendor/librocksdb/vendor/rocksdb/util/thread_operation.h +0 -122
  758. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.cc +0 -550
  759. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.h +0 -120
  760. package/vendor/librocksdb/vendor/rocksdb/util/timer.h +0 -340
  761. package/vendor/librocksdb/vendor/rocksdb/util/timer_queue.h +0 -231
  762. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.cc +0 -418
  763. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.h +0 -275
  764. package/vendor/librocksdb/vendor/rocksdb/util/user_comparator_wrapper.h +0 -64
  765. package/vendor/librocksdb/vendor/rocksdb/util/vector_iterator.h +0 -114
  766. package/vendor/librocksdb/vendor/rocksdb/util/work_queue.h +0 -150
  767. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.cc +0 -25
  768. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.h +0 -90
  769. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.cc +0 -48
  770. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.h +0 -6364
  771. package/vendor/librocksdb/vendor/rocksdb/util/xxph3.h +0 -1760
  772. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge.cc +0 -237
  773. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge_impl.h +0 -49
  774. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.cc +0 -103
  775. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.h +0 -47
  776. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine.cc +0 -3357
  777. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine_impl.h +0 -34
  778. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -490
  779. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.h +0 -202
  780. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.cc +0 -109
  781. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.h +0 -231
  782. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -54
  783. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.cc +0 -2269
  784. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +0 -514
  785. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -127
  786. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_iterator.h +0 -148
  787. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_listener.h +0 -71
  788. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.cc +0 -276
  789. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -56
  790. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.cc +0 -311
  791. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.h +0 -245
  792. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load.cc +0 -67
  793. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.cc +0 -389
  794. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.h +0 -368
  795. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +0 -104
  796. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +0 -57
  797. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_options.h +0 -41
  798. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.cc +0 -365
  799. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.h +0 -183
  800. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.cc +0 -76
  801. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.h +0 -43
  802. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/serialize.h +0 -81
  803. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.cc +0 -67
  804. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.h +0 -42
  805. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.cc +0 -472
  806. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.h +0 -64
  807. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +0 -41
  808. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -24
  809. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -26
  810. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters.cc +0 -52
  811. package/vendor/librocksdb/vendor/rocksdb/utilities/convenience/info_log_finder.cc +0 -26
  812. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.cc +0 -379
  813. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.h +0 -158
  814. package/vendor/librocksdb/vendor/rocksdb/utilities/debug.cc +0 -134
  815. package/vendor/librocksdb/vendor/rocksdb/utilities/env_mirror.cc +0 -280
  816. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.cc +0 -181
  817. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.h +0 -95
  818. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.cc +0 -555
  819. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.h +0 -252
  820. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.cc +0 -1507
  821. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.h +0 -760
  822. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.cc +0 -138
  823. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.h +0 -115
  824. package/vendor/librocksdb/vendor/rocksdb/utilities/leveldb_options/leveldb_options.cc +0 -57
  825. package/vendor/librocksdb/vendor/rocksdb/utilities/memory/memory_util.cc +0 -50
  826. package/vendor/librocksdb/vendor/rocksdb/utilities/memory_allocators.h +0 -103
  827. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.cc +0 -57
  828. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.h +0 -39
  829. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max.cc +0 -64
  830. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max_operator.h +0 -35
  831. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put.cc +0 -74
  832. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put_operator.h +0 -56
  833. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.cc +0 -97
  834. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.h +0 -42
  835. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.cc +0 -76
  836. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.h +0 -32
  837. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +0 -129
  838. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.h +0 -51
  839. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.cc +0 -56
  840. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.h +0 -35
  841. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.cc +0 -115
  842. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.h +0 -36
  843. package/vendor/librocksdb/vendor/rocksdb/utilities/object_registry.cc +0 -381
  844. package/vendor/librocksdb/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +0 -169
  845. package/vendor/librocksdb/vendor/rocksdb/utilities/options/options_util.cc +0 -117
  846. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -420
  847. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -154
  848. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +0 -607
  849. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -291
  850. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +0 -127
  851. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -84
  852. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -122
  853. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table.h +0 -237
  854. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_bench.cc +0 -310
  855. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -166
  856. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/lrulist.h +0 -172
  857. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +0 -355
  858. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -284
  859. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -165
  860. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -340
  861. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_util.h +0 -67
  862. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -138
  863. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -139
  864. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.cc +0 -287
  865. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.h +0 -231
  866. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/sim_cache.cc +0 -375
  867. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +0 -144
  868. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +0 -45
  869. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +0 -233
  870. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +0 -65
  871. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.cc +0 -132
  872. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.h +0 -48
  873. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.cc +0 -313
  874. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.h +0 -84
  875. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -27
  876. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.h +0 -80
  877. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_tracker.h +0 -207
  878. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +0 -718
  879. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +0 -222
  880. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +0 -324
  881. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -255
  882. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +0 -97
  883. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +0 -34
  884. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +0 -81
  885. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +0 -138
  886. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +0 -102
  887. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +0 -137
  888. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +0 -174
  889. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +0 -220
  890. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +0 -141
  891. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +0 -525
  892. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +0 -255
  893. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +0 -1021
  894. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +0 -580
  895. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +0 -525
  896. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +0 -263
  897. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +0 -178
  898. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +0 -518
  899. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +0 -302
  900. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +0 -118
  901. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +0 -92
  902. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +0 -211
  903. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +0 -124
  904. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +0 -215
  905. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +0 -43
  906. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +0 -130
  907. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +0 -87
  908. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +0 -286
  909. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +0 -87
  910. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +0 -520
  911. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +0 -179
  912. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +0 -197
  913. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +0 -31
  914. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +0 -139
  915. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +0 -165
  916. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +0 -98
  917. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +0 -144
  918. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +0 -199
  919. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +0 -141
  920. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +0 -794
  921. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +0 -1295
  922. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +0 -165
  923. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +0 -76
  924. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +0 -501
  925. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +0 -135
  926. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +0 -156
  927. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +0 -146
  928. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -208
  929. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.h +0 -99
  930. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +0 -111
  931. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +0 -110
  932. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +0 -1278
  933. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -345
  934. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +0 -845
  935. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +0 -345
  936. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/snapshot_checker.cc +0 -37
  937. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.cc +0 -912
  938. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.h +0 -455
  939. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -133
  940. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -24
  941. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_test.h +0 -589
  942. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.cc +0 -207
  943. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.h +0 -86
  944. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +0 -548
  945. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.h +0 -118
  946. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1100
  947. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +0 -1149
  948. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +0 -1089
  949. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.h +0 -333
  950. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -486
  951. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.h +0 -105
  952. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.cc +0 -638
  953. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.h +0 -239
  954. package/vendor/librocksdb/vendor/rocksdb/utilities/types_util.cc +0 -88
  955. package/vendor/librocksdb/vendor/rocksdb/utilities/wal_filter.cc +0 -22
  956. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +0 -1134
  957. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +0 -934
  958. 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