Projekti pgrust Ă«shtĂ« publikuar me implementimin e DBMS PostgreSQL, i shkruar nĂ« gjuhĂ«n Rust duke pĂ«rdorur pĂ«rkthyesin c2rust dhe ndihmĂ«sin AI. ĂshtĂ« deklaruar se projekti ende nuk Ă«shtĂ« i gatshĂ«m pĂ«r t'u pĂ«rdorur nĂ« projekte tĂ« punĂ«s, por tashmĂ« kalon me sukses tĂ« gjitha testet regresive tĂ« PostgreSQL, Ă«shtĂ« i pĂ«rputhshme me formatin e ruajtjes sĂ« tĂ« dhĂ«nave PostgreSQL 18.3 dhe mund tĂ« pĂ«rdorĂ« katalogun e dhĂ«nave nga PostgreSQL 18.3. Kodi i projektit shpĂ«rndahet nĂ«n licensĂ«n AGPLv3, nĂ« ndryshim nga PostgreSQL origjinal, i cili ofrohet nĂ«n njĂ« licensĂ« permissive PostgreSQL, e afĂ«rt me licencat BSD dhe MIT. NjĂ« demonstrim online i mundĂ«sive Ă«shtĂ« i disponueshĂ«m, i bazuar nĂ« njĂ« grumbullim nĂ« WebAssembly, si dhe njĂ« imazh docker pĂ«r njĂ« nisje tĂ« shpejtĂ«.
Si një qëllim të zhvillimit, përmendet arritja e një përputhshmërie të plotë me PostgreSQL 18.3, si dhe realizimi i eksperimentimeve për ndryshimin e strukturës së brendshme dhe krijimin e një versioni PostgreSQL, i liruar nga kufizimet arkitekturore, nga të cilat nuk është e mundur të largohemi për arsye historike. Projekti kalon me sukses një set më shumë se 46,000 teste regresive të PostgreSQL, por për momentin është i papërputhshëm me shtesa të PostgreSQL, nuk ofron optimizimet e dëshiruara të performancës dhe nuk realizon plotësisht gjuhët procedurale PL/Python, PL/Perl dhe PL/Tcl.
Planet për të ardhmen:
- Kthimi në një arkitekturë të brendshme me shumë skeda.
- Implementimi i pool-it të lidhjeve.
- Optimalizimi për proceset që përdorin intensivisht JSON.
- Mundësia e krijimit të kopjeve dhe degëve të elementeve të DB në modin Copy-on-Write pa kopjimin e të dhënave.
- Eksperimentet me një arkitekturë që nuk kërkon kryerjen e operacionit VACUUM.
- Sistemi i kufizimeve të SQL-query-t, që lejon bllokimin e konsumit të tepërt të burimeve gjatë ekzekutimit të queries me cilësi të ulët.
- Mbrojtja nga kalimi i optimizuesit në planet e ekzekutimit të queries më pak efektive.
Sipas autorit të projektit, aktualisht po punohet për versionin e ardhshëm të pgrust, në të cilin modelin e zhvillimit të punëtorive e zëvendëson një model shumëthithës për trajtimin e lidhjeve, si dhe janë implementuar optimizime të tjera, si përpunimi me grupe të rreshtave në tabela dhe ngarkimi parashikues i të dhënave. Gjatë testimit me mjetin percona-tpcc për trajtime të transaksioneve, versioni i ri i pgrust ishte 50% më i shpejtë se PostgreSQL i zakonshëm, ndërsa për trajtimin e kërkesave analitike ishte 300 herë më i shpejtë.
Gjatë përkthimit në Rust, është përdorur një qasje hibride, në të cilën kodi i PostgreSQL fillimisht u përpunua me ndihmën e përkthyesit c2rust, i cili gjeneron një përfaqësim unsafe të Rust-it, të ngjashëm me strukturën e kodit origjinal në C. Pas përpunimit në c2rust, u krijuan rreth 1000 crate-pakete, të cilat u përkthyen paralelisht në Rust-in idiomatik me ndihmën e modelit AI Claude dhe mjeteve të Conductor për shpërndarjen e detyrave midis sub-agjentëve që punonin njëkohësisht.
Burimi: opennet.ru
