Седма бета версия на OrioleDB, високопроизводителен двигател за съхранение за PostgreSQL

Представена е бета-версия на хранилищния двигател OrioleDB beta7 и публикувани резултати от нови тестове, демонстриращи значително повишаване на производителността в сравнение с традиционния PostgreSQL. В версия beta7 бяха внедрени оптимизации, насочени към подобряване на работата с многопоточни натоварвания и ускоряване на операциите по четене и запис. Първият стабилен релиз на OrioleDB е планиран за 2025 година. Двигателят е написан на езика C и се разпространява под лиценз от PostgreSQL, подобен на лицензите BSD и MIT.

Проектът ОrioleDB развива алтернативен хранилищен двигател за PostgreSQL, разработен с цел преодоляване на ограниченията на стандартния механизъм за съхранение и повишаване на общата ефективност на системата. Например, ОrioleDB позволява да се избегне периодичното извършване на операция VACUUM за събиране на ненужни данни, благодарение на внедряването на механизма MVCC (Multi-Version Concurrency Control) на база на логовете за отмяна (undo logs), работещи на ниво отделни блокове и редове, а също и на системата за автоматично сливане на страници, които съдържат данни. ОrioleDB също така използва 64-битови идентификатори на транзакции, което решава проблема с преливането на броячи.

За улесняване на използването в разпределени системи и разпаралеляване на операциите в OrioleDB е организирано водене на WAL-лог на транзакции на ниво редове. При извършване на операция UPDATE се поддържа замяна на данни на място (без освобождаване на текущата записа и създаване на нова), което оказва положително влияние върху производителността. В OrioleDB са реализирани и такива възможности, като четене на данни от страници без използване на заключвания, директно свързване на паметта между страниците в оперативната памет и страниците в постоянното хранилище, приложение на механизма CoW (copy-on-write) при фиксиране на контрольни точки за създаване на последователни снимки по всяко време, режим на съхранение на данни в компресиран вид с използване на алгоритъма ZSTD.

От наличните ограничения в седмата бета версия на OrioleDB се отбелязва възможността за използване само на индекси в формат B-tree (в бъдеще ще се появи поддръжка на всички типове индекси на PostgreSQL), както и липсата на поддръжка за предварително подготвени транзакции (PREPARE TRANSACTION) и командата «REINDEX» в режим «CONCURRENTLY». OrioleDB е реализиран като добавка, изискваща промени в основната кодова база на PostgreSQL.

В тестовете за производителност TPC-C, които моделират натоварването на транзакционната обработка в реални условия, седмата бета версия на OrioleDB показа значително предимство спрямо стандартния двигател на PostgreSQL. Тестването е проведено с различно количество едновременно работещи клиенти, за да се оцени мащабируемостта и производителността на системата при увеличаване на натоварването.

В тестовете, оценяващи пропускната способност на транзакциите, двигателят OrioleDB постигна по-висока пропускна способност, измервана в транзакции в минута (tpmC). С увеличаването на броя на клиентите производителността на OrioleDB продължи да расте линейно, докато при двигателя Heap в PostgreSQL се наблюдаваше тенденция към стагнация и дори намаляване след определен праг.

Седма бета версия на OrioleDB, високопроизводителен двигател за съхранение за PostgreSQL
Седма бета версия на OrioleDB, високопроизводителен двигател за съхранение за PostgreSQL
Седма бета версия на OrioleDB, високопроизводителен двигател за съхранение за PostgreSQL

В тестовете на времето за реакция средното време за реакция на транзакциите в OrioleDB беше значително по-ниско в сравнение с PostgreSQL. По този начин системите на базата на OrioleDB могат да обработват повече транзакции за същия период от време, осигурявайки при това по-бързо обслужване на заявките. При измерване на използването на ресурси двигателят OrioleDB показа по-ефективно използване на CPU и памет, благодарение на оптимизираното управление на ресурсите.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster