pgrust — klon PostgreSQL na Rustu koji prolazi sve regresijske testove

Objavljen je projekt pgrust s implementacijom SDB PostgreSQL, prepisanom na jeziku Rust korištenjem prevoditelja c2rust i AI asistenta. Izjavljeno je da projekt trenutno 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 od PostgreSQL 18.3. Kod projekta dostupno je pod AGPLv3 licencom, za razliku od originalnog PostgreSQL, koji dolazi s permisivnom licencom PostgreSQL, koja je bliska licencama BSD i MIT. 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 s promjenom unutarnje strukture i stvaranjem verzije PostgreSQL koja je oslobođena arhitektonskih ograničenja koja se nisu mogla ukloniti zbog povijesnih razloga. Projekt uspješno prolazi skup od više od 46 tisuća regresijskih testova PostgreSQL, ali još uvijek nije kompatibilan s dodacima za PostgreSQL, ne pruža željene optimizacije performansi i ne implementira u potpunosti proceduralne jezike PL/Python, PL/Perl i PL/Tcl.

Planovi za budućnost:

  • Prevedeno na višedretvnu unutarnju arhitekturu.
  • Implementacija poolinga veza.
  • Optimizacija za radne procese koji aktivno koriste JSON.
  • Mogućnost stvaranja kopija i grananja elemenata Baze podataka u načinu Copy-on-Write bez kopiranja podataka.
  • Eksperimenti s arhitekturom koja ne zahtijeva izvođenje operacije VACUUM.
  • Sustav ograničenja SQL upita koji omogućava blokiranje pretjerane potrošnje resursa prilikom izvođenja loših upita.
  • Zaštita od prebacivanja optimizatora na manje učinkovite planove izvođenja upita.

Prema riječima autora projekta, trenutno se radi na sljedećoj verziji pgrust, u kojoj je umjesto poola radnih procesa implementiran višedretvni model obrade veza, a također su uključene dodatne optimizacije, kao što su grupna obrada redova u tablicama i proaktivno učitavanje podataka. Prilikom testiranja alatima percona-tpcc tijekom obrade transakcija, nova verzija pgrust bila je brža od standardnog PostgreSQL-a za 50%, a pri obradi analitičkih upita — 300 puta brža.

Prilikom prevođenja na Rust korišten je hibridni pristup, pri čemu je kod PostgreSQL najprije obrađen uz pomoć prevoditelja c2rust, koji generira unsafe predstavu Rust-a, blisku po svojoj strukturi izvornoj C kodu. Nakon obrade u c2rust stvoreno je oko 1000 crate paketa, koji su paralelno prevođeni na idiomatski Rust uz pomoć AI modela Claude i alata Conductor za raspodjelu zadataka među istovremeno pokrenutim subagentima.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster