Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

Beraz, imajina dezagun. 5 katu daude gelan giltzapetuta, eta jabea esnatzeko, denak ados jarri behar dira honetan, atea bostekin makurtuta soilik ireki dezaketelako. Katuetako bat Schrödingerren katua bada eta beste katuek bere erabakiaren berri ez badute, galdera sortzen da: "Nola egin dezakete hori?"

Artikulu honetan, sistema banatuen munduaren osagai teorikoari eta haien lanaren printzipioei buruz hitz errazetan esango dizut. Eta azaletik ere kontuan hartu Paxos'a azpian dagoen ideia nagusia.

Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

Garatzaileek hodeiko azpiegiturak, hainbat datu-baseak erabiltzen dituztenean, nodo ugariko klusteretan lan egiten dutenean, ziur daude datuak koherenteak, seguruak eta beti eskuragarri izango direla. Baina non daude bermeak?

Izan ere, ditugun bermeak hornitzaileen bermeak dira. Dokumentazioan honela deskribatzen dira: "Zerbitzu hau nahiko fidagarria da, SLA jakin bat du, ez kezkatu, dena espero duzun moduan banatuta funtzionatuko du".

Onenengan sinetsi ohi dugu, enpresa handietako osaba-osaba argiek dena ondo egongo dela ziurtatu zigutelako. Ez diogu geure buruari galdetzen: zergatik, egia esan, funtziona dezake horrek? Ba al dago sistema horien funtzionamendu zuzenaren justifikazio formalik?

Duela gutxi joan naiz informatika eskola banatua eta oso inspiratuta zegoen gai honek. Eskolako hitzaldiak analisi matematikoko klaseen antzekoak ziren, sistema informatikoekin lotutako ezer baino. Baina halaxe frogatu ziren aldi berean egunero erabiltzen ditugun algoritmo garrantzitsuenak, hori susmatu gabe.

Banatutako sistema moderno gehienek Paxos adostasun algoritmoa eta bere hainbat aldaketa erabiltzen dituzte. Gauzarik politena da baliozkotasuna eta, printzipioz, algoritmo honen existentziaren aukera bera luma eta paperarekin frogatu daitekeela. Aldi berean, praktikan, hodeietako nodo kopuru handietan funtzionatzen duten sistema handietan erabiltzen da algoritmoa.

Jarraian eztabaidatuko denaren ilustrazio arina: bi jeneralen arazoaIkus dezagun beroketari bi jeneralen zeregina.

Bi armada ditugu - gorria eta zuria. Tropa zuriak setiatutako hirian daude oinarrituta. A1 eta A2 jeneralek zuzendutako tropa gorriak hiriaren bi aldeetan daude. Gorritxoen zeregina hiri zuriari erasotzea eta irabaztea da. Hala ere, jeneral gorri bakoitzaren armada banaka zurien armada baino txikiagoa da.

Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

Garaipen baldintzak gorritxoentzat: bi jeneralek aldi berean erasoa behar dute zurien aurrean zenbakizko abantaila izateko. Horretarako, A1 eta A2 jeneralak elkarren artean ados egon behar dute. Denek bereizita erasotzen badute, gorritxoek galdu egingo dute.

Negoziatzeko, A1 eta A2 jeneralek mezulariak bidal ditzakete elkarren artean hiri zuriaren lurraldean zehar. Mezularia ondo irits daiteke aliatu jeneral batera edo etsaiak atzeman dezake. Galdera: ba al dago jeneral ilegorrien arteko komunikazio-sekuentziarik (A1-tik A2-ra mezulariak bidaltzeko sekuentzia eta alderantziz A2-tik A1era), zeinetan X orduko eraso bat adosteko bermatuta dagoen. bermeen bidez ulertzen da bi jeneralek aliatu batek (beste jeneral batek) erabakitako unean zehatz-mehatz erasoko duela egiaztatzen dutela.

Demagun A1-ek mezulari bat bidaltzen diola A2-ri mezu honekin: "Eraso dezagun gaur gauerdian!". A1 jeneralak ezin du erasotu A2 jeneralaren berrespenik gabe. A1eko mezularia iritsi bada, A2 jeneralak baieztapena bidaltzen du mezuarekin: "Bai, bete ditzagun zuriak gaur". Baina orain A2 jeneralak ez daki bere mezularia iritsi den ala ez, ez du bermerik erasoa aldiberekoa izango den. Orain A2 jeneralak berriro berretsi behar du.

Beraien komunikazioa gehiago deskribatzen badugu, honako hau gertatzen da: mezu-truke-ziklo zenbat diren ere, ez dago bi jeneralei beren mezuak jaso direla bermatzeko modurik (mezularietako bat atzeman daitekeela suposatuz).

Bi orokorren arazoa sistema banatu oso sinple baten ilustrazio bikaina da, non komunikazio fidagarria duten bi nodo dauden. Beraz, ez dugu %100eko bermerik sinkronizatuta daudenik. Antzeko arazoei buruz soilik eskala handiagoan artikuluan geroago.

Sistema banatuen kontzeptua aurkeztea

Sistema banatua (aurrerantzean nodoak) mezuak trukatu ditzaketen ordenagailu multzo bat da. Nodo bakoitza entitate autonomo bat da. Nodo batek bere kabuz prozesatu ditzake zereginak, baina beste nodo batzuekin komunikatzeko, mezuak bidali eta jaso behar ditu.

Mezuak zehazki nola inplementatzen diren, zein protokolo erabiltzen diren - hori ez zaigu interesatzen testuinguru honetan. Garrantzitsua da banatutako sistema baten nodoek elkarren artean datuak trukatu ahal izatea mezuak bidaliz.

Definizioak berez ez dirudi oso konplikatua, baina kontuan izan sistema banatu batek guretzat garrantzitsuak izango diren hainbat atributu dituela.

Banatutako sistemen atributuak

  1. konkurrentzia – Sisteman aldi bereko edo lehiako gertakariak gertatzeko aukera. Gainera, bi nodo ezberdinetan gertatutako gertaerak potentzialki konkurrentzialak direla kontuan hartuko dugu, gertaera horiek gertatzen diren ordena argi bat izan arte. Eta normalean ez dugu egiten.
  2. Ez dago erloju globalik. Ez dugu gertaeren ordena argirik erloju global baten falta dela eta. Pertsonen mundu arruntean, orduak eta orduak erabat dauzkagula ohituta gaude. Dena aldatzen da sistema banatuei dagokienez. Erloju atomiko ultrazehatzak ere noraezea dute, eta badira bi gertakarietatik zein gertatu den lehenik ezin esan dezakegun egoerak. Horregatik, ezin gara denboran fidatu ere.
  3. Sistema-nodoen hutsegite independentea. Bada beste arazo bat: zerbait gaizki joan daiteke gure nodoak betikoak ez direlako. Baliteke disko gogorrak huts egin, hodeiko makina birtuala berrabiarazi, sareak keinuka egin dezake eta mezuak galduko dira. Gainera, nodoek funtzionatzen duten egoerak daude, baina, aldi berean, sistemaren aurka egiten dute lan. Azken arazoen klaseak izen berezi bat ere jaso zuen: arazoa Bizantziar jeneralak. Arazo hori duen sistema banatu baten adibiderik ezagunena Blockchain da. Baina gaur ez dugu arazo mota berezi hau kontuan hartuko. Nodo batek edo gehiagok huts egin dezaketen egoerak interesatuko zaizkigu.
  4. Nodoen arteko komunikazio-ereduak (mezularitza-ereduak).. Dagoeneko jakin dugu nodoak mezuak trukatuz komunikatzen direla. Bi mezularitza eredu ezagun daude: sinkronoa eta asinkronoa.

Sistema banatuetako nodoen arteko komunikazio ereduak

Eredu sinkronikoa - Ziur badakigu denboraren delta finitu bat dagoela, eta horretarako mezua nodo batetik bestera iristea bermatuta dago. Denbora hau amaitu eta mezua ez bada iritsi, nodoak huts egin duela esan dezakegu. Horrelako eredu batean, itxaron denbora aurreikusgarria dugu.

Eredu asinkronoa – eredu asinkronoetan, itxarote-denbora finitua dela suposatzen dugu, baina ez dago denbora-deltarik eta horren ostean nodoak huts egin duela berma daiteke. Horiek. nodo baten mezu baten itxaron denbora arbitrarioki luzea izan daiteke. Definizio garrantzitsu bat da, eta horri buruz gehiago hitz egingo dugu.

Adostasunaren kontzeptua sistema banatuetan

Adostasunaren kontzeptua formalki definitu aurretik, kontuan hartu behar dugun egoera baten adibide bat, hots, − Estatuko Makinen Erreplikazioa.

