Byla představena beta verze úložiště OrioleDB beta7 a zveřejněny výsledky nových testů, které ukazují značné zlepšení výkonu ve srovnání s tradičním PostgreSQL. Ve verzi beta7 byly implementovány optimalizace zaměřené na zlepšení výkonu při vícitréninkových zátěžích a zrychlení operací čtení a zápisu. První stabilní verze OrioleDB se plánuje na rok 2025. Úložiště je napsáno v jazyce C a distribuuje se pod licencí PostgreSQL, která je podobná licencím BSD a MIT.
Projekt OrioleDB vyvíjí alternativní úložiště pro PostgreSQL, které bylo vytvořeno s cílem překonat omezení standardního mechanizmu úložiště a zvýšit celkovou efektivitu systému. Například OrioleDB umožňuje obejít se bez periodického provádění operace VACUUM pro úklid odpadů, díky implementaci mechanizmu MVCC (Multi-Version Concurrency Control) založeného na registrech vrácení (undo logs), které fungují na úrovni jednotlivých bloků a řádků, a také systému automatického slučování stránek obsahujících data. OrioleDB rovněž využívá 64bitové identifikátory transakcí, což řeší problém přetečení čítačů.
Pro usnadnění použití v distribuovaných systémech a paralelizaci operací v OrioleDB byl zaveden WAL log transakcí na úrovni řádků. Při provádění operace UPDATE je podporována výměna dat na místě (bez uvolnění aktuálního záznamu a vytvoření nového), což pozitivně ovlivňuje výkon. V OrioleDB jsou také implementovány funkce, jako je čtení stránek s daty bez použití zámků, přímé propojení stránek v paměti s stránkami v trvalém úložišti, použití mechanizmu CoW (copy-on-write) při zamykání kontrolních bodů pro vytváření konzistentních snímků v libovolném okamžiku, režim ukládání dat ve zkomprimované podobě pomocí algoritmu ZSTD.
Mezi omezeními v sedmé beta verzi OrioleDB se uvádí možnost používání pouze indexů ve formátu B-tree (v budoucnu bude přidána podpora pro všechny typy indexů PostgreSQL), a také absence podpory předem připravených transakcí (PREPARE TRANSACTION) a příkazu "REINDEX" v režimu "CONCURRENTLY". OrioleDB je implementován ve formě připojitelného rozšíření, které vyžaduje změny v hlavním kódu PostgreSQL.
Ve výkonnostních testech TPC-C, které modelují zátěž transakčního zpracování v reálných podmínkách, sedmá beta verze OrioleDB prokázala výraznou převahu nad standardním enginem PostgreSQL. Testování bylo provedeno s různým počtem současně pracujících klientů, aby se zhodnotila škálovatelnost a výkonnost systému při zvyšující se zátěži.
V testech, které hodnotily propustnost transakcí, dosáhl engine OrioleDB vyšší propustnosti, měřené v transakcích za minutu (tpmC). Při zvyšujícím se počtu klientů výkonnost OrioleDB nadále lineárně rostla, zatímco u enginu Heap v PostgreSQL byla pozorována tendence ke stagnaci a dokonce poklesu po určitém prahu.



Ve testech na dobu odezvy bylo průměrné časové odezvy transakcí v OrioleDB výrazně nižší ve srovnání s PostgreSQL. Tím pádem systémy založené na OrioleDB mohou zpracovávat více transakcí ve stejném časovém úseku, a tím zajistit rychlejší vyřizování dotazů. Při měření využití zdrojů engine OrioleDB prokázal účinnější využití CPU a paměti, díky optimalizovanému řízení zdrojů.
Zdroj: opennet.ru
