Paxos-algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 11. syyskuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .

Paxos ( englanniksi  Paxos ) on protokollaperhe konsensusongelman ratkaisemiseksi epäluotettavien tietokoneiden verkossa. Konsensus on prosessi, jossa osallistujaryhmä saa sovitun tuloksen. Suurin ongelma on häiriön esiintyminen tiedonsiirtovälineessä [1] . Tätä tehtävää käytetään esimerkiksi tapahtumien hyväksymiseen hajautetuissa järjestelmissä.

Protokollat ​​konsensusongelman ratkaisemiseksi ovat Leslie Lamportin [ 2] ehdottaman ja F. Schneiderin [3] edelleen tutkiman automaattisen lähestymistavan peruselementti .

Automaattinen lähestymistapa on menetelmä algoritmin toteuttamiseksi hajautetussa järjestelmässä, joka ylläpitää vikasietoisuutta. Tämä on systemaattinen lähestymistapa, joka ei salli virheiden tiedostamista. Lamportin periaatteellinen lähestymistapa ottaa huomioon kaikki mahdolliset tapaukset.

Paxos-protokollaperhe luotiin ja kuvattiin vuonna 1990, mutta se julkaistiin tieteellisessä kirjallisuudessa vasta vuonna 1998. Tutkimus aiheesta aloitettiin kuitenkin kauan ennen protokollan käyttöönottoa. Esimerkiksi automaattinen replikointi , ohjelmointitapa, joka perustuu vuonna 1985 ehdotettuun virtuaaliseen synkronointimalliin .

Paxos-protokollaperhe harkitsee konsensusongelman ratkaisuvaihtoehtoja arvioijien lukumäärän, tuloksen saamisen viiveiden, osallistujien aktiivisuuden, lähetettyjen viestien määrän ja epäonnistumisten mukaan. Vikaturvallisen konsensuksen tulos on määrittelemätön (eli tietyin edellytyksin arvioijat eivät pääse yksimielisyyteen), mutta turvallisuus (johdonmukaisuus) on taattu, ja olosuhteet, joissa konsensus on mahdotonta, ovat erittäin harvinaisia.

Tietoja nimestä

Algoritmi on nimetty kreikkalaisen Paxoksen saaren kuvitteellisen oikeusjärjestelmän mukaan .

Turvallisuus- ja selviytymisominaisuudet

Tämän perheen algoritmit takaavat seuraavat 3 indikaattoria:

Edellytykset

Paxos-algoritmin esittämisen yksinkertaistamiseksi kuvataan seuraavat määritelmät ja ehdot.

Laskimet

Verkko

Prosessorien määrä

Tyypillisesti konsensusalgoritmi voi edistyä käyttämällä 2F+1-prosessoreita, vaikka kaikki F-prosessorit epäonnistuvat samanaikaisesti. Uudelleenmäärityksen avulla on kuitenkin mahdollista käyttää protokollaa, joka kestää minkä tahansa määrän täydellisiä vikoja, kunhan enintään F prosessoria epäonnistuu samanaikaisesti.

Roolit

Paxos kuvaa prosessorien toimintaa niiden rooleilla protokollassa: asiakas, vastaanottaja (hyväksyjä), hakija (tarjous), oppija ja johtaja. Tyypillisissä toteutuksissa yhdellä prosessorilla voi olla yhtä tai useampaa roolia samanaikaisesti. Tämä ei vaikuta protokollan oikeellisuuteen - rooleja yhdistetään yleensä latenssin ja/tai protokollan viestien määrän vähentämiseksi.

Asiakas Asiakas lähettää pyynnön hajautetulle järjestelmälle ja odottaa vastausta. Esimerkiksi pyyntö kirjoittaa tiedostoon hajautetulla tiedostopalvelimella. Hyväksyjä (äänestäjä) Hyväksyjät toimivat protokollan vikaturvallisena "muistina". He kokoontuvat ryhmissä, joita kutsutaan koorumeiksi. Kaikki hyväksyjälle lähetetyt viestit on lähetettävä hyväksyjien koorumiin. Kaikki hyväksyjältä saadut viestit jätetään huomiotta, kunnes jokaiselta päätösvaltaisessa hyväksyjältä on vastaanotettu kopio. Hakija (ehdotus) Kantaja puolustaa asiakkaan pyyntöä yrittämällä saada hyväksyjät hyväksymään pyynnön ja toimii avustajana protokollan eteenpäin viemisessä ristiriitojen sattuessa. Opiskelija Oppijat toimivat protokollan replikointitekijänä. Kun hyväksyjät ovat neuvotelleet asiakkaan pyynnöstä, oppija voi ryhtyä toimiin (eli täydentää pyyntöä ja lähettää vastauksen asiakkaalle). Lisää opiskelijoita voidaan lisätä käsittelyn käytettävyyden parantamiseksi. Johtaja Paxos vaatii erinomaisen hakijan (kutsutaan johtajaksi) edistyäkseen. Monet prosessit saattavat uskoa olevansa johtajia, mutta pöytäkirja takaa edistymisen vain, jos joku heistä lopulta valitaan. Jos kaksi prosessia luulee olevansa johtajia, ne voivat pysäyttää protokollan tarjoamalla jatkuvasti ristiriitaisia ​​päivityksiä. Tässä tapauksessa turvaominaisuudet kuitenkin säilyvät.

Päätösvaltaisuus

Päätösvaltaisuus on enemmistö klusterin jäsenistä.

Q = N/2 + 1

Esimerkiksi jos klusterissa on 6 jäsentä, päätösvaltaisuus on 4.

Koorumit ilmaisevat algoritmin turvallisuusominaisuudet varmistaen, että tiedot tuloksista säilyvät ainakin joissakin säilyneissä prosessoreissa.

Koorumit määritellään hyväksyjäjoukon osajoukoiksi siten, että millä tahansa kahdella osajoukolla (eli kahdella koorumilla) on vähintään yksi yhteinen elementti. Tyypillisesti päätösvaltainen on mikä tahansa osallistuvien hyväksyjien enemmistö. Tarkastellaan esimerkiksi hyväksyjien joukkoa {A, B, C, D}, jonka enemmistön päätösvaltaisuus on mitkä tahansa kolme hyväksyjää: {A, B, C}, {A, C, D}, {A, B, D} tai {B ,C,D}. Yleisemmin hyväksyjille ja koorumille voidaan antaa mielivaltaiset positiiviset painot, jotka määritellään minkä tahansa hyväksyjien alajoukoksi, joiden yhdistetty paino on suurempi kuin puolet kaikkien vastaanottajien kokonaispainosta.

Ehdotettu määrä ja sovittu arvo

Jokainen yritys määrittää v:n neuvoteltu arvo tehdään ehdotusten avulla, jotka hyväksyjät voivat hyväksyä tai olla hyväksymättä. Jokainen tarjous on yksilöllisesti numeroitu tietylle hakijalle. Numeroitua lausetta vastaava arvo voidaan laskea osana Paxos-protokollan suorittamista, mutta sitä ei vaadita.

Pysäytetty paxos

Pysäytystilakone on kone, joka voi pysäyttää tietyn komennon käytön. Tällaisia ​​automaatteja käytetään esimerkiksi konfiguraatiomuutoksen toteuttamiseen replikoituneessa automaatissa: uudelleenkonfiguroitava automaatti toteutetaan sarjana pysäytettyjä automaatteja, joista jokainen toimii omassa konfiguraatiossaan. Pysäyttävä paxos toteuttaa replikoitavan pysäytettävän tilakoneen.

Teollinen käyttö

Katso myös

Muistiinpanot

  1. Pease, Marshall; Robert Shostak, Leslie Lamport. Reaching Agreement in the Presence of Faults  (englanniksi)  // Journal of the Association for Computing Machinery  : Journal. - 1980. - huhtikuu ( osa 27 , nro 2 ) .
  2. Lamport, Leslie. Aika, kellot ja tapahtumien järjestys hajautetussa järjestelmässä // Communications of the ACM  :  Journal. - 1978. - Heinäkuu ( osa 21 , nro 7 ) . - s. 558-565 . - doi : 10.1145/359545.359563 .  
  3. Schneider, Fred. Vikasietoisten palveluiden käyttöönotto tilakonelähestymistapaa käyttäen: opetusohjelma  //  ACM Computing Surveys : päiväkirja. - 1990. - Voi. 22 . - s. 299 . - doi : 10.1145/98163.98167 . Arkistoitu alkuperäisestä 8. toukokuuta 2006.

Linkit

  • Leslie Lamport, Dahlia Malkhi, Lidong Zhou. Pysäyttävä Paxos  (englanniksi) (PDF). Microsoft Research (28. huhtikuuta 2008). Haettu 26. elokuuta 2012. Arkistoitu alkuperäisestä 26. lokakuuta 2012.