# `GC` 流程
+ **_1_** 在 `compaction` 完成后,修改可丢弃的大小并计算 `GC` 分数
+ **_2_** 从最高分到最低分数选择多个 `BLOB` 文件作为候选文件
+ **_3_** 对候选文件中的每个 `BLOB` 文件进行采样,如果可丢弃的数据量不超过 **`DISCARD_RATIO`**（可配置）,请将其从候选文件中删除
+ **_4_** 遍历候选 `BLOB` 文件中的所有 `KV` 对,将所有活动值合并并排序到一个新的 `BLOB` 文件中
+ **_5_** 写下向 `MANIFEST` 日志中添加新 `BLOB` 文件的新记录
+ **_6_** 将所有有效的 `key-index` 对重写为 `LSM-Tree`
+ **_7_** 将删除旧 `BLOB` 文件的新记录写入 `MANIFEST` 日志

----------------------------------------------------------------

