ĂshtĂ« publikuar projekti pgrust me implementimin e DBMS PostgreSQL, i rishkruar nĂ« gjuhĂ«n Rust duke pĂ«rdorur pĂ«rkthyesin c2rust dhe asistentin AI. ĂshtĂ« njoftuar se projekti ende nuk Ă«shtĂ« gati 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Ă«rshtatshĂ«m me formatin e ruajtjes sĂ« tĂ« dhĂ«nave PostgreSQL 18.3 dhe mund tĂ« pĂ«rdorĂ« katalogĂ«t e dhĂ«nash nga PostgreSQL 18.3. Kodi i projektit shpĂ«rndahet nĂ«n licencĂ«n AGPLv3, ndryshe nga PostgreSQL origjinal, i cili ofrohet nĂ«n licencĂ«n permissive tĂ« PostgreSQL, e cila Ă«shtĂ« e ngjashme me licencat BSD dhe MIT. ĂshtĂ« e disponueshme njĂ« demo online e mundĂ«sive, e bazuar nĂ« ndĂ«rtimin nĂ« WebAssembly, si dhe njĂ« imazh docker pĂ«r njĂ« fillim tĂ« shpejtĂ«.
Qëllimi i zhvillimit përmend arritjen e përshtatshmërisë së plotë me PostgreSQL 18.3, si dhe kryerjen e eksperimentëve për të ndryshuar strukturën e brendshme dhe krijimin e një versioni PostgreSQL, i cili është i liruar nga kufizimet arkitekturore që nuk mund të hiqen për shkak të arsyjeve historike. Projekti po kalon me sukses një testim të gjerë me më shumë se 46 mijë teste regresioni të PostgreSQL, por deri më tani është i papërshtatshëm me shtesat e PostgreSQL, nuk ofron optimizimet e dëshiruara të performancës dhe nuk e implementon plotësisht gjuhët procedurale PL/Python, PL/Perl dhe PL/Tcl.
Planet për të ardhmen:
- Kalim në një arkitekturë të brendshme me shumë nivele.
- Implementimi i pooling-ut të lidhjeve.
- Optimizimi për proceset që përdorin aktivisht JSON.
- Mundësia për të krijuar kopje dhe degëzime të elementeve të DB në modin Copy-on-Write pa kopjuar të dhënat.
- Eksperimentet me një arkitekturë që nuk kërkon ekzekutimin e veprimit VACUUM.
- Një sistem kufizimesh për kërkesat SQL, që lejon bllokimin e konsumit të tepruar të burimeve gjatë ekzekutimit të kërkesave jo të mirë.
- Mbrojtja nga kalimi i optimizuesit në planet më pak efektive për ekzekutimin e kërkesave.
Sipas autorit tĂ« projektit, aktualisht po punohet pĂ«r versionin e ardhshĂ«m tĂ« pgrust, nĂ« tĂ« cilin nĂ« vend tĂ« grupit tĂ« proceseve Ă«shtĂ« implementuar njĂ« model shumĂ«thithĂ«s pĂ«r pĂ«rpunimin e lidhjeve, si dhe janĂ« angazhuar optimizime tĂ« tjera, si pĂ«rpunimi nĂ« grupe i rreshtave nĂ« tabela dhe ngarkimi i parashikueshĂ«m i tĂ« dhĂ«nave. GjatĂ« testimit me mjetin percona-tpcc pĂ«r pĂ«rpunimin e transaksioneve, versiuni i ri i pgrust rezultoi mĂ« i shpejtĂ« se PostgreSQL standard me 50%, dhe pĂ«r pĂ«rpunimin e kĂ«rkesave analitike â 300 herĂ« mĂ« shpejt.
Kur u transferua në Rust, u përdor një qasje hibridë, ku kodi i PostgreSQL fillimisht u përpunua me ndihmën e transpilerit c2rust, që gjeneron një përfaqësim të unsafe në Rust, të ngjashëm në strukturë me kodin origjinal në C. Pas përpunimit në c2rust, u krijuan rreth 1000 crate-paketime, të cilat u përkthyen paralelisht në Rust idiomatik me ndihmën e modelit AI Claude dhe mjetit Conductor për shpërndarjen e detyrave midis subagjenteve që ekzekutoheshin njëkohësisht.
Burimi: opennet.ru
