Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

Busa atong hunahunaon. 5 ka iring ang gi-lock sa kwarto, ug aron makamata ang tag-iya, kinahanglan silang tanan magkauyon bahin niini, tungod kay maablihan nila ang pultahan pinaagi lamang sa pagsandig niini kauban ang lima kanila. Kung ang usa sa mga iring mao ang iring ni Schrödinger ug ang ubang mga iring wala mahibalo sa iyang desisyon, ang pangutana mitungha: "Unsaon nila pagbuhat niini?"

Niini nga artikulo, isulti ko kanimo sa yano nga mga termino bahin sa teoretikal nga bahin sa kalibutan sa mga gipang-apod-apod nga mga sistema ug ang mga prinsipyo sa ilang trabaho. Ug taphaw usab nga tagda ang panguna nga ideya nga nagpahipi sa Paxos'a.

Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

Kung gigamit sa mga developer ang mga imprastraktura sa panganod, lainlaing mga database, nagtrabaho sa mga pungpong sa daghang mga node, masaligon sila nga ang datos mahimong makanunayon, luwas ug kanunay nga magamit. Apan asa ang mga garantiya?

Sa tinuud, ang mga garantiya nga naa kanamo mga garantiya sa supplier. Gihubit sila sa dokumentasyon sama sa mosunod: "Kini nga serbisyo kasaligan kaayo, kini adunay gihatag nga SLA, ayaw kabalaka, ang tanan molihok sama sa imong gipaabut."

Kami lagmit nga motuo sa labing kaayo, tungod kay ang mga maalamon nga mga uyoan gikan sa dagkong mga kompanya nagpasalig kanamo nga ang tanan mamaayo ra. Wala kami mangutana sa among kaugalingon: ngano, sa tinuud, mahimo ba kini nga molihok? Aduna bay pormal nga katarungan alang sa husto nga operasyon sa maong mga sistema?

Bag-o lang ako miadto sa gipang-apod-apod nga eskwelahan sa kompyuter ug nadasig kaayo niini nga tema. Ang mga lektyur sa eskuylahan mas susama sa mga klase sa pagtuki sa matematika kay sa bisan unsang butang nga may kalabotan sa mga sistema sa kompyuter. Apan ingon niini kung giunsa ang labing hinungdanon nga mga algorithm nga gigamit namon matag adlaw, nga wala’y pagduda, napamatud-an sa usa ka higayon.

Kadaghanan sa modernong gipang-apod-apod nga mga sistema naggamit sa Paxos consensus algorithm ug sa lain-laing mga kausaban niini. Ang labing cool nga butang mao nga ang kabalido ug, sa prinsipyo, ang posibilidad nga adunay kini nga algorithm mapamatud-an nga yano sa usa ka bolpen ug papel. Sa parehas nga oras, sa praktis, ang algorithm gigamit sa dagkong mga sistema nga naglihok sa daghang mga node sa mga panganod.

Gaan nga ilustrasyon sa sunod nga hisgutan: ang problema sa duha ka heneralAtong tan-awon ang warm-up tahas sa duha ka heneral.

Kami adunay duha ka kasundalohan - pula ug puti. Ang mga puti nga tropa nakabase sa gilikosan nga siyudad. Ang mga pulang tropa nga gipangulohan sa mga heneral A1 ug A2 nahimutang sa duha ka kilid sa siyudad. Ang tahas sa mga redheads mao ang pag-atake sa puti nga lungsod ug pagdaog. Bisan pa, ang kasundalohan sa matag pula nga heneral nga indibidwal mas gamay kaysa sa kasundalohan sa mga puti.

Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

Mga kondisyon sa kadaugan alang sa mga redheads: ang duha nga mga heneral kinahanglan nga moatake sa parehas nga oras aron adunay usa ka numero nga bentaha sa mga puti. Aron mahimo kini, ang mga heneral A1 ug A2 kinahanglan nga magkauyon sa usag usa. Kung gilain ang pag-atake sa tanan, mapildi ang mga redheads.

Aron makigsabot, ang mga heneral A1 ug A2 mahimong magpadala ug mga mensahero sa usag usa pinaagi sa teritoryo sa puti nga siyudad. Ang mensahero mahimong malampuson nga makaabot sa usa ka kaalyadong heneral o mahimong ma-intercept sa kaaway. Pangutana: aduna bay ingon nga han-ay sa mga komunikasyon tali sa pula nga buhok nga mga heneral (ang han-ay sa pagpadala sa mga mensahero gikan sa A1 ngadto sa A2 ug vice versa gikan sa A2 ngadto sa A1), diin sila garantiya nga magkauyon sa usa ka pag-atake sa oras X. Dinhi, pinaagi sa mga garantiya nasabtan nga ang duha ka heneral adunay klaro nga kumpirmasyon nga ang usa ka kaalyado (laing heneral) moatake sa tukma sa gitakda nga oras X.

Ibutang ta nga nagpadala si A1 ug messenger sa A2 nga adunay mensahe: "Atakihon ta karong tungang gabii!". Ang General A1 dili makaatake kung wala’y kumpirmasyon gikan sa General A2. Kung ang mensahero gikan sa A1 nakab-ot, unya ang kinatibuk-ang A2 nagpadala usa ka kumpirmasyon nga adunay mensahe: "Oo, pun-on nato ang mga puti karon." Apan karon wala mahibal-an ni General A2 kung nakaabot ba ang iyang mensahero o wala, wala siyay garantiya kung dungan ba ang pag-atake. Karon ang General A2 nanginahanglan usab og kumpirmasyon.

Kung atong ihulagway sa dugang ang ilang komunikasyon, kini mao ang mosunod: bisan unsa pa ka daghan nga mga siklo sa pagbayloay sa mensahe, walay paagi sa paggarantiya sa duha ka heneral nga ang ilang mga mensahe nadawat (nagtuo nga ang bisan hain sa mga mensahero mahimong ma-intercept).

Ang problema sa duha ka heneral usa ka maayong ilustrasyon sa usa ka yano kaayo nga sistema nga gipang-apod-apod diin adunay duha ka mga node nga adunay dili kasaligan nga komunikasyon. Mao nga wala kami usa ka 100% nga garantiya nga sila gi-synchronize. Mahitungod sa susama nga mga problema lamang sa mas dako nga sukod sa ulahi sa artikulo.

Pagpaila sa konsepto sa gipang-apod-apod nga mga sistema

Ang usa ka distributed nga sistema usa ka grupo sa mga kompyuter (gitawag nga mga node) nga mahimong magbayloay og mga mensahe. Ang matag indibidwal nga node usa ka autonomous nga entidad. Ang usa ka node makahimo sa pagproseso sa mga buluhaton sa iyang kaugalingon, apan aron makigkomunikar sa ubang mga node, kini kinahanglan nga magpadala ug makadawat og mga mensahe.

Giunsa ang mga mensahe espesipikong gipatuman, unsa nga mga protocol ang gigamit - dili kini makapainteres kanato niini nga konteksto. Importante nga ang mga node sa usa ka distributed system mahimong magbayloay og data sa usag usa pinaagi sa pagpadala og mga mensahe.

Ang kahulugan mismo dili tan-awon nga komplikado kaayo, apan hinumdomi nga ang usa ka gipang-apod-apod nga sistema adunay daghang mga hiyas nga hinungdanon sa amon.

Mga hiyas sa gipang-apod-apod nga mga sistema

  1. Concurrency – ang posibilidad nga mahitabo ang dungan o kompetisyon nga mga panghitabo sa sistema. Dugang pa, atong tagdon nga ang mga panghitabo nga nahitabo sa duha ka lain-laing mga node posibleng magkadungan hangtud nga kita adunay usa ka tin-aw nga han-ay diin kini nga mga panghitabo mahitabo. Ug kasagaran dili.
  2. Walay global nga orasan. Wala kami klaro nga han-ay sa mga panghitabo tungod sa kakulang sa usa ka global nga orasan. Sa ordinaryo nga kalibutan sa mga tawo, naanad na kita sa kamatuoran nga kita adunay mga oras ug oras sa hingpit. Nagbag-o ang tanan kung bahin sa mga gipang-apod-apod nga sistema. Bisan ang mga ultra-tukma nga mga orasan sa atomic naanod, ug adunay mga sitwasyon diin dili naton mahibal-an kung hain sa duha nga mga panghitabo ang una nga nahitabo. Busa, dili usab kita makasalig sa panahon.
  3. Independent nga kapakyasan sa mga node sa sistema. Adunay laing problema: ang usa ka butang mahimong dili maayo tungod lang kay ang atong mga buko dili mahangturon. Ang hard drive mahimong mapakyas, ang virtual nga makina sa panganod mahimong mag-reboot, ang network mahimong mokidlap ug ang mga mensahe mawala. Dugang pa, adunay mga sitwasyon kung ang mga node nagtrabaho, apan sa samang higayon sila nagtrabaho batok sa sistema. Ang kataposang klase sa mga problema nakadawat pa gani ug lain nga ngalan: ang problema Mga heneral sa Byzantine. Ang labing inila nga pananglitan sa usa ka sistema nga gipang-apod-apod nga adunay ingon nga problema mao ang Blockchain. Apan karon dili nato tagdon kining espesyal nga klase sa mga problema. Interesado kami sa mga sitwasyon diin ang usa o daghan pa nga mga node mahimong mapakyas.
  4. Mga modelo sa komunikasyon (mga modelo sa pagmemensahe) tali sa mga node. Nahibal-an na namon nga ang mga node nakigsulti pinaagi sa pagbayloay og mga mensahe. Adunay duha ka ilado nga mga modelo sa pagmemensahe: synchronous ug asynchronous.

Mga modelo sa komunikasyon tali sa mga node sa gipang-apod-apod nga mga sistema

Sayon nga modelo - nahibal-an namon nga sigurado nga adunay usa ka limitado nga nahibal-an nga delta sa oras diin ang mensahe gigarantiyahan nga maabot gikan sa usa ka node ngadto sa lain. Kung nahuman na kini nga oras ug wala pa moabut ang mensahe, mahimo naton luwas nga isulti nga napakyas ang node. Sa ingon nga modelo, kita adunay matag-an nga oras sa paghulat.

Asynchronous nga modelo - sa mga asynchronous nga mga modelo, atong gihunahuna nga ang oras sa paghulat adunay kinutuban, apan wala’y delta sa oras nga pagkahuman mahimo’g garantiya nga napakyas ang node. Mga. ang oras sa paghulat alang sa usa ka mensahe gikan sa usa ka node mahimo nga arbitraryong taas. Kini usa ka hinungdanon nga kahulugan, ug hisgotan pa naton kini.

Ang konsepto sa consensus sa gipang-apod-apod nga mga sistema

Sa dili pa pormal nga ipasabot ang konsepto sa consensus, tagda ang usa ka pananglitan sa usa ka sitwasyon diin gikinahanglan nato kini, nga mao - Replikasyon sa Makina sa Estado.

Kami adunay pipila nga gipang-apod-apod nga log. Gusto namon nga kini mahimong makanunayon ug adunay parehas nga datos sa tanan nga mga node sa usa ka giapod-apod nga sistema. Kung ang usa sa mga node makakat-on sa usa ka bag-ong kantidad nga isulat niini sa log, ang tahas niini mao ang pagtanyag niini nga kantidad sa tanan nga ubang mga node aron ang log ma-update sa tanan nga mga node, ug ang sistema mobalhin sa usa ka bag-ong makanunayon nga kahimtang. Sa samang higayon, importante nga ang mga node magkauyon sa ilang kaugalingon: ang tanan nga mga node nagkauyon nga ang gisugyot nga bag-ong bili husto, ang tanan nga mga node modawat niini nga bili, ug sa niini nga kaso ang tanan maka-log sa usa ka bag-ong bili.

Sa laing pagkasulti: walay bisan usa sa mga node ang misupak nga sila adunay mas bag-o nga impormasyon, ug ang gisugyot nga bili dili husto. Ang kasabutan tali sa mga node ug kasabutan sa usa ka husto nga gidawat nga bili mao ang consensus sa usa ka distributed nga sistema. Sunod, maghisgot kami bahin sa mga algorithm nga nagtugot sa usa ka giapod-apod nga sistema nga makab-ot ang usa ka consensus nga adunay garantiya.
Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema
Sa mas pormal nga paagi, mahimo natong ipasabut ang usa ka consensus algorithm (o usa lamang ka consensus algorithm) isip usa ka function nga nagkinahanglan sa usa ka distributed nga sistema gikan sa estado A ngadto sa estado B. Dugang pa, kini nga estado gidawat sa tanan nga mga node, ug ang tanan nga mga node makakumpirma niini. Ingon sa nahibal-an, kini nga buluhaton dili ingon ka gamay nga ingon sa una nga pagtan-aw.

Mga kabtangan sa consensus algorithm

Ang consensus algorithm kinahanglan adunay tulo ka mga kabtangan aron ang sistema magpadayon sa paglungtad ug adunay pipila nga pag-uswag sa pagbalhin gikan sa estado ngadto sa estado:

  1. Kasabutan – ang tanan nga husto nga nagtrabaho nga mga node kinahanglan nga adunay parehas nga kantidad (sa mga artikulo kini nga kabtangan makita usab ingon usa ka kabtangan sa kaluwasan). Ang tanan nga mga node nga naglihok karon (dili wala sa kahusay ug wala mawala ang kontak sa uban) kinahanglan nga magkauyon ug modawat sa pipila ka katapusan nga sagad nga kantidad.

    Importante nga masabtan dinhi nga ang mga node sa gipang-apod-apod nga sistema nga atong gihunahuna gusto nga magkauyon. Sa ato pa, naghisgot kami karon bahin sa mga sistema diin ang usa ka butang mahimo’g mapakyas (pananglitan, ang pipila ka mga node napakyas), apan sa kini nga sistema sigurado nga wala’y mga node nga tinuyo nga molihok batok sa uban (ang tahas sa mga heneral sa Byzantine). Tungod niini nga kabtangan, ang sistema nagpabilin nga makanunayon.

  2. Integridad - kung ang tanan nga husto nga nagtrabaho nga mga node nagtanyag parehas nga kantidad v, mao nga ang matag husto nga nagtrabaho nga node kinahanglan nga modawat niini nga kantidad v.
  3. Pag-undang - ang tanan nga husto nga nagtrabaho nga mga node sa kadugayan makakuha sa pipila nga kantidad (liveness property), nga nagtugot sa algorithm nga adunay pag-uswag sa sistema. Ang matag indibidwal nga node nga nagtrabaho sa husto kinahanglan nga sa madugay o sa madali modawat sa katapusang bili ug kumpirmahon kini: "Alang kanako, kini nga bili tinuod, miuyon ako sa tibuok nga sistema."

Usa ka pananglitan kung giunsa ang paglihok sa consensus algorithm

