pgrust — un clone di PostgreSQL in Rust, che supera tutti i test di regressione.

È stato pubblicato il progetto pgrust con l'implementazione del database PostgreSQL, riscritto in Rust utilizzando il traslatore c2rust e un assistente AI. Si segnala che il progetto non è ancora pronto per l'uso in progetti produttivi, ma supera già tutti i test di regressione di PostgreSQL, è compatibile con il formato di archiviazione dati di PostgreSQL 18.3 e può utilizzare il data catalog di PostgreSQL 18.3. Il codice del progetto è distribuito sotto licenza AGPLv3, a differenza del PostgreSQL originale, fornito sotto una licenza permissiva simile alle licenze BSD e MIT. È disponibile una dimostrazione online delle funzionalità, basata su una build in WebAssembly, oltre a un'immagine Docker per un avvio rapido.

L'obiettivo dello sviluppo è raggiungere la piena compatibilità con PostgreSQL 18.3, oltre a condurre esperimenti per modificare l'architettura interna e creare una versione di PostgreSQL priva di vincoli architettonici che non possono essere superati per motivi storici. Il progetto sta superando con successo un set di oltre 46.000 test di regressione di PostgreSQL, ma al momento è incompatibile con le estensioni di PostgreSQL, non fornisce le ottimizzazioni di prestazione desiderate e non implementa completamente i linguaggi procedurali PL/Python, PL/Perl e PL/Tcl.

Piani futuri:

  • Traduzione in un'architettura interna multithread.
  • Implementazione del pooling delle connessioni.
  • Ottimizzazione per i workflow che utilizzano attivamente JSON.
  • Possibilità di creare copie e ramificazioni di elementi del database in modalità Copy-on-Write senza copiare i dati.
  • Esperimenti con un'architettura che non richiede l'operazione VACUUM.
  • Sistema di restrizioni delle query SQL che consente di bloccare il consumo eccessivo di risorse durante l'esecuzione di query di scarsa qualità.
  • Protezione contro il passaggio dell'ottimizzatore a piani di esecuzione delle query meno efficienti.

Secondo l'autore del progetto, attualmente si sta lavorando alla prossima versione di pgrust, in cui è stata implementata un modello di elaborazione delle connessioni multithread invece di un pool di processi, insieme ad ulteriori ottimizzazioni come l'elaborazione in batch delle righe nelle tabelle e il caricamento preventivo dei dati. Durante i test con lo strumento percona-tpcc, la nuova versione di pgrust ha dimostrato di essere più veloce del 50% rispetto a PostgreSQL standard nel trattamento delle transazioni e di essere 300 volte più veloce nell'elaborazione delle query analitiche.

Durante la traduzione in Rust è stato adottato un approccio ibrido, in cui il codice di PostgreSQL è stato inizialmente elaborato tramite il traduttore c2rust, che genera una rappresentazione unsafe di Rust, simile nella sua struttura al codice originale in C. Dopo l'elaborazione in c2rust, sono stati creati circa 1000 pacchetti crate, che sono stati tradotti parallelamente in idiomatic Rust grazie al modello AI Claude e allo strumento Conductor per la distribuzione delle attività tra subagenti avviati contemporaneamente.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster