Кіріспе

Паксос - сенімді емес немесе қателіктерге ұшырауы мүмкін процессорлар желісінде консенсусты шешу үшін протоколдар отбасы. Консенсус - қатысушылар тобының бір нәтижеге келісу процесі. Бұл мәселе қатысушылар немесе олардың байланысы сәтсіздікке ұшыраса, қиынға соғады.

Бастапқы Paxos-тағы хабарламалар ағынының графикалық бейнесі

Келесі диаграммалар негізгі Паксос хаттамасының бірнеше жағдайларын / жағдайларын көрсетеді. Кейбір жағдайлар Basic Paxos протоколының бөлінген жүйенің кейбір (өшірілген) компоненттерінің істен шығуымен қалай күресетінін көрсетеді. Promise хабарламасында қайтаратын мәндер бірінші рет ұсынылғанда "null" болып табылады (егерде осы раундта бұрын бірде-бір Acceptor мәнін қабылдамаған болса).

Негізгі Paxos қатесіз

Төмендегі диаграммада 1 Клиент, 1 Ұсынушы, 3 Қабылдаушы (яғни Кворумның мөлшері 3) және 2 Оқушы (екі тік сызықпен бейнеленген). Бұл диаграмма бірінші раундтың сәтті өтуін көрсетеді (яғни желідегі ешқандай процесс сәтсіз аяқталады). Мұнда V - (Va, Vb, Vc) соңғысы.

Бастапқы Paxos-тағы қателер

Ең қарапайым қателік жағдайлары - қабылдаушының сәтсіздігі (ақпаратты қабылдаушылар кворумы тірі қалған кезде) және артық оқушының сәтсіздігі. Бұл жағдайларда протокол "қайта қалпына келтіруді" қажет етпейді (яғни ол әлі де сәтті): қосымша раундтар немесе хабарламалар қажет емес, төменде көрсетілгендей (келесі екі диаграммада / жағдайда).

Көп пакс

Paxos-тың типтік орналасуы үлестірілген күй машинасына команда ретінде әрекет ететін келісілген мәндердің үздіксіз ағынын қажет етеді. Егер әрбір команда негізгі Паксос протоколының бір данасының нәтижесі болса, онда едәуір мөлшерде үстеме шығындар туындайды. Егер жетекші салыстырмалы түрде тұрақты болса, 1-ші кезең қажетсіз болады. Осылайша, сол жетекшімен хаттаманың болашақ инстанциялары үшін 1-ші кезеңді өткізіп жіберу мүмкін. Бұл үшін әр топқа әр топқа сәйкес келетін Лейдермен бірге дөңгелек сан қосылады. Multi Paxos қатесіз хабарламаның кідірісін (оқу ұсынысы) 4 кідірістен 2 кідіріске дейін азайтады.

Оңтайландырулар

Бірнеше оңтайландырулар жүргізілуі мүмкін, олар алмасатын хабарламалардың санын азайтуға, протоколдың жұмысын жақсартуға және т.б. Төменде осы оңтайландырулардың бірнешеуін келтіреміз. "Біз қосымша хабарлама кешіктірілуі арқылы хабарламаларды сақтай аламыз, егер бір ерекше оқушы басқа оқушыларға құндылықтың таңдалғанын білгенде хабарласа алады. Қабылдаушылар тек қана ерекше білім алушыға ғана Қабылданған хабарламаларды жібереді. Көптеген қолданбаларда жетекші және ерекше оқушының рөлдерін бір процессор атқарады.

Византиялық Паксос

Paxos қатысушылардың ерікті сәтсіздіктерін, соның ішінде өтірік айтуды, хабарлама жасауды, басқа қатысушылармен келісім жасауды, таңдаулы қатысудан бас тартуды және т.б. қолдау үшін де кеңейтілуі мүмкін. Бұл сәтсіздіктер түрі Византиялық сәтсіздіктер деп аталады, Лампорт танымал болған шешімнен кейін. Castro and Liskov енгізген қосымша хабарлама (Verify) білімді тарату және басқа өңдеушілердің әрекеттерін тексеру үшін әрекет етеді: