Postgres reescrito em Rust aprova 100% dos testes de regressão do Postgres
Reescrever um dos pilares da infraestrutura tecnológica, como o PostgreSQL, parece uma tarefa hercúlea. Afinal, estamos falando de um banco de dados relacional robusto e maduro, que alimenta inúmeras aplicações críticas mundo afora. Mas é exatamente isso que o projeto pgrust se propõe a fazer: reescrever o Postgres em Rust, com um objetivo ambicioso que vai muito além de apenas replicar funcionalidades. E a notícia mais recente? Eles acabaram de alcançar um marco impressionante: a nova versão do pgrust passa em 100% dos testes de regressão do próprio Postgres. Isso não é pouca coisa.
O pgrust: Um Postgres em Rust, Compatível e Ambicioso
O projeto pgrust nasceu com uma premissa clara: manter a compatibilidade com o comportamento do Postgres e usar os testes de regressão do próprio Postgres como "oráculo" para garantir que o output seja idêntico. A versão que está sendo desenvolvida atualmente já atinge a compatibilidade com o Postgres 18.3 e, de forma notável, consegue inicializar a partir de um diretório de dados existente do Postgres 18.3 – ou seja, é disk compatible. Para qualquer um que já trabalhou com migrações ou compatibilidade de sistemas, sabe que isso é um feito técnico considerável.
A grande questão é: por que reescrever um banco de dados tão estabelecido? A resposta está na busca por tornar o Postgres "mais fácil de ser modificado internamente". A ideia é usar a segurança e a performance do Rust, combinadas com programação assistida por IA, para explorar mudanças mais profundas na arquitetura do servidor que seriam difíceis ou arriscadas no código original, escrito predominantemente em C.
Rust, para quem não está familiarizado, é uma linguagem de programação conhecida por sua segurança de memória e performance, qualidades que a tornam ideal para sistemas de baixo nível onde a estabilidade é crítica. Ao reescrever o Postgres em Rust, o pgrust busca herdar essas vantagens, abrindo caminho para inovações que poderiam ser limitadas pela arquitetura atual.
Além da Compatibilidade: Visão e Performance Futuras
Atingir 100% de compatibilidade nos testes de regressão é um ponto de partida, não o destino final. A equipe do pgrust já está trabalhando em uma nova versão (ainda não publicada) que promete ir muito além:
- Modelo de Conexão: Em vez do tradicional modelo "processo por conexão" (que pode ser pesado para muitos acessos), o pgrust adota um modelo "thread por conexão", que é mais leve e eficiente para gerenciar múltiplas requisições simultâneas.
- Performance Incrível: Os benchmarks iniciais dessa nova versão são impressionantes. O pgrust se mostra 50% mais rápido que o Postgres em cargas de trabalho transacionais (operações de leitura/escrita rápidas e frequentes, como as de um e-commerce) e cerca de 300 vezes mais rápido em cargas de trabalho analíticas (consultas complexas para relatórios e análise de dados). Embora ainda seja 2 vezes mais lento que o Clickhouse (um banco de dados otimizado para analytics) em alguns testes, a equipe acredita que pode superá-lo.
É crucial notar que o pgrust ainda não está pronto para produção e ainda não foi otimizado para performance em todos os aspectos. No entanto, os números iniciais são um vislumbre do potencial.
Entre as inovações arquitetônicas e recursos planejados para o futuro, destacam-se:
- Internals Multithreaded: Um núcleo do Postgres totalmente multithreaded para melhor aproveitamento de recursos.
- Built-in Connection Pooling: Pool de conexões integrado, o que significa que o banco de dados pode reutilizar conexões existentes em vez de criar novas a cada requisição, melhorando a eficiência e reduzindo a latência.
- Melhor Suporte a JSON: Otimizações para lidar com cargas de trabalho intensivas em JSON, um formato de dados muito comum em aplicações modernas.
- Workflows de Forking e Branching Rápidos: Capacidade de criar "cópias" instantâneas de bases de dados para desenvolvimento ou testes, agilizando o ciclo de vida do software.
- Experimentos de Armazenamento: Incluindo designs "no-vacuum", que visam eliminar a necessidade da operação
VACUUMdo Postgres, que pode ser um gargalo de performance. - Guardrails em Tempo de Execução: Mecanismos de proteção para identificar e limitar o impacto de consultas ruins ou geradas por IA, prevenindo problemas de performance ou segurança.
- Menos Mudanças Inesperadas de Plano: Redução da ocorrência de "bad plan switches", onde o otimizador de consultas escolhe um plano de execução ineficiente.
É importante mencionar que extensões existentes do Postgres, como PL/Python ou PL/Perl, ainda não são compatíveis, embora a compatibilidade possa aumentar com o tempo para alguns módulos.
Por Que Isso Importa Para Você
Para desenvolvedores, arquitetos e líderes técnicos, o pgrust é mais do que um projeto interessante; é uma demonstração do que é possível quando se repensa a infraestrutura fundamental com novas ferramentas. Mesmo que o pgrust não substitua o Postgres em todos os lugares, as inovações que ele está explorando – desde a arquitetura de concorrência até os experimentos de armazenamento e a integração de IA – podem influenciar o futuro dos bancos de dados relacionais.
Ele nos lembra que, mesmo em software maduro e amplamente adotado, há sempre espaço para inovação radical. A busca por um Postgres mais fácil de evoluir, mais performático e mais resiliente, construído sobre uma base moderna como Rust, é um farol para o que podemos esperar da próxima geração de ferramentas de dados. Fique de olho, pois as lições e as tecnologias emergentes deste projeto podem, em breve, impactar a forma como construímos e escalamos nossas aplicações.
Fontes
📬 Gostou? Assine a newsletter do Vaccari's Code e receba as próximas tendências em software e IA direto no seu e-mail: Assinar aqui