PostgreSQL 开始支持 Zstd


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 支持。


相關推薦

2021-12-10

话可以从 Julian 的《重新评估默认的 initramfs 压缩》邮件开始阅读。

2022-05-21

PostgreSQL 15 的第一个 beta 版本现已可供下载。公告指出,此版本包含 PostgreSQL 15 普遍可用时将提供的所有功能的预览,但该版本的某些细节可能会在测试期间发生变化。 本着开源 PostgreSQL 社区的精神,官方建议用户在系统上测

2024-03-28

发布的部分原因是 Chrome 123 添加了对 Web 流量的 Zstd 编码支持。Chrome 现在支持使用 Zstandard (zstd) 作为内容编码,以加快页面加载速度并节省带宽。 虽然 Chrome 支持 Zstd 编码是件好事,但目前 Web 服务器对 Zstd 编码的支持还很有限

2022-10-28

各种 Linux 内核组件都在使用 Zstandard(Zstd) 压缩算法,但内核中的 Zstd 代码远落后于上游,上一次更新内核中的 Zstd 代码还要追溯到一年前的 Linux 5.16,,当时将 Zstd 升级到 1.4.10。从 Linux 5.16 发布以后,Zstd 维护者 Nick Terrell 就积

2022-12-21

基于 Zstd v1.5 上游的新 Zstd 内核实现已合并到正在开发的 Linux 6.2 中,以便为从压缩固件到透明文件系统压缩的 Zstd 压缩/解压缩用例提供更好的性能和可靠性。 Linux 内核已在多个模块使用了 Zstd,从透明文件系统压缩与 Btrfs 之

2023-11-24

根据Phoronix的报道,Linux 6.8内核计划在明年升级其Zstd代码,以提供更好的压缩性能。 在Linux 6.2中,内核的Zstd压缩/解压缩代码已经根据Zstd 1.5的最新状态进行了更新。而在Linux 6.8内核中,计划升级到Zstd 1.5.5版本,这将提供更好

2023-04-01

untu 22.04.2 LTS(Jammy Jellyfish),并由 Linux 内核 5.15 LTS 提供支持,为内部应用程序引入 Zstd(Zstandard)压缩,大大提高解压缩速度 另一个有趣的变化是通过在 Lite System Report 应用程序中实施 systemd-analyze ,从而添加了 systemd 报告,

2023-04-06

zstd (Zstandard) v1.5.4 已发布。此版本修复了在高度压缩模式下出现的罕见损坏错误。由于随机出现这种情况的可能性极低,所以在多次模糊测试中都没被发现。直到一名维护者收集到庞大的数据后才设法检测出一个案例。 官方建

2023-02-12

本。 Zstd 1.5.4 还增加了对外部定义的序列生成器的支持。这个 API 允许用户提供他们自己的自定义序列生成器,Zstd 库调用它来处理每个块。发行说明提到这最终将允许硬件加速的匹配查找器,例如能够支持带有 Zstd 的至强

2023-01-24

t语言通用代码生成器:莲花,发布冒烟测试版3,开始支持PostgreSQL数据库,更多功能,更多示例 Rust语言通用代码生成器:莲花,已发布冒烟测试版3,此版本初步支持PostgreSQL数据库。支持更多示例和功能,对MariaDB支持比较完善。

2023-02-20

NU Debugger 能为十几种不同的处理器架构的软件进行调试,支持的语言有 Ada、C、C++、Fortran、Go、Rust 等。 新版本的 GDB 和 GDB 服务器添加了两个新的目标架构支持:Linux 下的 LoongArch 和 C-SKY 处理器架构。LoongArch Linux 支持还包括浮

2022-11-12

PostgreSQL 全球开发组针对当前所有被支持版本发布了一次更新,版本包括:15.1、14.6、13.9、12.13、11.18 和 10.23。这是 PostgreSQL 10 系列的最终版本,之后 PostgreSQL 10 将不再接受安全和错误修复。如果你正在生产环境中运行 PostgreSQL 10

2023-03-20

括更快的 LLD 链接、Zstd 压缩的调试部分、稳定其 LoongArch 支持、默认为 Clang 的 C++17 等等。 下面是 LLVM 16 的主要变化: Clang 的默认 C++ 标准现在是 GNU++17,而不是 GNU++14/C++14  实现更多 C++20 功能,以及对现有 C++20 功能的

2022-06-07

顺利推动了 Arm 多平台通用工作的完善。其次, Linux 5.19 开始支持 HPE GXP 架构。 Linux 5.19 的其他新功能包括:支持由龙芯开发的基于 MIPS 的 LoongArch CPU 架构、对 Apple 芯片的 NVMe 支持、支持使用 Zstd 压缩固件  、支持报告 FAT32