Stawiamy na dostępność, spójność i złożoność. Aby najpierw odpowiedzieć na ostatnie pytanie: czy to ma znaczenie? Tak, bardzo! Wybory dotyczące sposobu zarządzania danymi są absolutnie fundamentalne i nie ma „najlepszych praktyk” uchylających się od decyzji. Musisz zrozumieć swoje szczególne wymagania.
Istnieje fundamentalne napięcie:
Jedna kopia: spójność jest łatwa, ale jeśli zdarzy się, że spadnie, wszyscy są poza wodą, a jeśli ludzie są daleko, mogą zapłacić straszne koszty komunikacji. Umieść na zdjęciu urządzenia przenośne, które mogą wymagać odłączenia, a jedna kopia go nie przytnie.
Master Slave: spójność nie jest zbyt trudna, ponieważ każdy element danych ma dokładnie jednego właściciela. Ale co zrobisz, jeśli nie możesz zobaczyć tego mistrza, potrzebna jest jakaś odłożona praca.
Mistrz-mistrz: cóż, jeśli możesz sprawić, że to zadziała, to wydaje się, że oferuje wszystko, nie ma pojedynczego punktu awarii, każdy może pracować przez cały czas. Problem polega na tym, że bardzo trudno jest zachować absolutną spójność. Więcej informacji znajdziesz w artykule na Wikipedii .
Wikipedia wydaje się mieć fajne podsumowanie zalet i wad
Zalety
Jeśli jeden master zawiedzie, inni będą kontynuować aktualizację bazy danych.
Masters mogą być zlokalizowane w kilku fizycznych lokalizacjach, tj. Rozproszone w całej sieci.
Niedogodności
Większość systemów replikacji typu multi-master jest tylko luźno spójnych, tj. Leniwych i asynchronicznych, co narusza właściwości ACID.
Systemy chętnej replikacji są złożone i wprowadzają pewne opóźnienia w komunikacji.
Problemy, takie jak rozwiązywanie konfliktów, mogą stać się nie do rozwiązania, gdy liczba zaangażowanych węzłów wzrasta, a wymagane opóźnienie maleje.