Database: Concept: Amplification Factors

 23rd January 2021 at 8:38pm

放大因子。这个术语主要出现在两个场景:SSD 写入数据时的写放大(write amplification),以及数据库系统中的各种放大现象。这篇文章只关注数据库系统中的。内容来源自 RocksDB 的 wiki(网页链接本地存档)。

写放大(write amplification)

写放大 指写入存储(磁盘、SSD 等)的数据量比写入数据库的数据量。比如写 10MB 到数据库时,磁盘上有 30MB 的写量(但不等同于磁盘一定会增加 30MB 内容),那写放大的比例是 3 倍。

读放大(read amplification)

读放大指每次数据库请求到达时,需要读取的磁盘页数。比如需要读 5 页磁盘才可以处理一个请求,那读放大的比例是 5。

空间放大(space amplification)

指数据库文件大小比数据大小。比如像数据库写入 10MB 时,数据库文件增加了 100MB,那空间放大的比例是 10。

广义的放大现象

放在更广泛的语境下,这几个术语 可以指代更广泛的现象。比如一个多层的后台架构中,逻辑 server 收到一个读请求后,会发出 5 个请求去访问其他后端模块,那这也是一个读放大的现象。