ClickHouse reescribe en Rust el archivado de WAL de Postgres: nace WAL-RUS

Fuentes: Why we rewrote WAL-G for Postgres backups in Rust: Meet WAL-RUS

ClickHouse ha presentado WAL-RUS, una reimplementación en Rust de la herramienta de copia de seguridad y archivado de WAL para Postgres pensada para reducir el consumo de memoria y hacerlo más predecible. El proyecto, publicado como código abierto en GitHub, mantiene la compatibilidad con WAL-G: utiliza las mismas variables de configuración WALG_ y puede leer y generar archivos compatibles con los de WAL-G, lo que facilita la migración.

El problema que motiva el proyecto es la dificultad de prever el uso de memoria en procesos长时间 escritos en Go, cuyo recolector de basura reserva más memoria virtual de la que realmente utiliza y genera un patrón de consumo en dientes de sierra. En entornos con recursos ajustados, esa imprevisibilidad obliga a reservar memoria adicional para la infraestructura de copias de seguridad, en detrimento de Postgres. En pruebas comparativas con WAL-G y pgBackRest bajo una carga continua y elevada de WAL, WAL-G alcanzó un pico cercano a 2,8 GB de memoria virtual, mientras que WAL-RUS se mantuvo por debajo de 1 GB, una reducción superior al 70%. En throughput, WAL-RUS y WAL-G mantuvieron el backlog mínimo; pgBackRest acumuló mayor retraso en picos de actividad.

WAL-RUS emplea pools de trabajadores acotados, conexiones persistentes con el almacenamiento de objetos y un pipeline de streaming que minimiza el buffering. También incorpora soporte para los resúmenes de WAL de Postgres 17, una mejora que ClickHouse trabaja para llevar upstream a WAL-G. La compañía planea convertirlo en el mecanismo de copia de seguridad por defecto de su servicio gestionado de Postgres en ClickHouse Cloud.