Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon W jaki sposób MongoDB obsługuje migrację danych między odłamkami


W jaki sposób MongoDB obsługuje migrację danych między odłamkami


MongoDB obsługuje migrację danych między odłamkami przede wszystkim poprzez proces zwany migracją fragmentową, który jest integralną częścią architektury odłamków zaprojektowanej do równomiernego dystrybucji danych przez wiele odłamków w klastrze. Sharding w MongoDB to metoda stosowana do poziomej skalowania bazy danych poprzez podział danych na wielu serwerach lub odłamkach. Ten system wykorzystuje klucz odłamka, który jest polem lub zestawem pól w dokumencie, który określa rozkład danych. Aby zarządzać migracją danych między odłamkami, MongoDB korzysta z procesu tła o nazwie Balancer, który w razie potrzeby optymalizuje rozkład danych poprzez migrację zakresów danych (lub fragmentów).

SHARDED CLUSTER I MIGRACJA PRZEWODNIK

MongoDB dzieli zbiory odłamków na kawałki, które są przylegającymi zakresami wartości kluczowych. Każdy kawałek należy do określonego odłamka, a te fragmenty łącznie przechowują cały zestaw danych. Balancer monitoruje dystrybucję kawałków przez odłamki i migruje kawałki między odłamkami, aby zachować równowagę. Ten mechanizm migracji pomaga unikać hotspotów, poprawić wydajność zapytań i optymalizować wykorzystanie zasobów.

Migracja fragmentu jest korzystna w scenariuszach, takich jak w przypadku dodawania nowych odłamków do klastra, gdy dane rosną nierównomiernie powodując nierównowagę lub gdy strefy należy na nowo zdefiniować w przypadku lokalizacji danych lub wymagań regulacyjnych. Migracja działa na poziomie kawałka, przesuwając cały zakres wartości kluczowych z jednego odłamka do drugiego.

Szczegóły procesu migracji

Migracja mikrofonowa MongoDB działa w kilku fazach:

1. Wybór poruszania się: Balancer lub administrator wybiera fragment, który wymaga ponownego przypisania do innego odłamka, aby zrównoważyć klaster.

2. Faza klonu: Odłamek dawcy (ten, który obecnie trzyma fragment) kopiuje wszystkie dokumenty w fragmencie odłamka odbiorcy. W tym czasie śledzone są również nowe zapisy do części odłamka dawcy.

3. Faza nadrabiania zaległości: Odłamek odbiorcy stosuje wszelkie zapisy, które miały miejsce podczas fazy klonowej, aby zapewnić, że ma najbardziej aktualne dane.

4. Sekcja krytyczna i zatwierdzenie: Odłamek dawcy wprowadza sekcję krytyczną, w której operacje zapisu do fragmentu są krótko zablokowane, a własność fragmentu jest atomicznie przełączana na odłamek odbiorcy.

5. Usuń fazę: Odłamek dawcy asynchronicznie usuwa dokumenty należące do migrowanego kawałka, gdy potwierdzi, że odbiorca z powodzeniem popełnił fragment.

Balancer zapewnia, że ​​tylko jedna migracja na odłamek ma miejsce jednocześnie, aby zminimalizować wpływ na wydajność odłamka. Może wykonywać wiele migracji równolegle w różnych parach odłamków, jeśli są one niezależne.

Automatyczny równoważenie

Balancer działa jako wątek w tle w węźle podstawowym serwera konfiguracyjnego i stale monitoruje bilans danych odłamków. Śledzi rozmiar danych na fragment, aby ustalić, czy migracje są potrzebne zgodnie z konfigurowalnym progiem bilansu. Gdy różnice w wielkości danych między odłamkami przekraczają ten próg, równowaga inicjuje migracje.

Balancer działa w sposób przeważnie przezroczysty w zastosowaniach, ale może być tymczasowo wyłączony w celach konserwacyjnych lub strojenia. Szanuje również strefy skonfigurowane w klastrze, zapewniając migrację fragmentów w odpowiednich granicach stref.

Ręczne polecenia migracji

Podczas gdy równoważenie automatyzuje migrację fragmentu, MongoDB umożliwia również ręczną kontrolę za pomocą poleceń takich jak `` movechunk 'i `` Moverange'. Polecenia te wymuszają migrację określonych kawałków lub fragmentów od jednego odłamka do drugiego.

- `Movechunk 'służy do migracji kawałka zawierającego określoną wartość klucza odłamka do określonego odłamka. Jest to przydatne w przypadku ukierunkowanych migracji do równoważenia obciążenia lub lokalizacji danych.

- „MOVERANGE” umożliwia migrację ciągłego zakresu klawiszy odłamków, przydatnych do bardziej złożonych strategii renowacji danych.

Administratorzy mogą używać tych poleceń do wstępnego podziału fragmentów do równomiernego dystrybucji danych przed połknięciem masowym lub do rozwiązania niepowodzeń migracji spowodowanych równoważeniem ograniczeń okiennych.

Obsługa osieroconych dokumentów i spójności

Podczas i po migracji mikrofonowej osierocone dokumenty (dokumenty nie należące już do przypisanych pasm odłamków dawcy) mogą tymczasowo istnieć na odłamku dawcy, dopóki nie zostaną wyczyszczone.

MongoDB zapewnia spójność podczas migracji, stosując operacje w sekwencji i stosując mechanizm koordynacyjny, który blokuje zapisy podczas sekcji krytycznej. Po migracji Orphan Cleanup działa asynchronicznie, unikając zakłóceń z bieżącymi zapytaniami.

Rozpoczynając MongoDB 5.3, STREAMY ZMIANY nie generują zdarzeń dla aktualizacji dokumentów osieroconych podczas migracji, aby zachować dokładność strumienia zdarzeń.

Wpływ na wydajność i operacje

Migracje fragmentów przenoszą koszty ogólne, w tym zużycie pasma sieciowego, procesora procesora i dyski, które mogą wpływać na wydajność klastra. MongoDB minimalizuje ten wpływ:

- Ograniczenie uczestnictwa odłamka do jednej migracji na raz.

- Korekcja migracji i umożliwienie faz usunięcia na nakładanie się w celu szybszego rozładunku.

- Wykorzystanie opcji dławiania w celu dostrojenia współbieżności migracji i pisania troski podczas migracji.

Migracja danych tymczasowo wpływa również na odczyty wtórne, które mogą przegapić dokumenty podczas fazy oczyszczania sieroty, więc aplikacje muszą to wziąć pod uwagę przy projektowaniu zapytania.

Migracja w określonych scenariuszach

W przypadkach, takich jak migracja danych między strefami z zakresami znaczników lub od niezmienionych do konfiguracji odłamków, MongoDB migruje dane stopniowo w oparciu o zaktualizowane zakresy lub strefy kluczy Shard po ponownej konfiguracji. Na przykład usunięcie starego znacznika i utworzenie nowych, wyzwala migrację balansu w celu odpowiednio przenoszenia danych.

Podczas migracji klastrów MongoDB do rozwiązań zarządzanych przez chmurę lub między klastrami odłamkowymi, narzędzia migracyjne często wykonują migrację pod względem odłamków, kopiując dane odłamków indywidualnie przy jednoczesnym utrzymaniu rozkładów kluczy odłamków.

Narzędzia i narzędzia do migracji

Usługi transmisji danych (DTS) i inne narzędzia stron trzecich pomagają migrować dane między instancjami MongoDB lub klastrami, obsługując mapowanie odłamków, spójność danych i przyrostowe aktualizacje. Narzędzia te często obsługują migrację z klastrów nieokreślonych do odłamków, przypisując domyślne wartości klucza odłamków do danych źródłowych pozbawionych klawiszy odłamków.

Podsumowanie kluczowych punktów

- Dane partycji MongoDB w fragmenty rozmieszczone na odłamkach za pomocą klawiszy odłamków.

- Balancer automatycznie migruje fragmenty w celu utrzymania zrównoważonego rozkładu danych.

- Migracja obejmuje klonowanie danych, zapisów nadrabiania zaległości, przekazania atomowego i asynchronicznego oczyszczania.

- Migracje są ograniczone do jednego na odłamek, aby zmniejszyć wpływ systemu.

- Ręczne polecenia migracji zapewniają kontrolę administracyjną dystrybucji fragmentu.

- Dokumenty sierot są oczyszczane asynchronicznie po migracji.

- Migracja tymczasowo wpływa na wydajność i wtórną spójność odczytu.

- Migracja między strefami lub zmianami w zakresie klawiszy odłamków jest obsługiwane przez rekonfigurację wyzwalającą migracje.

- Migration tools assist with data movement between clusters or architectures.

Ten mechanizm migracji zapewnia, że ​​klastry MongoDB pozostają zrównoważone, skalowalne i wydajne w miarę ewolucji danych, a konfiguracje klastrów ewoluują, zapewniając ciągłą dostępność przy minimalnym zakłóceniu aplikacji.