Banatutako erregistro batzuk ditugu. Koherentea eta datu berdinak edukitzea nahiko genuke sistema banatu baten nodo guztietan. Nodoetako batek erregistroan idatziko duen balio berri bat ikasten duenean, bere zeregina balio hori beste nodo guztiei eskaintzea da, erregistroa nodo guztietan eguneratu dadin, eta sistema egoera koherente berri batera alda dadin. Aldi berean, garrantzitsua da nodoak euren artean ados egotea: nodo guztiak ados daude proposatutako balio berria zuzena dela, nodo guztiek balio hori onartzen dute, eta kasu honetan bakarrik denek balio berri bat erregistratu dezakete.

Beste era batera esanda: nodoetako batek ere ez zuen aurkaratu informazio eguneratuagoa zutela, eta proposatutako balioa okerra zen. Nodoen arteko adostasuna eta onartutako balio bakar baten adostasuna sistema banatu batean adostasuna da. Jarraian, sistema banatu bati berme batekin adostasuna lortzea ahalbidetzen duten algoritmoei buruz hitz egingo dugu.
Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa
Formalkiago, adostasun-algoritmo bat (edo, besterik gabe, adostasun-algoritmo bat) defini dezakegu sistema banatu bat A egoeratik B egoerara eramaten duen funtzio bat bezala. Gainera, egoera hori nodo guztiek onartzen dute, eta nodo guztiek baiezta dezakete. Ikusten denez, zeregin hau ez da lehen begiratuan dirudien bezain hutsala.

Adostasun algoritmoaren propietateak

Adostasun algoritmoak hiru propietate izan behar ditu sistemak existitzen jarraitzeko eta egoeratik egoerarako trantsizioan nolabaiteko aurrerapena izan dezan:

  1. Hitzarmena – behar bezala funtzionatzen duten nodo guztiek balio bera hartu behar dute (artikuluetan propietate hau segurtasun-propietate gisa ere aurkitzen da). Orain funtzionatzen ari diren nodo guztiek (ez daude ordenatuta eta gainerakoekin kontaktua galdu ez dutenak) akordio batera iritsi eta azken balio komun bat onartu behar dute.

    Garrantzitsua da ulertzea kontuan hartzen ari garen sistema banatuko nodoek ados egon nahi dutela. Hau da, orain zerbait huts egin dezakeen sistemei buruz ari gara (adibidez, nodo batzuek huts egiten duten), baina sistema honetan ez dago zalantzarik gabe besteen aurka nahita lan egiten duten nodorik (bizantziar jeneralen zeregina). Propietate hori dela eta, sistema koherentea izaten jarraitzen du.

  2. Osotasuna - behar bezala funtzionatzen duten nodo guztiek balio bera eskaintzen badute v, beraz, behar bezala funtzionatzen duen nodo bakoitzak balio hau onartu behar du v.
  3. Bukaera - Behar bezala funtzionatzen duten nodo guztiek balioren bat hartuko dute azkenean (bizitasun propietatea), eta horri esker algoritmoak sisteman aurrerapena izan dezake. Ondo funtzionatzen duen nodo indibidual bakoitzak lehenago edo beranduago onartu behar du azken balioa eta berretsi: "Niretzat balio hau egia da, ados nago sistema osoarekin".

Adostasun-algoritmoaren funtzionamenduaren adibide bat

Algoritmoaren propietateak guztiz argiak ez izatea. Hori dela eta, adibide batekin ilustratuko dugu zer etapa igarotzen dituen adostasun algoritmo sinpleenak mezularitza eredu sinkronoa duen sistema batean, zeinetan nodo guztiek espero bezala funtzionatzen duten, mezuak ez diren galtzen eta ezer hausten (hau benetan gertatzen al da?).

  1. Ezkontza-proposamen batekin hasten da dena (Proposatu). Demagun bezero bat "Node 1" izeneko nodo batera konektatzen dela eta transakzio bat hasten duela, nodoari balio berri bat pasatuz - O. Hemendik aurrera "Node 1" deituko dugu. eskaintza. "Nodo 1" proposatzaileak nola jakinarazi behar dio orain sistema osoari datu berriak dituela, eta mezuak bidaltzen dizkie beste nodo guztiei: "Begira! "O" balioa jaso dut eta idatzi nahi dut! Mesedez, baieztatu "O" ere grabatuko duzula zure erregistroan."

    Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

  2. Hurrengo fasea proposatutako balioaren aldeko botoa ematea da (Bozketa). Zertarako da? Gerta daiteke beste nodo batzuek informazio berriagoa jasotzea eta transakzio bereko datuak izatea.

    Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

    "Nodo 1" nodoak bere proposamena bidaltzen duenean, beste nodoek gertaera honi buruzko datuak egiaztatzen dituzte beren erregistroak. Gatazkarik ez badago, nodoek hauxe iragartzen dute: “Bai, ez dut gertaera honetarako beste daturik. "O" balioa merezi dugun informaziorik eguneratuena da".

    Beste edozein kasutan, nodoek "Nodo 1"-ri erantzun diezaiokete: "Entzun! Transakzio honi buruzko datu berriagoak ditut. Ez "O", baina zerbait hobea".

    Bozketa fasean, nodoek erabaki bat hartzen dute: edo guztiek balio bera onartzen dute, edo haietako batek aurka bozkatzen du, datu berriagoak dituela adieraziz.

  3. Boto-txanda arrakastatsua izan bada, eta denak alde bazeuden, sistema fase berri batera igarotzen da - balioa onartzea (Onartu). "Nodo 1"-ek beste nodo eta txostenen erantzun guztiak biltzen ditu: "Guztiak ados zeuden 'O' balioa! Orain ofizialki deklaratzen dut "O" dela gure esanahi berria, guztientzako berdina! Idatzi zure koadernoan, ez ahaztu. Idatzi zure erregistrora!"

    Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

  4. Gainontzeko nodoek berrespena bidaltzen dute (Onartua) "O" balioa idatzi dutela eurentzat, denbora honetan ez da ezer berririk jaso (bi faseko konpromiso moduko bat). Gertaera garrantzitsu honen ostean, banatutako transakzioa amaitu dela uste dugu.
    Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa

Horrela, kasu sinple batean adostasun algoritmoak lau urrats ditu: proposatu, bozkatu (bozkatu), onartzea (onartu), onartzearen berrespena (onartua).

Urrats batean adostasunik lortu ezin badugu, algoritmoa berrabiaraziko da, proposatutako balioa baieztatzeari uko egin dioten nodoek emandako informazioa kontuan hartuta.

Adostasun algoritmoa sistema asinkronoan

Aurretik, dena leun zegoen, mezularitza sinkronoaren ereduari buruzkoa zelako. Baina badakigu mundu modernoan dena modu asinkronoan egitera ohituta gaudela. Nola funtzionatzen du antzeko algoritmo batek mezularitza-eredu asinkronoa duen sistema batean, non nodo baten erantzun baten itxarote-denbora arbitrarioki luzea izan daitekeela uste baitugu (bide batez, nodoaren hutsegite bat adibidetzat har daiteke nodo bat denean? arbitrarioki erantzun dezake).

Adostasun-algoritmoak printzipioz nola funtzionatzen duen dakigunez, puntu honetara iritsi diren irakurle jakintsuentzako galdera da: mezu-eredu asinkronoa duten N nodoko sistema batean zenbat nodo jaitsi daitezkeen, sistemak oraindik adostasuna lortu ahal izateko. ?

Erantzun zuzena eta arrazoibidea spoiler atzean.Erantzun zuzena hau da: 0. Sistema asinkrono bateko nodo bat ere jaisten bada, sistema ezin izango da adostasunera iritsi. Adierazpen hau FLP teorema ezagunan frogatzen da (1985, Fischer, Lynch, Paterson, artikulu amaierako jatorrizkora esteka): “The imposibility of reaching a distributed consensus baldin gutxienez nodo batek huts egiten badu”.
Schrödingerren katua kutxarik gabe: sistema banatuetan adostasun-arazoa
Mutilak, orduan arazo bat daukagu, ohituta gaude dena gurekin asinkronoa izatera. Eta hemen dago. Nola jarraitu bizitzen?

Teoriaz hitz egin berri dugu, matematikaz. Zer esan nahi du "adostasuna ezin da lortu", hizkuntza matematikotik gurera - ingeniaritza- itzultzeak? Horrek esan nahi du "ezin dela beti lortu", alegia. bada adostasuna lortzen ez den kasu bat. Eta zein da kasu hau?

Hau da, hain zuzen, goian deskribatutako bizitasun propietatearen urraketa. Ez dugu adostasun komun bat, eta sistemak ezin du aurrera egin (ezin da denbora mugatuan amaitu) nodo guztien erantzunik ez dugun kasuan. Sistema asinkrono batean ez dugulako aurreikus daitekeen erantzun denborarik eta ezin dugulako jakin nodo bat behera dagoen edo erantzuteko denbora luzea behar duen.

Baina praktikan, irtenbide bat aurki dezakegu. Utzi gure algoritmoa denbora luzez exekutatu ahal izatea hutsegiteen kasuan (potentzialki mugagabean exekutatu daiteke). Baina egoera gehienetan, nodo gehienak behar bezala funtzionatzen dutenean, aurrerapena izango dugu sisteman.

Praktikan, komunikazio-eredu partzialki sinkronikoez ari gara. Sinkronismo partziala honela ulertzen da: kasu orokorrean, eredu asinkronoa dugu, baina une jakin bateko “egonkortze-denbora globalaren” kontzeptu jakin bat formalki sartzen da.

Une hau agian ez da nahiko denbora luzean iritsiko, baina egunen batean iritsi behar da. Iratzargailu birtualak joko du, eta une horretatik aurrera mezuak zenbat denbora-delta iritsiko diren aurreikus dezakegu. Une honetatik aurrera, sistema asinkronotik sinkronora bihurtzen da. Praktikan, horrelako sistemak lantzen ditugu.

Paxos algoritmoak adostasun arazoak ebazten ditu

Paxoak sistema partzialki sinkronoetarako adostasun-arazoa konpontzen duen algoritmo-familia bat da, baldin eta nodo batzuek huts egin dezaketela. Paxos-en egilea da Leslie Lampport. Algoritmoaren existentzia eta zuzentasunaren froga formal bat proposatu zuen 1989an.

Baina froga ez zen inolaz ere hutsala izan. Lehen argitalpena 1998an bakarrik kaleratu zen (33 orrialde) algoritmoa deskribatuz. Gertatu zenez, oso zaila zen ulertzea, eta 2001ean artikuluaren azalpena argitaratu zen, 14 orrialde zituen. Argitalpenen bolumenak, egia esan, adostasunaren arazoa batere erraza ez dela erakusteko ematen dira, eta halako algoritmoen atzean jenderik adimentsuenen lan itzela dago.

Interesgarria da Leslie Lamporrek berak bere hitzaldian adierazi izana bigarren artikulu-azalpenean enuntziatu bat dagoela, lerro bat (ez zuen zehaztu zein), modu ezberdinetan interpreta daitekeena. Eta horregatik, Paxos inplementazio moderno ugarik ez dute behar bezala funtzionatzen.

Paxosen lanaren azterketa zehatzak artikulu bat baino gehiago hartuko ditu, beraz, algoritmoaren ideia nagusia oso laburki transmititzen saiatuko naiz. Nire artikuluaren amaierako esteketan gai honetan gehiago murgiltzeko materialak aurkituko dituzu.

Rolak Paxosen

Paxos algoritmoak rol kontzeptua du. Kontuan izan hiru nagusi (badaude rol gehigarriekin aldaketak):

  1. Proposatzaileak (baldintzak ere egon daitezke: liderrak edo koordinatzaileak). Hauek erabiltzailearengandik esanahi berriren bat ikasten duten eta lider papera hartzen duten mutilak dira. Beren zeregina balio berri baterako proposamenen txanda bat abiaraztea eta nodoen ekintza gehiago koordinatzea da. Gainera, egoera jakin batzuetan hainbat liderren presentzia ahalbidetzen du Paxosek.
  2. Onartzaileak (botoemaileak). Balio jakin bat onartzeko edo baztertzeko botoa ematen duten nodoak dira. Haien eginkizuna oso garrantzitsua da, erabakia haien araberakoa baita: sistema adostasun algoritmoaren hurrengo fasearen ondoren zein egoeratara joango den (edo ez joango den).
  3. Ikasleek. Sistemaren egoera aldatu denean onartutako balio berria besterik gabe onartzen eta idazten duten nodoak. Ez dute erabakirik hartzen, datuak jasotzen dituzte eta azken erabiltzaileari eman diezaiokete.

Nodo batek hainbat rol konbina ditzake egoera ezberdinetan.

Quorum kontzeptua

Suposatzen dugu sistema bat dugula N nodoak. Eta gehienak F nodoek huts egin dezakete. F nodoek huts egiten badute, gutxienez izan beharko genuke 2F+1 nodo hartzaileak.

Beharrezkoa da beti, egoera txarrenean ere, "onak", behar bezala funtzionatzen duten nodoek gehiengoa izan dezagun. Hori da F+1 adostutako nodo "onak" eta azken balioa onartuko da. Bestela, tokiko talde ezberdinek esanahi desberdinak hartuko dituzten egoera bat egon daiteke eta ezin izango dute euren artean ados jarri. Beraz, gehiengo absolutua behar dugu bozak irabazteko.

