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
