Postgresバックアップ用にWAL-GをRustで書き直しました:WAL-RUSのご紹介
ClickHouseがPostgreSQLのバックアップツール「WAL-G」をRustでフルスクラッチし、新たに「WAL-RUS」として公開。WAL-Gの信頼性と柔軟性を継承しつつ、Rustのメモリ安全性とパフォーマンスを活用して高速なバックアップ・リストアを実現。分散環境での運用効率向上と、よりシンプルなコードベースによる保守性の改善を目指している。
背景メモ
- **WAL-G** は PostgreSQL のバックアップ/リストアツール。WAL(Write-Ahead Log)のアーカイブ機能を使い、増分バックアップやポイントインタイムリカバリ(PITR)を実現する。Go で書かれていたが、本書では Rust 版にフル書き換えした **WAL-RUS** を発表している。
- **ClickHouse**(開発元同名)はリアルタイム分析向けの列指向データベース。ただし本プロジェクトは PostgreSQL 用ツールであり、ClickHouse 本体とは独立した周辺ツールの話。
- 書き換えの理由:Go 版が抱えていたメモリ管理やエラーハンドリングの複雑さを、Rust の所有権システムと型安全性で整理。パフォーマンス面でも、特に大規模な増分バックアップでのスループット向上を狙う。
- Postgres のバックアップは本番運用の根幹。S3 や GCS などのクラウドストレージへの直接書き出しに対応し、WAL の継続的アーカイブによる復旧時間の短縮を重視。
- まだプロダクション成熟度には達していないが、Rust 製 DB ツールの増加トレンド(pgrx, pgvector の一部など)に沿う位置づけ。