Postgres reescrito en Rust, ahora pasando el 100% de las pruebas de regresión de Postgres
IA vs. “Reescrituras” “Reales”
- Muchos quieren una distinción clara entre las reescrituras impulsadas por IA y las reescrituras hechas por humanos; otros sostienen que la calidad y la verificación importan más que la autoría.
- Algunos ven “reescribir en Rust usando LLMs” como un proyecto meme o de moda, a menudo hecho rápidamente por una sola persona sin un plan de mantenimiento a largo plazo.
- Otros lo ven como una prueba de concepto importante que muestra lo baratas que se han vuelto las portabilidades de lenguajes a gran escala, lo que potencialmente permite modernización (por ejemplo, sistemas de la era COBOL).
Pruebas, fiabilidad y “cicatrices de producción”
- Superar el 100% de las pruebas de regresión de Postgres se considera impresionante, pero muchos enfatizan que esto solo demuestra la ausencia de regresiones conocidas.
- Preocupan repetidamente:
- La fiabilidad real proviene de años de incidencias en producción y “tejido cicatricial”, no solo de pruebas.
- Las pruebas no cubren todos los caminos de éxito, los casos límite de concurrencia ni las esquinas de rendimiento.
- Es posible sobreajustarse a las pruebas, especialmente para los LLMs.
- Algunos sugieren pruebas diferenciales (ejecutar ambas bases de datos y comparar salidas), pruebas basadas en propiedades, fuzzing, pruebas al estilo Jepsen y convertir informes de errores en nuevas pruebas.
Rust, seguridad de memoria y rendimiento
- Quienes lo apoyan: el modelo de seguridad de Rust y una arquitectura de un hilo por conexión podrían simplificar los internos, reducir la complejidad de la memoria compartida y desbloquear un mejor paralelismo.
- Críticos: hay miles de usos de
unsafe(especialmente en el parser), así que muchos riesgos al estilo C siguen presentes; algunos preguntan “¿por qué Rust en absoluto” si es tan inseguro. - Afirmaciones del autor del proyecto:
- La versión publicada actual es ~8× más lenta que Postgres.
- Una nueva versión no publicada es ~50% más rápida en cargas transaccionales y ~300× más rápida en cargas analíticas, con almacenamiento columnar y ejecución por lotes, ~2× más lenta que ClickHouse en clickbench.
Licencias y legalidad
- La portabilidad es AGPL; a algunos no les gusta pasar de una licencia permisiva de Postgres a copyleft.
- Debate sobre si las traducciones generadas por LLM son obras derivadas, obras nuevas o incluso protegibles por derechos de autor; el consenso en el hilo es “jurídicamente ambiguo”, pero el upstream permisivo probablemente permite capas más restrictivas.
Mantenimiento, confianza y uso en producción
- Muchos lo ven como un experimento interesante o una herramienta de aprendizaje, no como algo para ejecutar en producción “durante años” todavía.
- Preocupaciones sobre:
- El factor bus de un solo autor.
- La revisabilidad de miles de commits generados por IA.
- La comunidad a largo plazo, el ecosistema de extensiones y las actualizaciones compatibles hacia atrás.
- Algunos proponen un uso positivo: ejecutar estas reescrituras contra cargas de trabajo reales para descubrir pruebas faltantes y retroalimentar mejoras a Postgres upstream.