Paxos adostasun algoritmoaren ideia orokorra

Paxos algoritmoak bi fase handi hartzen ditu, eta, aldi berean, bi urratsetan banatzen dira:

  1. 1a fasea: prestatzea. Prestaketa fasean, liderrak (proposatzaileak) nodo guztiei jakinarazten die: «Bozketa fase berri bat hasten ari gara. Txanda berri bat dugu. Txanda honen zenbakia n da. Orain hasiko gara bozkatzen». Orain arte, ziklo berri baten hasieraren berri ematen du, baina ez du balio berriaren berri ematen. Etapa honen zeregina txanda berri bat hastea eta denei bere zenbaki bakarraren berri ematea da. Kopuru borobila garrantzitsua da, aurreko buruzagi guztien aurreko boto-zenbaki guztiak baino handiagoa izan behar du. Zenbaki biribilari esker sistemako beste nodoek liderren datuak zein freskoak diren ulertuko dutenez. Seguruenik, beste nodoek dagoeneko askoz geroagoko errondatako bozketa-emaitzak dituzte eta liderrari esango diote denboraren atzean dagoela.
  2. 1b fasea: promesa. Nodo onartzaileek bozketa fase berriaren zenbakia jaso dutenean, bi emaitza posible dira:
    • Boto berriaren n zenbakia onartzaileak parte hartu zuen aurreko edozein botoren kopurua baino handiagoa da. Ondoren, onartzaileak liderrari promesa bat bidaltzen dio ez duela gehiago parte hartuko n baino zenbaki txikiagoa duten botoetan. Onartzaileak dagoeneko zerbaiten alde bozkatu badu (hau da, bigarren fasean dagoeneko balioren bat onartu badu), onartutako balioa eta parte hartu duen boto-kopurua eransten dizkio bere promesari.
    • Bestela, onartzaileak jadanik zenbaki handiko botoaren berri badu, prestatzeko urratsa besterik ez du baztertu eta liderrari ez erantzun.
  3. 2a fasea: Onartzea. Liderrak quorumaren erantzunaren zain egon behar du (sistemako nodo gehienak) eta, eskatutako erantzun kopurua jasotzen bada, orduan bi aukera ditu gertaerak garatzeko:
    • Onartzaile batzuek dagoeneko bozkatu duten balioak aurkeztu dituzte. Kasu honetan, buruzagiak aukeratzen du kopuru handiena duen bozketatik balioa. Dei diezaiogun x balio honi, eta bidali honelako mezu bat nodo guztiei: "Onartu (n, x)", non lehen balioa bere Proposatu urratseko boto-zenbakia den, eta bigarren balioa denek bildutakoa den, hau da. balioa, hain zuzen ere, bozkatzen dugu.
    • Onartzaileetako inork ez balu baliorik bidali, baina txanda honetan bozkatuko dutela hitz eman besterik ez badute, buruzagiak gonbida ditzake bere balioari botoa ematera, lider bihurtu zen balioaren alde. Dei diezaiogun y. Nodo guztiei formako mezu bat bidaltzen die: "Onartu (n, y)", aurreko emaitzaren analogia eginez.
  4. 2b fasea: onartua. Gainera, nodo onartzaileak, "Onartu (...)" mezua jasotzean, liderrak harekin ados daude (nodo guztiei balio berriarekin ados daudela baieztapena bidali) ez badute bakarrik hitz eman. buruzagi bozketan parte hartzeko txandaren zenbakiarekin n' > nbestela, berrespenari jaramonik egiten ez diote.

    Nodo gehienek liderrari erantzun badiote eta guztiek balio berria baieztatu badute, balio berria onartutzat joko da. Aupa! Gehiengoa idazten ez bada edo balio berria onartzeari uko egin dioten nodoak badaude, dena berriro hasten da.

Horrela funtzionatzen du Paxos algoritmoak. Etapa horietako bakoitzak ñabardura asko ditu, ia ez dugu kontuan hartu hainbat motatako porrotak, hainbat liderren arazoak eta askoz gehiago, baina artikulu honen helburua irakurlea goi-mailako informatika banatuaren munduan sartzea da.

Aipatzekoa da, gainera, Paxos ez dela bakarra, beste algoritmo batzuk ere badaudela, adibidez, baltsa, baina hau beste artikulu baterako gaia da.

Gehiago aztertzeko materialetarako estekak

Hasiberrien maila:

Leslie Lampport Maila:

Iturria: www.habr.com

Gehitu iruzkin berria