Paxos made simple

TL; DR:

Paxos je protokol, který řeší problém, že získání skupiny uzlů dohodnout nebo dosáhnout konsensu na jedné hodnotě.

shrnutí:

v tomto článku autor představuje Paxos, což je algoritmus odolný proti chybám používaný k dosažení konsensu mezi sbírkou počítačů v asynchronním a ne-byzantském modelu.

problémem konsensu je získat sbírku počítačů, které rozhodnou o věci, jako by to byl jeden počítač. Hlavní rozdíl mezi konsenzem a jinými problémy s dohodou spočívá v tom, že konsenzuální protokoly musí být odolné vůči chybám, což znamená, že neexistuje jediný bod selhání. Naproti tomu v protokolech, jako je dvoufázové odevzdání, pokud by koordinátor havaroval, celý systém by nemusel dosáhnout žádného pokroku. Pokud existuje stabilní vůdce, konsensus se stává triviální, protože vůdce může vytvořit celkový pořádek ve všech operacích sám a nechat ho následovat další uzly. Selhání vůdce však zabrání systému v jakémkoli pokroku. Navíc, pokud selže volební algoritmus leader (což se pravděpodobně stane v případě síťového oddílu), může existovat více vůdců a porušuje vlastnost dohody.

článek definuje tři třídy agentů:

1.Navrhovatelé (uzly, které navrhují hodnotu) 2.Akceptory (pamatujte na navrhované hodnoty) 3.Studenti (Objevte vybrané hodnoty).

poté popisuje následující neúspěšné pokusy o vyřešení konsensu:

1.Jediný akceptorový agent(působí jako vůdce). Neuspokojivé kvůli jedinému bodu selhání. 2.Více akceptorových agentů. – akceptory přijímají první hodnotu, kterou obdrží-hodnota je vybrána, pokud je přijata většinou akceptorů neuspokojivá, protože můžeme snadno konstruovat případy, kdy většina akceptuje žádnou hodnotu, což porušuje ukončení. 3. Přijměte více než jednu hodnotu neuspokojivou, protože zpráva může být doručena mimo provoz, což porušuje dohodu.

algoritmus Paxos:

fáze přípravy:

pro navrhovatele vybere nové číslo návrhu n a vysílá požadavek na přípravu(zahrnuje n) akceptorům. Pro akceptor porovnává n s přijatým návrhem s nejvyšším číslem. Pokud je n větší, příjemce pošle zpět slib, že se bude řídit tímto navrhovatelem, a nejvyšší číslovaný návrh (a hodnota spojená s návrhem), který přijal, pokud existuje.

fáze přijetí:

poté, co navrhovatel obdrží odpovědi od většiny akceptorů, odešle navrhovatel žádost o přijetí všem akceptorům. Zpráva accept obsahuje číslo návrhu a hodnotu(hodnota Nejvyššího číslovaného návrhu nebo jakákoli hodnota, pokud všichni akceptoři neodpoví) když akceptor obdrží požadavek accept, přijme požadavek, pokud je číslo návrhu větší nebo rovno Nejvyššímu číslovanému návrhu, který přijal. Konečně, pokud je žádost o přijetí přijata většinou akceptorů. Návrh je vybrán (nebo rozhodnut).

Poznámka: 1.Akceptor si musí pamatovat nejvyšší číslovaný návrh, který přijal, pokud existuje, i když selže a zotaví se. Navrhovatel může na své návrhy zapomenout, pokud se nikdy nepokusí vydat jiný návrh se stejným návrhem číslo 2.Počet návrhů musí být celosvětově jedinečný a monotónně rostoucí 3.“Problém navrhovatelů soubojů“.

pokud chtějí dva navrhovatelé navrhnout současně, mohou se pokusit navzájem zablokovat vydáním návrhů s číslem, které je větší než předchozí návrh. Tato situace by mohla pokračovat navždy a porušuje ukončení. Možná řešení zahrnují volby lídra a náhodné backoff.

otázka:

1. Jaký je volební algoritmus vůdce v sekci 3?

2.Článek představuje několik optimalizací, ale nevysvětluje, proč a jak tyto práce zlepší výkon Paxos

3.As četl jsem papír, cítil jsem, že Paxos může být příliš obtížné nebo nákladné implementovat bez dalších optimalizací

4.Předpoklad, že zprávy nemohou být poškozeny, se zdá být příliš silný

5.Papír se zdá být poněkud neúplný. 1.it neřeší problém navrhovatelů soubojů popsaný výše, stejně jako řešení. 2. Jak vybrat číslo návrhu, aby bylo globálně jedinečné a monotónně rostoucí? 3.A co vedení členství?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.