当前位置: 首页 > news >正文

ClickHouse 用 Rust 重写 WAL - G 推 WAL - RUS:内存消耗降超 70%,兼容现有部署

问题所在

Postgres 备份在 ClickHouse Cloud 中至关重要,WAL 归档是保持数据持久性和可恢复性的关键。WAL - G 一直是可靠工具,但将 Postgres 部署到资源更紧张环境时,遇到内存使用可预测性问题。WAL - G 用 Go 语言编写,其垃圾回收运行时使内存使用难以预测,包括常驻内存和虚拟内存。Go 的运行时管理内存池,可能预留比实际使用量多得多的虚拟内存,内存占用随工作负载变化波动,呈“锯齿”模式,这让运维人员难以预测峰值内存消耗和有效分配资源,通常需预留更多内存,影响 Postgres 本身资源分配。

解决方案:引入 WAL - RUS

开发 WAL - RUS 并非寻求新功能,而是为在保持核心功能和兼容性的同时,提供更可预测的资源使用情况。WAL - RUS 是用 Rust 实现的 Postgres 备份和 WAL 归档工具,具有可预测的资源使用,使用有界工作线程池和精心控制的并发,使内存消耗更易理解;专为连续 WAL 归档设计,采用 WAL - G 的守护进程架构,维护持久对象存储连接;针对流式工作负载优化,减少不必要的缓冲和数据复制;与 WAL - G 兼容,使用相同的 `WALG_` 配置变量,可互相读取归档,便于现有部署迁移。

基准测试

为评估 WAL - RUS,构建了可重现的基准测试,在持续的、WAL 密集型 PostgreSQL 工作负载下比较 WAL - RUS、WAL - G 和 pgBackRest。内存使用方面,WAL - G 峰值虚拟内存接近 2.8 GB,WAL - RUS 始终低于 1 GB,减少超 70%,且 WAL - RUS 内存使用稳定,pgBackRest 对内存分配控制严格。WAL 归档吞吐量上,WAL - RUS 和 WAL - G 能跟上工作负载生成速度,pgBackRest 在 WAL 活动高峰期积压较大。CPU 利用率方面,三者相当,主要用于计算 LZ4 压缩。

总结与结论

WAL - RUS 开发旨在以更小、更可预测的资源占用提供可靠的 PostgreSQL 备份和 WAL 归档。结合 Rust 的显式内存管理与守护进程流式架构,在实现与 WAL - G 相当的归档吞吐量时,显著降低内存消耗。WAL - RUS 与现有 WAL - G 归档和配置完全兼容,还支持使用 Postgres 17 的 WAL 摘要进行增量备份,正在努力将此功能上游集成到 WAL - G。未来计划将 WAL - RUS 作为 ClickHouse Cloud 中托管 Postgres 服务的默认备份和 WAL 归档机制,该项目开源,欢迎反馈、测试和贡献。此外,ClickHouse + Postgres 成为可扩展应用程序的统一数据栈,托管 Postgres 服务在 ClickHouse Cloud 可用,可立即注册试用。

http://www.jsqmd.com/news/1087599/

相关文章:

  • ROFLPlayer:英雄联盟回放文件终极查看与分析工具指南
  • AI 具身智能机器人进入家庭的四层技术架构与分阶段落地方案
  • Nginx SSL模块缺失报错解决:从诊断到编译配置全流程
  • Java毕业设计-基于 SpringBoot+Vue 的网络投票管理系统的设计与实现 基于前后端分离的在线投票平台(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 从零搭建轻量级Web UI自动化测试框架:Selenium+TestNG+POM实战指南
  • 瑞萨RH850汽车MCU开发板硬件设计解析:从电源管理到通信接口
  • AI检测太高论文过不了?这4个降AI率软件2026年必须用!
  • 终极解决方案!Visual C++运行库完整安装指南:告别DLL缺失错误
  • Sallen-Key低通滤波器:从比率设计到参数优化实战
  • Python自动化CVE监控:基于NVD API与钉钉/飞书机器人的漏洞预警系统
  • 如何快速上手NBTExplorer:5分钟掌握Minecraft数据编辑终极神器
  • 软考冲刺最后72小时:必须完成的4步机考模拟校准流程(含系统缓存清理+输入法兼容性强制切换)
  • 机器学习模型时间与空间消耗的工程真相
  • 清华源HTTPS证书过期?Miniconda与Pip的SSL验证故障排查与修复指南
  • 高效Python引物设计:Primer3-py实战深度指南
  • kill-doc:三步告别文档下载烦恼,轻松获取海量免费资料
  • 第三视觉理解徐玉生与他的商业活动(40)
  • 跨越鸿沟:从结构化文本(ST)到梯形图(LADDER)的自动化转换实践与陷阱
  • 3个核心策略:掌握OBS背景移除插件的完整解决方案
  • UniApp微信公众号iframe嵌入CSRF错误排查与解决方案
  • 性能测试中并发问题实战:从资源竞争到全链路排查
  • 跨平台资源下载实战:5步掌握res-downloader专业抓取技术
  • 如何轻松制作Linux启动盘:Deepin Boot Maker终极指南
  • 性能测试实战进阶:从JMeter工具使用到系统瓶颈定位与优化
  • 第28篇 预处理详解
  • 单视频多样性生成技术原理与可行性分析
  • 微信小程序审核失败:AppSecret泄漏风险排查与安全架构重构指南
  • GraphCast图神经网络如何重构中短期气象预报范式
  • 大模型部署架构:从推理引擎到弹性扩缩容的工程实践
  • 从坐标系到制导律:导弹运动建模中的关键角度与力