Konsensus a Algoritmu Raft

Podobné dokumenty
PDV /2018 Detekce selhání

Vzájemné vyloučení procesů

Výpočet globálního stavu

Čas a kauzalita v DS

Distribuované algoritmy - přehled. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Distribuované systémy a výpočty

Technologie počítačových sítí 11. přednáška

10. Techniky formální verifikace a validace

Platební systém XPAY [

Volební řád Konference ŠSČR

Úvod do distribuovaných systémů

Síťová instalace a registrace pro progecad

Implementace dávkových operací

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Statut Výboru pro média Rady vlády České republiky pro lidská práva a Rady vlády pro záležitosti romské menšiny

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

mbank.cz mtransfer Okamžitá notifikace o mtransferu Dokumentace pro externího partnera

Zabezpečení dat při přenosu

Jazz pro Účetní (export) Příručka uživatele

Co nového v IPv6? Pavel Satrapa

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

TÉMATICKÝ OKRUH TZD, DIS a TIS

Grantové projekty. V současné době jsou zpracovány tyto části:

Konvertor diakritiky 3. Instalace

Časový harmonogram. voleb kandidáta na děkana Fakulty bezpečnostního managementu. Policejní akademie České republiky v Praze

Poruchy. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Mobilita v IP verze 6 Úvod

Uživatelská příručka MWA Modul Podpora vzdálených kalibrací dle ILAC

4EK212 Kvantitativní management. 7.Řízení projektů

SCS - Manuál. Obsah. Strana 1 (celkem 14) Verze 1.1

Aplikace AWEG3 Profil SMS. Uživatelská příručka. Aktualizace:

Katalog egon služeb verze: 0.01

1 Uživatelská dokumentace

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Popis funkcí webu s redakčním systémem, katedra 340

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

SMTPServer - Příručka

Dokumentace. k modulu. podnikový informační systém (ERP) Datové schránky

V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.

EROZA UŽIVATELSKÁ PŘÍRUČKA Aplikace Data a Dotazy

Volební řád Akademického senátu Právnické fakulty Univerzity Palackého v Olomouci ČÁST I. ÚVODNÍ USTANOVENÍ. Čl. 1 Předmět úpravy ČÁST II.

ROZŠÍŘENÉ FAXOVÉ FUNKCE

RÁDCE PRO VOLBY, POTVRZOVÁNÍ A ČINNOST DOZORČÍCH RAD STŘEDISEK DIAKONIE ČCE

Transakce a zamykání Jiří Tomeš

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

TFTP Trivial File Transfer Protocol

4EK311 Operační výzkum. 6. Řízení projektů

26 Evidence pošty. Popis modulu. Záložka Evidence pošty

Tiskové služby v sítích Microsoft. PDF created with pdffactory trial version

VOLEBNÍ ŘÁD AKADEMICKÉHO SENÁTU VETERINÁRNÍ A FARMACEUTICKÉ UNIVERZITY BRNO

Základní komunikační operace

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Vazba ESO9 na MS Outlook a MS Exchange

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

Když nám píšete jakýkoliv , pište vždy do předmětu zprávy přesný název vašeho týmu.

VOLEBNÍ A JEDNACÍ ŘÁD AKADEMICKÉHO SENÁTU AGRONOMICKÉ FAKULTY MENDELOVY UNIVERZITY V BRNĚ

ABRA POS PRINT SERVER

Firmware řídící jednotky stejnosměrného generátoru

Jazz pro Účetní (import) Příručka uživatele

INISOFT UPDATE - SLUŽBA AUTOMATICKÝCH AKTUALIZACÍ Uživatelská příručka

PŘIDÁNÍ SOUBORŮ DO OBLASTI PŘIPRAVENÝCH ZMĚN

JAK ČÍST TUTO PREZENTACI

Zkušební řád Profesní zkoušky Profesního sdružení Sanitace nápojových cest

Software pro vzdálenou laboratoř

y v TimeMakeru

- PC musí být připojené v lokální síti - je bezpodmínečně nutné, aby aplikace Outlook nebyla aktivní)

Verzovací systémy. Pořádek především!

Exponenciální modely hromadné obsluhy

ZKUŠEBNÍ ŘÁD PRO PROVÁDĚNÍ ZKOUŠEK Z ODBORNÉ ZPŮSOBILOSTI K ZAJIŠŤOVÁNÍ ÚKOLŮ V PREVENCI RIZIK

Komunikace. Úrovová architektura protokol. Úrovová architektura protokol (2) Pednášky z distribuovaných systém

Zotavení z chyb. Databázové systémy

Kybernetika a umělá inteligence, cvičení 10/11

UŽIVATELSKÁ DOKUMENTACE PRO DODAVATELE. Stav ke dni v. 2.0

Technologické postupy práce s aktovkou IS MPP

ČSOB Business Connector

Uživatelská příručka MWA Modul Podpora vzdálených kalibrací dle ILAC

HROMADNÝ ROZESÍLÁNÍ HROMADNÉHO U Z PORTÁLU SLEZSKÉ UNIVERZITY. SLEZSKÁ UNIVERZITA V OPAVĚ, OBCHODNĚ PODNIKATELSKÁ FAKULTA V KARVINÉ

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

JEDNACÍ ŘÁD SPRÁVNÍ RADY MEZINÁRODNÍ ASOCIACE PŘEPRAVCŮ ROPY

DATOVÉ SCHRÁNKY - SOUČÁST ICT ŘEŠENÍ TELEFÓNICA O2. Pavel Smolík Top Account Manager

Administrativní pokyny pro aplikaci Madridské dohody o mezinárodním zápisu známek a Protokolu k této dohodě. (ve znění platném k 1.

Usuzování za neurčitosti

Express Import systém

Síťová instalace a registrace pro progecad

REGISTRACE A SPRÁVA UŽIVATELSKÉHO ÚČTU

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

MASSIV. Middleware pro tvorbu online her

VOLEBNÍ A JEDNACÍ ŘÁD Akademického senátu Fakulty informačních technologií

CO JE OVĚŘOVÁNÍ DVOJÍHO VÝSLOVNÉHO SOUHLASU S EM?

SYSTÉMOVÁ PŘÍRUČKA Verze dokumentu: 2.01 Platnost od:

NÁVRH VOLEBNÍ ŘÁD AKADEMICKÉHO SENÁTU NÁRODOHOSPODÁŘSKÉ FAKULTY VYSOKÉ ŠKOLY EKONOMICKÉ V PRAZE. Článek 1 Akademický senát jako orgán fakulty

Integrace datových schránek do elektronické spisové služby MPSV

Chybová hlášení METODIKA MET-01/2014. SZR-56-1/OPICT-2013 počet stran 28 přílohy 0. Nahrazuje:

Programování v C++, 2. cvičení

MANUÁL K PROGRAMU EKV verze 1.4

2) Nový druh připojení Ethernet-CA5 umožňující připojit nové zařízení CA5 a to přes Ethernet nebo přes GPRS

Transkript:

PDV 207/208 Konsensus a Algoritmu Raft Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT

Co mají tyto příklady společného? Skupina procesů usilujících o : udržování jejich lokálních seznamů aktivních procesů aktuálních [detekce selhání] zvolení lídra a zajištění, že každý ví, kdo je lídrem [volba lídra] zajistit vzájemně exkluzivního přístupu ke sdílenému prostředku (např. souboru) [vyloučení procesů] usilujících o doručení stejných aktualizací ve stejném pořadí [uspořádaný multicast]

Souvisí s konsensem Ve všech těchto případech se procesy snaží vzájemně koordinovat, aby se shodly na nějaké hodnotě na stavu každého procesu (aktivní/neaktivní) kdo je lídrem kdo má přístup k sdílenému prostředku pořadí zpráv Všechny tyto problémy souvisejí s problémem konsensu

Problém konsensu N procesů Každý proces P má vstupní proměnou x P (výchozí návrh): zpočátku buď 0 nebo výstupní proměnou y p : může být změněna pouze jednou Problém konsensu: navrhnout takový protokol, že buď: všechny procesy nastaví svou výstupní proměnou na 0 všechny proces nastaví svou výstupní proměnnou na Cílem je shodnout na hodnotě výstupní proměnné. Procesy nemohou mít hodnotu výstupní proměnné pevně předprogramovanou výstupní proměnné musí záviset na vstupních proměnných

Proč je konsensus důležitý? Mnoho problémů v DS je ekvivalentních konsensu perfektní detekce selhání volba lídra spolehlivý nebo totálně uspořádaný multicast Vyřešení konsensu by tedy bylo velmi užitečné.

Řešitelnost konsensu V synchronním DS je konsensus řešitelný. V asynchronních DS není konsensus řešitelný. pro jakýkoliv algoritmus existuje nejhorší možný průběh (se selháními procesů nebo kanálů), který zabrání dosažení konsensu důkaz v tzv. FLP teorém: V asynchronním systému nelze dosáhnout současně bezpečnosti a živosti, pokud v něm může docházet k selháním (byť i jediného procesu). Ale: V praxi vždy vyžadujeme bezpečnost a díky částečné synchronicitě ve velkém množství běhů DS konsensu dosáhneme v konečném čase. existují i pravděpodobnostní algoritmy mající konečnou středního hodnotu běhu

Algoritmus RAFT

Cíl: Replikovaný log Klienti shl Konsensus modul Stavový automat Konsensus modul Stavový automat Konsensus modul Stavový automat Servery Log add jmp mov shl Log add jmp mov shl Log add jmp mov shl Replikovaný log replikovaný stavový automat Všechny procesy vykonávají příkazy ve stejném pořadí Konsensus modul zajištuje správnou replikaci logu a rozhoduje, kdy mohou být příkazy vykonány. Zpracování požadavků klientů postupuje pokud je nadpoloviční většina serverů aktivních. Model selhání: havárie serveru (fail-stop) + nedokonalý FIFO kanál 8

Přístupu k problému konsensu Symetrický/bez lídra všechny servery mají stejnou roli klienti mohou kontaktovat kterýkoliv server Asymetrický/s lídrem v každém okamžiku je jeden server lídrem a ostatní přijímají jeho rozhodnutí klienti komunikují s lídrem Raft využívá lídra výhody: dekomponuje problém na ) běžný chod a 2) změny lídra zjednodušuje běžný chod (nedochází ke konfliktům) efektivnější než symetrické přístupy bez lídra

Přehled Raftu. Volba lídra volba jednoho ze serveru jako lídra detekce selhání a vyvolání volby nového lídra 2. Běžný chod (základní replikace logu). Bezpečnost a konzistence po změně lídra 4. Neutralizace starých lídrů 5. Interakce s klienty 6. (Rekonfigurace) 0

Volba lídra

Stavy serveru V každém okamžiku je každý server v právě jednom stavu: Lídr obsluhuje požadavky klientů a replikuje log Následovník pasivní pouze reagují na zprávy od jiných serverů Kandidát přechodná role v průběhu volby lídra Běžný chod: lídr, N následovníků Skupinu procesů, které se účastní konsensu, označovat jako servery pro lepší odlišení od procesů, které běží na klientských počítačích a které se konsensu neúčastní. 2

Epochy (volební období) Epocha Epocha 2 Epocha Epocha 4 Epocha 5 Volby Nerozhodné hlasování Běžné chod čas Čas je rozdělen do epoch: každá epocha má své číslo, čísla jsou inkrementována a nikdy nejsou znovu použitá. Každý server si (persistentně!) udržuje číslo aktuální epochy. Epochy mohou mít dvě části Volby (buď nedopadnou nebo vyústí ve zvolení právě jednoho lídra) Běžný chod pod jedním zvoleným lídrem Maximálně jeden lídr v každé epoše; některé epochy ale nemají lídra (neúspěšné volby). Epochy slouží k identifikování zastaralých informací.

Stavy serveru Servery začínají jako Následovníci. Následovníci očekávají zprávy od Lídra nebo Kandidátů Lídři posílají heartbeats (prázdné zprávy AppendEntries), aby si udrželi autoritu. Jakmile Následovník neobdrží zprávu do volebního timeoutu (typicky 00-500ms), předpokládá, že Lídr havaroval a iniciuje volbu nového lídra. start timeout, zahájení voleb timeout, nové volby získání hlasů od většiny serverů Následovník Kandidát Lídr odstou pení zjištění aktuálního lídra nebo nová epocha objevení serveru s vyšší epochou 5

Spuštění voleb Server, který vyvolá volby, provede následující:. Zvýší číslo epochy. 2. Změní svůj stav na KANDIDÁT. Zahlasuje pro sebe 4. Pošle RequestVote všem ostatním serverům a čeká dokud nenastane jedno z následujících:. Obdrží hlasy od většiny serverů: Změní stav na LÍDR Pošle AppendEntries heartbeats všem ostatním procesům 2. Přijme zprávu od validního LÍDRA: Vrátí se do stavu NÁSLEDOVNÍK. Nikdo nevyhraje volby (vyprší volební timeout): Zvýší epochu a začné nové volby 6

Klíčové vlastnosti voleb Bezpečnost: maximálně jeden vítěz v každé epoše každý proces hlasuje pouze jednou v jedné epoše (a hlas persistuje) dva kandidáti nemohou získat většinu v jedné epoše B nemůže taky získat majoritu procesy hlasovali pro kandidáta A Živost: jeden z kandidátů musím časem vyhrát Každý proces volí volební timeout náhodně v intervalu [T, 2T] Jeden proces typicky iniciuje volby a zvítězí dříve, než ostatní začnou funguje dobře pokud T RTT (čas oběhu zpráv) 7

https://raft.github.io/

Běžný chod

Struktura logů epocha příkaz 2 4 5 6 7 8 add add cmp cmp ret ret 2 mov 2 mov jmp jmp div shl sub index logu Lídr add add cmp cmp ret 2 mov jmp div shl sub Následovníci add cmp ret 2 mov jmp div shl potvrzené záznamy Záznam v logu = < index, epocha, příkaz > Logy jsou uloženy v perzistentním uložišti (disk); tj. přežijí havárie Záznam je potvrzený (commited), je-li známo, že je uložen ve většině procesů trvalý: bude nakonec vykonán stavovým automatem 20

Běžný provoz shl Konsensus modul Stavový automat Konsensus modul Stavový automat Konsensus modul Stavový automat Log add jmp mov shl Log add jmp mov shl Log add jmp mov shl. Klient pošle příkaz lídrovi. 2. Lídr přidá příkaz na konec svého logu.. Lídr pošle zprávu AppendEntries následovníkům, typicky paralelně, a čeká na odpovědi. 4. Jakmile je nový záznam potvrzený (committed) Lídr předá příkaz k vykonání svému stavovému automatu a výsledek pošle kilentovi. Lídr přidá informaci o potvrzení (commit) do následující zprávy AppendEntries pro následovníky Následovnící předají příkaz svým stavovým automatům. 2

Normální fungování shl Konsensus modul Stavový automat Konsensus modul Stavový automat Konsensus modul Stavový automat Log add jmp mov shl Log add jmp mov shl Log add jmp mov shl Havarovaní / pomalí následovnící? Lídr opakovaně posílá zprávu AppendEntries, dokud doručení neuspěje V běžném provozu velmi efektivní: Stačí úspěšné doručení AppendEntries většině procesů 22

Konsistence logů server 2 4 5 6 2 add cmp ret mov jmp div server 2 add cmp ret 2 mov jmp 4 sub Pro zajištění konsistence Raft vynucuje následující invarianty :. Mají-li záznamy logů uložené na různých serverech stejný index a epochu, pak obsahují stejný příkaz logy jsou identické ve všech předcházejících záznamech 2. Je-li daný záznam potvrzený, jsou potvrzené i všechny předcházející záznamy Invariant = vlastnost splněna po celou dobu běhu algoritmu 2

Kontrola konzistence lídr následník 2 4 5 add add cmp cmp ret ret 2 mov 2 mov jmp jmp AppendEntries uspěje: shodný záznam lídr následník add add cmp cmp ret ret 2 mov shl jmp AppendEntries neuspěje: neshodný záznam AppendEntries obsahuje <index,term> záznamu předcházejícího nově přidávané záznamy. Následovník musí obsahovat shodný záznam; jinak je zápis odmítnut. Kontrola shodnosti předcházejícího záznamu implementuje indukční krok a zajištuje konzistenci logu. 24

Změna lídra

Změny lídra Log nového lídra vždy reprezentuje pravdu (správné záznamy) po jeho zvolení není potřeba žadné speciální kroky, vykoná logiku běžného chodu. logika běžného chodu časem udělá logy následovníků identické s logem nového lídra záznamy logu předchozího lídra mohou být částečně replikovány (ale nepotvrzeny) budou postupně eliminovány Dojde-li k několika haváriím lídrů po sobě, může být v lozích jednotlivých procesů řada přebytečných záznamů, které budou postupně eliminovány. log index 2 4 5 6 7 epocha s 5 6 6 6 s 2 5 6 7 7 7 s s 4 5 5 2 4 s 5 2 2 26

Bezpečnost Obecně nutná bezpečnostní garance pro replikaci Jakmile je příkaz ze záznamu logu vykonán některým stavovým automatem, nesmí žádný jiný stavový automat vykonat jiný příkaz pro stejný záznam. Bezpečnostní invariant Raftu: Jakmile lídr prohlásí záznam v logu za potvrzený, jakýkoliv budoucí lídr bude mít tento záznam ve svém logu. Invariant Raftu implikuje bezpečnostní garanci: lídři nikdy nepřepisují záznamy ve svých lozích (pouze přidává) pouze záznamy v logu lídra mohou být potvrzeny záznamy (příkazy) musí být v logu potvrzeny předtím, než jsou vykonány stavovým automatem

Zpřísnění Raftu Dosavadní logika fungování Raftu bezpečnostní invariant negarantuje. nutno zpřísnit pravidla: Potvrzený Přítomný v logu jakéhokoliv budoucího lídra Zpřísnění definice potvrzení Zpřísnění pravidla volby lídra

Výběr nejlepšího lídra 2 4 5 Nelze říct, které záznamy byly potvrzeny s s 2 s 2 2 2 2 2 Je potvrzen? Log nedostupný během změny lídra (server nedostupný) Raft volí kandidáta, u kterého je nejvyšší pravděpodobnost že obsahuje všechny potvrzené záznamy Kanidáti do zprávy RequestVote vloží index a epochu posledního záznamu svého logu Volící server hlas pro kandidáta odmítne, pokud jeho vlastní log je úplnější, tj. pokud má na konci záznam s vyšší epochou nebo stejnou epochou, ale vyšším indexem. Lídr tedy bude mít nejúplnější log mezi většinou procesů, kterou byl zvolen. 29

Potvrzování záznamu z aktuální epochy s 2 4 5 2 2 2 Lídr pro epochu 2 s 2 2 2 s 2 2 AppendEntries právě uspěl s 4 s 5 2 Nemohou být zvoleni lídrem Záznam 4 je bezpečně potvrzen: jakýkoliv lídr pro epochu tři musí obsahovat v logu záznam 4. 0

Potvrzování záznamu z dřívější epochy s 2 4 5 2 4 Lídr pro epochu 4 s 2 2 s 2 AppendEntries právě uspěl s 4 s 5 Záznam není bezpečně potvrzený S 5 může být zvolen jako lídr pro epochu 5 Byl by-li zvolen, přepíše záznam v S,S 2,S

Nová pravidla pro potvrzování Aby lídr považoval záznam za potvrzený:. záznam musí být uložený na většině serverů 2. aspoň jeden nový záznam z lídrovy aktuální epochy musí být taky na většině serverů 2 4 5 Příklad: Jakmile je záznam 4 potvrzen, S 5 nemůže být zvolen lídrem pro epochu 5 a záznamy a 4 jsou bezpečně potvrzeny. s s 2 s s 4 s 5 2 2 2 4 4 4 Lídr pro epochu 4 Kombinace nové pravidla pro výběr lídra a zpřísněné definice potvrzování garantuje bezpečnostní invariant Raftu 2

Komplikace: nekonzistence logu Změna lídra mohou vést k nekonzistencím logu Lídr pro epochu 8 2 4 5 6 7 8 9 0 2 4 4 5 5 6 6 6 (a) (b) 4 4 5 5 6 6 4 Chybějící záznamy Možní následovníci (c) (d) (e) 4 4 5 5 6 6 6 6 4 4 5 5 6 6 6 4 4 4 4 7 7 Přebytečné záznamy (f) 2 2 2

Oprava logů následovníků Nový lídr musí udělat logy následovníků konzistentní se svým logem, tj. smazat přebytečné záznamy a doplnit chybějící záznam. Lídr udržuje proměnou nextindex pro každého následovníka: index další záznamu logu, který by měl být odeslán následnikovi inicializován na + index poslední záznamu lídra Pokud kontrola konzistence AppendEntries selže, sniž nextindex o jednu a zkus znova nextindex Lídr pro epochu 7 2 4 5 6 7 8 9 0 2 4 4 5 5 6 6 6 Následovníci (a) (b) 4 2 2 2

Oprava logů následovníků Pokud následovník přepíše nekonzistentní záznam, odstraní i všechny následující záznamy. Lídr pro epochu 7 nextindex 2 4 5 6 7 8 9 0 4 4 5 5 6 6 6 4 Před opravou 2 2 2 Po opravě 4

Neutralizace starého lídra

Neutralizace starých lídrů Sesazený lídr nemusí být trvale havarovaný přechodné odpojení od sítě jiné procesy zvolí nového lídra starý lídr se znovu připojí a pokusí se potvrzovat svoje záznamy Epochy slouží k detekci neaktuálního lídra každá zpráva obsahuje epochu odesílatele je-li epocha odesílatele starší, zpráva je odmítnuta, odesílatel se změní na Následovníka a aktualizuje si epochu je-li epocha příjemce starší, tak příjemce se změní na Následovníka, aktualizuje si epochu a následně zprávu normálně zpracuje Volby aktualizují epochy většiny serverů sesazení lídři nemohou potvrdit nové záznamy 7

Klientský protokol

Protokol klienta Klienti posílají příkazy lídrovi Není-li lídr známý, kontaktují libovolný server a ten je případně přesměruje na lídra Lídr pouze vrací odezvu na příkaz poté, co je příkaz zalogován, potvrzen a následně vykonán lídrem. Pokud nepřijde v časovém limitu odezva na požadavek (např. lídr havaroval): klient vybere (náhodně) jiný server a po případném přesměrování nakonec odešle příkaz novému lídrovi 9

Protokol klienta: jediné vykonání Lídr může havarovat poté, co vykonal příkaz, ale před odesláním odpovědi Riziko opakovaného vykonání příkazu. Řešení: Pro zajištění právě jednoho vykonání příkazu klient vloží unikátní ID příkazu do každého požadavku Toto ID je uložené v záznamech v logu Před přijetím požadavku lídr zkontroluje, zda-li už nemá záznam se stejným ID ve svém logu Pokud ne příkaz vykoná; Pokud ano příkaz odmítne.

Souhrn Problém konsensu je v jádru mnoha problémů v DS. V asynchronním DS nelze při přítomností selhání konsensus vyřešit ve smyslu bezpečnosti a živosti. Praktická řešení garantují bezpečnost. Raft je moderní algoritmus pro replikaci logů / výpočtů. Je využíván v řadě reálných DS.