Postgres reescrito em Rust, agora passando 100% dos testes de regressão do Postgres
IA vs. Reescritas “Reais”
- Muitos querem uma distinção clara entre reescritas conduzidas por IA e reescritas humanas; outros argumentam que qualidade e verificação importam mais do que a autoria.
- Alguns veem “reescrever em Rust usando LLMs” como um projeto meme ou de vibe, muitas vezes feito rapidamente por uma única pessoa sem um plano de manutenção de longo prazo.
- Outros veem isso como uma importante prova de conceito mostrando o quão baratos os portos de linguagem em larga escala se tornaram, potencialmente permitindo modernização (por exemplo, sistemas da era COBOL).
Testes, Confiabilidade e “Cicatrizes de Produção”
- Passar em 100% dos testes de regressão do Postgres é considerado impressionante, mas muitos enfatizam que isso só prova a ausência de regressões conhecidas.
- Preocupações recorrentes:
- A confiabilidade real vem de anos de incidentes em produção e “cicatrizes”, não apenas de testes.
- Os testes não cobrem todos os caminhos de sucesso, casos extremos de concorrência ou cantos de desempenho.
- É possível ajustar demais para os testes, especialmente para LLMs.
- Alguns sugerem testes diferenciais (executar ambos os bancos e comparar saídas), testes baseados em propriedades, fuzzing, testes no estilo Jepsen e mineração de relatórios de bugs para criar novos testes.
Rust, Segurança de Memória e Desempenho
- Defensores: o modelo de segurança do Rust e uma arquitetura de uma thread por conexão poderiam simplificar os internals, reduzir a complexidade da memória compartilhada e desbloquear melhor paralelismo.
- Críticos: existem milhares de usos de
unsafe(especialmente no parser), então muitos riscos no estilo C continuam; alguns perguntam “por que Rust afinal” se ele é tão inseguro. - Alegações do autor do projeto:
- A versão publicada atual é cerca de 8× mais lenta que o Postgres.
- Uma nova versão, ainda não lançada, é cerca de 50% mais rápida em cargas transacionais e cerca de 300× mais rápida em cargas analíticas, com armazenamento colunar e execução em lotes, cerca de 2× mais lenta que o ClickHouse no clickbench.
Licenciamento e Legalidade
- O port é AGPL; alguns não gostam da mudança de uma licença permissiva do Postgres para copyleft.
- Há debate sobre se traduções geradas por LLM são obras derivadas, obras novas ou até mesmo protegíveis por copyright; o consenso no tópico é que é “juridicamente nebuloso”, mas o upstream permissivo provavelmente permite um empacotamento mais restritivo.
Manutenção, Confiança e Uso em Produção
- Muitos veem isso como um experimento interessante ou ferramenta de aprendizado, não algo para rodar em produção “por anos” ainda.
- Preocupações com:
- Ônus de pessoa única.
- Revisabilidade de milhares de commits gerados por IA.
- Comunidade de longo prazo, ecossistema de extensões e upgrades compatíveis com versões anteriores.
- Alguns propõem um uso positivo: executar essas reescritas contra cargas reais para descobrir testes ausentes e devolver melhorias ao Postgres upstream.