Avalikustatud projekt pgrust, mis rakendab PostgreSQL andmebaasi, kirjutatud Rust keeles, kasutades c2rust tõlkijat ja AI-assistenti. Projekt ei ole veel töös kasutamiseks valmis, kuid on edukalt läbinud kõik PostgreSQL tagasiasteteste, on ühilduv PostgreSQL 18.3 andmehoidmise formaadiga ning võib kasutada PostgreSQL 18.3 andme katalooge. Projekti kood on litsentseeritud AGPLv3 alusel, erinevalt originaalsest PostgreSQL-st, mis on litsentseeritud PostgreSQL lubava litsentsiga, mis sarnaneb BSD ja MIT litsentsidega. Saadaval on veebipõhine demoversioon, mis põhineb WebAssembly kogumil, samuti Docker-pilt kiireks käivitamiseks.
Arenduse eesmärgiks on saavutada täielik ühilduvus PostgreSQL 18.3-ga ning läbi viia eksperimente sisemise struktuuri muutmiseks ja PostgreSQL versiooni loomiseks, mis ei kanna endas ajalooliste põhjuste tõttu tekkivaid arhitektuurilisi piiranguid. Projekt läbib edukalt üle 46 000 PostgreSQL regressioonikatse, kuid on hetkel täiesti ühilduv PostgreSQL laienditega, ei paku soovitud jõudluse optimeerimist ja ei rakenda täielikult protseduurilisi keeli PL/Python, PL/Perl ja PL/Tcl.
Tulevikuplaane:
- Üleminek mitme sisemise arhitektuuri kasutamisele.
- Ühenduste ulatus.
- Optimeerimine töövoogudele, mis kasutavad sageli JSON-i.
- DB elementide koopiate ja harude loomise võimalus Copy-on-Write režiimis andmete kopeerimata jätmisega.
- Eksperimenteerimine arhitektuuriga, mis ei nõua VACUUM operatsiooni teostamist.
- SQL-päringute piirangusüsteem, mis takistab üleliigsete ressursside kasutamist kehva kvaliteediga päringute täitmisel.
- Kaitse optimeerimise vahetuse eest vähem efektiivsete päringu täitmisplaanide vastu.
Projekti autori sõnul töötatakse praegu järgmise pgrust versiooniga, kus tööprotsesside bassein on asendatud mitme lõime mudeliga ühenduste töötlemiseks, samuti on rakendatud täiendavaid optimeerimisi, nagu ridade partii töötlemine tabelites ja andmete ettemine. Percona-tpcc testimise käigus, tehes tehingute töötlemist, osutus uus pgrust versioon 50% kiiremaks kui tavapärane PostgreSQL ning analüüsiküsimuste töötlemisel lausa 300 korda kiirem.
Rustile üleminekul kasutati hübriidset lähenemist, mille käigus PostgreSQL kood töötati esmalt ülesse transformeerija c2rust abiga, genereerides Rusti unsafe-esituse, mis on oma struktuurilt sarnane originaalsele C koodile. c2rust töötlemise käigus loodi umbes 1000 crate-paketti, mis tõlgiti samal ajal idiomaatiliseks Rustiks AI mudeli Claude ja Conductor tööriista abil, et jagada ülesandeid samaaegselt töötavatele subagentidele.
Allikas: opennet.ru
