Rozproszony konsensus
Last updated
Last updated
Mówi się, że rozumie go tylko kilka osób na świecie.
Replication and Fault Tolerant - nastawiony na czytelność i pragmatyzm.
wybór lidera (leader election) - wybór jednego lidera i późniejsze reelekcje
replikacja logu (log replication) - lider aktualizuje log i replikuje go na pozostałe instancje
bezpieczeństwo (safety) - raz zapisany indeks nie może być zmieniony na innej instancji
każdy z serwerów w klastrze RAFT może mieć w danym momencie jedną z trzech ról:
lider (leader)
stronnik (follower)
kandydat (candidate)
czas działania jest podzielony na kadencje
każda kadencja może mieć tylko jednego lidera
niektóre kadencje nie mają liderów (nieudane wybory)
każda instancja utrzymuje aktualną kadencję
wymieniana w każdej komendzie
dostajemy nowszą kadencję - wracamy do statusu follower
dostajemy starszą kadencję - zwracamy błąd
Podstawowym budulcem RAFT są wywoływane przez lidera zdalne procedury.
Mamy poszczególne klastry z czasem odpowiedzi. Jeśli czas odpowiedzi jest niski, to klaster prosi o głos na samego siebie. Jeśli klastry nie zdążyły odpowiedzieć, a dostały prośbę o głos, głosują na lidera.
wymaga działania większości node'ów
cały ruch przechodzi przez jednego lidera
brak wsparcia dla problemu bizantyjskich generałów