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

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

Проектът OrioleDB развива алтернативен двигател за съхранение за PostgreSQL, разработен с цел преодоляване на ограниченията на стандартния механизъм за съхранение и повишаване на общата ефективност на системата. Например, OrioleDB позволява да се избегне периодичното изпълнение на операция VACUUM за събиране на боклука, благодарение на внедряването на механизма MVCC (Multi-Version Concurrency Control) на база логовете за обратно възстановяване (undo logs), работещи на ниво отделни блокове и редове, а също така и на системата за автоматично сливане на страници, съдържащи данни. OrioleDB също така използва 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