pgrust — klon PostgreSQL na Rust, který prochází všemi regresními testy

Byl zveřejněn projekt pgrust, který implementuje SŘBD PostgreSQL přepsanou v jazyce Rust s využitím překladače c2rust a AI asistenta. Bylo oznámeno, že projekt zatím není připraven pro používání v pracovních projektech, ale již úspěšně prochází všemi regresními testy PostgreSQL, je kompatibilní se formátem ukládání dat PostgreSQL 18.3 a může využívat datový katalog od PostgreSQL 18.3. Kód projektu je distribuován pod licencí AGPLv3, na rozdíl od originálního PostgreSQL, které se dodává pod permisivní licencí PostgreSQL, blízkou k licencím BSD a MIT. Dostupná je online demonstrace možností, založená na sestavení ve WebAssembly, a také docker obraz pro rychlé spuštění.

Mezi cíli vývoje se zmiňuje dosažení plné kompatibility s PostgreSQL 18.3, stejně jako provádění experimentů se změnami vnitřní struktury a vytvoření verze PostgreSQL, zbavené architektonických omezení, kterých se nelze zbavit z historických důvodů. Projekt úspěšně prochází souborem více než 46 tisíc regresních testů PostgreSQL, ale zatím není kompatibilní s doplňky pro PostgreSQL, neposkytuje požadovaná zlepšení výkonu a zcela neimplementuje procedurální jazyky PL/Python, PL/Perl a PL/Tcl.

Plány do budoucna:

  • Přechod na vícerozměrnou vnitřní architekturu.
  • Implementace poolingu připojení.
  • Optimalizace pro pracovní postupy, které aktivně používají JSON.
  • Možnost vytváření kopií a odboček prvků DB v režimu Copy-on-Write bez kopírování dat.
  • Experimenty s architekturou, která nevyžaduje provádění operace VACUUM.
  • Systém omezení SQL dotazů, který umožňuje blokovat nadměrnou spotřebu zdrojů při vykonávání nekvalitních dotazů.
  • Ochrana před přepnutím optimalizátoru na méně efektivní plány provádění dotazů.

Podle autora projektu se v současnosti pracuje na další verzi pgrust, ve které byla místo poolu pracovních procesů implementována vícetečná model zpracování spojení. Také byly využity další optimalizace, jako je hromadné zpracování řádků v tabulkách a předběžné načítání dat. Při testování pomocí nástroje percona-tpcc při zpracování transakcí byla nová verze pgrust rychlejší než standardní PostgreSQL o 50 %, a při zpracování analytických dotazů dokonce 300krát.

Při překladu na Rust byl použit hybridní přístup, kdy byl kód PostgreSQL nejprve zpracován pomocí překladače c2rust, který generuje unsafe-reprezentaci Rustu, blízkou svou strukturou původnímu kódu v C. Po zpracování v c2rust bylo vytvořeno přibližně 1000 crate-balíčků, které byly současně překládány na idiomatický Rust pomocí AI-modelu Claude a nástroje Conductor pro rozdělení úkolů mezi současně spuštěné subagenty.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster