Rozproszone bazy danych rozproszone w wielu regionach wykorzystują georeplikację do przesyłania danych z jednego regionu do drugiego. Takie systemy wykorzystują konsensus kworum, aby zapewnić odporność na błędy. Odczyty i zapisy powinny być również uporządkowane. Geo-replikacja zwiększa wysoką dostępność dla systemów danych, ponieważ jeśli jeden region ulegnie awarii, inne regiony są dostępne do obsługi żądań.
Kworum
Na powyższym obrazku P reprezentuje węzeł podstawowy, a S1, S2 i S3 są węzłami drugorzędnymi. P, S1, S2 i S3 połączone razem reprezentują jedną jednostkę repliki. Każda jednostka repliki jest odporna na błędy; tj. awaria jednego węzła nie wpłynie na dostępność. Jeśli główny węzeł ulegnie awarii, jeden z pozostałych węzłów pomocniczych zostanie wybrany jako następny główny. W takiej konfiguracji, gdy klient wysyła żądanie zapisu W1 do węzła podstawowego, węzeł podstawowy, oprócz utrwalenia danych w swojej pamięci masowej, wyśle je również do wszystkich węzłów pomocniczych. Węzeł główny potwierdzi klientowi tylko wtedy, gdy większość węzłów w jednostce repliki potwierdzi zapis.
Odczyty mogą odbywać się z dowolnego węzła, a nie tylko z głównego. W powyższej konfiguracji jednostka repliki jest odporna na awarię jednego węzła; tj. kworum jest osiągane, gdy większość (na przykład trzy z czterech) węzłów ma zapis. Opóźniony lub uszkodzony węzeł można odzyskać, kopiując wszystkie dane ze zdrowego węzła. Gdy dwa węzły ulegną awarii, kworum nie może zostać osiągnięte, ponieważ nie ma większości.
Geo-replikacja i globalne kworum
W geo-replikacji, oprócz danego regionu podstawowego posiadającego operację zapisu, żądanie jest również replikowane do wszystkich innych regionów drugorzędnych. Pomaga to w zapewnieniu wysokiej dostępności w przypadku awarii regionu. Na przykład, jeśli East US ulegnie awarii, wówczas West US może obsługiwać żądania, stając się nowym regionem podstawowym. Działanie to nazywane jest przełączaniem awaryjnym i może być wykonywane automatycznie lub ręcznie. Region podstawowy w tym przypadku może potwierdzić żądanie zapisu tylko wtedy, gdy większość innych regionów drugorzędnych widziała żądanie zapisu. Jest to podobne do tego, co dzieje się w lokalnym kworum w jednostce repliki.
Typy georeplikacji
Gdy klient wysyła żądanie zapisu do regionu podstawowego, jest ono replikowane do innych drugorzędnych regionów danych za pośrednictwem specjalnego regionu drugorzędnego (XS). Na przykład, jeden z pozostałych regionów drugorzędnych jest wybierany do wykonania tej replikacji. Węzeł XS będzie czekał na potwierdzenie większości regionów, zanim będzie mógł zatwierdzić swój magazyn.
Istnieją zasadniczo dwa rodzaje strategii replikacji geograficznej, jak omówiono poniżej:
Georeplikacja synchroniczna
W tym przypadku główny węzeł regionu zapisu czeka na potwierdzenie od XS, nawet jeśli już zaspokoił swoje lokalne kworum. Na przykład wysyła potwierdzenie do klienta tylko wtedy, gdy istnieje zarówno lokalne, jak i globalne kworum.
Asynchroniczna georeplikacja
W tym przypadku główny węzeł regionu zapisu nie czeka na potwierdzenie od XS. Na przykład może wysłać potwierdzenie do klienta, gdy istnieje lokalne kworum.
Jak widzimy w przypadku synchronicznej georeplikacji, dane nigdy nie są tracone. Na przykład większość węzłów i regionów będzie miała dane. Jednak w przypadku replikacji asynchronicznej, jeśli tylko jeden region wie o danych, mogą wystąpić regionalne awarie powodujące utratę danych. Systemy replikacji asynchronicznej są jednak szybsze w porównaniu do systemów replikacji synchronicznej, ponieważ czas oczekiwania na potwierdzenie jest krótszy. Komercyjne bazy danych znajdują równowagę między tymi dwoma podejściami.
Wnioski
Ten artykuł zawiera krótki przegląd kworum, globalnego kworum i dwóch typów georeplikacji. Bazy danych obsługujące georeplikację oferują wysoką dostępność z możliwością ręcznego lub automatycznego przełączania awaryjnego. Oferują dobrą skalowalność, gdy dane są rozproszone geograficznie. Architektury te zapewniają ciągłość biznesową i szybkie odzyskiwanie danych w przypadku katastrof regionalnych lub awarii na dużą skalę.