Avalikustatud on projekt pgrust, mis rakendab PostgreSQL andmebaasihaldurit, kirjutatud Rust keeles koos c2rust tõlkeprogrammi ja AI-assistendiga. Teadaanne ütleb, et projekt ei ole veel valmis töösse rakendamiseks, kuid on edukalt läbinud kõik PostgreSQL regressioonitestid, on ühilduv PostgreSQL 18.3 andmete salvestamise formaadiga ja suudab kasutada PostgreSQL 18.3 andmekatalooge. Projekti kood on saadaval AGPLv3 litsentsi all, erinevalt originaalist PostgreSQL, mis on välja antud PostgreSQLi lubava litsentsi all, mis sarnaneb BSD ja MIT litsentsidega. Saadaval on veebipõhine demonstreerimine, mis põhineb WebAssembly kogumisel, samuti docker-pilt kiireks käivitamiseks.
Arenduse eesmärgiks on saavutada täielik ühilduvus PostgreSQL 18.3-ga, samuti katsetada sisemise struktuuri muutmist ja luua PostgreSQL versioon, mis on vabastatud ajaloolistest arhitektuurilistest piirangutest. Projekt on edukalt läbinud enam kui 46 000 PostgreSQL regressioonitesti, kuid pole veel ühilduv PostgreSQL laiendustega, ei paku soovitud jõudlusoptimeerimisi ning ei targa täielikult protseduurilisi keeli PL/Python, PL/Perl ja PL/Tcl.
Tulevikuplaanid:
- Üleminek mitme lõime sisemisele arhitektuurile.
- Ühenduste ühendamise rakendamine.
- Optimeerimine töövoogude jaoks, mis kasutavad intensiivselt JSON-i.
- Võime luua koopiaid ja alamsüsteeme andmebaasi elementidest Copy-on-Write režiimis, andmeid kopeerimata.
- Katsetused arhitektuuriga, mis ei nõua VACUUM operatsiooni täitmist.
- SQL-päringute piirangusüsteem, mis võimaldab blokeerida liialdatud ressursikasutust halva kvaliteediga päringute täitmisel.
- Kaitse optimeerija vahetamise eest vähem efektiivseteks päringute täitmise plaanideks.
Projekti autori sõnul töötatakse praegu järgmise pgrust versiooni kallal, mis rakendab mitme lõime ühenduste töötlemise mudelit ning hõlmab täiendavaid optimeerimisi, nagu tabelite ridade pakettide töötlemine ja andmete ennetav laadimine. Testimisel percona-tpcc tööriistaga, uusi pgrust versioon osutus 50% kiiremaks tehasest PostgreSQL-ist tehingute töötlemisel ja 300 korda kiiremaks analüütiliste päringute töötlemisel.
Rusti tõlkimisel kasutati hübriidset lähenemist, kus PostgreSQL kood töödeldi alguses c2rust tõlkijaga, mis genereeris unsafe Rusti esitusviisi, mis on oma struktuurilt sarnane algsele C-koodile. c2rust töötlemise käigus loodi ligikaudu 1000 crate-paketti, mida tõlgiti samaaegselt idiomaatiliseks Rustiks AI mudeli Claude ja tööriista Conductor abil, mis jagas ülesandeid samaaegselt töötavate sub-agentide vahel.
Allikas: opennet.ru
