m3a1
@m3a1
www.nixys.ru

Сравнение различных реализаций кластера для MySQL?

Всем привет!

Надеюсь, что мой вопрос не выходит за рамки данного ресурса и найдёт ответ.

На данный момент, в одном из проектов, рассматриваю вариант внедрения отказоустойчивого решения для работы MySQL на нескольких серверах. Репликация данных между серверами должна быть синхронной. Уход от MySQL не планируется.

В глаза сразу бросается использование какой-либо реализации кластера MySQL, и рассматриваю несколько решений:

К сожалению, ранее с ними не работал и моих практических/теоретических знаний по ним немного(поднял Percona XtraDB Cluster на виртуалках - с виду работает). Русской информации так же гуглится немного. Надеюсь, многоуважаемое сообщество, поможет мне с выбором технологии.

Из исходных данных:
  • Проект работает с одним MySQL 5.5 сервером. Таблицы innodb
  • Операции чтения превалируют над операциями записи
  • Серьёзных переработок кода проекта хотелось бы избежать
  • Для реализации решения можно(и планируется) использовать 3+ сервера. Они могут быть разнесены по разным ДЦ


По большей части интересует следующее:
  1. Есть ли где-нибудь внятные материалы по сравнению всех трёх решений?
  2. Насколько стабильны кластерные решения?(вылеты нод из работы, ситуации при пропадании связи)
  3. Сильные/слабые стороны определённых решений, какие они?
  4. Обслуживание каждого из решений на уровне администратора(сложно, легко, восстановление после сбоя)?
  5. Есть ли какие-либо альтернативы?


Буду рад Вашим ответам :)

PS Так как в данной теме ещё "плаваю", мог упустить какие-либо важные детали или вопросы, которые могут возникнуть по ходу изучения/внедрения технологии. Если Вы подскажете их - это будет очень круто!
  • Вопрос задан
  • 14024 просмотра
Решения вопроса 1
m3a1
@m3a1 Автор вопроса
www.nixys.ru
Всем спасибо за помощь!

В конечном итоге была выбрана кластеризация с использованием Percona Cluster, как наиболее стабильное решение с наименьшими затратами на внедрение.

В работу внедрили уже несколько кластеров на Percona(пока что из 3х серверов). Падение одной ноды переживает нормально. Проблем с какой-либо потерей данных не наблюдается.

Да, при географическом распределении, при записи данных, задержки есть. Но между Селектел и Hetzner - вполне терпимы.
Между Питером и Москвой тоже не очень большие(всё зависит от способа работы сайта с БД).

Как итог - можно использовать Percona Cluster и не бояться :) Всё зависит от допустимой "деградации" Вашей системы. В данном случае это некоторая задержка при записи данных(но ведь запросов на запись обычно меньше, чем на чтение ;))
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
Перкона использует галера кластер решение
В стандартном мускуле все на NDB таблицах
Кластер и разнесение по датацентрам маловероятное решение , тут либо синхронная работа либо дикие задержки если сервера далеко.
Ответ написан
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Percona XtraDB Cluster и MariaDB Galera Cluster у меня на тесте работали одинаково в пределах погрешности, стандартный мускуль сильно хуже.
1. Самые внятные материалы - официальная дока проектов, все ховту что я находил (года 2 назад было) не соответствовали реальности
2. Стабильность очень средняя, вылет одной ноды переживает нормально, вылет 2х и более одновременно на галера и клонах (мускуль даже не тестировал из за поганой производительности) с непредсказуемым результатом от нормально до полной рассинхронизации с необходимостью ручного вмешательства, от чего зависит не понял, похоже фаза луны.
3. Сильные - таки удобно, слабые - было нестабильно, сейчас не знаю, ну и при разных географически площадках сильные тормоза, очень требовательно к среде передачи данных.
4. От пары минут, до восстановления с последнего бэкапа.
5. Кластер на уровне ФС, а не мускулей, Оракл.
Ответ написан
@andreylartsev
1. MariaDB Gallera Cluster и Percona Cluster это по сути одно и то же решение, так как базируется на одной технологии - Gallera library (https://github.com/codership/galera)
https://mariadb.com/kb/en/mariadb/what-is-mariadb-...
www.percona.com/doc/percona-xtradb-cluster/5.6/int...

2. Oracle MySQL Cluster это sharded In memory DB. Это решение скорее для low latency а не для High availability.
Главный недостаток это коммерческая лицензия которая будет стоить в зависимости от размера БД и может стоить десятки и сотни тысяч зеленых денег.
И часть SQL кода скорее всего придется переписать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы