Стратегии распределения основных и зеркальных сегментов

Документ описывает стратегии распределения зеркальных сегментов, используемые в системе базы данных YMatrix.

При развертывании системы базы данных YMatrix зеркальные сегменты (Mirror) могут быть настроены на хостах.

  • Функциональность:
    • При сбое основного сегмента (Primary) зеркало позволяет продолжать обработку запросов с использованием резервного сегмента.
    • Зеркала синхронизируются со своими соответствующими основными сегментами за счет репликации журнала транзакций.
  • Лучшая практика:
    • Каждый экземпляр зеркального сегмента должен размещаться на другом хосте, чем соответствующий ему основной сегмент, чтобы избежать рисков единой точки отказа.

Примечание!
В производственных средах настоятельно рекомендуется включать зеркалирование.

1 Стратегии распределения зеркал в Greenplum

Прежде чем обсуждать стратегию распределения зеркал в YMatrix, данный раздел предоставляет базовые знания, основанные на конфигурациях зеркал в Greenplum. Greenplum поддерживает две стандартные конфигурации зеркалирования: Group Mirroring и Spread Mirroring, причем Group Mirroring является конфигурацией по умолчанию.

1.1 Spread Mirroring

При распределении зеркал по принципу Spread Mirroring зеркала с каждого хоста распределяются по остальным хостам кластера. Эта конфигурация требует, чтобы количество хостов в кластере превышало количество основных сегментов на один хост.
Для обеспечения равномерного распределения общее количество независимых хостов должно быть больше числа экземпляров сегментов на один хост.

1.2 Group Mirroring

При распределении зеркал по принципу Group Mirroring все зеркала для основных сегментов на одном хосте группируются вместе и размещаются на другом хосте в кластере.
Это стратегия распределения зеркал по умолчанию в Greenplum.

2 Стратегия распределения зеркал в YMatrix

YMatrix использует Ring Mirroring в качестве стратегии по умолчанию. При наличии как минимум двух хостов последовательность основных сегментов на одном хосте рассматривается как одномерная лента, сложенная пополам. Начиная с серединного идентификатора сегмента после сгиба, зеркала размещаются по часовой стрелке и равномерно распределяются по другим хостам.

При расширении кластера путем добавления новых основных сегментов существующее кольцо зеркал остается неизменным; вместо этого инициируется новое кольцо зеркал.
Это стратегия распределения зеркал по умолчанию в YMatrix.

Эта стратегия балансирует преимущества и недостатки двух предыдущих методов, предлагая компромисс между ними. Сравнение трех стратегий представлено в таблице ниже:

Spread Group Ring
Стабильность системы Нестабильна Стабильна Умеренно стабильна
Балансировка нагрузки Сбалансирована Несбалансирована Умеренно сбалансирована

Примечание!
Если вы хотите использовать стратегию распределения зеркал, отличную от Ring Mirroring в YMatrix, вы можете добиться этого с помощью пользовательской настройки с помощью mxaddmirrors.