PostgreSQL 现已通过其 TOAST 存储技术提供压缩支持,并且在过去的一年里构建了 LZ4 压缩支持——用于压缩 WAL、备份压缩以及其他用途,现在 PostgreSQL 开发者正准备通过 Zstd 支持进一步扩展其压缩能力。
Zstd (Zstandard) 是由 Facebook 开源的快速无损压缩算法,主要应用于 zlib 级别的实时压缩场景,并且具有更好的压缩比。Zstd 还可以以压缩速度为代价提供更强的压缩比,速度与压缩权衡可通过小增量进行配置。
上周 PostgreSQL 开发者讨论了是否添加 Zstd 作为支持的压缩算法。在讨论邮件中,开发者表示 Zstd 有一个显著的优点——被 Linux 内核以及其他知名开源项目等广泛使用。这意味着它不会轻易停止维护,并且降低了涉及法律问题的风险。在技术层面上,Zstd 提供了与 Gzip 相似或更好的压缩比,但压缩速度要快得多。此外,Zstd 库具有内置的多线程压缩,PostgreSQL 可以利用它获得更好的性能。
讨论过程十分顺利,目前已创建了相对应的 PostgreSQL Git 仓库,用于构建引入 Zstd 的 PostgreSQL。
虽然已增加了 --with-zstd 构建时选项,并允许使用 Zstd 压缩库进行构建,但目前这并没有在 PostgreSQL 中启用 Zstd 的任何实际使用。后续的提交预计很快就会开始允许 PostgreSQL 利用 Zstd 的压缩能力优势。
等到 PostgreSQL 15 发布时,相信会提供 Zstd 支持,以补充目前 PostgreSQL 14 的 LZ4 支持。
本文转自OSCHINA
本文标题:PostgreSQL 开始支持 Zstd
本文地址:https://www.oschina.net/news/183524/pgsql-zstd-start