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.