rocksdb-native 2.6.2 → 2.6.4

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