Samtang ang mga kabtangan sa algorithm mahimong dili hingpit nga tin-aw. Busa, atong iilustrar uban sa usa ka pananglitan kon unsa nga mga yugto ang pinakasimple nga consensus algorithm nga naagian sa usa ka sistema nga adunay usa ka synchronous nga messaging nga modelo, diin ang tanan nga mga node naglihok sama sa gipaabut, ang mga mensahe dili mawala ug walay bisan unsa nga maguba (mahitabo ba kini?).

  1. Nagsugod ang tanan sa us aka marriage proposal (Propose). Ibutang ta nga ang usa ka kliyente nagkonektar sa usa ka node nga gitawag og "Node 1" ug nagsugod sa usa ka transaksyon, nga nagpasa sa usa ka bag-ong bili ngadto sa node - O. Sukad karon, tawgon nato ang "Node 1" tanyag. Ingon nga ang nagsugyot nga "Node 1" kinahanglan nga ipahibalo karon sa tibuuk nga sistema nga siya adunay bag-ong datos, ug nagpadala siya mga mensahe sa tanan nga ubang mga node: "Tan-awa! Nadawat nako ang kantidad nga "O", ug gusto nako isulat kini! Palihug kumpirmahi nga imong irekord usab ang "O" sa imong log."

    Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

  2. Ang sunod nga yugto mao ang pagboto alang sa gisugyot nga kantidad (Pagboto). Para sa unsa kini? Mahimong mahitabo nga ang ubang mga node nakadawat og mas bag-ong impormasyon, ug sila adunay datos sa samang transaksyon.

    Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

    Kung ang node nga "Node 1" nagpadala sa iyang propuse, ang ubang mga node magsusi sa ilang mga log alang sa datos niini nga panghitabo. Kung walay panagsumpaki, ang mga node nagpahibalo: "Oo, wala ako'y laing datos alang niini nga panghitabo. Ang 'O' nga kantidad mao ang pinakabag-o nga kasayuran nga angay kanamo."

    Sa bisan unsa nga kaso, ang mga node makatubag sa "Node 1": "Paminaw! Naa koy bag-ong datos bahin niini nga transaksyon. Dili "Oh", apan usa ka butang nga mas maayo."

    Sa yugto sa pagboto, ang mga buko moabut sa usa ka desisyon: mahimo silang tanan modawat sa parehas nga kantidad, o usa kanila ang boto batok, nga nagpasabut nga siya adunay labing bag-o nga datos.

  3. Kung nagmalampuson ang hugna sa pagboto, ug ang tanan pabor, nan ang sistema mobalhin sa usa ka bag-ong yugto - pagdawat sa kantidad (Dawata). Ang "Node 1" nagkolekta sa tanan nga mga tubag gikan sa ubang mga node ug nagtaho: "Ang tanan nagkauyon sa kantidad nga 'O'! Karon ako opisyal nga nagpahayag nga ang "O" mao ang among bag-ong kahulugan, parehas sa tanan! Isulat kini sa imong notebook, ayaw kalimti. Isulat sa imong log!"

    Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

  4. Ang nahabilin sa mga node nagpadala sa kumpirmasyon (Gidawat) nga ilang gisulat ang kantidad nga "O" alang sa ilang kaugalingon, wala’y bag-o nga nadawat sa kini nga panahon (usa ka klase nga duha ka hugna nga pasalig). Pagkahuman niining hinungdanon nga panghitabo, among gikonsiderar nga nahuman na ang gipang-apod-apod nga transaksyon.
    Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema

Busa, ang consensus algorithm sa usa ka yano nga kaso naglangkob sa upat ka mga lakang: pagsugyot, pagboto (pagboto), pagdawat (pagdawat), pagkumpirma sa pagdawat (gidawat).

Kung sa usa ka lakang dili kami makaabut sa kasabutan, nan ang algorithm gi-restart, nga gikonsiderar ang kasayuran nga gihatag sa mga node nga nagdumili sa pagkumpirma sa gisugyot nga kantidad.

Consensus algorithm sa asynchronous nga sistema

Sa wala pa kana, ang tanan hapsay, tungod kay kini bahin sa dungan nga modelo sa pagmemensahe. Apan nahibal-an namon nga sa modernong kalibutan naanad na kami sa pagbuhat sa tanan nga dili managsama. Giunsa ang pagtrabaho sa usa ka susama nga algorithm sa usa ka sistema nga adunay usa ka asynchronous nga modelo sa pagmemensahe, diin kami nagtuo nga ang oras sa paghulat alang sa usa ka tubag gikan sa usa ka node mahimo nga arbitraryo nga taas (sa paagi, ang usa ka pagkapakyas sa node mahimo usab nga isipon nga usa ka pananglitan kung ang usa ka node makatubag nga arbitraryong dugay).

Karon nga nahibal-an na naton kung giunsa ang paglihok sa consensus algorithm sa prinsipyo, ang pangutana alang sa mga mausisaon nga mga magbabasa nga nakaabot niini nga punto: pila ka mga node sa usa ka sistema sa N nodes nga adunay usa ka asynchronous nga modelo sa mensahe ang mahimong mahulog aron ang sistema makaabot gihapon sa consensus ?

Ang saktong tubag ug rason sa likod sa spoiler.Ang hustong tubag mao: 0. Kung bisan ang usa ka node sa usa ka asynchronous nga sistema nahulog, ang sistema dili makaabut sa consensus. Kini nga pahayag napamatud-an sa iladong FLP theorem (1985, Fischer, Lynch, Paterson, sumpay sa orihinal sa kataposan sa artikulo): “The impossibility of reach a distributed consensus if at least one node fails.”
Ang Iring ni Schrödinger nga Wala'y Kahon: Ang Problema sa Konsensus sa Gipanagtag nga Sistema
Guys, unya naa tay problema, naanad ta nga asynchronous ang tanan. Ug ania kini. Unsaon pagpadayon sa pagkinabuhi?

Bag-o lang kami naghisgot bahin sa teorya, bahin sa matematika. Unsa ang gipasabot sa "konsensus dili maabot", paghubad gikan sa matematika nga pinulongan ngadto sa atoa - engineering? Kini nagpasabot nga "dili kanunay makab-ot", i.e. adunay usa ka kaso diin ang consensus dili makab-ot. Ug unsa kini nga kaso?

Kini mao gayud ang paglapas sa buhi nga kabtangan nga gihulagway sa ibabaw. Wala kami usa ka komon nga kasabutan, ug ang sistema dili maka-uswag (dili makatapos sa usa ka limitado nga panahon) sa kaso diin kami walay tubag gikan sa tanan nga mga node. Tungod kay sa usa ka asynchronous nga sistema wala kita'y matag-an nga oras sa pagtubag ug dili kita mahibal-an kung ang usa ka node nahulog o nagdugay sa pagtubag.

Apan sa praktis, makakita kita og solusyon. Himoa nga ang among algorithm makadagan sa dugay nga panahon kung adunay mga kapakyasan (kini mahimo’g modagan hangtod sa hangtod). Apan sa kadaghanan nga mga sitwasyon, kung ang kadaghanan sa mga node naglihok sa husto, kita adunay pag-uswag sa sistema.

Sa praktis, nag-atubang kami sa partially synchronous nga mga modelo sa komunikasyon. Ang partial synchronism masabtan sama sa mosunod: sa kinatibuk-ang kaso, kita adunay usa ka asynchronous nga modelo, apan ang usa ka piho nga konsepto sa "global stabilization time" sa usa ka punto sa panahon pormal nga gipaila.

Kini nga gutlo sa panahon mahimong dili moabut sa usa ka basta-basta nga taas nga panahon, apan usa ka adlaw kinahanglan kini moabut. Ang virtual nga alarm clock mobagting, ug gikan nianang higayuna mahimo na natong matagna ang time delta diin maabot ang mga mensahe. Gikan niining puntoha, ang sistema moliko gikan sa asynchronous ngadto sa synchronous. Sa praktis, nag-atubang kami sa ingon nga mga sistema.

Ang algorithm sa Paxos nagsulbad sa mga problema sa consensus

Paxos usa ka pamilya sa mga algorithm nga nagsulbad sa problema sa consensus alang sa partially synchronous nga mga sistema, basta ang pipila ka mga node mahimong mapakyas. Ang tagsulat sa Paxos mao Leslie Lampor. Gisugyot niya ang usa ka pormal nga pamatuod sa pagkaanaa ug pagkahusto sa algorithm kaniadtong 1989.

Apan ang pamatuod nahimo nga dili hinungdanon. Ang unang publikasyon gipagawas lamang niadtong 1998 (33 ka panid) nga naghulagway sa algorithm. Ingon sa nahitabo, lisod kaayong sabton, ug niadtong 2001 gipatik ang usa ka katin-awan alang sa artikulo, nga mikabat ug 14 ka panid. Gihatag ang mga volume sa mga publikasyon aron ipakita nga sa tinuud ang problema sa consensus dili gyud yano, ug luyo sa ingon nga mga algorithm adunay usa ka dako nga buhat sa labing maalamon nga mga tawo.

Makapainteres nga si Leslie Lampor mismo sa iyang lecture nakamatikod nga sa ikaduhang artikulo-pagpatin-aw adunay usa ka pahayag, usa ka linya (wala niya gitino kung hain), nga mahimong hubaron sa lainlaing mga paagi. Ug tungod niini, daghang mga moderno nga pagpatuman sa Paxos wala molihok sa husto.

