我的理解是在compact时对旧数据垃圾回收造成空间放大。
空间放大:存储采用的数据结构因分裂或临时数据拷贝造成的磁盘空间占用放大。
空间放大取决于还有多少旧数据待垃圾回收。
若每层仅有一个文件,相邻层合并生成新的较大层文件,同一条记录会存在两份,因此空间放大是2。
若每层有多个文件,10倍增长因子,最坏情况下,以最底层达到10TB数据来算,从上一层到最顶层约占1TB多,根据定义,因此空间放大为10/(10-1)=1.11…。
若考虑到merge时暂未删除的旧数据,则空间放大可以认为约1.2。