pgrust, un proyecto que reimplementa Postgres en Rust, publicó la versión 0.2 con mejoras de rendimiento sustanciales: es 10 veces más rápido que su versión anterior, supera a Postgres en un 30 % en pruebas OLTP y, según el benchmark Clickbench de ClickHouse, es 300 veces más rápido que Postgres en consultas analíticas, situándose por delante incluso de ClickHouse. El motor de consultas aporta por sí solo aproximadamente 10x de esa mejora total.
El artículo contextualiza el porqué: Postgres se diseñó en los años 80, cuando el cuello de botella era el acceso a disco. Hoy, con conjuntos de datos que caben en RAM, discos NVMe mucho más rápidos y cargas analíticas que escanean datos en bloque, los límites reales son la CPU y el ancho de banda de memoria. El motor de consultas es el principal consumidor de CPU, por lo que optimizarlo es clave.
Para ilustrarlo, el autor compara una consulta sencilla (sumar 500 millones de números) ejecutada en Postgres (~20 s en una instancia c8g.4xl), en un bucle Rust equivalente (358 ms) y en una miniatura del motor Postgres estilo Volcano (1,3 s). La primera optimización, el procesamiento por lotes de 1024 filas en lugar de tupla a tupla, reduce ese tiempo a unos 480 ms al eliminar la mayor parte de la sobrecarga y permitir el pipelining de la CPU. El texto continúa describiendo las ideas clave —batching con buffers en pila, fusión de operadores y SIMD— que componen la arquitectura del nuevo motor y explica paso a paso cómo se construye una versión simplificada de los nodos de plan SeqScan y SumAggregate en Rust.