Ang usa ka detalyado nga pagtuki sa buhat sa Paxos magkinahanglan labaw pa sa usa ka artikulo, mao nga akong sulayan nga ipahayag ang panguna nga ideya sa algorithm sa kadali. Sa mga link sa katapusan sa akong artikulo makit-an nimo ang mga materyales alang sa dugang nga pag-dive sa kini nga hilisgutan.

Mga tahas sa Paxos

Ang Paxos algorithm adunay konsepto sa mga tahas. Tagda ang tulo ka nag-unang mga (adunay mga pagbag-o nga adunay dugang nga mga tahas):

  1. Mga Proposer (mahimo usab adunay mga termino: mga lider o mga koordinetor). Kini ang mga lalaki nga nakakat-on bahin sa pipila ka bag-ong kahulugan gikan sa tiggamit ug nagdala sa papel sa lider. Ang ilang tahas mao ang paglansad sa usa ka hugna sa mga sugyot alang sa usa ka bag-ong kantidad ug pag-coordinate sa dugang nga mga aksyon sa mga node. Dugang pa, gitugotan ni Paxos ang presensya sa daghang mga lider sa pipila nga mga sitwasyon.
  2. Mga tigdawat (mga botante). Kini ang mga node nga nagboto sa pagdawat o pagsalikway sa usa ka partikular nga kantidad. Ang ilang papel importante kaayo, tungod kay ang desisyon nagdepende kanila: unsa nga estado ang sistema moadto (o dili moadto) human sa sunod nga yugto sa consensus algorithm.
  3. Mga Natun-an. Mga node nga yanong modawat ug magsulat sa bag-ong gidawat nga bili kung ang kahimtang sa sistema nausab. Wala sila mohimog mga desisyon, makadawat lang sila ug datos ug mahatag kini sa end user.

Ang usa ka node mahimong maghiusa sa daghang mga papel sa lainlaing mga sitwasyon.

Ang konsepto sa korum

Kita nagtuo nga kita adunay usa ka sistema sa N mga node. Ug kadaghanan kanila F ang mga node mahimong mapakyas. Kung ang F node mapakyas, nan kinahanglan nga kita adunay labing menos 2F+1 acceptor nodes.

Kini mao ang gikinahanglan aron nga kita kanunay, bisan sa pinakagrabe nga sitwasyon, "maayo", sa husto nga pagtrabaho nodes adunay kadaghanan. Kana mao F+1 "maayo" nga mga node nga miuyon, ug ang katapusan nga bili madawat. Kung dili, mahimong adunay usa ka sitwasyon diin ang lainlaing mga lokal nga grupo adunay lainlaing mga kahulugan ug dili magkauyon sa ilang kaugalingon. Busa gikinahanglan nato ang absolutong mayoriya aron makadaog sa boto.

Kinatibuk-ang ideya sa Paxos consensus algorithm

