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,2269 +0,0 @@
1
-
2
- // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
3
- // This source code is licensed under both the GPLv2 (found in the
4
- // COPYING file in the root directory) and Apache 2.0 License
5
- // (found in the LICENSE.Apache file in the root directory).
6
-
7
- #include "utilities/blob_db/blob_db_impl.h"
8
-
9
- #include <algorithm>
10
- #include <cinttypes>
11
- #include <iomanip>
12
- #include <memory>
13
- #include <sstream>
14
-
15
- #include "db/blob/blob_index.h"
16
- #include "db/db_impl/db_impl.h"
17
- #include "db/write_batch_internal.h"
18
- #include "file/file_util.h"
19
- #include "file/filename.h"
20
- #include "file/random_access_file_reader.h"
21
- #include "file/sst_file_manager_impl.h"
22
- #include "file/writable_file_writer.h"
23
- #include "logging/logging.h"
24
- #include "monitoring/instrumented_mutex.h"
25
- #include "monitoring/statistics_impl.h"
26
- #include "monitoring/thread_status_util.h"
27
- #include "rocksdb/convenience.h"
28
- #include "rocksdb/env.h"
29
- #include "rocksdb/iterator.h"
30
- #include "rocksdb/utilities/stackable_db.h"
31
- #include "rocksdb/utilities/transaction.h"
32
- #include "table/block_based/block.h"
33
- #include "table/block_based/block_based_table_builder.h"
34
- #include "table/block_based/block_builder.h"
35
- #include "table/meta_blocks.h"
36
- #include "test_util/sync_point.h"
37
- #include "util/cast_util.h"
38
- #include "util/crc32c.h"
39
- #include "util/mutexlock.h"
40
- #include "util/random.h"
41
- #include "util/stop_watch.h"
42
- #include "util/timer_queue.h"
43
- #include "utilities/blob_db/blob_compaction_filter.h"
44
- #include "utilities/blob_db/blob_db_iterator.h"
45
- #include "utilities/blob_db/blob_db_listener.h"
46
-
47
- namespace {
48
- int kBlockBasedTableVersionFormat = 2;
49
- } // end namespace
50
-
51
- namespace ROCKSDB_NAMESPACE::blob_db {
52
-
53
- bool BlobFileComparator::operator()(
54
- const std::shared_ptr<BlobFile>& lhs,
55
- const std::shared_ptr<BlobFile>& rhs) const {
56
- return lhs->BlobFileNumber() > rhs->BlobFileNumber();
57
- }
58
-
59
- bool BlobFileComparatorTTL::operator()(
60
- const std::shared_ptr<BlobFile>& lhs,
61
- const std::shared_ptr<BlobFile>& rhs) const {
62
- assert(lhs->HasTTL() && rhs->HasTTL());
63
- if (lhs->expiration_range_.first < rhs->expiration_range_.first) {
64
- return true;
65
- }
66
- if (lhs->expiration_range_.first > rhs->expiration_range_.first) {
67
- return false;
68
- }
69
- return lhs->BlobFileNumber() < rhs->BlobFileNumber();
70
- }
71
-
72
- BlobDBImpl::BlobDBImpl(const std::string& dbname,
73
- const BlobDBOptions& blob_db_options,
74
- const DBOptions& db_options,
75
- const ColumnFamilyOptions& cf_options)
76
- : BlobDB(),
77
- dbname_(dbname),
78
- db_impl_(nullptr),
79
- env_(db_options.env),
80
- bdb_options_(blob_db_options),
81
- db_options_(db_options),
82
- cf_options_(cf_options),
83
- file_options_(db_options),
84
- statistics_(db_options_.statistics.get()),
85
- next_file_number_(1),
86
- flush_sequence_(0),
87
- closed_(true),
88
- open_file_count_(0),
89
- total_blob_size_(0),
90
- live_sst_size_(0),
91
- fifo_eviction_seq_(0),
92
- evict_expiration_up_to_(0),
93
- debug_level_(0) {
94
- clock_ = env_->GetSystemClock().get();
95
- blob_dir_ = (bdb_options_.path_relative)
96
- ? dbname + "/" + bdb_options_.blob_dir
97
- : bdb_options_.blob_dir;
98
- file_options_.bytes_per_sync = blob_db_options.bytes_per_sync;
99
- }
100
-
101
- BlobDBImpl::~BlobDBImpl() {
102
- tqueue_.shutdown();
103
- // CancelAllBackgroundWork(db_, true);
104
- Status s __attribute__((__unused__)) = Close();
105
- assert(s.ok());
106
- }
107
-
108
- Status BlobDBImpl::Close() {
109
- ThreadStatus::OperationType cur_op_type =
110
- ThreadStatusUtil::GetThreadOperation();
111
- ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType::OP_UNKNOWN);
112
- Status s = CloseImpl();
113
- ThreadStatusUtil::SetThreadOperation(cur_op_type);
114
- return s;
115
- }
116
-
117
- Status BlobDBImpl::CloseImpl() {
118
- if (closed_) {
119
- return Status::OK();
120
- }
121
- closed_ = true;
122
-
123
- // Close base DB before BlobDBImpl destructs to stop event listener and
124
- // compaction filter call.
125
- Status s = db_->Close();
126
- // delete db_ anyway even if close failed.
127
- delete db_;
128
- // Reset pointers to avoid StackableDB delete the pointer again.
129
- db_ = nullptr;
130
- db_impl_ = nullptr;
131
- if (!s.ok()) {
132
- return s;
133
- }
134
-
135
- // TODO: plumb Env::IOActivity, Env::IOPriority
136
- s = SyncBlobFiles(WriteOptions());
137
- return s;
138
- }
139
-
140
- BlobDBOptions BlobDBImpl::GetBlobDBOptions() const { return bdb_options_; }
141
-
142
- Status BlobDBImpl::Open(std::vector<ColumnFamilyHandle*>* handles) {
143
- assert(handles != nullptr);
144
- assert(db_ == nullptr);
145
-
146
- if (blob_dir_.empty()) {
147
- return Status::NotSupported("No blob directory in options");
148
- }
149
-
150
- if (bdb_options_.garbage_collection_cutoff < 0.0 ||
151
- bdb_options_.garbage_collection_cutoff > 1.0) {
152
- return Status::InvalidArgument(
153
- "Garbage collection cutoff must be in the interval [0.0, 1.0]");
154
- }
155
-
156
- // Temporarily disable compactions in the base DB during open; save the user
157
- // defined value beforehand so we can restore it once BlobDB is initialized.
158
- // Note: this is only needed if garbage collection is enabled.
159
- const bool disable_auto_compactions = cf_options_.disable_auto_compactions;
160
-
161
- if (bdb_options_.enable_garbage_collection) {
162
- cf_options_.disable_auto_compactions = true;
163
- }
164
-
165
- Status s;
166
-
167
- // Create info log.
168
- if (db_options_.info_log == nullptr) {
169
- s = CreateLoggerFromOptions(dbname_, db_options_, &db_options_.info_log);
170
- if (!s.ok()) {
171
- return s;
172
- }
173
- }
174
-
175
- ROCKS_LOG_INFO(db_options_.info_log, "Opening BlobDB...");
176
-
177
- if ((cf_options_.compaction_filter != nullptr ||
178
- cf_options_.compaction_filter_factory != nullptr)) {
179
- ROCKS_LOG_INFO(db_options_.info_log,
180
- "BlobDB only support compaction filter on non-TTL values.");
181
- }
182
-
183
- // Open blob directory.
184
- s = env_->CreateDirIfMissing(blob_dir_);
185
- if (!s.ok()) {
186
- ROCKS_LOG_ERROR(db_options_.info_log,
187
- "Failed to create blob_dir %s, status: %s",
188
- blob_dir_.c_str(), s.ToString().c_str());
189
- }
190
- s = env_->GetFileSystem()->NewDirectory(blob_dir_, IOOptions(), &dir_ent_,
191
- nullptr);
192
- if (!s.ok()) {
193
- ROCKS_LOG_ERROR(db_options_.info_log,
194
- "Failed to open blob_dir %s, status: %s", blob_dir_.c_str(),
195
- s.ToString().c_str());
196
- return s;
197
- }
198
-
199
- // Open blob files.
200
- s = OpenAllBlobFiles();
201
- if (!s.ok()) {
202
- return s;
203
- }
204
-
205
- // Update options
206
- if (bdb_options_.enable_garbage_collection) {
207
- db_options_.listeners.push_back(std::make_shared<BlobDBListenerGC>(this));
208
- cf_options_.compaction_filter_factory =
209
- std::make_shared<BlobIndexCompactionFilterFactoryGC>(
210
- this, clock_, cf_options_, statistics_);
211
- } else {
212
- db_options_.listeners.push_back(std::make_shared<BlobDBListener>(this));
213
- cf_options_.compaction_filter_factory =
214
- std::make_shared<BlobIndexCompactionFilterFactory>(
215
- this, clock_, cf_options_, statistics_);
216
- }
217
-
218
- // Reset user compaction filter after building into compaction factory.
219
- cf_options_.compaction_filter = nullptr;
220
-
221
- // Open base db.
222
- ColumnFamilyDescriptor cf_descriptor(kDefaultColumnFamilyName, cf_options_);
223
- s = DB::Open(db_options_, dbname_, {cf_descriptor}, handles, &db_);
224
- if (!s.ok()) {
225
- return s;
226
- }
227
- db_impl_ = static_cast_with_check<DBImpl>(db_->GetRootDB());
228
-
229
- // Sanitize the blob_dir provided. Using a directory where the
230
- // base DB stores its files for the default CF is not supported.
231
- const ColumnFamilyData* const cfd =
232
- static_cast<ColumnFamilyHandleImpl*>(DefaultColumnFamily())->cfd();
233
- assert(cfd);
234
-
235
- const ImmutableCFOptions* const ioptions = cfd->ioptions();
236
- assert(ioptions);
237
-
238
- assert(env_);
239
-
240
- for (const auto& cf_path : ioptions->cf_paths) {
241
- bool blob_dir_same_as_cf_dir = false;
242
- s = env_->AreFilesSame(blob_dir_, cf_path.path, &blob_dir_same_as_cf_dir);
243
- if (!s.ok()) {
244
- ROCKS_LOG_ERROR(db_options_.info_log,
245
- "Error while sanitizing blob_dir %s, status: %s",
246
- blob_dir_.c_str(), s.ToString().c_str());
247
- return s;
248
- }
249
-
250
- if (blob_dir_same_as_cf_dir) {
251
- return Status::NotSupported(
252
- "Using the base DB's storage directories for BlobDB files is not "
253
- "supported.");
254
- }
255
- }
256
-
257
- // Initialize SST file <-> oldest blob file mapping if garbage collection
258
- // is enabled.
259
- if (bdb_options_.enable_garbage_collection) {
260
- std::vector<LiveFileMetaData> live_files;
261
- db_->GetLiveFilesMetaData(&live_files);
262
-
263
- InitializeBlobFileToSstMapping(live_files);
264
-
265
- MarkUnreferencedBlobFilesObsoleteDuringOpen();
266
-
267
- if (!disable_auto_compactions) {
268
- s = db_->EnableAutoCompaction(*handles);
269
- if (!s.ok()) {
270
- ROCKS_LOG_ERROR(
271
- db_options_.info_log,
272
- "Failed to enable automatic compactions during open, status: %s",
273
- s.ToString().c_str());
274
- return s;
275
- }
276
- }
277
- }
278
-
279
- // Add trash files in blob dir to file delete scheduler.
280
- SstFileManagerImpl* sfm = static_cast<SstFileManagerImpl*>(
281
- db_impl_->immutable_db_options().sst_file_manager.get());
282
- s = DeleteScheduler::CleanupDirectory(env_, sfm, blob_dir_);
283
- if (!s.ok()) {
284
- ROCKS_LOG_ERROR(db_options_.info_log,
285
- "Failed to clean up directory %s, status: %s",
286
- blob_dir_.c_str(), s.ToString().c_str());
287
- return s;
288
- }
289
-
290
- UpdateLiveSSTSize(WriteOptions(Env::IOActivity::kDBOpen));
291
-
292
- // Start background jobs.
293
- if (!bdb_options_.disable_background_tasks) {
294
- StartBackgroundTasks();
295
- }
296
-
297
- ROCKS_LOG_INFO(db_options_.info_log, "BlobDB pointer %p", this);
298
- bdb_options_.Dump(db_options_.info_log.get());
299
- closed_ = false;
300
- return s;
301
- }
302
-
303
- void BlobDBImpl::StartBackgroundTasks() {
304
- // store a call to a member function and object
305
- tqueue_.add(
306
- kReclaimOpenFilesPeriodMillisecs,
307
- std::bind(&BlobDBImpl::ReclaimOpenFiles, this, std::placeholders::_1));
308
- tqueue_.add(
309
- kDeleteObsoleteFilesPeriodMillisecs,
310
- std::bind(&BlobDBImpl::DeleteObsoleteFiles, this, std::placeholders::_1));
311
- tqueue_.add(kSanityCheckPeriodMillisecs,
312
- std::bind(&BlobDBImpl::SanityCheck, this, std::placeholders::_1));
313
- tqueue_.add(
314
- kEvictExpiredFilesPeriodMillisecs,
315
- std::bind(&BlobDBImpl::EvictExpiredFiles, this, std::placeholders::_1));
316
- }
317
-
318
- Status BlobDBImpl::GetAllBlobFiles(std::set<uint64_t>* file_numbers) {
319
- assert(file_numbers != nullptr);
320
- std::vector<std::string> all_files;
321
- Status s = env_->GetChildren(blob_dir_, &all_files);
322
- if (!s.ok()) {
323
- ROCKS_LOG_ERROR(db_options_.info_log,
324
- "Failed to get list of blob files, status: %s",
325
- s.ToString().c_str());
326
- return s;
327
- }
328
-
329
- for (const auto& file_name : all_files) {
330
- uint64_t file_number;
331
- FileType type;
332
- bool success = ParseFileName(file_name, &file_number, &type);
333
- if (success && type == kBlobFile) {
334
- file_numbers->insert(file_number);
335
- } else {
336
- ROCKS_LOG_WARN(db_options_.info_log,
337
- "Skipping file in blob directory: %s", file_name.c_str());
338
- }
339
- }
340
-
341
- return s;
342
- }
343
-
344
- Status BlobDBImpl::OpenAllBlobFiles() {
345
- std::set<uint64_t> file_numbers;
346
- Status s = GetAllBlobFiles(&file_numbers);
347
- if (!s.ok()) {
348
- return s;
349
- }
350
-
351
- if (!file_numbers.empty()) {
352
- next_file_number_.store(*file_numbers.rbegin() + 1);
353
- }
354
-
355
- std::ostringstream blob_file_oss;
356
- std::ostringstream live_imm_oss;
357
- std::ostringstream obsolete_file_oss;
358
-
359
- for (auto& file_number : file_numbers) {
360
- std::shared_ptr<BlobFile> blob_file = std::make_shared<BlobFile>(
361
- this, blob_dir_, file_number, db_options_.info_log.get());
362
- blob_file->MarkImmutable(/* sequence */ 0);
363
-
364
- // Read file header and footer
365
- Status read_metadata_status =
366
- blob_file->ReadMetadata(env_->GetFileSystem(), file_options_);
367
- if (read_metadata_status.IsCorruption()) {
368
- // Remove incomplete file.
369
- if (!obsolete_files_.empty()) {
370
- obsolete_file_oss << ", ";
371
- }
372
- obsolete_file_oss << file_number;
373
-
374
- ObsoleteBlobFile(blob_file, 0 /*obsolete_seq*/, false /*update_size*/);
375
- continue;
376
- } else if (!read_metadata_status.ok()) {
377
- ROCKS_LOG_ERROR(db_options_.info_log,
378
- "Unable to read metadata of blob file %" PRIu64
379
- ", status: '%s'",
380
- file_number, read_metadata_status.ToString().c_str());
381
- return read_metadata_status;
382
- }
383
-
384
- total_blob_size_ += blob_file->GetFileSize();
385
-
386
- if (!blob_files_.empty()) {
387
- blob_file_oss << ", ";
388
- }
389
- blob_file_oss << file_number;
390
-
391
- blob_files_[file_number] = blob_file;
392
-
393
- if (!blob_file->HasTTL()) {
394
- if (!live_imm_non_ttl_blob_files_.empty()) {
395
- live_imm_oss << ", ";
396
- }
397
- live_imm_oss << file_number;
398
-
399
- live_imm_non_ttl_blob_files_[file_number] = blob_file;
400
- }
401
- }
402
-
403
- ROCKS_LOG_INFO(db_options_.info_log,
404
- "Found %" ROCKSDB_PRIszt " blob files: %s", blob_files_.size(),
405
- blob_file_oss.str().c_str());
406
- ROCKS_LOG_INFO(
407
- db_options_.info_log, "Found %" ROCKSDB_PRIszt " non-TTL blob files: %s",
408
- live_imm_non_ttl_blob_files_.size(), live_imm_oss.str().c_str());
409
- ROCKS_LOG_INFO(db_options_.info_log,
410
- "Found %" ROCKSDB_PRIszt
411
- " incomplete or corrupted blob files: %s",
412
- obsolete_files_.size(), obsolete_file_oss.str().c_str());
413
- return s;
414
- }
415
-
416
- template <typename Linker>
417
- void BlobDBImpl::LinkSstToBlobFileImpl(uint64_t sst_file_number,
418
- uint64_t blob_file_number,
419
- Linker linker) {
420
- assert(bdb_options_.enable_garbage_collection);
421
- assert(blob_file_number != kInvalidBlobFileNumber);
422
-
423
- auto it = blob_files_.find(blob_file_number);
424
- if (it == blob_files_.end()) {
425
- ROCKS_LOG_WARN(db_options_.info_log,
426
- "Blob file %" PRIu64
427
- " not found while trying to link "
428
- "SST file %" PRIu64,
429
- blob_file_number, sst_file_number);
430
- return;
431
- }
432
-
433
- BlobFile* const blob_file = it->second.get();
434
- assert(blob_file);
435
-
436
- linker(blob_file, sst_file_number);
437
-
438
- ROCKS_LOG_INFO(db_options_.info_log,
439
- "Blob file %" PRIu64 " linked to SST file %" PRIu64,
440
- blob_file_number, sst_file_number);
441
- }
442
-
443
- void BlobDBImpl::LinkSstToBlobFile(uint64_t sst_file_number,
444
- uint64_t blob_file_number) {
445
- auto linker = [](BlobFile* blob_file, uint64_t sst_file) {
446
- WriteLock file_lock(&blob_file->mutex_);
447
- blob_file->LinkSstFile(sst_file);
448
- };
449
-
450
- LinkSstToBlobFileImpl(sst_file_number, blob_file_number, linker);
451
- }
452
-
453
- void BlobDBImpl::LinkSstToBlobFileNoLock(uint64_t sst_file_number,
454
- uint64_t blob_file_number) {
455
- auto linker = [](BlobFile* blob_file, uint64_t sst_file) {
456
- blob_file->LinkSstFile(sst_file);
457
- };
458
-
459
- LinkSstToBlobFileImpl(sst_file_number, blob_file_number, linker);
460
- }
461
-
462
- void BlobDBImpl::UnlinkSstFromBlobFile(uint64_t sst_file_number,
463
- uint64_t blob_file_number) {
464
- assert(bdb_options_.enable_garbage_collection);
465
- assert(blob_file_number != kInvalidBlobFileNumber);
466
-
467
- auto it = blob_files_.find(blob_file_number);
468
- if (it == blob_files_.end()) {
469
- ROCKS_LOG_WARN(db_options_.info_log,
470
- "Blob file %" PRIu64
471
- " not found while trying to unlink "
472
- "SST file %" PRIu64,
473
- blob_file_number, sst_file_number);
474
- return;
475
- }
476
-
477
- BlobFile* const blob_file = it->second.get();
478
- assert(blob_file);
479
-
480
- {
481
- WriteLock file_lock(&blob_file->mutex_);
482
- blob_file->UnlinkSstFile(sst_file_number);
483
- }
484
-
485
- ROCKS_LOG_INFO(db_options_.info_log,
486
- "Blob file %" PRIu64 " unlinked from SST file %" PRIu64,
487
- blob_file_number, sst_file_number);
488
- }
489
-
490
- void BlobDBImpl::InitializeBlobFileToSstMapping(
491
- const std::vector<LiveFileMetaData>& live_files) {
492
- assert(bdb_options_.enable_garbage_collection);
493
-
494
- for (const auto& live_file : live_files) {
495
- const uint64_t sst_file_number = live_file.file_number;
496
- const uint64_t blob_file_number = live_file.oldest_blob_file_number;
497
-
498
- if (blob_file_number == kInvalidBlobFileNumber) {
499
- continue;
500
- }
501
-
502
- LinkSstToBlobFileNoLock(sst_file_number, blob_file_number);
503
- }
504
- }
505
-
506
- void BlobDBImpl::ProcessFlushJobInfo(const FlushJobInfo& info) {
507
- assert(bdb_options_.enable_garbage_collection);
508
-
509
- WriteLock lock(&mutex_);
510
-
511
- if (info.oldest_blob_file_number != kInvalidBlobFileNumber) {
512
- LinkSstToBlobFile(info.file_number, info.oldest_blob_file_number);
513
- }
514
-
515
- assert(flush_sequence_ < info.largest_seqno);
516
- flush_sequence_ = info.largest_seqno;
517
-
518
- MarkUnreferencedBlobFilesObsolete();
519
- }
520
-
521
- void BlobDBImpl::ProcessCompactionJobInfo(const CompactionJobInfo& info) {
522
- assert(bdb_options_.enable_garbage_collection);
523
-
524
- if (!info.status.ok()) {
525
- return;
526
- }
527
-
528
- // Note: the same SST file may appear in both the input and the output
529
- // file list in case of a trivial move. We walk through the two lists
530
- // below in a fashion that's similar to merge sort to detect this.
531
-
532
- auto cmp = [](const CompactionFileInfo& lhs, const CompactionFileInfo& rhs) {
533
- return lhs.file_number < rhs.file_number;
534
- };
535
-
536
- auto inputs = info.input_file_infos;
537
- auto iit = inputs.begin();
538
- const auto iit_end = inputs.end();
539
-
540
- std::sort(iit, iit_end, cmp);
541
-
542
- auto outputs = info.output_file_infos;
543
- auto oit = outputs.begin();
544
- const auto oit_end = outputs.end();
545
-
546
- std::sort(oit, oit_end, cmp);
547
-
548
- WriteLock lock(&mutex_);
549
-
550
- while (iit != iit_end && oit != oit_end) {
551
- const auto& input = *iit;
552
- const auto& output = *oit;
553
-
554
- if (input.file_number == output.file_number) {
555
- ++iit;
556
- ++oit;
557
- } else if (input.file_number < output.file_number) {
558
- if (input.oldest_blob_file_number != kInvalidBlobFileNumber) {
559
- UnlinkSstFromBlobFile(input.file_number, input.oldest_blob_file_number);
560
- }
561
-
562
- ++iit;
563
- } else {
564
- assert(output.file_number < input.file_number);
565
-
566
- if (output.oldest_blob_file_number != kInvalidBlobFileNumber) {
567
- LinkSstToBlobFile(output.file_number, output.oldest_blob_file_number);
568
- }
569
-
570
- ++oit;
571
- }
572
- }
573
-
574
- while (iit != iit_end) {
575
- const auto& input = *iit;
576
-
577
- if (input.oldest_blob_file_number != kInvalidBlobFileNumber) {
578
- UnlinkSstFromBlobFile(input.file_number, input.oldest_blob_file_number);
579
- }
580
-
581
- ++iit;
582
- }
583
-
584
- while (oit != oit_end) {
585
- const auto& output = *oit;
586
-
587
- if (output.oldest_blob_file_number != kInvalidBlobFileNumber) {
588
- LinkSstToBlobFile(output.file_number, output.oldest_blob_file_number);
589
- }
590
-
591
- ++oit;
592
- }
593
-
594
- MarkUnreferencedBlobFilesObsolete();
595
- }
596
-
597
- bool BlobDBImpl::MarkBlobFileObsoleteIfNeeded(
598
- const std::shared_ptr<BlobFile>& blob_file, SequenceNumber obsolete_seq) {
599
- assert(blob_file);
600
- assert(!blob_file->HasTTL());
601
- assert(blob_file->Immutable());
602
- assert(bdb_options_.enable_garbage_collection);
603
-
604
- // Note: FIFO eviction could have marked this file obsolete already.
605
- if (blob_file->Obsolete()) {
606
- return true;
607
- }
608
-
609
- // We cannot mark this file (or any higher-numbered files for that matter)
610
- // obsolete if it is referenced by any memtables or SSTs. We keep track of
611
- // the SSTs explicitly. To account for memtables, we keep track of the highest
612
- // sequence number received in flush notifications, and we do not mark the
613
- // blob file obsolete if there are still unflushed memtables from before
614
- // the time the blob file was closed.
615
- if (blob_file->GetImmutableSequence() > flush_sequence_ ||
616
- !blob_file->GetLinkedSstFiles().empty()) {
617
- return false;
618
- }
619
-
620
- ROCKS_LOG_INFO(db_options_.info_log,
621
- "Blob file %" PRIu64 " is no longer needed, marking obsolete",
622
- blob_file->BlobFileNumber());
623
-
624
- ObsoleteBlobFile(blob_file, obsolete_seq, /* update_size */ true);
625
- return true;
626
- }
627
-
628
- template <class Functor>
629
- void BlobDBImpl::MarkUnreferencedBlobFilesObsoleteImpl(Functor mark_if_needed) {
630
- assert(bdb_options_.enable_garbage_collection);
631
-
632
- // Iterate through all live immutable non-TTL blob files, and mark them
633
- // obsolete assuming no SST files or memtables rely on the blobs in them.
634
- // Note: we need to stop as soon as we find a blob file that has any
635
- // linked SSTs (or one potentially referenced by memtables).
636
-
637
- uint64_t obsoleted_files = 0;
638
-
639
- auto it = live_imm_non_ttl_blob_files_.begin();
640
- while (it != live_imm_non_ttl_blob_files_.end()) {
641
- const auto& blob_file = it->second;
642
- assert(blob_file);
643
- assert(blob_file->BlobFileNumber() == it->first);
644
- assert(!blob_file->HasTTL());
645
- assert(blob_file->Immutable());
646
-
647
- // Small optimization: Obsolete() does an atomic read, so we can do
648
- // this check without taking a lock on the blob file's mutex.
649
- if (blob_file->Obsolete()) {
650
- it = live_imm_non_ttl_blob_files_.erase(it);
651
- continue;
652
- }
653
-
654
- if (!mark_if_needed(blob_file)) {
655
- break;
656
- }
657
-
658
- it = live_imm_non_ttl_blob_files_.erase(it);
659
-
660
- ++obsoleted_files;
661
- }
662
-
663
- if (obsoleted_files > 0) {
664
- ROCKS_LOG_INFO(db_options_.info_log,
665
- "%" PRIu64 " blob file(s) marked obsolete by GC",
666
- obsoleted_files);
667
- RecordTick(statistics_, BLOB_DB_GC_NUM_FILES, obsoleted_files);
668
- }
669
- }
670
-
671
- void BlobDBImpl::MarkUnreferencedBlobFilesObsolete() {
672
- const SequenceNumber obsolete_seq = GetLatestSequenceNumber();
673
-
674
- MarkUnreferencedBlobFilesObsoleteImpl(
675
- [this, obsolete_seq](const std::shared_ptr<BlobFile>& blob_file) {
676
- WriteLock file_lock(&blob_file->mutex_);
677
- return MarkBlobFileObsoleteIfNeeded(blob_file, obsolete_seq);
678
- });
679
- }
680
-
681
- void BlobDBImpl::MarkUnreferencedBlobFilesObsoleteDuringOpen() {
682
- MarkUnreferencedBlobFilesObsoleteImpl(
683
- [this](const std::shared_ptr<BlobFile>& blob_file) {
684
- return MarkBlobFileObsoleteIfNeeded(blob_file, /* obsolete_seq */ 0);
685
- });
686
- }
687
-
688
- void BlobDBImpl::CloseRandomAccessLocked(
689
- const std::shared_ptr<BlobFile>& bfile) {
690
- bfile->CloseRandomAccessLocked();
691
- open_file_count_--;
692
- }
693
-
694
- Status BlobDBImpl::GetBlobFileReader(
695
- const std::shared_ptr<BlobFile>& blob_file,
696
- std::shared_ptr<RandomAccessFileReader>* reader) {
697
- assert(reader != nullptr);
698
- bool fresh_open = false;
699
- Status s = blob_file->GetReader(env_, file_options_, reader, &fresh_open);
700
- if (s.ok() && fresh_open) {
701
- assert(*reader != nullptr);
702
- open_file_count_++;
703
- }
704
- return s;
705
- }
706
-
707
- std::shared_ptr<BlobFile> BlobDBImpl::NewBlobFile(
708
- bool has_ttl, const ExpirationRange& expiration_range,
709
- const std::string& reason) {
710
- assert(has_ttl == (expiration_range.first || expiration_range.second));
711
-
712
- uint64_t file_num = next_file_number_++;
713
-
714
- const uint32_t column_family_id =
715
- static_cast<ColumnFamilyHandleImpl*>(DefaultColumnFamily())->GetID();
716
- auto blob_file = std::make_shared<BlobFile>(
717
- this, blob_dir_, file_num, db_options_.info_log.get(), column_family_id,
718
- bdb_options_.compression, has_ttl, expiration_range);
719
-
720
- ROCKS_LOG_DEBUG(db_options_.info_log, "New blob file created: %s reason='%s'",
721
- blob_file->PathName().c_str(), reason.c_str());
722
- LogFlush(db_options_.info_log);
723
-
724
- return blob_file;
725
- }
726
-
727
- void BlobDBImpl::RegisterBlobFile(std::shared_ptr<BlobFile> blob_file) {
728
- const uint64_t blob_file_number = blob_file->BlobFileNumber();
729
-
730
- auto it = blob_files_.lower_bound(blob_file_number);
731
- assert(it == blob_files_.end() || it->first != blob_file_number);
732
-
733
- blob_files_.insert(it,
734
- std::map<uint64_t, std::shared_ptr<BlobFile>>::value_type(
735
- blob_file_number, std::move(blob_file)));
736
- }
737
-
738
- Status BlobDBImpl::CreateWriterLocked(const std::shared_ptr<BlobFile>& bfile) {
739
- std::string fpath(bfile->PathName());
740
- std::unique_ptr<FSWritableFile> wfile;
741
- const auto& fs = env_->GetFileSystem();
742
-
743
- Status s = fs->ReopenWritableFile(fpath, file_options_, &wfile, nullptr);
744
- if (!s.ok()) {
745
- ROCKS_LOG_ERROR(db_options_.info_log,
746
- "Failed to open blob file for write: %s status: '%s'"
747
- " exists: '%s'",
748
- fpath.c_str(), s.ToString().c_str(),
749
- fs->FileExists(fpath, file_options_.io_options, nullptr)
750
- .ToString()
751
- .c_str());
752
- return s;
753
- }
754
-
755
- std::unique_ptr<WritableFileWriter> fwriter;
756
- fwriter.reset(new WritableFileWriter(
757
- std::move(wfile), fpath, file_options_, clock_, nullptr /* io_tracer */,
758
- statistics_, Histograms::BLOB_DB_BLOB_FILE_WRITE_MICROS));
759
-
760
- uint64_t boffset = bfile->GetFileSize();
761
- if (debug_level_ >= 2 && boffset) {
762
- ROCKS_LOG_DEBUG(db_options_.info_log,
763
- "Open blob file: %s with offset: %" PRIu64, fpath.c_str(),
764
- boffset);
765
- }
766
-
767
- BlobLogWriter::ElemType et = BlobLogWriter::kEtNone;
768
- if (bfile->file_size_ == BlobLogHeader::kSize) {
769
- et = BlobLogWriter::kEtFileHdr;
770
- } else if (bfile->file_size_ > BlobLogHeader::kSize) {
771
- et = BlobLogWriter::kEtRecord;
772
- } else if (bfile->file_size_) {
773
- ROCKS_LOG_WARN(db_options_.info_log,
774
- "Open blob file: %s with wrong size: %" PRIu64,
775
- fpath.c_str(), boffset);
776
- return Status::Corruption("Invalid blob file size");
777
- }
778
-
779
- constexpr bool do_flush = true;
780
-
781
- bfile->log_writer_ = std::make_shared<BlobLogWriter>(
782
- std::move(fwriter), clock_, statistics_, bfile->file_number_,
783
- db_options_.use_fsync, do_flush, boffset);
784
- bfile->log_writer_->last_elem_type_ = et;
785
-
786
- return s;
787
- }
788
-
789
- std::shared_ptr<BlobFile> BlobDBImpl::FindBlobFileLocked(
790
- uint64_t expiration) const {
791
- if (open_ttl_files_.empty()) {
792
- return nullptr;
793
- }
794
-
795
- std::shared_ptr<BlobFile> tmp = std::make_shared<BlobFile>();
796
- tmp->SetHasTTL(true);
797
- tmp->expiration_range_ = std::make_pair(expiration, 0);
798
- tmp->file_number_ = std::numeric_limits<uint64_t>::max();
799
-
800
- auto citr = open_ttl_files_.equal_range(tmp);
801
- if (citr.first == open_ttl_files_.end()) {
802
- assert(citr.second == open_ttl_files_.end());
803
-
804
- std::shared_ptr<BlobFile> check = *(open_ttl_files_.rbegin());
805
- return (check->expiration_range_.second <= expiration) ? nullptr : check;
806
- }
807
-
808
- if (citr.first != citr.second) {
809
- return *(citr.first);
810
- }
811
-
812
- auto finditr = citr.second;
813
- if (finditr != open_ttl_files_.begin()) {
814
- --finditr;
815
- }
816
-
817
- bool b2 = (*finditr)->expiration_range_.second <= expiration;
818
- bool b1 = (*finditr)->expiration_range_.first > expiration;
819
-
820
- return (b1 || b2) ? nullptr : (*finditr);
821
- }
822
-
823
- Status BlobDBImpl::CheckOrCreateWriterLocked(
824
- const std::shared_ptr<BlobFile>& blob_file,
825
- std::shared_ptr<BlobLogWriter>* writer) {
826
- assert(writer != nullptr);
827
- *writer = blob_file->GetWriter();
828
- if (*writer != nullptr) {
829
- return Status::OK();
830
- }
831
- Status s = CreateWriterLocked(blob_file);
832
- if (s.ok()) {
833
- *writer = blob_file->GetWriter();
834
- }
835
- return s;
836
- }
837
-
838
- Status BlobDBImpl::CreateBlobFileAndWriter(
839
- const WriteOptions& write_options, bool has_ttl,
840
- const ExpirationRange& expiration_range, const std::string& reason,
841
- std::shared_ptr<BlobFile>* blob_file,
842
- std::shared_ptr<BlobLogWriter>* writer) {
843
- TEST_SYNC_POINT("BlobDBImpl::CreateBlobFileAndWriter");
844
- assert(has_ttl == (expiration_range.first || expiration_range.second));
845
- assert(blob_file);
846
- assert(writer);
847
-
848
- *blob_file = NewBlobFile(has_ttl, expiration_range, reason);
849
- assert(*blob_file);
850
-
851
- // file not visible, hence no lock
852
- Status s = CheckOrCreateWriterLocked(*blob_file, writer);
853
- if (!s.ok()) {
854
- ROCKS_LOG_ERROR(db_options_.info_log,
855
- "Failed to get writer for blob file: %s, error: %s",
856
- (*blob_file)->PathName().c_str(), s.ToString().c_str());
857
- return s;
858
- }
859
-
860
- assert(*writer);
861
-
862
- s = (*writer)->WriteHeader(write_options, (*blob_file)->header_);
863
- if (!s.ok()) {
864
- ROCKS_LOG_ERROR(db_options_.info_log,
865
- "Failed to write header to new blob file: %s"
866
- " status: '%s'",
867
- (*blob_file)->PathName().c_str(), s.ToString().c_str());
868
- return s;
869
- }
870
-
871
- (*blob_file)->SetFileSize(BlobLogHeader::kSize);
872
- total_blob_size_ += BlobLogHeader::kSize;
873
-
874
- return s;
875
- }
876
-
877
- Status BlobDBImpl::SelectBlobFile(const WriteOptions& write_options,
878
- std::shared_ptr<BlobFile>* blob_file) {
879
- assert(blob_file);
880
-
881
- {
882
- ReadLock rl(&mutex_);
883
-
884
- if (open_non_ttl_file_) {
885
- assert(!open_non_ttl_file_->Immutable());
886
- *blob_file = open_non_ttl_file_;
887
- return Status::OK();
888
- }
889
- }
890
-
891
- // Check again
892
- WriteLock wl(&mutex_);
893
-
894
- if (open_non_ttl_file_) {
895
- assert(!open_non_ttl_file_->Immutable());
896
- *blob_file = open_non_ttl_file_;
897
- return Status::OK();
898
- }
899
-
900
- std::shared_ptr<BlobLogWriter> writer;
901
- const Status s = CreateBlobFileAndWriter(
902
- write_options,
903
- /* has_ttl */ false, ExpirationRange(),
904
- /* reason */ "SelectBlobFile", blob_file, &writer);
905
- if (!s.ok()) {
906
- return s;
907
- }
908
-
909
- RegisterBlobFile(*blob_file);
910
- open_non_ttl_file_ = *blob_file;
911
-
912
- return s;
913
- }
914
-
915
- Status BlobDBImpl::SelectBlobFileTTL(const WriteOptions& write_options,
916
- uint64_t expiration,
917
- std::shared_ptr<BlobFile>* blob_file) {
918
- assert(blob_file);
919
- assert(expiration != kNoExpiration);
920
-
921
- {
922
- ReadLock rl(&mutex_);
923
-
924
- *blob_file = FindBlobFileLocked(expiration);
925
- if (*blob_file != nullptr) {
926
- assert(!(*blob_file)->Immutable());
927
- return Status::OK();
928
- }
929
- }
930
-
931
- // Check again
932
- WriteLock wl(&mutex_);
933
-
934
- *blob_file = FindBlobFileLocked(expiration);
935
- if (*blob_file != nullptr) {
936
- assert(!(*blob_file)->Immutable());
937
- return Status::OK();
938
- }
939
-
940
- const uint64_t exp_low =
941
- (expiration / bdb_options_.ttl_range_secs) * bdb_options_.ttl_range_secs;
942
- const uint64_t exp_high = exp_low + bdb_options_.ttl_range_secs;
943
- const ExpirationRange expiration_range(exp_low, exp_high);
944
-
945
- std::ostringstream oss;
946
- oss << "SelectBlobFileTTL range: [" << exp_low << ',' << exp_high << ')';
947
-
948
- std::shared_ptr<BlobLogWriter> writer;
949
- const Status s = CreateBlobFileAndWriter(
950
- write_options, /* has_ttl */ true, expiration_range,
951
- /* reason */ oss.str(), blob_file, &writer);
952
- if (!s.ok()) {
953
- return s;
954
- }
955
-
956
- RegisterBlobFile(*blob_file);
957
- open_ttl_files_.insert(*blob_file);
958
-
959
- return s;
960
- }
961
-
962
- class BlobDBImpl::BlobInserter : public WriteBatch::Handler {
963
- private:
964
- const WriteOptions& options_;
965
- BlobDBImpl* blob_db_impl_;
966
- uint32_t default_cf_id_;
967
- WriteBatch batch_;
968
-
969
- public:
970
- BlobInserter(const WriteOptions& options, BlobDBImpl* blob_db_impl,
971
- uint32_t default_cf_id)
972
- : options_(options),
973
- blob_db_impl_(blob_db_impl),
974
- default_cf_id_(default_cf_id) {}
975
-
976
- WriteBatch* batch() { return &batch_; }
977
-
978
- Status PutCF(uint32_t column_family_id, const Slice& key,
979
- const Slice& value) override {
980
- if (column_family_id != default_cf_id_) {
981
- return Status::NotSupported(
982
- "Blob DB doesn't support non-default column family.");
983
- }
984
- Status s = blob_db_impl_->PutBlobValue(options_, key, value, kNoExpiration,
985
- &batch_);
986
- return s;
987
- }
988
-
989
- Status DeleteCF(uint32_t column_family_id, const Slice& key) override {
990
- if (column_family_id != default_cf_id_) {
991
- return Status::NotSupported(
992
- "Blob DB doesn't support non-default column family.");
993
- }
994
- Status s = WriteBatchInternal::Delete(&batch_, column_family_id, key);
995
- return s;
996
- }
997
-
998
- virtual Status DeleteRange(uint32_t column_family_id, const Slice& begin_key,
999
- const Slice& end_key) {
1000
- if (column_family_id != default_cf_id_) {
1001
- return Status::NotSupported(
1002
- "Blob DB doesn't support non-default column family.");
1003
- }
1004
- Status s = WriteBatchInternal::DeleteRange(&batch_, column_family_id,
1005
- begin_key, end_key);
1006
- return s;
1007
- }
1008
-
1009
- Status SingleDeleteCF(uint32_t /*column_family_id*/,
1010
- const Slice& /*key*/) override {
1011
- return Status::NotSupported("Not supported operation in blob db.");
1012
- }
1013
-
1014
- Status MergeCF(uint32_t /*column_family_id*/, const Slice& /*key*/,
1015
- const Slice& /*value*/) override {
1016
- return Status::NotSupported("Not supported operation in blob db.");
1017
- }
1018
-
1019
- void LogData(const Slice& blob) override { batch_.PutLogData(blob); }
1020
- };
1021
-
1022
- Status BlobDBImpl::Write(const WriteOptions& options, WriteBatch* updates) {
1023
- StopWatch write_sw(clock_, statistics_, BLOB_DB_WRITE_MICROS);
1024
- RecordTick(statistics_, BLOB_DB_NUM_WRITE);
1025
- uint32_t default_cf_id =
1026
- static_cast_with_check<ColumnFamilyHandleImpl>(DefaultColumnFamily())
1027
- ->GetID();
1028
- Status s;
1029
- BlobInserter blob_inserter(options, this, default_cf_id);
1030
- {
1031
- // Release write_mutex_ before DB write to avoid race condition with
1032
- // flush begin listener, which also require write_mutex_ to sync
1033
- // blob files.
1034
- MutexLock l(&write_mutex_);
1035
- s = updates->Iterate(&blob_inserter);
1036
- }
1037
- if (!s.ok()) {
1038
- return s;
1039
- }
1040
- return db_->Write(options, blob_inserter.batch());
1041
- }
1042
-
1043
- Status BlobDBImpl::Put(const WriteOptions& options, const Slice& key,
1044
- const Slice& value) {
1045
- return PutUntil(options, key, value, kNoExpiration);
1046
- }
1047
-
1048
- Status BlobDBImpl::PutWithTTL(const WriteOptions& options, const Slice& key,
1049
- const Slice& value, uint64_t ttl) {
1050
- uint64_t now = EpochNow();
1051
- uint64_t expiration = kNoExpiration - now > ttl ? now + ttl : kNoExpiration;
1052
- return PutUntil(options, key, value, expiration);
1053
- }
1054
-
1055
- Status BlobDBImpl::PutUntil(const WriteOptions& options, const Slice& key,
1056
- const Slice& value, uint64_t expiration) {
1057
- StopWatch write_sw(clock_, statistics_, BLOB_DB_WRITE_MICROS);
1058
- RecordTick(statistics_, BLOB_DB_NUM_PUT);
1059
- Status s;
1060
- WriteBatch batch;
1061
- {
1062
- // Release write_mutex_ before DB write to avoid race condition with
1063
- // flush begin listener, which also require write_mutex_ to sync
1064
- // blob files.
1065
- MutexLock l(&write_mutex_);
1066
- s = PutBlobValue(options, key, value, expiration, &batch);
1067
- }
1068
- if (s.ok()) {
1069
- s = db_->Write(options, &batch);
1070
- }
1071
- return s;
1072
- }
1073
-
1074
- Status BlobDBImpl::PutBlobValue(const WriteOptions& write_options,
1075
- const Slice& key, const Slice& value,
1076
- uint64_t expiration, WriteBatch* batch) {
1077
- write_mutex_.AssertHeld();
1078
- Status s;
1079
- std::string index_entry;
1080
- uint32_t column_family_id =
1081
- static_cast_with_check<ColumnFamilyHandleImpl>(DefaultColumnFamily())
1082
- ->GetID();
1083
- if (value.size() < bdb_options_.min_blob_size) {
1084
- if (expiration == kNoExpiration) {
1085
- // Put as normal value
1086
- s = batch->Put(key, value);
1087
- RecordTick(statistics_, BLOB_DB_WRITE_INLINED);
1088
- } else {
1089
- // Inlined with TTL
1090
- BlobIndex::EncodeInlinedTTL(&index_entry, expiration, value);
1091
- s = WriteBatchInternal::PutBlobIndex(batch, column_family_id, key,
1092
- index_entry);
1093
- RecordTick(statistics_, BLOB_DB_WRITE_INLINED_TTL);
1094
- }
1095
- } else {
1096
- std::string compression_output;
1097
- Slice value_compressed = GetCompressedSlice(value, &compression_output);
1098
-
1099
- std::string headerbuf;
1100
- BlobLogWriter::ConstructBlobHeader(&headerbuf, key, value_compressed,
1101
- expiration);
1102
-
1103
- // Check DB size limit before selecting blob file to
1104
- // Since CheckSizeAndEvictBlobFiles() can close blob files, it needs to be
1105
- // done before calling SelectBlobFile().
1106
- s = CheckSizeAndEvictBlobFiles(
1107
- write_options, headerbuf.size() + key.size() + value_compressed.size());
1108
- if (!s.ok()) {
1109
- return s;
1110
- }
1111
-
1112
- std::shared_ptr<BlobFile> blob_file;
1113
- if (expiration != kNoExpiration) {
1114
- s = SelectBlobFileTTL(write_options, expiration, &blob_file);
1115
- } else {
1116
- s = SelectBlobFile(write_options, &blob_file);
1117
- }
1118
- if (s.ok()) {
1119
- assert(blob_file != nullptr);
1120
- assert(blob_file->GetCompressionType() == bdb_options_.compression);
1121
- s = AppendBlob(write_options, blob_file, headerbuf, key, value_compressed,
1122
- expiration, &index_entry);
1123
- }
1124
- if (s.ok()) {
1125
- if (expiration != kNoExpiration) {
1126
- WriteLock file_lock(&blob_file->mutex_);
1127
- blob_file->ExtendExpirationRange(expiration);
1128
- }
1129
- s = CloseBlobFileIfNeeded(write_options, blob_file);
1130
- }
1131
- if (s.ok()) {
1132
- s = WriteBatchInternal::PutBlobIndex(batch, column_family_id, key,
1133
- index_entry);
1134
- }
1135
- if (s.ok()) {
1136
- if (expiration == kNoExpiration) {
1137
- RecordTick(statistics_, BLOB_DB_WRITE_BLOB);
1138
- } else {
1139
- RecordTick(statistics_, BLOB_DB_WRITE_BLOB_TTL);
1140
- }
1141
- } else {
1142
- ROCKS_LOG_ERROR(
1143
- db_options_.info_log,
1144
- "Failed to append blob to FILE: %s: KEY: %s VALSZ: %" ROCKSDB_PRIszt
1145
- " status: '%s' blob_file: '%s'",
1146
- blob_file->PathName().c_str(), key.ToString().c_str(), value.size(),
1147
- s.ToString().c_str(), blob_file->DumpState().c_str());
1148
- }
1149
- }
1150
-
1151
- RecordTick(statistics_, BLOB_DB_NUM_KEYS_WRITTEN);
1152
- RecordTick(statistics_, BLOB_DB_BYTES_WRITTEN, key.size() + value.size());
1153
- RecordInHistogram(statistics_, BLOB_DB_KEY_SIZE, key.size());
1154
- RecordInHistogram(statistics_, BLOB_DB_VALUE_SIZE, value.size());
1155
-
1156
- return s;
1157
- }
1158
-
1159
- Slice BlobDBImpl::GetCompressedSlice(const Slice& raw,
1160
- std::string* compression_output) const {
1161
- if (bdb_options_.compression == kNoCompression) {
1162
- return raw;
1163
- }
1164
- StopWatch compression_sw(clock_, statistics_, BLOB_DB_COMPRESSION_MICROS);
1165
- CompressionType type = bdb_options_.compression;
1166
- CompressionOptions opts;
1167
- CompressionContext context(type, opts);
1168
- CompressionInfo info(opts, context, CompressionDict::GetEmptyDict(), type,
1169
- 0 /* sample_for_compression */);
1170
- CompressBlock(raw, info, &type, kBlockBasedTableVersionFormat, false,
1171
- compression_output, nullptr, nullptr);
1172
- return *compression_output;
1173
- }
1174
-
1175
- Status BlobDBImpl::DecompressSlice(const Slice& compressed_value,
1176
- CompressionType compression_type,
1177
- PinnableSlice* value_output) const {
1178
- assert(compression_type != kNoCompression);
1179
-
1180
- BlockContents contents;
1181
- auto cfh = static_cast<ColumnFamilyHandleImpl*>(DefaultColumnFamily());
1182
-
1183
- {
1184
- StopWatch decompression_sw(clock_, statistics_,
1185
- BLOB_DB_DECOMPRESSION_MICROS);
1186
- UncompressionContext context(compression_type);
1187
- UncompressionInfo info(context, UncompressionDict::GetEmptyDict(),
1188
- compression_type);
1189
- Status s = UncompressBlockData(
1190
- info, compressed_value.data(), compressed_value.size(), &contents,
1191
- kBlockBasedTableVersionFormat, *(cfh->cfd()->ioptions()));
1192
- if (!s.ok()) {
1193
- return Status::Corruption("Unable to decompress blob.");
1194
- }
1195
- }
1196
-
1197
- value_output->PinSelf(contents.data);
1198
-
1199
- return Status::OK();
1200
- }
1201
-
1202
- Status BlobDBImpl::CompactFiles(
1203
- const CompactionOptions& compact_options,
1204
- const std::vector<std::string>& input_file_names, const int output_level,
1205
- const int output_path_id, std::vector<std::string>* const output_file_names,
1206
- CompactionJobInfo* compaction_job_info) {
1207
- // Note: we need CompactionJobInfo to be able to track updates to the
1208
- // blob file <-> SST mappings, so we provide one if the user hasn't,
1209
- // assuming that GC is enabled.
1210
- CompactionJobInfo info{};
1211
- if (bdb_options_.enable_garbage_collection && !compaction_job_info) {
1212
- compaction_job_info = &info;
1213
- }
1214
-
1215
- const Status s =
1216
- db_->CompactFiles(compact_options, input_file_names, output_level,
1217
- output_path_id, output_file_names, compaction_job_info);
1218
- if (!s.ok()) {
1219
- return s;
1220
- }
1221
-
1222
- if (bdb_options_.enable_garbage_collection) {
1223
- assert(compaction_job_info);
1224
- ProcessCompactionJobInfo(*compaction_job_info);
1225
- }
1226
-
1227
- return s;
1228
- }
1229
-
1230
- void BlobDBImpl::GetCompactionContextCommon(BlobCompactionContext* context) {
1231
- assert(context);
1232
-
1233
- context->blob_db_impl = this;
1234
- context->next_file_number = next_file_number_.load();
1235
- context->current_blob_files.clear();
1236
- for (auto& p : blob_files_) {
1237
- context->current_blob_files.insert(p.first);
1238
- }
1239
- context->fifo_eviction_seq = fifo_eviction_seq_;
1240
- context->evict_expiration_up_to = evict_expiration_up_to_;
1241
- }
1242
-
1243
- void BlobDBImpl::GetCompactionContext(BlobCompactionContext* context) {
1244
- assert(context);
1245
-
1246
- ReadLock l(&mutex_);
1247
- GetCompactionContextCommon(context);
1248
- }
1249
-
1250
- void BlobDBImpl::GetCompactionContext(BlobCompactionContext* context,
1251
- BlobCompactionContextGC* context_gc) {
1252
- assert(context);
1253
- assert(context_gc);
1254
-
1255
- ReadLock l(&mutex_);
1256
- GetCompactionContextCommon(context);
1257
-
1258
- if (!live_imm_non_ttl_blob_files_.empty()) {
1259
- auto it = live_imm_non_ttl_blob_files_.begin();
1260
- std::advance(it, bdb_options_.garbage_collection_cutoff *
1261
- live_imm_non_ttl_blob_files_.size());
1262
- context_gc->cutoff_file_number = it != live_imm_non_ttl_blob_files_.end()
1263
- ? it->first
1264
- : std::numeric_limits<uint64_t>::max();
1265
- }
1266
- }
1267
-
1268
- void BlobDBImpl::UpdateLiveSSTSize(const WriteOptions& write_options) {
1269
- uint64_t live_sst_size = 0;
1270
- bool ok = GetIntProperty(DB::Properties::kLiveSstFilesSize, &live_sst_size);
1271
- if (ok) {
1272
- live_sst_size_.store(live_sst_size);
1273
- ROCKS_LOG_INFO(db_options_.info_log,
1274
- "Updated total SST file size: %" PRIu64 " bytes.",
1275
- live_sst_size);
1276
- } else {
1277
- ROCKS_LOG_ERROR(
1278
- db_options_.info_log,
1279
- "Failed to update total SST file size after flush or compaction.");
1280
- }
1281
- {
1282
- // Trigger FIFO eviction if needed.
1283
- MutexLock l(&write_mutex_);
1284
- Status s = CheckSizeAndEvictBlobFiles(write_options, 0, true /*force*/);
1285
- if (s.IsNoSpace()) {
1286
- ROCKS_LOG_WARN(db_options_.info_log,
1287
- "DB grow out-of-space after SST size updated. Current live"
1288
- " SST size: %" PRIu64
1289
- " , current blob files size: %" PRIu64 ".",
1290
- live_sst_size_.load(), total_blob_size_.load());
1291
- }
1292
- }
1293
- }
1294
-
1295
- Status BlobDBImpl::CheckSizeAndEvictBlobFiles(const WriteOptions& write_options,
1296
- uint64_t blob_size,
1297
- bool force_evict) {
1298
- write_mutex_.AssertHeld();
1299
-
1300
- uint64_t live_sst_size = live_sst_size_.load();
1301
- if (bdb_options_.max_db_size == 0 ||
1302
- live_sst_size + total_blob_size_.load() + blob_size <=
1303
- bdb_options_.max_db_size) {
1304
- return Status::OK();
1305
- }
1306
-
1307
- if (bdb_options_.is_fifo == false ||
1308
- (!force_evict && live_sst_size + blob_size > bdb_options_.max_db_size)) {
1309
- // FIFO eviction is disabled, or no space to insert new blob even we evict
1310
- // all blob files.
1311
- return Status::NoSpace(
1312
- "Write failed, as writing it would exceed max_db_size limit.");
1313
- }
1314
-
1315
- std::vector<std::shared_ptr<BlobFile>> candidate_files;
1316
- CopyBlobFiles(&candidate_files);
1317
- std::sort(candidate_files.begin(), candidate_files.end(),
1318
- BlobFileComparator());
1319
- fifo_eviction_seq_ = GetLatestSequenceNumber();
1320
-
1321
- WriteLock l(&mutex_);
1322
-
1323
- while (!candidate_files.empty() &&
1324
- live_sst_size + total_blob_size_.load() + blob_size >
1325
- bdb_options_.max_db_size) {
1326
- std::shared_ptr<BlobFile> blob_file = candidate_files.back();
1327
- candidate_files.pop_back();
1328
- WriteLock file_lock(&blob_file->mutex_);
1329
- if (blob_file->Obsolete()) {
1330
- // File already obsoleted by someone else.
1331
- assert(blob_file->Immutable());
1332
- continue;
1333
- }
1334
- // FIFO eviction can evict open blob files.
1335
- if (!blob_file->Immutable()) {
1336
- Status s = CloseBlobFile(write_options, blob_file);
1337
- if (!s.ok()) {
1338
- return s;
1339
- }
1340
- }
1341
- assert(blob_file->Immutable());
1342
- auto expiration_range = blob_file->GetExpirationRange();
1343
- ROCKS_LOG_INFO(db_options_.info_log,
1344
- "Evict oldest blob file since DB out of space. Current "
1345
- "live SST file size: %" PRIu64 ", total blob size: %" PRIu64
1346
- ", max db size: %" PRIu64 ", evicted blob file #%" PRIu64
1347
- ".",
1348
- live_sst_size, total_blob_size_.load(),
1349
- bdb_options_.max_db_size, blob_file->BlobFileNumber());
1350
- ObsoleteBlobFile(blob_file, fifo_eviction_seq_, true /*update_size*/);
1351
- evict_expiration_up_to_ = expiration_range.first;
1352
- RecordTick(statistics_, BLOB_DB_FIFO_NUM_FILES_EVICTED);
1353
- RecordTick(statistics_, BLOB_DB_FIFO_NUM_KEYS_EVICTED,
1354
- blob_file->BlobCount());
1355
- RecordTick(statistics_, BLOB_DB_FIFO_BYTES_EVICTED,
1356
- blob_file->GetFileSize());
1357
- TEST_SYNC_POINT("BlobDBImpl::EvictOldestBlobFile:Evicted");
1358
- }
1359
- if (live_sst_size + total_blob_size_.load() + blob_size >
1360
- bdb_options_.max_db_size) {
1361
- return Status::NoSpace(
1362
- "Write failed, as writing it would exceed max_db_size limit.");
1363
- }
1364
- return Status::OK();
1365
- }
1366
-
1367
- Status BlobDBImpl::AppendBlob(const WriteOptions& write_options,
1368
- const std::shared_ptr<BlobFile>& bfile,
1369
- const std::string& headerbuf, const Slice& key,
1370
- const Slice& value, uint64_t expiration,
1371
- std::string* index_entry) {
1372
- Status s;
1373
- uint64_t blob_offset = 0;
1374
- uint64_t key_offset = 0;
1375
- {
1376
- WriteLock lockbfile_w(&bfile->mutex_);
1377
- std::shared_ptr<BlobLogWriter> writer;
1378
- s = CheckOrCreateWriterLocked(bfile, &writer);
1379
- if (!s.ok()) {
1380
- return s;
1381
- }
1382
-
1383
- // write the blob to the blob log.
1384
- s = writer->EmitPhysicalRecord(write_options, headerbuf, key, value,
1385
- &key_offset, &blob_offset);
1386
- }
1387
-
1388
- if (!s.ok()) {
1389
- ROCKS_LOG_ERROR(db_options_.info_log,
1390
- "Invalid status in AppendBlob: %s status: '%s'",
1391
- bfile->PathName().c_str(), s.ToString().c_str());
1392
- return s;
1393
- }
1394
-
1395
- uint64_t size_put = headerbuf.size() + key.size() + value.size();
1396
- bfile->BlobRecordAdded(size_put);
1397
- total_blob_size_ += size_put;
1398
-
1399
- if (expiration == kNoExpiration) {
1400
- BlobIndex::EncodeBlob(index_entry, bfile->BlobFileNumber(), blob_offset,
1401
- value.size(), bdb_options_.compression);
1402
- } else {
1403
- BlobIndex::EncodeBlobTTL(index_entry, expiration, bfile->BlobFileNumber(),
1404
- blob_offset, value.size(),
1405
- bdb_options_.compression);
1406
- }
1407
-
1408
- return s;
1409
- }
1410
-
1411
- void BlobDBImpl::MultiGet(const ReadOptions& _read_options, size_t num_keys,
1412
- ColumnFamilyHandle** column_families,
1413
- const Slice* keys, PinnableSlice* values,
1414
- std::string* timestamps, Status* statuses,
1415
- const bool /*sorted_input*/) {
1416
- StopWatch multiget_sw(clock_, statistics_, BLOB_DB_MULTIGET_MICROS);
1417
- RecordTick(statistics_, BLOB_DB_NUM_MULTIGET);
1418
- // Get a snapshot to avoid blob file get deleted between we
1419
- // fetch and index entry and reading from the file.
1420
-
1421
- {
1422
- Status s;
1423
- if (_read_options.io_activity != Env::IOActivity::kUnknown &&
1424
- _read_options.io_activity != Env::IOActivity::kMultiGet) {
1425
- s = Status::InvalidArgument(
1426
- "Can only call MultiGet with `ReadOptions::io_activity` is "
1427
- "`Env::IOActivity::kUnknown` or `Env::IOActivity::kMultiGet`");
1428
- } else if (timestamps) {
1429
- s = Status::NotSupported(
1430
- "MultiGet() returning timestamps not implemented.");
1431
- }
1432
- if (s.ok()) {
1433
- for (size_t i = 0; i < num_keys; ++i) {
1434
- if (column_families[i]->GetID() != DefaultColumnFamily()->GetID()) {
1435
- s = Status::NotSupported(
1436
- "Blob DB doesn't support non-default column family.");
1437
- break;
1438
- }
1439
- }
1440
- }
1441
-
1442
- if (!s.ok()) {
1443
- for (size_t i = 0; i < num_keys; ++i) {
1444
- statuses[i] = s;
1445
- }
1446
- return;
1447
- }
1448
- }
1449
-
1450
- ReadOptions read_options(_read_options);
1451
- if (read_options.io_activity == Env::IOActivity::kUnknown) {
1452
- read_options.io_activity = Env::IOActivity::kMultiGet;
1453
- }
1454
- bool snapshot_created = SetSnapshotIfNeeded(&read_options);
1455
-
1456
- for (size_t i = 0; i < num_keys; i++) {
1457
- PinnableSlice& value = values[i];
1458
- statuses[i] = GetImpl(read_options, DefaultColumnFamily(), keys[i], &value);
1459
- }
1460
- if (snapshot_created) {
1461
- db_->ReleaseSnapshot(read_options.snapshot);
1462
- }
1463
- }
1464
-
1465
- bool BlobDBImpl::SetSnapshotIfNeeded(ReadOptions* read_options) {
1466
- assert(read_options != nullptr);
1467
- if (read_options->snapshot != nullptr) {
1468
- return false;
1469
- }
1470
- read_options->snapshot = db_->GetSnapshot();
1471
- return true;
1472
- }
1473
-
1474
- Status BlobDBImpl::GetBlobValue(const Slice& key, const Slice& index_entry,
1475
- PinnableSlice* value, uint64_t* expiration) {
1476
- assert(value);
1477
-
1478
- BlobIndex blob_index;
1479
- Status s = blob_index.DecodeFrom(index_entry);
1480
- if (!s.ok()) {
1481
- return s;
1482
- }
1483
-
1484
- if (blob_index.HasTTL() && blob_index.expiration() <= EpochNow()) {
1485
- return Status::NotFound("Key expired");
1486
- }
1487
-
1488
- if (expiration != nullptr) {
1489
- if (blob_index.HasTTL()) {
1490
- *expiration = blob_index.expiration();
1491
- } else {
1492
- *expiration = kNoExpiration;
1493
- }
1494
- }
1495
-
1496
- if (blob_index.IsInlined()) {
1497
- // TODO(yiwu): If index_entry is a PinnableSlice, we can also pin the same
1498
- // memory buffer to avoid extra copy.
1499
- value->PinSelf(blob_index.value());
1500
- return Status::OK();
1501
- }
1502
-
1503
- CompressionType compression_type = kNoCompression;
1504
- s = GetRawBlobFromFile(key, blob_index.file_number(), blob_index.offset(),
1505
- blob_index.size(), value, &compression_type);
1506
- if (!s.ok()) {
1507
- return s;
1508
- }
1509
-
1510
- if (compression_type != kNoCompression) {
1511
- s = DecompressSlice(*value, compression_type, value);
1512
- if (!s.ok()) {
1513
- if (debug_level_ >= 2) {
1514
- ROCKS_LOG_ERROR(
1515
- db_options_.info_log,
1516
- "Uncompression error during blob read from file: %" PRIu64
1517
- " blob_offset: %" PRIu64 " blob_size: %" PRIu64
1518
- " key: %s status: '%s'",
1519
- blob_index.file_number(), blob_index.offset(), blob_index.size(),
1520
- key.ToString(/* output_hex */ true).c_str(), s.ToString().c_str());
1521
- }
1522
- return s;
1523
- }
1524
- }
1525
-
1526
- return Status::OK();
1527
- }
1528
-
1529
- Status BlobDBImpl::GetRawBlobFromFile(const Slice& key, uint64_t file_number,
1530
- uint64_t offset, uint64_t size,
1531
- PinnableSlice* value,
1532
- CompressionType* compression_type) {
1533
- assert(value);
1534
- assert(compression_type);
1535
- assert(*compression_type == kNoCompression);
1536
-
1537
- if (!size) {
1538
- value->PinSelf("");
1539
- return Status::OK();
1540
- }
1541
-
1542
- // offset has to have certain min, as we will read CRC
1543
- // later from the Blob Header, which needs to be also a
1544
- // valid offset.
1545
- if (offset <
1546
- (BlobLogHeader::kSize + BlobLogRecord::kHeaderSize + key.size())) {
1547
- if (debug_level_ >= 2) {
1548
- ROCKS_LOG_ERROR(db_options_.info_log,
1549
- "Invalid blob index file_number: %" PRIu64
1550
- " blob_offset: %" PRIu64 " blob_size: %" PRIu64
1551
- " key: %s",
1552
- file_number, offset, size,
1553
- key.ToString(/* output_hex */ true).c_str());
1554
- }
1555
-
1556
- return Status::NotFound("Invalid blob offset");
1557
- }
1558
-
1559
- std::shared_ptr<BlobFile> blob_file;
1560
-
1561
- {
1562
- ReadLock rl(&mutex_);
1563
- auto it = blob_files_.find(file_number);
1564
-
1565
- // file was deleted
1566
- if (it == blob_files_.end()) {
1567
- return Status::NotFound("Blob Not Found as blob file missing");
1568
- }
1569
-
1570
- blob_file = it->second;
1571
- }
1572
-
1573
- *compression_type = blob_file->GetCompressionType();
1574
-
1575
- // takes locks when called
1576
- std::shared_ptr<RandomAccessFileReader> reader;
1577
- Status s = GetBlobFileReader(blob_file, &reader);
1578
- if (!s.ok()) {
1579
- return s;
1580
- }
1581
-
1582
- assert(offset >= key.size() + sizeof(uint32_t));
1583
- const uint64_t record_offset = offset - key.size() - sizeof(uint32_t);
1584
- const uint64_t record_size = sizeof(uint32_t) + key.size() + size;
1585
-
1586
- // Allocate the buffer. This is safe in C++11
1587
- std::string buf;
1588
- AlignedBuf aligned_buf;
1589
-
1590
- // A partial blob record contain checksum, key and value.
1591
- Slice blob_record;
1592
-
1593
- {
1594
- StopWatch read_sw(clock_, statistics_, BLOB_DB_BLOB_FILE_READ_MICROS);
1595
- // TODO: rate limit old blob DB file reads.
1596
- if (reader->use_direct_io()) {
1597
- s = reader->Read(IOOptions(), record_offset,
1598
- static_cast<size_t>(record_size), &blob_record, nullptr,
1599
- &aligned_buf);
1600
- } else {
1601
- buf.reserve(static_cast<size_t>(record_size));
1602
- s = reader->Read(IOOptions(), record_offset,
1603
- static_cast<size_t>(record_size), &blob_record,
1604
- buf.data(), nullptr);
1605
- }
1606
- RecordTick(statistics_, BLOB_DB_BLOB_FILE_BYTES_READ, blob_record.size());
1607
- }
1608
-
1609
- if (!s.ok()) {
1610
- ROCKS_LOG_DEBUG(
1611
- db_options_.info_log,
1612
- "Failed to read blob from blob file %" PRIu64 ", blob_offset: %" PRIu64
1613
- ", blob_size: %" PRIu64 ", key_size: %" ROCKSDB_PRIszt ", status: '%s'",
1614
- file_number, offset, size, key.size(), s.ToString().c_str());
1615
- return s;
1616
- }
1617
-
1618
- if (blob_record.size() != record_size) {
1619
- ROCKS_LOG_DEBUG(
1620
- db_options_.info_log,
1621
- "Failed to read blob from blob file %" PRIu64 ", blob_offset: %" PRIu64
1622
- ", blob_size: %" PRIu64 ", key_size: %" ROCKSDB_PRIszt
1623
- ", read %" ROCKSDB_PRIszt " bytes, expected %" PRIu64 " bytes",
1624
- file_number, offset, size, key.size(), blob_record.size(), record_size);
1625
-
1626
- return Status::Corruption("Failed to retrieve blob from blob index.");
1627
- }
1628
-
1629
- Slice crc_slice(blob_record.data(), sizeof(uint32_t));
1630
- Slice blob_value(blob_record.data() + sizeof(uint32_t) + key.size(),
1631
- static_cast<size_t>(size));
1632
-
1633
- uint32_t crc_exp = 0;
1634
- if (!GetFixed32(&crc_slice, &crc_exp)) {
1635
- ROCKS_LOG_DEBUG(
1636
- db_options_.info_log,
1637
- "Unable to decode CRC from blob file %" PRIu64 ", blob_offset: %" PRIu64
1638
- ", blob_size: %" PRIu64 ", key size: %" ROCKSDB_PRIszt ", status: '%s'",
1639
- file_number, offset, size, key.size(), s.ToString().c_str());
1640
- return Status::Corruption("Unable to decode checksum.");
1641
- }
1642
-
1643
- uint32_t crc = crc32c::Value(blob_record.data() + sizeof(uint32_t),
1644
- blob_record.size() - sizeof(uint32_t));
1645
- crc = crc32c::Mask(crc); // Adjust for storage
1646
- if (crc != crc_exp) {
1647
- if (debug_level_ >= 2) {
1648
- ROCKS_LOG_ERROR(
1649
- db_options_.info_log,
1650
- "Blob crc mismatch file: %" PRIu64 " blob_offset: %" PRIu64
1651
- " blob_size: %" PRIu64 " key: %s status: '%s'",
1652
- file_number, offset, size,
1653
- key.ToString(/* output_hex */ true).c_str(), s.ToString().c_str());
1654
- }
1655
-
1656
- return Status::Corruption("Corruption. Blob CRC mismatch");
1657
- }
1658
-
1659
- value->PinSelf(blob_value);
1660
-
1661
- return Status::OK();
1662
- }
1663
-
1664
- Status BlobDBImpl::Get(const ReadOptions& _read_options,
1665
- ColumnFamilyHandle* column_family, const Slice& key,
1666
- PinnableSlice* value, std::string* timestamp) {
1667
- if (_read_options.io_activity != Env::IOActivity::kUnknown &&
1668
- _read_options.io_activity != Env::IOActivity::kGet) {
1669
- return Status::InvalidArgument(
1670
- "Can only call Get with `ReadOptions::io_activity` is "
1671
- "`Env::IOActivity::kUnknown` or `Env::IOActivity::kGet`");
1672
- }
1673
- if (timestamp) {
1674
- return Status::NotSupported(
1675
- "Get() that returns timestamp is not implemented.");
1676
- }
1677
-
1678
- ReadOptions read_options(_read_options);
1679
- if (read_options.io_activity == Env::IOActivity::kUnknown) {
1680
- read_options.io_activity = Env::IOActivity::kGet;
1681
- }
1682
- return GetImpl(read_options, column_family, key, value);
1683
- }
1684
-
1685
- Status BlobDBImpl::Get(const ReadOptions& _read_options,
1686
- ColumnFamilyHandle* column_family, const Slice& key,
1687
- PinnableSlice* value, uint64_t* expiration) {
1688
- if (_read_options.io_activity != Env::IOActivity::kUnknown &&
1689
- _read_options.io_activity != Env::IOActivity::kGet) {
1690
- return Status::InvalidArgument(
1691
- "Can only call Get with `ReadOptions::io_activity` is "
1692
- "`Env::IOActivity::kUnknown` or `Env::IOActivity::kGet`");
1693
- }
1694
- ReadOptions read_options(_read_options);
1695
- if (read_options.io_activity == Env::IOActivity::kUnknown) {
1696
- read_options.io_activity = Env::IOActivity::kGet;
1697
- }
1698
-
1699
- StopWatch get_sw(clock_, statistics_, BLOB_DB_GET_MICROS);
1700
- RecordTick(statistics_, BLOB_DB_NUM_GET);
1701
- return GetImpl(read_options, column_family, key, value, expiration);
1702
- }
1703
-
1704
- Status BlobDBImpl::GetImpl(const ReadOptions& read_options,
1705
- ColumnFamilyHandle* column_family, const Slice& key,
1706
- PinnableSlice* value, uint64_t* expiration) {
1707
- if (column_family->GetID() != DefaultColumnFamily()->GetID()) {
1708
- return Status::NotSupported(
1709
- "Blob DB doesn't support non-default column family.");
1710
- }
1711
- // Get a snapshot to avoid blob file get deleted between we
1712
- // fetch and index entry and reading from the file.
1713
- // TODO(yiwu): For Get() retry if file not found would be a simpler strategy.
1714
- ReadOptions ro(read_options);
1715
- bool snapshot_created = SetSnapshotIfNeeded(&ro);
1716
-
1717
- PinnableSlice index_entry;
1718
- Status s;
1719
- bool is_blob_index = false;
1720
- DBImpl::GetImplOptions get_impl_options;
1721
- get_impl_options.column_family = column_family;
1722
- get_impl_options.value = &index_entry;
1723
- get_impl_options.is_blob_index = &is_blob_index;
1724
- s = db_impl_->GetImpl(ro, key, get_impl_options);
1725
- if (expiration != nullptr) {
1726
- *expiration = kNoExpiration;
1727
- }
1728
- RecordTick(statistics_, BLOB_DB_NUM_KEYS_READ);
1729
- if (s.ok()) {
1730
- if (is_blob_index) {
1731
- s = GetBlobValue(key, index_entry, value, expiration);
1732
- } else {
1733
- // The index entry is the value itself in this case.
1734
- value->PinSelf(index_entry);
1735
- }
1736
- RecordTick(statistics_, BLOB_DB_BYTES_READ, value->size());
1737
- }
1738
- if (snapshot_created) {
1739
- db_->ReleaseSnapshot(ro.snapshot);
1740
- }
1741
- return s;
1742
- }
1743
-
1744
- std::pair<bool, int64_t> BlobDBImpl::SanityCheck(bool aborted) {
1745
- if (aborted) {
1746
- return std::make_pair(false, -1);
1747
- }
1748
-
1749
- ReadLock rl(&mutex_);
1750
-
1751
- ROCKS_LOG_INFO(db_options_.info_log, "Starting Sanity Check");
1752
- ROCKS_LOG_INFO(db_options_.info_log, "Number of files %" ROCKSDB_PRIszt,
1753
- blob_files_.size());
1754
- ROCKS_LOG_INFO(db_options_.info_log, "Number of open files %" ROCKSDB_PRIszt,
1755
- open_ttl_files_.size());
1756
-
1757
- for (const auto& blob_file : open_ttl_files_) {
1758
- (void)blob_file;
1759
- assert(!blob_file->Immutable());
1760
- }
1761
-
1762
- for (const auto& pair : live_imm_non_ttl_blob_files_) {
1763
- const auto& blob_file = pair.second;
1764
- (void)blob_file;
1765
- assert(!blob_file->HasTTL());
1766
- assert(blob_file->Immutable());
1767
- }
1768
-
1769
- uint64_t now = EpochNow();
1770
-
1771
- for (const auto& blob_file_pair : blob_files_) {
1772
- auto blob_file = blob_file_pair.second;
1773
- std::ostringstream buf;
1774
-
1775
- buf << "Blob file " << blob_file->BlobFileNumber() << ", size "
1776
- << blob_file->GetFileSize() << ", blob count " << blob_file->BlobCount()
1777
- << ", immutable " << blob_file->Immutable();
1778
-
1779
- if (blob_file->HasTTL()) {
1780
- ExpirationRange expiration_range;
1781
- {
1782
- ReadLock file_lock(&blob_file->mutex_);
1783
- expiration_range = blob_file->GetExpirationRange();
1784
- }
1785
- buf << ", expiration range (" << expiration_range.first << ", "
1786
- << expiration_range.second << ")";
1787
-
1788
- if (!blob_file->Obsolete()) {
1789
- buf << ", expire in " << (expiration_range.second - now) << "seconds";
1790
- }
1791
- }
1792
- if (blob_file->Obsolete()) {
1793
- buf << ", obsolete at " << blob_file->GetObsoleteSequence();
1794
- }
1795
- buf << ".";
1796
- ROCKS_LOG_INFO(db_options_.info_log, "%s", buf.str().c_str());
1797
- }
1798
-
1799
- // reschedule
1800
- return std::make_pair(true, -1);
1801
- }
1802
-
1803
- Status BlobDBImpl::CloseBlobFile(const WriteOptions& write_options,
1804
- std::shared_ptr<BlobFile> bfile) {
1805
- TEST_SYNC_POINT("BlobDBImpl::CloseBlobFile");
1806
- assert(bfile);
1807
- assert(!bfile->Immutable());
1808
- assert(!bfile->Obsolete());
1809
-
1810
- if (bfile->HasTTL() || bfile == open_non_ttl_file_) {
1811
- write_mutex_.AssertHeld();
1812
- }
1813
-
1814
- ROCKS_LOG_INFO(db_options_.info_log,
1815
- "Closing blob file %" PRIu64 ". Path: %s",
1816
- bfile->BlobFileNumber(), bfile->PathName().c_str());
1817
-
1818
- const SequenceNumber sequence = GetLatestSequenceNumber();
1819
-
1820
- const Status s = bfile->WriteFooterAndCloseLocked(write_options, sequence);
1821
-
1822
- if (s.ok()) {
1823
- total_blob_size_ += BlobLogFooter::kSize;
1824
- } else {
1825
- bfile->MarkImmutable(sequence);
1826
-
1827
- ROCKS_LOG_ERROR(db_options_.info_log,
1828
- "Failed to close blob file %" PRIu64 "with error: %s",
1829
- bfile->BlobFileNumber(), s.ToString().c_str());
1830
- }
1831
-
1832
- if (bfile->HasTTL()) {
1833
- size_t erased __attribute__((__unused__));
1834
- erased = open_ttl_files_.erase(bfile);
1835
- } else {
1836
- if (bfile == open_non_ttl_file_) {
1837
- open_non_ttl_file_ = nullptr;
1838
- }
1839
-
1840
- const uint64_t blob_file_number = bfile->BlobFileNumber();
1841
- auto it = live_imm_non_ttl_blob_files_.lower_bound(blob_file_number);
1842
- assert(it == live_imm_non_ttl_blob_files_.end() ||
1843
- it->first != blob_file_number);
1844
- live_imm_non_ttl_blob_files_.insert(
1845
- it, std::map<uint64_t, std::shared_ptr<BlobFile>>::value_type(
1846
- blob_file_number, bfile));
1847
- }
1848
-
1849
- return s;
1850
- }
1851
-
1852
- Status BlobDBImpl::CloseBlobFileIfNeeded(const WriteOptions& write_options,
1853
- std::shared_ptr<BlobFile>& bfile) {
1854
- write_mutex_.AssertHeld();
1855
-
1856
- // atomic read
1857
- if (bfile->GetFileSize() < bdb_options_.blob_file_size) {
1858
- return Status::OK();
1859
- }
1860
-
1861
- WriteLock lock(&mutex_);
1862
- WriteLock file_lock(&bfile->mutex_);
1863
-
1864
- assert(!bfile->Obsolete() || bfile->Immutable());
1865
- if (bfile->Immutable()) {
1866
- return Status::OK();
1867
- }
1868
-
1869
- return CloseBlobFile(write_options, bfile);
1870
- }
1871
-
1872
- void BlobDBImpl::ObsoleteBlobFile(std::shared_ptr<BlobFile> blob_file,
1873
- SequenceNumber obsolete_seq,
1874
- bool update_size) {
1875
- assert(blob_file->Immutable());
1876
- assert(!blob_file->Obsolete());
1877
-
1878
- // Should hold write lock of mutex_ or during DB open.
1879
- blob_file->MarkObsolete(obsolete_seq);
1880
- obsolete_files_.push_back(blob_file);
1881
- assert(total_blob_size_.load() >= blob_file->GetFileSize());
1882
- if (update_size) {
1883
- total_blob_size_ -= blob_file->GetFileSize();
1884
- }
1885
- }
1886
-
1887
- bool BlobDBImpl::VisibleToActiveSnapshot(
1888
- const std::shared_ptr<BlobFile>& bfile) {
1889
- assert(bfile->Obsolete());
1890
-
1891
- // We check whether the oldest snapshot is no less than the last sequence
1892
- // by the time the blob file become obsolete. If so, the blob file is not
1893
- // visible to all existing snapshots.
1894
- //
1895
- // If we keep track of the earliest sequence of the keys in the blob file,
1896
- // we could instead check if there's a snapshot falls in range
1897
- // [earliest_sequence, obsolete_sequence). But doing so will make the
1898
- // implementation more complicated.
1899
- SequenceNumber obsolete_sequence = bfile->GetObsoleteSequence();
1900
- SequenceNumber oldest_snapshot = kMaxSequenceNumber;
1901
- {
1902
- // Need to lock DBImpl mutex before access snapshot list.
1903
- InstrumentedMutexLock l(db_impl_->mutex());
1904
- auto& snapshots = db_impl_->snapshots();
1905
- if (!snapshots.empty()) {
1906
- oldest_snapshot = snapshots.oldest()->GetSequenceNumber();
1907
- }
1908
- }
1909
- bool visible = oldest_snapshot < obsolete_sequence;
1910
- if (visible) {
1911
- ROCKS_LOG_INFO(db_options_.info_log,
1912
- "Obsolete blob file %" PRIu64 " (obsolete at %" PRIu64
1913
- ") visible to oldest snapshot %" PRIu64 ".",
1914
- bfile->BlobFileNumber(), obsolete_sequence, oldest_snapshot);
1915
- }
1916
- return visible;
1917
- }
1918
-
1919
- std::pair<bool, int64_t> BlobDBImpl::EvictExpiredFiles(bool aborted) {
1920
- if (aborted) {
1921
- return std::make_pair(false, -1);
1922
- }
1923
-
1924
- TEST_SYNC_POINT("BlobDBImpl::EvictExpiredFiles:0");
1925
- TEST_SYNC_POINT("BlobDBImpl::EvictExpiredFiles:1");
1926
-
1927
- std::vector<std::shared_ptr<BlobFile>> process_files;
1928
- uint64_t now = EpochNow();
1929
- {
1930
- ReadLock rl(&mutex_);
1931
- for (const auto& p : blob_files_) {
1932
- auto& blob_file = p.second;
1933
- ReadLock file_lock(&blob_file->mutex_);
1934
- if (blob_file->HasTTL() && !blob_file->Obsolete() &&
1935
- blob_file->GetExpirationRange().second <= now) {
1936
- process_files.push_back(blob_file);
1937
- }
1938
- }
1939
- }
1940
-
1941
- TEST_SYNC_POINT("BlobDBImpl::EvictExpiredFiles:2");
1942
- TEST_SYNC_POINT("BlobDBImpl::EvictExpiredFiles:3");
1943
- TEST_SYNC_POINT_CALLBACK("BlobDBImpl::EvictExpiredFiles:cb", nullptr);
1944
-
1945
- SequenceNumber seq = GetLatestSequenceNumber();
1946
- {
1947
- MutexLock l(&write_mutex_);
1948
- WriteLock lock(&mutex_);
1949
- for (auto& blob_file : process_files) {
1950
- WriteLock file_lock(&blob_file->mutex_);
1951
-
1952
- // Need to double check if the file is obsolete.
1953
- if (blob_file->Obsolete()) {
1954
- assert(blob_file->Immutable());
1955
- continue;
1956
- }
1957
-
1958
- if (!blob_file->Immutable()) {
1959
- // TODO: plumb Env::IOActivity, Env::IOPriority
1960
- CloseBlobFile(WriteOptions(), blob_file).PermitUncheckedError();
1961
- }
1962
-
1963
- assert(blob_file->Immutable());
1964
-
1965
- ObsoleteBlobFile(blob_file, seq, true /*update_size*/);
1966
- }
1967
- }
1968
-
1969
- return std::make_pair(true, -1);
1970
- }
1971
-
1972
- Status BlobDBImpl::SyncBlobFiles(const WriteOptions& write_options) {
1973
- MutexLock l(&write_mutex_);
1974
-
1975
- std::vector<std::shared_ptr<BlobFile>> process_files;
1976
- {
1977
- ReadLock rl(&mutex_);
1978
- for (const auto& fitr : open_ttl_files_) {
1979
- process_files.push_back(fitr);
1980
- }
1981
- if (open_non_ttl_file_ != nullptr) {
1982
- process_files.push_back(open_non_ttl_file_);
1983
- }
1984
- }
1985
-
1986
- Status s;
1987
- for (auto& blob_file : process_files) {
1988
- s = blob_file->Fsync(write_options);
1989
- if (!s.ok()) {
1990
- ROCKS_LOG_ERROR(db_options_.info_log,
1991
- "Failed to sync blob file %" PRIu64 ", status: %s",
1992
- blob_file->BlobFileNumber(), s.ToString().c_str());
1993
- return s;
1994
- }
1995
- }
1996
-
1997
- s = dir_ent_->FsyncWithDirOptions(IOOptions(), nullptr, DirFsyncOptions());
1998
- if (!s.ok()) {
1999
- ROCKS_LOG_ERROR(db_options_.info_log,
2000
- "Failed to sync blob directory, status: %s",
2001
- s.ToString().c_str());
2002
- }
2003
- return s;
2004
- }
2005
-
2006
- std::pair<bool, int64_t> BlobDBImpl::ReclaimOpenFiles(bool aborted) {
2007
- if (aborted) {
2008
- return std::make_pair(false, -1);
2009
- }
2010
-
2011
- if (open_file_count_.load() < kOpenFilesTrigger) {
2012
- return std::make_pair(true, -1);
2013
- }
2014
-
2015
- // in the future, we should sort by last_access_
2016
- // instead of closing every file
2017
- ReadLock rl(&mutex_);
2018
- for (auto const& ent : blob_files_) {
2019
- auto bfile = ent.second;
2020
- if (bfile->last_access_.load() == -1) {
2021
- continue;
2022
- }
2023
-
2024
- WriteLock lockbfile_w(&bfile->mutex_);
2025
- CloseRandomAccessLocked(bfile);
2026
- }
2027
-
2028
- return std::make_pair(true, -1);
2029
- }
2030
-
2031
- std::pair<bool, int64_t> BlobDBImpl::DeleteObsoleteFiles(bool aborted) {
2032
- if (aborted) {
2033
- return std::make_pair(false, -1);
2034
- }
2035
-
2036
- MutexLock delete_file_lock(&delete_file_mutex_);
2037
- if (disable_file_deletions_ > 0) {
2038
- return std::make_pair(true, -1);
2039
- }
2040
-
2041
- std::list<std::shared_ptr<BlobFile>> tobsolete;
2042
- {
2043
- WriteLock wl(&mutex_);
2044
- if (obsolete_files_.empty()) {
2045
- return std::make_pair(true, -1);
2046
- }
2047
- tobsolete.swap(obsolete_files_);
2048
- }
2049
-
2050
- bool file_deleted = false;
2051
- for (auto iter = tobsolete.begin(); iter != tobsolete.end();) {
2052
- auto bfile = *iter;
2053
- {
2054
- ReadLock lockbfile_r(&bfile->mutex_);
2055
- if (VisibleToActiveSnapshot(bfile)) {
2056
- ROCKS_LOG_INFO(db_options_.info_log,
2057
- "Could not delete file due to snapshot failure %s",
2058
- bfile->PathName().c_str());
2059
- ++iter;
2060
- continue;
2061
- }
2062
- }
2063
- ROCKS_LOG_INFO(db_options_.info_log,
2064
- "Will delete file due to snapshot success %s",
2065
- bfile->PathName().c_str());
2066
-
2067
- {
2068
- WriteLock wl(&mutex_);
2069
- blob_files_.erase(bfile->BlobFileNumber());
2070
- }
2071
-
2072
- Status s = DeleteDBFile(&(db_impl_->immutable_db_options()),
2073
- bfile->PathName(), blob_dir_, true,
2074
- /*force_fg=*/false);
2075
- if (!s.ok()) {
2076
- ROCKS_LOG_ERROR(db_options_.info_log,
2077
- "File failed to be deleted as obsolete %s",
2078
- bfile->PathName().c_str());
2079
- ++iter;
2080
- continue;
2081
- }
2082
-
2083
- file_deleted = true;
2084
- ROCKS_LOG_INFO(db_options_.info_log,
2085
- "File deleted as obsolete from blob dir %s",
2086
- bfile->PathName().c_str());
2087
-
2088
- iter = tobsolete.erase(iter);
2089
- }
2090
-
2091
- // directory change. Fsync
2092
- if (file_deleted) {
2093
- Status s = dir_ent_->FsyncWithDirOptions(
2094
- IOOptions(), nullptr,
2095
- DirFsyncOptions(DirFsyncOptions::FsyncReason::kFileDeleted));
2096
- if (!s.ok()) {
2097
- ROCKS_LOG_ERROR(db_options_.info_log, "Failed to sync dir %s: %s",
2098
- blob_dir_.c_str(), s.ToString().c_str());
2099
- }
2100
- }
2101
-
2102
- // put files back into obsolete if for some reason, delete failed
2103
- if (!tobsolete.empty()) {
2104
- WriteLock wl(&mutex_);
2105
- for (const auto& bfile : tobsolete) {
2106
- blob_files_.insert(std::make_pair(bfile->BlobFileNumber(), bfile));
2107
- obsolete_files_.push_front(bfile);
2108
- }
2109
- }
2110
-
2111
- return std::make_pair(!aborted, -1);
2112
- }
2113
-
2114
- void BlobDBImpl::CopyBlobFiles(
2115
- std::vector<std::shared_ptr<BlobFile>>* bfiles_copy) {
2116
- ReadLock rl(&mutex_);
2117
- for (auto const& p : blob_files_) {
2118
- bfiles_copy->push_back(p.second);
2119
- }
2120
- }
2121
-
2122
- Iterator* BlobDBImpl::NewIterator(const ReadOptions& _read_options) {
2123
- if (_read_options.io_activity != Env::IOActivity::kUnknown &&
2124
- _read_options.io_activity != Env::IOActivity::kDBIterator) {
2125
- return NewErrorIterator(Status::InvalidArgument(
2126
- "Can only call NewIterator with `ReadOptions::io_activity` is "
2127
- "`Env::IOActivity::kUnknown` or `Env::IOActivity::kDBIterator`"));
2128
- }
2129
- ReadOptions read_options(_read_options);
2130
- if (read_options.io_activity == Env::IOActivity::kUnknown) {
2131
- read_options.io_activity = Env::IOActivity::kDBIterator;
2132
- }
2133
- auto* cfh =
2134
- static_cast_with_check<ColumnFamilyHandleImpl>(DefaultColumnFamily());
2135
- auto* cfd = cfh->cfd();
2136
- // Get a snapshot to avoid blob file get deleted between we
2137
- // fetch and index entry and reading from the file.
2138
- ManagedSnapshot* own_snapshot = nullptr;
2139
- const Snapshot* snapshot = read_options.snapshot;
2140
- if (snapshot == nullptr) {
2141
- own_snapshot = new ManagedSnapshot(db_);
2142
- snapshot = own_snapshot->snapshot();
2143
- }
2144
- SuperVersion* sv = cfd->GetReferencedSuperVersion(db_impl_);
2145
- auto* iter = db_impl_->NewIteratorImpl(
2146
- read_options, cfh, sv, snapshot->GetSequenceNumber(),
2147
- nullptr /*read_callback*/, true /*expose_blob_index*/);
2148
- return new BlobDBIterator(own_snapshot, iter, this, clock_, statistics_);
2149
- }
2150
-
2151
- Status DestroyBlobDB(const std::string& dbname, const Options& options,
2152
- const BlobDBOptions& bdb_options) {
2153
- const ImmutableDBOptions soptions(SanitizeOptions(dbname, options));
2154
- Env* env = soptions.env;
2155
-
2156
- Status status;
2157
- std::string blobdir;
2158
- blobdir = (bdb_options.path_relative) ? dbname + "/" + bdb_options.blob_dir
2159
- : bdb_options.blob_dir;
2160
-
2161
- std::vector<std::string> filenames;
2162
- if (env->GetChildren(blobdir, &filenames).ok()) {
2163
- for (const auto& f : filenames) {
2164
- uint64_t number;
2165
- FileType type;
2166
- if (ParseFileName(f, &number, &type) && type == kBlobFile) {
2167
- Status del = DeleteDBFile(&soptions, blobdir + "/" + f, blobdir, true,
2168
- /*force_fg=*/false);
2169
- if (status.ok() && !del.ok()) {
2170
- status = del;
2171
- }
2172
- }
2173
- }
2174
- // TODO: What to do if we cannot delete the directory?
2175
- env->DeleteDir(blobdir).PermitUncheckedError();
2176
- }
2177
- Status destroy = DestroyDB(dbname, options);
2178
- if (status.ok() && !destroy.ok()) {
2179
- status = destroy;
2180
- }
2181
-
2182
- return status;
2183
- }
2184
-
2185
- #ifndef NDEBUG
2186
- Status BlobDBImpl::TEST_GetBlobValue(const Slice& key, const Slice& index_entry,
2187
- PinnableSlice* value) {
2188
- return GetBlobValue(key, index_entry, value);
2189
- }
2190
-
2191
- void BlobDBImpl::TEST_AddDummyBlobFile(uint64_t blob_file_number,
2192
- SequenceNumber immutable_sequence) {
2193
- auto blob_file = std::make_shared<BlobFile>(this, blob_dir_, blob_file_number,
2194
- db_options_.info_log.get());
2195
- blob_file->MarkImmutable(immutable_sequence);
2196
-
2197
- blob_files_[blob_file_number] = blob_file;
2198
- live_imm_non_ttl_blob_files_[blob_file_number] = blob_file;
2199
- }
2200
-
2201
- std::vector<std::shared_ptr<BlobFile>> BlobDBImpl::TEST_GetBlobFiles() const {
2202
- ReadLock l(&mutex_);
2203
- std::vector<std::shared_ptr<BlobFile>> blob_files;
2204
- for (auto& p : blob_files_) {
2205
- blob_files.emplace_back(p.second);
2206
- }
2207
- return blob_files;
2208
- }
2209
-
2210
- std::vector<std::shared_ptr<BlobFile>> BlobDBImpl::TEST_GetLiveImmNonTTLFiles()
2211
- const {
2212
- ReadLock l(&mutex_);
2213
- std::vector<std::shared_ptr<BlobFile>> live_imm_non_ttl_files;
2214
- for (const auto& pair : live_imm_non_ttl_blob_files_) {
2215
- live_imm_non_ttl_files.emplace_back(pair.second);
2216
- }
2217
- return live_imm_non_ttl_files;
2218
- }
2219
-
2220
- std::vector<std::shared_ptr<BlobFile>> BlobDBImpl::TEST_GetObsoleteFiles()
2221
- const {
2222
- ReadLock l(&mutex_);
2223
- std::vector<std::shared_ptr<BlobFile>> obsolete_files;
2224
- for (auto& bfile : obsolete_files_) {
2225
- obsolete_files.emplace_back(bfile);
2226
- }
2227
- return obsolete_files;
2228
- }
2229
-
2230
- void BlobDBImpl::TEST_DeleteObsoleteFiles() {
2231
- DeleteObsoleteFiles(false /*abort*/);
2232
- }
2233
-
2234
- Status BlobDBImpl::TEST_CloseBlobFile(std::shared_ptr<BlobFile>& bfile) {
2235
- MutexLock l(&write_mutex_);
2236
- WriteLock lock(&mutex_);
2237
- WriteLock file_lock(&bfile->mutex_);
2238
-
2239
- return CloseBlobFile(WriteOptions(), bfile);
2240
- }
2241
-
2242
- void BlobDBImpl::TEST_ObsoleteBlobFile(std::shared_ptr<BlobFile>& blob_file,
2243
- SequenceNumber obsolete_seq,
2244
- bool update_size) {
2245
- return ObsoleteBlobFile(blob_file, obsolete_seq, update_size);
2246
- }
2247
-
2248
- void BlobDBImpl::TEST_EvictExpiredFiles() {
2249
- EvictExpiredFiles(false /*abort*/);
2250
- }
2251
-
2252
- uint64_t BlobDBImpl::TEST_live_sst_size() { return live_sst_size_.load(); }
2253
-
2254
- void BlobDBImpl::TEST_InitializeBlobFileToSstMapping(
2255
- const std::vector<LiveFileMetaData>& live_files) {
2256
- InitializeBlobFileToSstMapping(live_files);
2257
- }
2258
-
2259
- void BlobDBImpl::TEST_ProcessFlushJobInfo(const FlushJobInfo& info) {
2260
- ProcessFlushJobInfo(info);
2261
- }
2262
-
2263
- void BlobDBImpl::TEST_ProcessCompactionJobInfo(const CompactionJobInfo& info) {
2264
- ProcessCompactionJobInfo(info);
2265
- }
2266
-
2267
- #endif // !NDEBUG
2268
-
2269
- } // namespace ROCKSDB_NAMESPACE::blob_db