pgrust — klon PostgreSQL na Rust, prechádzajúci všetkými regresnými testami

Bol projekt pgrust, ktorý implementuje databázový systém PostgreSQL, prepísaný v jazyku Rust s využitím prekladača c2rust a AI asistenta. Uvádza sa, že projekt zatiaľ nie je pripravený na použitie v produkčných projektoch, ale už úspešne prechádza všetkými regresnými testami PostgreSQL, je kompatibilný s formátom ukladania dát PostgreSQL 18.3 a môže používať dátový adresár od PostgreSQL 18.3. Kód projektu sa distribuuje pod licenciou AGPLv3, na rozdiel od pôvodného PostgreSQL, dodávaného pod permissívnou licenciou PostgreSQL, ktorá je podobná licenciám BSD a MIT. Je k dispozícii online demonštrácia funkcií založená na zostave v WebAssembly, ako aj docker obraz pre rýchle spustenie.

Ako cieľ vývoja sa uvádza dosiahnutie plnej kompatibility s PostgreSQL 18.3, ako aj uskutočnenie experimentov na zmene vnútornej architektúry a vytvorení verzie PostgreSQL zbavenej architektonických obmedzení, ktorých sa nedarí zbaviť z historických dôvodov. Projekt úspešne prechádza súborom viac ako 46 tisíc regresných testov PostgreSQL, ale zatiaľ je nekompatibilný s rozšíreniami PostgreSQL, neposkytuje požadované optimalizácie výkonu a úplne neimplementuje procedurálne jazyky PL/Python, PL/Perl a PL/Tcl.

Plány do budúcnosti:

  • Prevod na viacvláknovú vnútornú architektúru.
  • Implementácia pooling-u pripojení.
  • Optimalizácia pre pracovné procesy, ktoré aktívne používajú JSON.
  • Možnosť vytvárania kópií a vetvení prvkov DB v režime Copy-on-Write bez kopírovania dát.
  • Experimenty s architektúrou, ktorá nevyžaduje vykonanie operácie VACUUM.
  • Systém obmedzení SQL dotazov, ktorý umožňuje blokovanie nadmernej spotreby zdrojov pri vykonávaní nekvalitných dotazov.
  • Ochrana pred prepnutím optimalizátora na menej efektívne plány vykonávania dotazov.

Podľa slov autora projektu sa v súčasnosti pracuje na ďalšej verzii pgrust, v ktorej namiesto poolu pracovných procesov je implementovaný viacvláknový model spracovania pripojení, ako aj ďalšie optimalizácie, ako je hromadné spracovanie riadkov v tabuľkách a predbežné načítavanie dát. Pri testovaní s nástrojom percona-tpcc pri spracovaní transakcií sa nová verzia pgrust ukázala byť rýchlejšia ako štandardný PostgreSQL o 50%, pri spracovaní analytických dotazov až 300-krát.

Pri prevode na Rust bol použitý hybridný prístup, pri ktorom bol kód PostgreSQL najprv spracovaný pomocou prekladateľa c2rust, ktorý generuje unsafe reprezentáciu Rustu, blízku svojou štruktúrou pôvodnému kódu v C. Po spracovaní v c2rust bolo vytvorených približne 1000 crate balíkov, ktoré sa súbežne prekladali na idiomatický Rust pomocou AI modelu Claude a nástroja Conductor na rozdeľovanie úloh medzi súbežne spúšťanými sub-agentmi.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster