Jaka jest różnica między MySQL Fabric a MySQL Cluster


Odpowiedzi:


20

Te 3 rzeczy nie mają ze sobą nic wspólnego. Dam ci wprowadzenie i możesz osobno wyszukać lub poprosić o więcej szczegółów:

MySQL Cluster to nazwa marketingowa tego, co wielu z nas nazywa - aby uniknąć nieporozumień takich jak ten, na który obecnie cierpisz - „NDB Cluster” lub „MySQL NDB Cluster”. Jest to zsynchronizowany magazyn kluczy i wartości głównie z pamięcią, który pozwala na architekturę MySQL typu „nic wspólnego” (stanowiącą zaplecze silnika NDB). Zapewnia automatyczne dzielenie na fragmenty (dzięki temu lepszą przepustowość odczytu i zapisu) i wysoką dostępność. Działa dobrze w przypadku wysokoprzepustowych systemów z małymi danymi o wysokiej przepustowości, ale jego konfiguracja jest stosunkowo skomplikowana (prowadzi do problemów, jeśli nie jest poprawnie skonfigurowana lub jest używana w niezamierzony sposób) i nie jest najlepszą opcją opóźnienia mądry (prędkość surowa). Jest to wersja uproszczona (może być używana do czegoś więcej niż tylko pamięci i wartości klucza, ale została zaprojektowana wokół niego). Moim zdaniem jest to bardzo dobry kawałek inżynierii, ale ma ograniczone przypadki użycia, ponieważ jest to inny produkt niż zwykły serwer MySQL z osobnymi plikami do pobrania (i wymaga użycia określonego silnika).

MySQL Fabric to zestaw narzędzi / oprogramowania pośredniego napisany w języku python, który umożliwia zarządzanie zestawem zwykłych serwerów MySQL w replikowanym środowisku GTID . Nie jest to klaster sam w sobie, ale ułatwia zarządzanie jednym. Zawiera łącza do (na razie) łączników Java i Python, dzięki czemu może automatycznie obsługiwać dzielenie na fragmenty i wysoką dostępność serwerów, ale jest warstwą na zwykłych serwerach MySQL i regularnej replikacji (można używać zwykłych silników pamięci masowej, takich jak InnoDB) . Replikacja do tej pory jest asynchroniczna (lub półsynchroniczna), więc może nie zapewniać najlepszej spójności i bezpieczeństwa; może to ulec zmianie w przyszłych wersjach 5.7. Jednak to podejście ma mniejszy narzut związany z opóźnieniami i wykorzystuje bardziej znaną technologię replikacji MySQL DBA. MySQL Fabric jest stosunkowo nowym dzieckiem w okolicy, więc nie jest jeszcze bardzo rozszerzone, ale wydaje się, że jest reakcją Oracle (wraz z zapowiedzianą synchroniczną replikacją) na klastry oparte na Galera konkurenta.

Jeśli potrzebujesz shardingu i HA, możesz użyć jednego z dwóch poprzednich produktów, ale prawdopodobnie w zupełnie innych scenariuszach.

WebScaleSQL nie jest rozwiązaniem HA, podobnie jak poprzednie, to tylko nazwa, którą kilka firm nadało rozwidleniu / wersji MySQL, w której udostępniają określone poprawki, których potrzebują i być może Oracle nie zastosowało. O ile wiem, został stworzony przez Facebooka, Twittera, LinkedIn i Google, a oni bazują swoje własne wersje MySQL na tej wspólnej bazie. Nie zapewniają wsparcia ani wersji binarnych. Jeśli jesteś użytkownikiem końcowym, prawdopodobnie nie powinieneś się nim przejmować, ale powinieneś mieć oko na projekt, aby zobaczyć, co z niego ewoluuje, lub reakcję innych dostawców.

Jeśli próbujesz nauczyć się / zacząć od MySQL HA / skalowania, zacznij od podstawowej replikacji MySQL (może nie być to najlepsze, ale najłatwiej jest zacząć), możesz przejść do innych rozwiązań: DRBD [ sic], replikacja GTID, NDB, Galera, wolfram.


Dlaczego umieszczasz „[sic]” po nazwie DRBD? Patrzyłem na nie i wydają się dość imponujące z technologicznego punktu widzenia.
Vérace

DRBD to technologia na poziomie bloku, co oznacza, że ​​nie wie nic o DB ani jej buforach. Nie oczekuj doskonałej wydajności systemów OLTP; nie może być aktywny-aktywny (nawet tak, jak w trybie tylko do odczytu), jeśli MySQL ulegnie awarii, musisz odzyskać system, ponieważ ulegał awarii lokalnie, i nie chroni cię przed uszkodzeniem bazy danych. Nie jest to czysta technologia „nic wspólnego” na poziomie logicznym - jest bardziej rozproszoną macierzą RAID, więc nie jest w 100% dostosowana do MySQL. Jest to przydatne przy niskim obciążeniu zapisu lub w przypadku konieczności dystrybucji kilku protokołów jednocześnie. W przeciwnym razie replikacja synchronizacji półsynchronicznej jest lepsza.
jynus

@ Vérace ... Podsumowując, jest to zastrzeżenie przypadku użycia (klastrowanie MySQL), nie mam nic przeciwko tej technologii w innych przypadkach, w których protokoły wyższego poziomu mogą być niedostępne / może być lepiej dopasowane.
jynus

Zrozumiałem doskonale - kwestia buforowania jest dobrze wykonana - DRBD, jak mówisz, nic nie wie o wewnętrznych elementach MySQL - tzn. Rzeczy popełnione, ale jeszcze nie zapisane na dysku zostaną utracone w razie awarii.
Vérace

2

MySQL Fabric jest implementowany jako węzeł / proces MySQL Fabric (który wykonuje funkcje zarządzania) i konektory rozpoznające Fabric, które są w stanie kierować zapytania i transakcje bezpośrednio do najbardziej odpowiedniego serwera MySQL. Węzeł MySQL Fabric przechowuje informacje o stanie i routingu w swoim magazynie stanu (który jest bazą danych MySQL).

MySQL Cluster to technologia, która umożliwia klastrowanie baz danych w pamięci w systemie współdzielonego braku danych. Architektura „nic wspólnego” umożliwia systemowi pracę z bardzo niedrogim sprzętem i minimalnymi szczegółowymi wymaganiami dotyczącymi sprzętu lub oprogramowania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.