Ядро 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.
Будем рады ответить на ваши вопросы в комментариях!
Old_Chroft
VadimGousev Автор
Добрый день.
Ядро openGauss построено на PostgreSQL и анонсировано относительно недавно, поэтому о сравнительном анализе говорить пока рано. Однако, возможно, интересен будет вот какой факт:
Ранее на рынке была представлена коммерческая СУБД GaussDB A (LibrA). Как видите, «Gauss…» — это бренд для целого ряда продуктов. GaussDB A – это MPP база данных и как раз для нее вопрос миграции был проработан очень глубоко. Были разработаны средства миграции (утилиты), четко описана процедура и сравнение синтаксиса. И все это можно получить и сейчас бесплатно на портале технической поддержки support.huawei.com/enterprise/en/doc/EDOC1100131105
Надеюсь, ссылка поможет снять часть вопросов. Обратите внимание на темы «Syntax Compatibility Analysis»
Это связано с тем, что ранее компания Huawei активно занималась проектами миграции таких БД/решений как: Oracle, Teradata, Netezza, DB2.