Megjelent a pgrust projekt, amely a PostgreSQL adatbázis-kezelőt Rust nyelven valósította meg, a c2rust fordító és mesterséges intelligencia asszisztens segítségével. A projekt jelenleg még nem készült el a munkaprojektekben való használatra, de már sikeresen teljesíti a PostgreSQL összes regressziós tesztjét, kompatibilis a PostgreSQL 18.3 adatformátummal, és használhatja a PostgreSQL 18.3 adatkönyvtárát. A projekt kódja AGPLv3 licenc alatt terjesztésre került, eltérően az eredeti PostgreSQL-től, amely permisszív PostgreSQL licenc alatt érhető el, hasonlóan a BSD és MIT licencekhez. Online demó is elérhető, amely WebAssembly építésen alapul, valamint egy docker-kép a gyors indításhoz.
A fejlesztés céljaként említik a teljes kompatibilitás elérését a PostgreSQL 18.3-mal, valamint kísérleteznek a belső szerkezet módosításával és egy olyan PostgreSQL verzió létrehozásával, amely megszabadul a történelmi okok miatt fennálló architekturális korlátoktól. A projekt sikeresen teljesít több mint 46 ezer regressziós tesztet a PostgreSQL-ből, de jelenleg nem kompatibilis a PostgreSQL kiegészítőivel, nem nyújtja az elvárt teljesítményoptimalizálásokat, és nem valósítja meg teljes mértékben a PL/Python, PL/Perl és PL/Tcl eljárási nyelveket.
Jövőbeli tervek:
- Átállás a többszálú belső architektúrára.
- Kapcsolatkezelő pooling megvalósítása.
- Optimalizálás olyan munkafolyamatokhoz, amelyek aktívan használják a JSON-t.
- Lehetőség adatbázis-elemek példányainak és ágainak létrehozására Copy-on-Write módban anélkül, hogy adatokat másolnánk.
- Kísérletezés olyan architektúrával, amely nem igényli a VACUUM művelet végrehajtását.
- SQL-lekérdezések korlátozási rendszere, amely megakadályozza a túlzott erőforrás-felhasználást gyenge minőségű lekérdezések végrehajtása során.
- Védelem az optimalizáló kevésbé hatékony végrehajtási tervekhez való váltása ellen.
A projekt szerzője szerint jelenleg a következő pgrust verzión dolgoznak, amelyben a munkafolyamatok poolingja helyett többszálú kapcsolatkezelési modellt valósítanak meg, valamint további optimalizálásokat is bevezetnek, mint például a táblázatok sorainak csoportos feldolgozása és az adatok előzetes betöltése. A percona-tpcc eszközkészlettel végzett tranzakciókezelési tesztek során az új pgrust verzió 50%-kal gyorsabb volt, mint a natív PostgreSQL, az analitikai lekérdezések feldolgozása során pedig 300-szoros gyorsaságot mutatott.
A Rustra történelmében hibrid megközelítést alkalmaztak, amelynek során a PostgreSQL kódot először a c2rust fordító segítségével dolgozták fel, amely egy unsafe Rust reprezentációt generál, amely szerkezetileg közel áll az eredeti C kódhoz. A c2rust feldolgozása után körülbelül 1000 crate-csomag készült, amelyeket párhuzamosan idiomatikus Rust-ra fordítottak a Claude AI-modell és a Conductor eszközkészlet segítségével, amely lehetővé tette a feladatok elosztását egyszerre futó alügynökök között.
Forrás: opennet.ru
