数据库内核月报

数据库内核月报 - 2015 / 05

TokuDB · 引擎特性 · zstd压缩算法

Author: 一工

有4压缩很任性

TokuDB有着出色的压缩特性,这不是”盖”的: RDS上有个InnoDB实例,1天的数据将近700GB空间,换成TokuDB后(默认zlib压缩),同样的700GB可以保存5天的数据,业务读写性能也无任何影响,空间成本直线下降。

为什么TokuDB的压缩这么给力? 因为TokuDB一个“页”的大小为4MB,压缩起来,这酸爽…

zstd新压缩算法

TokuDB支持3种压缩算法:

tokudb_quicklz: 压缩效果差,CPU消耗低
tokudb_zlib: 压缩效果偏中,CPU消耗偏中(默认)
tokudb_lzma: 压缩效果好,CPU消耗高

之所以提供多种压缩算法,主要是从CPU消耗和压缩效果上综合考虑的,大部分情况下 tokudb_zlib 都可以应付,而且压缩效果也不错,也是 TokuDB 默认压缩算法。 最近压缩界出了一枚小鲜肉:zstd压缩算法,由压缩专业户Yann Collet倾力打造。 zstd有着非常好的压缩效果,最重要的是它CPU消耗低和压缩(解压)速度非常快,我们内部TokuDB版本已集成此算法,下面就让我们看看同样数据集的情况下,它们的效果对比:

压缩效果对比图(越高越好): ratio zstd的压缩效果介于zlib和lzma之间,已经很理想了。

压缩时间对比图: second 压缩时间非常少,几乎是quicklz的一半。

相信过不了多久,你的RDS数据已经悄悄的跑在zstd压缩算法之下。 如果你对我们所做的事情感兴趣,请抓起鼠标,敲起键盘,快快跟我们联系吧,最后悄悄说一句:

我们有妹子!!!