Ang algorithm sa Paxos adunay duha ka dagkong hugna, nga sa baylo gibahin sa duha ka mga lakang matag usa:

  1. Phase 1a: Pag-andam. Atol sa yugto sa pagpangandam, ang lider (proposer) nagpahibalo sa tanang node: “Nagsugod kami og bag-ong yugto sa pagboto. Naa tay bag-ong round. Ang gidaghanon niini nga hugna mao ang n. Magsugod na ta sa pagboto.” Sa pagkakaron, kini nagreport lang sa pagsugod sa usa ka bag-ong siklo, apan wala magreport sa bag-ong bili. Ang tahas sa kini nga yugto mao ang pagsugod sa usa ka bag-ong hugna ug ipahibalo sa tanan ang talagsaon nga numero niini. Importante ang round number, kinahanglan nga mas dako pa sa tanan nga mga numero sa pagboto sa miaging mga lider. Tungod kay salamat sa round number nga masabtan sa ubang mga node sa sistema kung unsa ka presko ang datos sa lider. Tingali ang ubang mga node adunay mga resulta sa pagboto gikan sa ulahi nga mga hugna ug isulti lang sa lider nga siya naa sa ulahi.
  2. Phase 1b: Saad. Sa diha nga ang mga acceptor node nakadawat sa gidaghanon sa bag-ong yugto sa pagboto, duha ka resulta ang posible:
    • Ang numero n sa bag-ong boto mas dako pa kay sa gidaghanon sa bisan unsa sa miaging mga boto diin ang midawat miapil. Unya ang tigdawat mopadala ug saad ngadto sa lider nga dili na kini moapil sa bisan unsang boto nga adunay numero nga ubos sa n. Kung ang tigdawat nakaboto na alang sa usa ka butang (nga mao, nakadawat na kini og pipila ka bili sa ikaduhang hugna), unya kini idugang ang gidawat nga bili ug ang gidaghanon sa boto diin kini miapil sa iyang saad.
    • Kon dili, kon ang tigdawat nasayod na sa taas nga numero sa boto, mahimo na lang nga ibaliwala ang lakang sa pagpangandam ug dili motubag sa lider.
  3. Phase 2a: Dawata. Ang lider kinahanglan nga maghulat alang sa tubag gikan sa korum (kadaghanan sa mga node sa sistema) ug, kung ang gikinahanglan nga gidaghanon sa mga tubag madawat, nan siya adunay duha ka kapilian alang sa pagpalambo sa mga panghitabo:
    • Ang pila sa mga nagdawat nagsumite mga kantidad nga ilang gibotohan na. Sa kini nga kaso, gipili sa lider ang kantidad gikan sa boto nga adunay labing kataas nga numero. Tawgon nato kini nga kantidad nga x, ug ipadala ang usa ka mensahe nga sama niini sa tanan nga mga node: "Dawata (n, x)", diin ang una nga kantidad mao ang numero sa pagboto gikan sa kaugalingon nga lakang sa Pagsugyot, ug ang ikaduha nga kantidad mao ang gitigum sa tanan, i.e. bili nga, sa pagkatinuod, atong boto.
    • Kung walay bisan kinsa sa mga midawat nga nagpadala sa bisan unsa nga mga bili, apan sila misaad lamang sa pagbotar niini nga hugna, ang lider makadapit kanila sa pagbotar alang sa ilang bili, ang bili diin siya nahimong usa ka lider sa tanan. Tawgon nato ug y. Nagpadala kini sa tanan nga mga node usa ka mensahe sa porma: "Dawata (n, y)", pinaagi sa pagtandi sa miaging sangputanan.
  4. Phase 2b: Gidawat. Dugang pa, ang acceptor nodes, sa pagdawat sa mensahe nga "Dawata (...)", gikan sa lider miuyon niini (ipadala ang kumpirmasyon sa tanan nga mga node nga sila miuyon sa bag-ong bili) lamang kon sila wala misaad sa pipila (uban pa) sa lider nga moapil sa pagbotar sa gidaghanon sa round n' > nkung dili, dili nila ibaliwala ang pagkumpirma nga prompt.

    Kung ang kadaghanan sa mga node mitubag sa lider, ug silang tanan nagpamatuod sa bag-ong bili, nan ang bag-ong bili giisip nga gidawat. Hooray! Kung ang kadaghanan wala ma-type o adunay mga node nga nagdumili sa pagdawat sa bag-ong kantidad, nan ang tanan magsugod pag-usab.

Ingon niini kung giunsa ang Paxos algorithm molihok. Ang matag usa niini nga mga yugto adunay daghang mga subtleties, halos wala namon gikonsiderar ang lainlaing mga lahi sa mga kapakyasan, mga problema sa daghang mga lider, ug daghan pa, apan ang katuyoan sa kini nga artikulo mao lamang ang pagpaila sa magbabasa sa kalibutan sa gipang-apod-apod nga kompyuter sa taas nga lebel.

Angayan usab nga matikdan nga ang Paxos dili lamang usa sa matang niini, adunay uban pang mga algorithm, pananglitan, Raft, apan kini usa ka hilisgutan alang sa laing artikulo.

Mga link sa mga materyales para sa dugang nga pagtuon

Bag-ong lebel:

Leslie Laport Level:

Source: www.habr.com

Idugang sa usa ka comment