Co to jest replikacja z wieloma wzorcami?

Replikacja z wieloma wzorcami jest techniką wykorzystywaną przez oprogramowanie do zarządzania bazami danych, dzięki której wiele kopii jednej bazy danych przechowywanych na różnych komputerach może być używanych i aktualizowanych przez wielu użytkowników w sposób zdecentralizowany. Po wprowadzeniu zmiany w bazie danych, która korzysta z replikacji na wielu wzorcach, wprowadzona zmiana jest przesyłana do wszystkich innych komputerów w sieci, dzięki czemu wszystkie kopie używanej bazy danych są aktualizowane. Niektóre zalety konfiguracji replikacji z wieloma wzorcami obejmują nadmiarowe kopie zapasowe danych i zdecentralizowaną architekturę, w której można utrzymywać aktualizacje kopii bazy danych, nawet jeśli jeden z komputerów w sieci przestanie działać. Bez jednego przypisanego systemu nadrzędnego, jak to ma miejsce w architekturze master-slave, zmiany i polecenia administracyjne do kontroli bazy danych mogą być wydawane z dowolnego terminala z wieloma nadrzędnymi w sieci, zamiast polegać tylko na jednym fizycznym terminalu. Największa komplikacja, jaka może wystąpić podczas korzystania z systemu replikacji z wieloma wzorcami, polega na dostatecznie szybkiej aktualizacji wszystkich systemów, aby dane pozostały zsynchronizowane przez cały czas w całej sieci.

Termin „multi-master” wywodzi się z bardziej podstawowej metody replikacji master-slave, w której pojedynczy terminal jest określany jako master. W sytuacji master-slave tylko jeden master może aktualizować informacje na dyskach slave. System replikacji z wieloma wzorcami ma wiele systemów wyznaczonych jako systemy nadrzędne, a każdy system główny może być odpowiedzialny tylko za siebie lub za pewną liczbę komputerów, znanych jako grupa replikacji. W przypadku wielu systemów nadrzędnych każdy system nadrzędny może zainicjować zmianę we wszystkich innych systemach nadrzędnych, potencjalnie prowadząc do bardzo złożonych interakcji sieciowych w bardzo dużych systemach.

Istnieją dwie formy replikacji z wieloma wzorcami, z których pierwsza to replikacja synchroniczna. Replikacja synchroniczna działa poprzez aktualizowanie w czasie rzeczywistym wszystkich kopii bazy danych za każdym razem, gdy wprowadzana jest zmiana. Eliminuje to większość sytuacji, które mogą wystąpić, gdy dane nie są synchronizowane w sieci, ale generuje ogromny ruch sieciowy i może wymagać dużej mocy obliczeniowej do wdrożenia w większym systemie. Z tych powodów replikacja synchroniczna jest używana głównie w sieciach, w których jest tylko kilka komputerów głównych.

Drugim typem replikacji z wieloma wzorcami jest replikacja asynchroniczna. Zamiast aktualizować systemy za każdym razem, gdy wprowadzana jest zmiana, zmiany w bazie danych są przechowywane jako zdarzenia w każdym systemie, a zmiany te są stosowane po wyzwoleniu zdarzenia lub podczas zaplanowanych okresów aktualizacji. Oznacza to, że wykorzystywana jest mniejsza przepustowość sieci i moc obliczeniowa, ale zwiększa to prawdopodobieństwo, że dwóch użytkowników może w pewnym momencie spróbować zmienić te same informacje w sprzeczny sposób z powodu opóźnienia aktualizacji lub opóźnienia. Większość systemów zarządzania rozproszonymi bazami danych korzysta z replikacji asynchronicznej ze względu na małą ilość zużywanych zasobów w porównaniu z synchroniczną replikacją z wieloma wzorcami.