加载中...

写放大(Write Amplification)指实际写入存储介质的数据量与应用层逻辑写入量之间的比值。比如应用写入 1GB 数据,底层却产生 5GB 物理写入,写放大即为 5。它直接影响写入吞吐、介质寿命与成本。
在 SSD 层面,闪存必须先擦除后写入,且擦除以块为单位、写入以页为单位,垃圾回收时需要搬移有效数据,导致额外写入。在存储引擎层面,LSM-Tree 的分层压实(Compaction)会将同一条数据在各层间反复重写,典型 Leveled Compaction 的写放大可达十倍以上;B+ 树因整页刷盘也存在写放大,还有 WAL 日志的重复写入。
常见优化包括:调整 Compaction 策略(如 Tiered 压实以读放大换写放大)、键值分离(WiscKey 论文思路,BadgerDB 采用)、SSD 侧增大预留空间与启用 TRIM。写放大、读放大与空间放大三者构成存储引擎设计中著名的 RUM 权衡,无法同时最优。

登录 后参与讨论
暂无讨论,来发表第一条评论吧