2009-12-30 10 views
9

Chcę zaimplementować NDB Cluster dla MySQL Cluster 6. Chcę to zrobić dla bardzo dużej struktury danych z minimum 2 milionami rekordów.Jakie są ograniczenia implementacji Klastra NDB MySQL?

Chcę wiedzieć, czy są jakieś ograniczenia dotyczące wdrażania klastra NDB. Na przykład rozmiar pamięci RAM, liczba baz danych lub rozmiar bazy danych dla klastra NDB.

Odpowiedz

15

2 miliony baz danych? Zakładam, że miałeś na myśli "rzędy".

W każdym razie, w odniesieniu do ograniczeń: jedną z najważniejszych rzeczy, o których należy pamiętać, jest to, że NDB/MySQL Cluster nie jest bazą danych ogólnego przeznaczenia. Przede wszystkim operacje łączenia, ale także podkwerendy i zakresy operacji (zapytania takie jak: zamówienia utworzone między teraz a tydzień temu), mogą być znacznie wolniejsze niż można się spodziewać. Jest to częściowo spowodowane faktem, że dane są dystrybuowane w wielu węzłach. Chociaż dokonano pewnych ulepszeń, wydajność łączenia wciąż może być bardzo rozczarowująca.

Z drugiej strony, jeśli musisz radzić sobie z wieloma (najlepiej małymi) równoległymi transakcjami (zazwyczaj pojedyncze aktualizacje/wstawienia/usuwać wyszukiwania według klucza podstawowego), a ty zarządzasz przechowywaniem wszystkich danych w pamięci, to może być bardzo skalowalnym i wydajnym rozwiązaniem.

Powinieneś zadać sobie pytanie, dlaczego chcesz klastra. Jeśli po prostu chcesz mieć swoją zwykłą bazę danych, którą masz teraz, z wyjątkiem sytuacji, gdy masz dostępną 99,999% dostępności, możesz być rozczarowany. Z pewnością klaster MySQL może zapewnić Ci dużą dostępność i czas pracy, ale obciążenie aplikacji może nie być zbyt dobrze dostosowane do tego, do kogo klaster jest dobry. Ponadto możesz skorzystać z innego rozwiązania wysokiej dostępności, aby wydłużyć czas pracy tradycyjnej bazy danych.

BTW - oto lista ograniczeń, jak na doc: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

Ale cokolwiek zrobisz, wypróbować klaster, zobaczyć, czy jego dobre dla ciebie. Klaster MySQL nie jest "MySQL + 5 dziewiątek". Dowiesz się, kiedy spróbujesz.

1

Klastra NDB ma dwa typy opcji przechowywania.

1.W pamięci. 2. Przechowywanie dysków.

Wprowadzono NDB jako pamięć danych, aw wersji 7.4 (MYSQL 5.6) rozpoczęto obsługę pamięci dyskowej.

Aktualna wersja 7.5 (MySQL 5.7) obsługuje pamięć dyskową iw takim przypadku nie będzie ograniczeń rozmiaru, ponieważ dane będą przechowywane na dysku, a limit zależy od miejsca na dysku dostępnego z Tobą.
konfiguracje Disk Storage - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

w magazynie pamięci w zestawie NDB jest dość dojrzały i można określić zużycie pamięci w węźle zarządzanie config.ini pliku. przykład - DataMemory = 3072M IndexMemory = 384M

w przeciętnej tabeli (w zależności od danych przechowywanych w kolumnach) powierzchnia dB powinny być mniejsza niż 1 GB, który może być łatwo skonfigurowany.

Uwaga - we własnej implementacji napotkałem jedno wyzwanie wydajnościowe, ponieważ wydajność NDB pogarsza się wraz ze wzrostem liczby wierszy w tabeli. Podczas odczytu współbieżnego o dużej obciążalności ulegnie degradacji wraz z rosnącą liczbą wierszy. Upewnij się, że nie przechodzisz do pełnego skanowania tabeli i dostarczasz wystarczającego predykatu klauzuli. Dla prawidłowej wydajności zdefiniuj indeks wtórny zgodnie ze swoim wzorem zapytania. Definiowanie indeksu wtórnego ponownie zwiększy zużycie pamięci, aby odpowiednio zaplanować wzorzec zapytania i zasoby pamięci.

Powiązane problemy