openGauss — система управления реляционными базами данных с открытым исходным кодом, созданная инженерами Huawei. Новая версия 1.0.1, которая стала доступна в октябре 2020 года, значительно расширяет возможности СУБД и делает ее перспективным выбором для целого ряда IT-задач, прежде всего в крупных корпоративных проектах.



Ядро openGauss построено на основе объектно-реляционной системы управления базами данных PostgreSQL. Его функциональность была усовершенствована в расчете на решение задач уровня предприятия.

Концептуально openGauss представляет собой многоцелевую БД: строчное хранение в ней позволяет поддерживать сервисы с интенсивным обновлением данных, колоночное хранение ускоряет выполнение аналитических задач, а in-memory engine повышает пропускную способность при решении задач, чувствительных ко времени отклика. Развертывается решение как в контейнерах, так и на физических серверах с процессорами x86-64 или Kunpeng разработки Huawei.

Официальный запуск первой версии openGauss состоялся 1 июля 2020 года. А уже в середине осени был произведен релиз 1.0.1, в который включено более двадцати доработок.

В текущем исполнении openGauss обладает широким набором примечательных возможностей. Прежде всего это поддержка многоядерной архитектуры с управляемым параллелизмом. Надо отметить также интеллектуальную настройку параметров, диагностику медленных SQL, многомерный самоконтроль производительности и онлайн-прогнозирование выполнения SQL, значительно упрощающее O&M.

Достойны упоминания показатели быстродействия openGauss. В частности, система осуществляет до 1,5 млн tpmC на двух 64-ядерных процессорах Kunpeng, а переключение при сбое узла занимает у нее менее 10 с.

Коротко обозначим функции openGauss, определяющие ее преимущества.

  • Высокая готовность. Функции журналирования — WALs (write-ahead logs) — обеспечивают возможности горячего резервного копирования и восстановления. Утилита gs_basebackup позволяет сделать полную резервную копию БД, в том числе сжатую. В мире PostgreSQL вопрос инкрементального резервного копирования остается открытым, поэтому компаниям приходится самостоятельно решать эту задачу в каждом конкретном случае. Новая версия 1.0.1 поддерживает функциональность инкрементального резервного копирования при включении параметра GUC enable_cbm_tracking (и далее база данных будет отслеживать изменение страниц данных).

    Катастрофоустойчивость openGauss решается за счет организации Standby на удаленной площадке, причем синхронизация данных возможна в синхронном и асинхронном режиме. Текущий релиз СУБД поддерживает до четырех реплик на физическом уровне.
  • Высокая производительность. В openGauss таблицу, включая ее индексы, можно целиком поместить в память. Это возможно благодаря Memory-Optimized Tables (MOT) — высокопроизводительному OLTP-движку для обработки данных в памяти. MOT поддерживает работу с таблицами в строчном формате, при этом доступна вся функциональность openGauss, включая транзакции и отказоустойчивость.

    Особенности реализации MOT и результаты его тестирования на производительность TPC-C приведены в отдельном документе.



    Необходимо также упомянуть возможность создания Materialized View — срез данных с предварительно рассчитанными показателями (агрегатами) хранится на уровне таблиц БД, существенно ускоряя выполнение аналитических задач.
  • Управляемость серьезно улучшена за счет автоматических отчетов производительности (WDR). Чтобы задействовать эту функцию, достаточно установить параметр enable_wdr_snapshot=on и указать количество дней хранения для параметра wdr_snapshot_retention_days. Далее ядро базы данных будет автоматически сохранять снимки с метриками производительности, в том числе и медленные SQL. WDR позволяет формировать отчеты о производительности между указанными периодами времени (snapshots) в формате HTML или PDF.
  • Гибкость. Интеграция с внешними источниками данных реализована через Foreign Data Wrappers (FDW). В актуальном релизе поддерживается интеграция с Oracle, MySQL, openGauss.

    Отдельного внимания заслуживает Global Temporary Tables (GTT). Сам объект создается в БД один раз, далее GTT используется многократно для хранения промежуточных результатов транзакций или сессии. Данные во временной таблице видны только для текущей сессии независимо от фиксации транзакции. Данные теряются после отключения-завершения сессии. Это незаменимая функциональность для ETL или систем отчетности.

На openGauss распространяется действие лицензии Mulan PSL v2, что дает разработчикам возможность свободно изменять код СУБД, использовать его и ссылаться на него. Исходный программный код проекта полностью доступен в его репозитории.

Напомним, Huawei — платиновый партнер разработчиков ПО с открытым кодом Linux, Apache и Openstack, а также стратегический член Eclipse Foundation. Мы активно участвуем в проектах по созданию Open Source решений, в том числе:?

  • Linux-дистрибутива openEuler;
  • фреймворка для задач deep learning MindSpore;
  • интеллектуальной платформы для обеспечения автономности открытых данных SODA;
  • формата хранения больших данных Apache CarbonData;
  • платформы микросервисов Apache ServiceComb;
  • фреймворка для граничных вычислений CNCF KubeEdge;
  • высокопроизводительной системы управления batch-процессами CNCF Volcano.


Будем рады ответить на ваши вопросы в комментариях!