В чем разница между MySQL Fabric и MySQL Cluster

9

Я новичок в мире MySQL и был смущен двумя. Разве они оба не обеспечивают высокую доступность и шардинг?

Кроме того, как сравнить WebScaleSQL?

Mark13426
источник

Ответы:

20

Эти 3 вещи не имеют ничего общего друг с другом. Я дам вам введение, и вы можете искать или запрашивать более подробную информацию отдельно:

MySQL Cluster - это маркетинговое название того, что многие из нас называют - чтобы избежать путаницы, подобной той, от которой вы сейчас страдаете, - «NDB Cluster» или «MySQL NDB Cluster». Это синхронное хранилище значений ключей, главным образом, только для памяти, которое допускает архитектуру без общего доступа для MySQL (предоставляя серверную часть NDB Engine). Он обеспечивает автоматическое разбиение (таким образом, лучшую пропускную способность чтения и записи) и высокую доступность, Он хорошо работает для систем с малыми данными с высокой пропускной способностью, но его относительно сложно настроить (что приводит к проблемам, если он неправильно настроен или используется непреднамеренным образом), и это не лучшая задержка. мудрый (грубая скорость). Это упрощенная версия (ее можно использовать не только для памяти и ключа, но она была разработана для этого). На мой взгляд, это очень хороший пример разработки, но он имеет ограниченные варианты использования, поскольку это продукт, отличный от обычного сервера MySQL с отдельными загрузками (и требует использования определенного движка).

MySQL Fabric - это набор инструментов / промежуточного программного обеспечения, написанный на python, который позволяет управлять набором обычных серверов MySQL в реплицированной среде GTID . Это не кластер как таковой, но это облегчает управление одним. У него есть ссылки (на данный момент) на соединители Java и Python, поэтому он может автоматически обрабатывать сегментирование и высокую доступность серверов, но это слой поверх обычных серверов MySQL и обычной репликации (можно использовать обычные механизмы хранения, такие как InnoDB) , Репликация до сих пор является асинхронной (или полусинхронной), поэтому она не может обеспечить лучшую согласованность и безопасность; это может измениться в будущих версиях 5.7. Тем не менее, этот подход имеет меньше накладных расходов и использует более привычную технологию репликации MySQL DBA. MySQL Fabric является относительно новым детищем в этом районе, поэтому еще не очень расширен, но, похоже, это реакция Oracle (вместе с объявленной синхронной репликацией) на кластеры Galera конкурента.

Если вам понадобился шардинг и HA, вы можете использовать один из двух предыдущих продуктов, но, вероятно, для совершенно других сценариев.

WebScaleSQL - это не решение высокой доступности , как и предыдущие, это просто название, которое несколько компаний дали форку / версии MySQL, где они делятся определенными патчами, которые им нужны, и, возможно, Oracle не применил. Насколько я знаю, он был создан Facebook, Twitter, LinkedIn и Google, и они переоценивают свои собственные версии MySQL поверх этой общей базы. Они не предоставляют поддержку или бинарные выпуски. Если вы конечный пользователь, вам, вероятно, не стоит его использовать, но вы должны следить за проектом, чтобы увидеть, что из него получится, или ответ других поставщиков.

Если вы пытаетесь научиться / начать с MySQL HA / масштабирования, начните с базовой репликации MySQL (она может быть не самой лучшей, но начинать проще), затем вы можете перейти к другим решениям: DRBD [ sic], GTID-репликация, NDB, Galera, Tungsten.

jynus
источник
Почему вы ставите «[sic]» после имени DRBD? Я смотрел на них, и они кажутся довольно впечатляющими с технологической точки зрения.
Верас
DRBD - это технология уровня блоков, которая означает, что она ничего не знает о БД или ее буферах. Не ожидайте отличной производительности для систем OLTP; он не может быть активно-активным (даже не в режиме только для чтения), если MySQL падает, вы должны восстановить его, так как он произошел локально, и он не защищает вас от повреждения базы данных. На логическом уровне это не чистая технология «без разделения ресурсов» - это скорее распределенный RAID, поэтому он не на 100% подходит для MySQL. Это хорошо для загрузки с низкой записью или если вам нужно распределить несколько протоколов одновременно. Полусинхронная репликация на основе строк превосходит все остальные.
января
@ Vérace ... В общем, это возражение против варианта использования (кластеризация MySQL), я не имею ничего против этой технологии в других случаях, когда протоколы более высокого уровня могут быть недоступны / это может быть лучше.
января
Я прекрасно понял - пункт о буферизации сделан хорошо - DRBD, как вы говорите, ничего не знает о внутренностях MySQL - то есть вещи, зафиксированные, но еще не записанные на диск, будут потеряны в случае сбоя.
Vérace
2

MySQL Fabric реализован в виде узла / процесса MySQL Fabric (который выполняет функции управления) и соединителей с поддержкой Fabric, которые могут направлять запросы и транзакции непосредственно на наиболее подходящий MySQL Server. Узел MySQL Fabric хранит информацию о состоянии и маршрутизации в своем хранилище состояний (которое является базой данных MySQL).

MySQL Cluster - это технология, которая позволяет кластеризовать базы данных в памяти в системе без совместного использования ресурсов. Архитектура без общего доступа позволяет системе работать с очень недорогим оборудованием и с минимальными требованиями к оборудованию или программному обеспечению.

Elayachi
источник