概要

ClickHouseは2026年6月、Goで実装されたPostgreSQLバックアップツール「WAL-G」をRustで全面的に書き直した「WAL-RUS」をオープンソースとして公開した。最大の動機はGoのガベージコレクション(GC)に起因する仮想メモリ使用量の予測困難性にある。複数のサービスが共存するDBaaS環境では、各プロセスのメモリ挙動の予測可能性が運用上の重要な要件となっており、Rustへの移行によってその課題を解決した。

互換性については徹底的に維持されており、既存のWAL-Gアーカイブを双方向で読み書きできることが確認済みだ。設定変数もWALG_プレフィックスをそのまま流用できるため、既存の運用手順を変更せずにWAL-RUSへ移行できる。

技術的な詳細

主な改善点はメモリ効率にある。ベンチマークでは、WAL-Gのピーク仮想メモリが2.8GBだったのに対し、WAL-RUSは1GB未満に抑えられており、70%以上の削減を達成している。この差はGoランタイムが大きな仮想アリーナをあらかじめ確保する挙動に起因しており、Hacker Newsでも「実際のRSS(常駐セットサイズ)は仮想メモリのごく一部にすぎない」という技術的な指摘が交わされた。

アーキテクチャ面では、デーモン型設計を採用してプロセスの再起動を回避し、オブジェクトストレージへの永続接続を維持する。また、境界付きのワーカープールと制御された並行処理を組み合わせることで不要なバッファリングを排除し、ストリーミング処理を最適化している。CPU使用率やWAL処理スループットはWAL-Gと同等水準を維持しており、メモリ削減と引き換えにパフォーマンスが劣化することはない。

今後の展開

ClickHouseはWAL-RUSを自社のManaged PostgreSQLサービスにおける標準バックアップツールとして採用する計画を明らかにしている。また、PostgreSQL 17で導入された増分バックアップ機能への対応も予定しており、WAL-Gへの機能還元も進める方針だ。WAL-E(Python)→WAL-G(Go)→WAL-RUS(Rust)という進化の流れはHacker News上でも注目を集め、「マージンの最適化を追求する段階への移行」として評価されている。