УВЕЛИЧЕНИЕ БЫСТРОДЕЙСТВИЯ И НАДЁЖНОСТИ БАЗ ДАННЫХ ПРИ ПОМОЩИ
MYSQL CLUSTER
Карабань Алексей Витальевич, магистр
Коротенко Леонид Михайлович, к.т.н., доц.,
Государственное высшее
учебное заведение «Национальный горный университет», г. Днепропетровск
Объемы
данных в Сети и пользовательские
нагрузки увеличиваются с каждым днём из-за растущей популярности глобальных
сообществ, социальных сетей, высокоскоростного
мобильного интернета[1].
Поэтому,
базы данных, необходимые для поддержки этого роста должны отвечать
новым стандартам:
– масштабирование баз данных в соответствии с нагрузками при
использовании стандартного оборудования;
– малая задержка при работе пользователя в режиме реального
времени;
– доступность 24 часа в сутки 7 дней в неделю для
беспрерывного обслуживания;
– удобство и лёгкость в использовании разработчиками для
быстрого внедрения инновационных услуг.
Для повышения скорости и надёжности работы баз данных, а
также построения
отказоустойчивых систем предлагается новая технология, разработанная
компанией Oracle– MySQLCluster.
Высокая надёжность кластера обусловлена тем что все
используемые элементы системы синхронизированы. Это означает если транзакция
была завершена на одном из элементов системы то она была завершена на всех
остальных элементах (рис. 1).

Рис. 1. Схема
кластера
На
рисунке 1 под
термином нода (Node)подразумевается узел системы[2].
Руководящая
нода–MGM (Management) Node задает общую конфигурацию и используется для
управления кластером.Она выполняет такие функции, как запуск и остановка
кластера, создание резервных копий и восстановление после сбоя. В типовой
конфигурации кластера используется только одна нода данного типа, хотя
допускается использование нескольких управляющих нод. Фактически после запуска
кластера отказ или просто отключение управляющей ноды никак не влияет на
остальные процессы внутри кластера.
Основная
нода–DBNode (NetworkDataBaseNode, StorageNode)
обеспечивает хранение данных и выполнение всех транзакций. Количество
необходимых нод данного типа зависит от объема требуемых данных (количества
фрагментов, на которые их необходимо разбить) и количества репликаций. Например,
если вы хотите, чтобы данные обрабатывались двумя серверами, которые будут
реплицироваться (дублироваться), вам необходимо использовать четыре ноды
данного типа.
СтандартныйMySQL-сервер –MySQLServer (SQL Node) использует
NDB-ноды для хранения данных. Вы можете использовать любое количество нод
данного типа. Основная задача это предоставление стандартного SQL-интерфейса.
Кроме того, может
иметься любое число клиентуры. Она имеет два типа:
-
Стандартные клиенты MySQL. Они никак не отличают кластер и обычный
(некластерный) MySQL. Другими словами, к кластеру можно обращаться из
существующих прикладных программ MySQL, написанных на PHP, Perl, C, C++, Java,
Python, Ruby, Delphi и любом другом языке.
-
Клиенты управления. Эта клиентура соединяется с сервером управления и
обеспечивает команды для запуска и остановки узлов элегантно, пуска и остановки
рассмотрения сообщений (только отладочные версии), показ версии и состояния
узла и так далее.
Высокие
показания производительности кластера достигаются за счет распределения
нагрузки между несколькими физическими серверами и использования оперативной
памяти для хранения данных.
Отказоустойчивость
кластера состоит в том что:
- MySQL-серверы соединены с каждой нодой кластерного
хранилища данных. В случае отказа одной из NDB-нод выполнение транзакции
продолжается на другой ноде с теми же данными.
- Управляющая нода также может быть продублирована. Отказ
управляющей ноды (даже если она одна) никак не влияет на работу остальных нод
кластера.
- Любая из
нод, составляющих кластер, может быть отключена физически, не нарушив при этом
работу самого кластера (конечно же, в том случае, если она была
продублирована).
Хотя
основной акцент разработчиков данной системы идёт на надёжность, также можно получить и колоссальный прирост
скорости вплоть до 70 раз который показали тестовые испытания[3]. Таким образом
использование кластеризированной системы полностью оправдывает себя в больших
базах данных и позволяет снижать стоимость содержания, риск и сложности при
использовании.
ЛИТЕРАТУРА
1. Пресс-релиз MySQLCluster 7.2
WEB-сайт (Электронн. ресурс) / Способ доступа:http://www.oracle.com/ru/corporate/press/press-release-ru-feb16-12-1524436-ru
2.
Справочник
MySQL 5.6WEB-сайт (Электронн. ресурс) / Способ доступа:http://spec-zone.ru/RU/mysql/5.6/
3.
MySQLCluster
CGEWEB-сайт (Электронн. ресурс) / Способ доступа: