MPP-архитектура

Данный документ представляет архитектуру базы данных, используемую YMatrix на физическом уровне: архитектуру MPP (Massive Parallel Processing).

1 Что такое MPP-архитектура?

MPP — это архитектура базы данных, основанная на кластере без общих ресурсов (shared-nothing), где каждый узел имеет собственную независимую систему дискового хранилища и памяти. Бизнес-данные распределяются между узлами в соответствии с моделью базы данных и характеристиками приложения. Каждый узел данных (Segment Node) соединяется с другими через специализированные или стандартные коммерческие сети, совместно выполняя вычисления и предоставляя сервисы базы данных. Кластеры баз данных без общих ресурсов обладают преимуществами, такими как масштабируемость, высокая доступность, производительность и экономическая эффективность.

Проще говоря, MPP-архитектура распределяет задачи параллельно между несколькими серверами и узлами. После завершения вычислений каждым узлом результаты агрегируются для получения финального вывода.

2 Что означает характеристика «без общих ресурсов» в MPP-архитектуре?

С точки зрения архитектуры данных, распределённые архитектуры баз данных делятся на три типа: Shared Everything, Shared Disk и Shared Nothing:

  • Shared Everything: Обычно применяется в однородных системах, где CPU, память и I/O надёжно и прозрачно разделяются. Однако такая архитектура обладает слабыми возможностями параллельной обработки.
  • Shared Disk: Распределённая вычислительная архитектура, в которой узлы разделяют одни и те же дисковые устройства, но каждый узел имеет собственную приватную память. Диски остаются доступными для всех активных узлов, что позволяет обмениваться памятью при сбоях. В этой архитектуре пользователи могут обращаться к дискам со всех узлов кластера. Она быстро адаптируется к изменяющимся нагрузкам и использует передовые методы оптимизации.
  • Shared Nothing: Распределённая вычислительная архитектура, в которой каждый узел независим и связан с другими через сеть. Каждый узел состоит из процессора, оперативной памяти и диска. Основная цель этой архитектуры — устранить конкуренцию за ресурсы между узлами. Узлы не разделяют память или хранилище; каждый узел имеет выделенные, необщие диски, что обеспечивает эффективную работу в средах с высокой интенсивностью чтения/записи.

3 Каковы характеристики MPP-архитектуры?

Ключевые характеристики MPP-архитектуры включают:

  • Отсутствие необходимости записывать промежуточные данные на диск.
  • Параллельное выполнение задач.
  • Хранение данных распределённым и локализованным способом.
  • Распределённые вычисления с равномерной ролью всех узлов данных (Segments), что повышает возможности параллельной обработки.
  • Стабильность и доступность Master-узла напрямую влияют на общую производительность системы.
  • Горизонтальная масштабируемость, позволяющая расширять кластер путём добавления узлов.
  • «Эффект бочки»: если один узел постоянно работает медленнее других в кластере, общая производительность кластера ограничивается скоростью самого медленного узла.