Архитектура YMatrix
Данный документ представляет общую архитектуру и связанные концепции YMatrix.
Из-за нестабильности, высокой стоимости, низкой производительности и большой задержки сложных многоуровневых стеков технологий обработки данных предприятиям сложно максимально эффективно использовать свои ресурсы.
Чтобы снизить сложность экосистемы данных, YMatrix разработала простую архитектуру с генами гиперконвергенции, интегрирующую вычислительные, хранилищные и сетевые ресурсы в единую систему. Она основана на системе массово параллельной обработки (MPP) и соответствует принципам микроядерной архитектуры.
Эта архитектура гибка и адаптируется к различным сценариям: она не только оптимальна для сценариев IoT с временными рядами, но и поддерживает традиционные аналитические хранилища данных и задачи бизнес-аналитики (BI).
Каковы преимущества архитектуры YMatrix по сравнению со сложными стеками технологий данных?
Замена традиционных стеков технологий данных на гиперконвергентную архитектуру может показаться сложной задачей. Но зачем нам это нужно?
На самом деле, независимо от сценария, полное внедрение гиперконвергентной архитектуры приносит выгоду многим бизнесам, предоставляя им единую основу для данных в сложных ИТ-системах, включая умные подключенные автомобили, промышленный интернет, умное производство, умные города, энергетику, финансы, фармацевтику и другие отрасли.
По сравнению со сложными стеками технологий данных, такими как экосистема Hadoop, архитектура YMatrix предлагает следующие преимущества:
- Гиперконвергенция
- Надежность: Сложный технологический стек обычно состоит из N отдельных систем обработки данных. При вероятности сбоя любого отдельного компонента, равной P, стабильность всей системы приближенно оценивается как (1-P)^N, что означает, что каждый дополнительный компонент значительно снижает надежность. Гиперконвергентная архитектура, использующая одну систему, по своей природе является наиболее стабильной и надежной.
- Экономичность: Благодаря гиперконвергентной природе, YMatrix может потреблять и управлять данными в рамках одной системы, не передавая их между несколькими распределенными системами, тем самым избегая необходимости хранить данные в нескольких системах. Физические требования к оборудованию, например, дискам, минимальны, что обеспечивает низкие затраты на хранение.
- Актуальность: В гиперконвергентной архитектуре данные не требуют передачи между несколькими системами, что обеспечивает низкую задержку и высокую оперативность.
- Упрощенное управление: Гиперконвергентное решение делает всю экосистему данных проще в управлении — для работы не требуется знание множества продуктов или языков программирования, достаточно только знания SQL.
- Высокая доступность
- При сбое нескольких узлов служба управления состоянием данных YMatrix автоматически выполняет переключение на резервный узел без участия человека, обеспечивая прозрачность для бизнеса. Это снижает трудозатраты и риски человеческих ошибок.
- Богатая экосистема инструментов
- Совместима с экосистемой Postgres/Greenplum. Охватывает различные сценарии: миграция данных, запись, тестирование производительности, резервное копирование и восстановление.
- Поддержка стандартного SQL
- Поддерживает стандарт SQL:2016, включая типы данных, скалярные выражения, выражения запросов, наборы символов, правила распределения данных, операторы множеств и другие элементы.
- Полная поддержка транзакций ACID
- Обеспечивает целостность и согласованность данных, исключая необходимость сложной проверки и обработки ошибок на уровне пользователя, снижая операционную нагрузку.
Диаграмма гиперконвергентной архитектуры
В отличие от баз данных с другими архитектурами, гиперконвергенция YMatrix проявляется в интеграции множества типов данных и операций с ними, обеспечивая высокопроизводительную поддержку множества типов данных + множества сценариев в рамках одной базы данных. Внутренняя архитектура YMatrix основана на микроядерной модели. На основе общих ядерных компонентов предоставляются различные комбинации движков хранения и выполнения, чтобы удовлетворить потребности различных бизнес-сценариев, позволяя различным микроядрам достигать целенаправленного улучшения производительности записи, хранения и запросов.
Ниже приведена диаграмма, иллюстрирующая состав и функции внутренней гиперконвергентной архитектуры YMatrix:
_1696644131.png)
Следующие разделы содержат подробный обзор компонентов гиперконвергентной архитектуры YMatrix.
- Общие ядерные компоненты
Это в первую очередь общие ресурсы базы данных, такие как управление памятью, протоколы сетевой коммуникации и базовые структуры данных.
- Движки хранения и выполнения
Это комбинации движков хранения и выполнения, которые можно выбирать при создании таблиц в YMatrix для различных сценариев. Каждая комбинация формирует микроядро.
- Оптимизатор
Преобразует SQL-строку в план запроса и генерирует оптимальный план на основе возможностей выбранного нижележащего движка хранения.
- Журналирование, транзакции, управление конкурентностью, блокировки, снапшоты
Это стандартные компоненты ядра YMatrix, обеспечивающие общие функции, такие как контроль конкурентности, механизмы транзакций и восстановление после сбоев.
- SQL
Это стандартный SQL-интерфейс между YMatrix и клиентом.
- Аутентификация, роли, аудит, шифрование, мониторинг, резервное копирование, восстановление, высокая доступность
Это другие распространённые функции базы данных, поддерживаемые YMatrix.
Диаграмма архитектуры базы данных
Высокоуровневая архитектура базы данных YMatrix основана на классической архитектуре баз данных MPP (массово параллельной обработки) с некоторыми улучшениями.
Ниже приведена диаграмма, описывающая ключевые компоненты, составляющие систему базы данных YMatrix, и их взаимодействие:
_1692001533.png)
Следующие разделы содержат подробное описание различных компонентов системы базы данных YMatrix и их функций.
- Узел Master
- Отвечает за установление и управление сессионными соединениями с клиентами.
- Отвечает за разбор SQL-запросов и формирование планов выполнения (Query Plan).
- Распределяет планы выполнения на Segments, контролирует процесс выполнения запросов и собирает результаты для возврата клиентам.
- Master не хранит бизнес-данные; он хранит только словарь данных — совокупность определений и атрибутов всех элементов данных, используемых в системе.
- В кластере допускается только один Master; может использоваться конфигурация основной-резервной копии, при этом резервный узел называется Standby.
- Узлы данных (Segments)
- Отвечают за хранение данных и выполнение SQL-запросов.
- Ключ к достижению оптимальной производительности YMatrix заключается в равномерном распределении данных и нагрузки между большим количеством Segments с одинаковыми возможностями, что позволяет всем узлам Segments одновременно начинать выполнение задачи и завершать её параллельно.
- Клиент (Client)
- Общий термин, обозначающий любое устройство, клиентское приложение или программу, способную подключаться к базе данных.
- MatrixGate
- MatrixGate (сокращённо mxgate) — высокоскоростной инструмент записи потоковых данных в YMatrix. Подробнее см. mxgate.
- Сетевой уровень (Interconnect)
- Сетевой уровень архитектуры базы данных, отвечающий за межпроцессную коммуникацию между Segments и инфраструктуру сети, поддерживающую такую коммуникацию.
- Служба управления состоянием данных (Cluster Service)
- Служба Cluster Service обеспечивает высокую доступность базы данных, управляя информацией о состоянии узлов. YMatrix реализует эту службу с помощью кластера etcd: при сбое узла базы данных etcd извлекает данные о состоянии узла из своей базы, определяет текущий исправный узел как новый основной и повышает его статус, обеспечивая доступность всего кластера.
Например, если узел Master выходит из строя, его Standby узел повышается до статуса Master; если выходит из строя Standby, это не влияет на общий кластер. Аналогично, если основной узел Segment выходит из строя, его Mirror узел повышается до Primary; если выходит из строя Mirror, это не влияет на общий кластер. Подробнее см. Восстановление после сбоев.