pgrust — klon PostgreSQL na Rust, ki gre skozi vse regresijske teste

Objavljen je projekt pgrust koji implementira PostgreSQL DBMS, ponovno napisan na jeziku Rust uz pomoć prevoditelja c2rust i AI asistenta. Izvješćeno je da projekt još nije spreman za korištenje u radnim projektima, ali već uspješno prolazi sve regresijske testove PostgreSQL, kompatibilan je s formatom pohrane podataka PostgreSQL 18.3 i može koristiti data-katalog iz PostgreSQL 18.3. Kod projekta se distribuira pod AGPLv3 licencom, za razliku od originalnog PostgreSQL-a koji dolazi pod permisivnom PostgreSQL licencom, sličnom BSD i MIT licencama. Dostupna je online demonstracija mogućnosti, temeljena na gradnji u WebAssembly, kao i docker slika za brzo pokretanje.

Kao cilj razvoja spominje se postizanje potpune kompatibilnosti s PostgreSQL 18.3, kao i provođenje eksperimenata na promjeni unutarnje arhitekture te stvaranju verzije PostgreSQL-a oslobođene arhitektonskih ograničenja koja se ne mogu ukloniti iz povijesnih razloga. Projekt uspješno prolazi više od 46 tisuća regresijskih testova PostgreSQL, ali zasad nije kompatibilan s dodacima za PostgreSQL, ne pruža željene optimizacije performansi i ne implementira potpuno proceduralne jezike PL/Python, PL/Perl i PL/Tcl.

Planovi za budućnost:

  • Prevod na više staznu unutarnju arhitekturu.
  • Implementacija pooling konekcija.
  • Optimizacija za radne procese koji aktivno koriste JSON.
  • Mogućnost stvaranja kopija i grana elemenata baze podataka u režimu Copy-on-Write bez kopiranja podataka.
  • Eksperimenti s arhitekturom koja ne zahtijeva izvršavanje operacije VACUUM.
  • Sustav ograničenja SQL upita koji omogućuje blokiranje prekomjernog korištenja resursa prilikom izvršavanja nekvalitetnih upita.
  • Zaštita od prebacivanja optimizatora na manje učinkovite planove izvršavanja upita.

Prema riječima autora projekta, trenutno se radi na sljedećoj verziji pgrust, u kojoj je umjesto pooling radnih procesa implementiran više stazni model obrade konekcija, kao i dodatne optimizacije poput paketnog obrade redaka u tablicama i proaktivnog učitavanja podataka. Tijekom testiranja s alatima percona-tpcc u obradi transakcija nova verzija pgrust bila je brža od standardnog PostgreSQL-a za 50%, a u obradi analitičkih upita – 300 puta.

Pri prevodu na Rust je uporabljen hibridni pristop, pri katerem je bil koda PostgreSQL najprej obdelana s pomočjo prevajalnika c2rust, ki generira unsafe-predstavitev Rust, blizu po svoji strukturi prvotni kodi v C-ju. Po obdelavi v c2rust je bilo ustvarjenih okoli 1000 crate-paketov, ki so bili hkrati prevajani na idiomatski Rust s pomočjo AI-modela Claude in orodja Conductor za razporeditev nalog med hkrati zagnanimi podagenti.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster