pgrust — clone do PostgreSQL em Rust, passando por todos os testes de regressão

O projeto pgrust foi publicado, implementando o SGBD PostgreSQL reescrito na linguagem Rust, utilizando o tradutor c2rust e um assistente de IA. É declarado que o projeto ainda não está pronto para uso em projetos de produção, mas já passa com sucesso em todos os testes de regressão do PostgreSQL, é compatível com o formato de armazenamento de dados do PostgreSQL 18.3 e pode usar o catálogo de dados do PostgreSQL 18.3. O código do projeto é distribuído sob a licença AGPLv3, ao contrário do original PostgreSQL, que é fornecido sob uma licença permissiva semelhante às licenças BSD e MIT. Uma demonstração online das funcionalidades, baseada em uma compilação em WebAssembly, bem como uma imagem docker para um rápido início, estão disponíveis.

O objetivo do desenvolvimento mencionado é alcançar total compatibilidade com o PostgreSQL 18.3, além de realizar experimentos para alterar a arquitetura interna e criar uma versão do PostgreSQL que se livre de limitações arquitetônicas impossíveis de evitar por razões históricas. O projeto passa com sucesso em um conjunto de mais de 46 mil testes de regressão do PostgreSQL, mas ainda é incompatível com extensões do PostgreSQL, não fornece as otimizações de desempenho desejadas e não implementa completamente os idiomas de programação PL/Python, PL/Perl e PL/Tcl.

Planos para o futuro:

  • Migração para uma arquitetura interna multithread.
  • Implementação de pooling de conexões.
  • Otimização para processos de trabalho que utilizam intensivamente JSON.
  • Capacidade de criar cópias e ramificações de elementos do banco de dados no modo Copy-on-Write sem cópia de dados.
  • Experimentos com uma arquitetura que não requer a execução da operação VACUUM.
  • Sistema de restrições de consultas SQL que permite bloquear o consumo excessivo de recursos ao executar consultas de baixa qualidade.
  • Proteção contra a mudança do otimizador para planos de execução de consultas menos eficientes.

De acordo com o autor do projeto, atualmente está em desenvolvimento a próxima versão do pgrust, na qual, em vez do pool de processos de trabalho, será implementado um modelo multithread de processamento de conexões e serão implementadas otimizações adicionais, como o processamento em lote de linhas em tabelas e o pré-carregamento de dados. Nos testes com a ferramenta percona-tpcc para processamento de transações, a nova versão do pgrust se mostrou 50% mais rápida que o PostgreSQL padrão, e em processamento de consultas analíticas — 300 vezes mais rápida.

Na tradução para Rust, foi utilizado um approach híbrido, onde o código do PostgreSQL foi inicialmente processado com a ajuda do tradutor c2rust, que gera uma representação unsafe em Rust, semelhante em estrutura ao código original em C. Após o processamento com o c2rust, cerca de 1000 pacotes crate foram criados, que foram simultaneamente traduzidos para um Rust idiomático com a ajuda do modelo de IA Claude e da ferramenta Conductor para distribuir tarefas entre subagentes executados ao mesmo tempo.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster