787просмотров
20 октября 2025 г.
question📷 ФотоScore: 866
➡️Что же такое Greenplum и в чем его магия? Для самых маленьких! 1️⃣Определение:
GreenPlum - массово-параллельная (Massive Parallel Processing) реляционная СУБД на основе PostgreSQL. Далее:
GP - Greenplum
MPP - Massive Parallel Processing. 2️⃣Архитектура:
GP относится к shared nothing архитектуре(Shared Nothing Architecture). То есть, простым языком - это распределённая вычислительная архитектура, в которой каждый узел (сервер) является независимым и самодостаточным. У каждого узла свой набор ЦПУ, памяти и дискового хранилища.
Далее:
SNA - Shared Nothing Architecture. 🔵Как взаимодействуют между собой сегменты?
Сегменты взаимодействуют между собой по межсетвым соединениям, называемыми интерконнектами. При этом используется стандартная коммутационная матрица Ethernet. Для высокой производительности рекомендуется 10-гигабитная система или выше. 🔵Мастер-хост:
GP - сегмент Postgress'а который ставится на отдельном master-host'е и именно через него происходит взаимодействие со всем кластером и осуществляется хранение метаданных (не путать с самими данными они хранятся на обычных сегментах!) 🔵Сегмент-хосты:
Все остальные хосты предназначены для хранения и обработки данных БД. Эти хосты называются сегмент-хосты, и их может быть несколько, но не менее двух (иначе теряется смысл MPP). 🔵Сегменты: 🔵Первичные сегменты (primary segments).
Они располагаются внутри сегмент-хостов. Этих сегментов в кластере несколько. В своих директориях первичные сегменты хранят пользовательские данные, с которыми взаимодействуют пользователи, и реплику каталога БД. На первичных сегментах обрабатываются DML-операции, они несут основную пользовательскую нагрузку. 🔵Сегменты-зеркала (mirror segments). Они также располагаются на сегмент-хостах. Этих сегментов в кластере столько же, сколько и первичных. Зеркала хранят реплики данных с первичных сегментов. Они не обрабатывают запросы, а только принимают поток репликации данных, поэтому почти не создают нагрузку на процессор и память. Репликация на зеркалах синхронная: при записи данных на первичный сегмент транзакция не закончится, пока данные не реплицируются на зеркало. Зеркала находятся на других сегмент-хостах, нежели их первичный сегмент, и используются в запросах только в том случае, если основной сегмент отказал. 🔵Отказоустойчивость
Также на случай, если master сервер решит прилечь немного отдохнуть, существует реализация запасного (standby) master'а. А на случай падения сегментов (node), в работу включаются зеркала. Упрощённая архитектурная схема GP:
master host standby master 🖥 ------> 🖥 | | ------------------- | INTERCONNECTION | ------------------- | |
------- -------
|P1 M8| |P5 M4|
|P2 M7| |P6 M3|
|P3 M6|-----------|P7 M2|
|P4 M5| |P8 M1|
------- -------
Segment Host Segment Host P - Primary segment
M - Mirror segment 3️⃣Приемущества:
- Ну MPP и SNA, а дальше то чего? 🍴
- Ну тут по порядку! 🤨 🔵Приемущества MPP: 🔵Теоритически неограниченная горизонтальная масштабируемость: При большом желании можно до бесконечности расширять мощность для ускорения обработки информации. 🔵Линейный рост производительности: Добавление node линейно увеличивает производительность системы. 🔵Высокая производительность: MPP позволяет обрабатывать запросы параллельно на нескольких сегментах, что значительно увеличивает скорость выполнения аналитических запросов и обработки больших объемов данных. 🔵Приемущества SNA: 🔵Отказоустойчивость: В SNA каждый сегмент является независимым узлом, что означает, что сбой одного узла не влияет на работу других. Это повышает общую надежность системы. 🔵Оптимизация ресурсов: Каждый сегмент имеет свои собственные ресурсы (память, процессор, дисковое пространство), что позволяет оптимально использовать аппаратные ресурсы и избегать конкуренции за них между узлами, что ведет к улучшению производительности. 🔥Понравился пост? Оставь реакцию, так ты поддержи