Sedmá beta verze OrioleDB, vysoce výkonného úložiště pro PostgreSQL

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.

Sedmá beta verze OrioleDB, vysoce výkonného úložiště pro PostgreSQL
Sedmá beta verze OrioleDB, vysoce výkonného úložiště pro PostgreSQL
Sedmá beta verze OrioleDB, vysoce výkonného úložiště pro PostgreSQL

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

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