У чому різниця між MySQL Fabric і MySQL Cluster


9

Я новачок у світі MySQL і розгубився двома. Хіба вони не забезпечують високої доступності та заточування?

Крім того, як порівнює WebScaleSQL?

Відповіді:


20

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

MySQL Cluster - це маркетингова назва того, що багато хто з нас називає - щоб уникнути плутанини, як та, з якою ви зараз страждаєте - "NDB Cluster" або "MySQL NDB Cluster". Це синхронний, в основному, лише запам’ятовуваний ключ-значення, що дозволяє архітектурі MySQL, що ділиться загальним доступом (надаючи вихідний механізм для двигуна NDB). Він забезпечує автоматичне заточування (таким чином, краще пропускну здатність для читання та запису) та високу доступність. Він добре працює для систем з малими даними з високою пропускною здатністю, але він є досить складним у налаштуванні (це призводить до проблем, якщо він не налаштований правильно, або він використовується ненавмисно), і це не найкраща затримка, мудрий (сирий швидкість). Це спрощена версія (її можна використовувати більше, ніж лише для пам'яті та ключового значення, але вона була розроблена навколо неї). На мою думку, це дуже хороший інженерний проект, але він має обмежені випадки використання, оскільки це інший продукт, ніж звичайний сервер MySQL з окремими завантаженнями (і вимагає використання певного двигуна).

MySQL Fabric - це набір інструментів / проміжних програм, написаних пітоном, що дозволяє керувати набором регулярних серверів MySQL у реплікуваному середовищі GTID . Він не є кластером сам по собі, але це полегшує управління одним. Він має посилання на (поки що) роз'єми Java та Python, тому він може автоматично обробляти заточування та високу доступність серверів, але це шар поверх звичайних серверів MySQL та регулярної реплікації (можна використовувати звичайні системи зберігання даних, такі як InnoDB) . Реплікація до цих пір є асинхронною (або напівсинхронною), тому може не забезпечити сама по собі найкращої послідовності та безпеки; це може змінитися в майбутніх 5.7 версіях. Однак такий підхід має менші витрати на затримку і використовує більш звичну технологію реплікації MySQL DBA. MySQL Fabric є відносно новим малюком у сусідньому районі, тому ще не дуже розширеним, але, схоже, це реакція Oracle (разом із оголошеною синхронною реплікацією) на кластери на базі конкурента в Галері.

Якщо вам знадобилося шардинг і HA, ви можете використовувати один з двох колишніх продуктів, але, ймовірно, для абсолютно різних сценаріїв.

WebScaleSQL не є рішенням HA, як попередні, це лише назва, яку кілька компаній дали форк / версії MySQL, де вони діляться конкретними патчами, які їм потрібні, і, можливо, Oracle не застосував. Наскільки я знаю, її створили Facebook, Twitter, LinkedIn та Google, і вони перезавантажують власні версії MySQL поверх цієї загальної бази. Вони не надають підтримки або бінарних версій. Якщо ви є кінцевим користувачем, ви, ймовірно, не повинні дбати про його використання, але слідкуйте за проектом, щоб побачити, що буде розвиватися від нього, або за реакцією інших постачальників.

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


Чому ви ставите "[sic]" після імені DRBD? Я подивився на них, і вони здаються досить вражаючими з технологічної точки зору.
Vérace

DRBD - це технологія на рівні блоків, що означає, що вона нічого не знає про БД або її буфери. Не чекайте великої продуктивності для систем OLTP; він не може бути активно-активним (навіть не в режимі лише для читання), якщо MySQL виходить з ладу, вам доведеться відновити, як він локально вийшов з ладу, і це не захистить вас від пошкодження бази даних. Це не чиста технологія "спільного нічого" на логічному рівні - це більше розподілений RAID, тому він не відповідає 100% для MySQL. Це добре для низького запису або якщо вам потрібно розподілити кілька протоколів одночасно. Реплікація напівсинхронізації на основі рядків перевершує інше.
jynus

@ Vérace ... Підсумовуючи це, за підсумком, це заперечення щодо використання (кластеризація MySQL), я не маю нічого проти технології в інших випадках, коли протоколи вищого рівня можуть бути недоступними / це може бути краще.
jynus

Я чудово розумів - питання про буферизацію зроблено добре - DRBD, як ви кажете, нічого не знає про внутрішні файли MySQL - тобто речі, зроблені, але ще не записані на диск, будуть втрачені в разі аварії.
Vérace

2

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.