• Ei tuloksia

• Transientit virheet

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "• Transientit virheet"

Copied!
32
0
0

Kokoteksti

(1)

Itsestabiloiva bysanttilainen yhteisymmärrys

Timo Virkkala

(2)

Ongelma

• Päätöksenteko

– Yksi lähettää arvon

– Kaikki yrittävät päästä yhteisymmärrykseen

• Transientit virheet

– Ratkaisu: Itsestabilointi

• Bysanttilaiset virheet

– Ratkaisu: Enemmistö

(3)

ss-Byz-Agree -protokolla

• Vikamalli

– Aluksi rajaton määrä mitä tahansa virheitä

Mikä tahansa ”alkutila”

– Lopulta siedettävä virhetaso riittävän pitkään

3f < n, missä f virheiden määrä, n solmujen määrä

– Päätös ajassa O(f’) kommunikaatiokierrosta

f’ samanaikaisten virheiden todellinen määrä

(4)

ss-Byz-Agree -protokolla

• Verkko ja kommunikointi

– n solmua

– Autentikoidut lähettäjät

– Ei takuuta viestien järjestyksestä – Ei globaalia kelloa, yhteistä pulssia – Paikallisten kellojen nopeusvirhe ρ

•(Bounded drift)

(5)

Algoritmin yleiskatsaus

(6)

ss-Byz-Agree -protokolla

Alustus/esihyväksyminen (seur.kalvo)

Arvon hyväksyminen

Arvon hyväksyminen

Lopetus ilman arvoa Lopetus ilman arvoa

(7)

Initiator-Accept

Kenraalilta saadun arvon kannatus

Kannatuksen kerääminen

Alustuksen hyväksyminen

(8)

Msgd-Broadcast

Oman arvon ehdotus Ensimmäinen kaiku

Konsensuksen ehdotus

Toinen kaiku

Hyväksyminen

Typo(?)

(9)

Määritelmiä

(10)

Määritelmiä

• Ei-viallinen solmu (non-faulty node)

– Rajallinen poikkeama (bounded drift)

•Nopeus ρ päässä reaaliajan nopeudesta

– Tottelevaisuus (obedience)

•Noudattaa protokollaa täsmällisesti

– Rajallinen käsittelyaika (bounded processing time)

•Käsittelee kaikki viestit π aikayksikön sisällä saapumisesta

• Korrekti solmu

– Jos toiminut ei-viallisesti riittävän pitkään

solmu, määritellään myöhemmin

(11)

Määritelmiä

• Ei-viallinen verkko (non-faulty network)

– Rajoitettu toimitusaika

•Kaikki viestit saapuvat δ aikayksikön sisällä

– Autentikointi

•Lähettäjän identiteetti ei muutu

•Viestin sisältö ei muutu

• Korrekti verkko

– Jos toiminut ei-viallisesti riittävän pitkään

verkko, määritellään myöhemmin

(12)

Määritelmiä

• Koherentti järjestelmä

– Päätösvaltainen joukko (quorum)

•Vähintään n f korrektia solmua

– Korrekti verkko

(13)

Määritelmiä

• Viestien kuljetus- ja käsittelyaika d ≡ δ + π

– δ viestien kuljetusaika verkossa – π viestien käsittelyaika solmussa

• ∆

solmu

≥ 14(2f + 3)d + 10d

– Solmun korrektiuteen tarvittava aika

• ∆

verkko

≥ d

– Verkon korrektiuteen tarvittava aika

• n, f ja d vakioita

– Eivät voi muuttua virhetilanteissa

(14)

Ominaisuudet

• Yhteisymmärrys (agreement)

– Kaikki korrektit solmut päätyvät samaan arvoon

• …jos tämä arvo on epätyhjä

• Validiteetti (validity)

– Jos korrektit solmut aloittavat protokollan kenraalin G lähettämälle arvolle, niin kaikki korrektit solmut

hyväksyvät tämän arvon

• Päättyminen (termination)

– Protokolla päättyy äärellisessä ajassa

• Oikea-aikaisuus (timeliness)

– Monimutkainen määritelmä

(15)

Algoritmin toiminta

(16)

Aloitus

• Kenraali G lähettää kaikille (Initiator, G, m)

– Mikä tahansa solmu voi toimia kenraalina – Useita käynnistyksiä samanaikaisesti

– Korrektit kenraalit lähettävät rajoitetusti

• Solmut aloittavat protokollan

– Jos vastaanotettu suora viesti kenraalilta

•Kutsutaan Initiator-Accept(G, m)

– Jos havaitaan, että muut aloittaneet

•Suoritetaan osia Initiator-Accept:sta

(17)

Esihyväksyntä

(18)

Initiator-Accept

• Primitiivin Initiator-Accept (G, m) tarkoitus

– Yhteisymmärrys kenraalin lähettämästä arvosta

•”Esihyväksyminen”

•Kandidaattiarvo tulevalle lopulliselle hyväksynnälle

– Yhteisymmärrys aloituksen ajankohdasta

•Suhteessa omaan kelloon

(19)

Initiator-Accept

• Suoritetaan solmussa q

– Lohko K suoritetaan vain, jos q vastaanottanut G:n suoran viestin

• Paikallisaika τq

• Tietorakenne initiator[G,m]

– Säilyttää tiedon kenraalin G aloittaman instanssin arvioidusta aloitusajasta τqG

• Lähetetään muille tieto omasta tilanteesta

– (support, G, m)

”Kannatan G:n lähettämää arvoa m”

Kenraalilta saadun arvon kannatus

(20)

Initiator-Accept

• L1 ja L2 toistetaan, kunnes I-accept

• Muut suoritetaan korkeintaan kerran

– Kun esiehto pätee

• Jos vastaanotettu riittävä kannatus

– Lähetään (ready, G, m)

”Olen valmis esihyväksymään arvon m”

Kenraalilta saadun arvon kannatus

Kannatuksen kerääminen

(21)

Initiator-Accept

• Jatketaan esihyväksynnän ehdottamista

• Jos riittävästi solmuja valmiina hyväksymään

Esihyväksyntä I-accept〈G, m, τqG

Kenraalilta saadun arvon kannatus

Kannatuksen kerääminen

Alustuksen hyväksyminen

(22)

Varsinainen yhteisymmärrys

• Kun esihyväksyntä on tehty

– Määritetty kenraali G, arvo m, aloitusaika τqG

Aika muodostaa varsinainen yhteisymmärrys

• Käytetään primitiiviä Msgd-Broadcast(p, arvo, k)

•Pyrkii hyväksymään viestin arvo = G, m

•Lähettäjäsolmu p

•Viestintäkierros k

• Jokainen lohko seuraavilla kalvoilla suoritetaan korkeintaan kerran

• Jos esiehto pätee

(23)

Varsinainen yhteisymmärrys

(24)

Msgd-Broadcast

• Lähetetään (init, p, m, k)

”Minä p ehdotan viestiä m kierroksella k”

•Viesti m sisältää G, arvo

arvo: Esihyväksynnän kandidaattiarvo (siellä m)

Oman arvon ehdotus

(25)

Msgd-Broadcast

• Jos vastaanotettu ehdotus omasta arvosta

– Kaiutetaan se muille

• Suorituksesta

– Lohkot suoritetaan vain, kun τqG on määritelty – Jokainen viesti lähetetään korkeintaan kerran

– Vastaanotetut duplikaattiviestit jätetään huomiotta – Solmut lakkaavat osallistumasta viestintäkierroksiin 3d

lopullisen hyväksymisen jälkeen

Oman arvon ehdotus Ensimmäinen kaiku

(26)

Msgd-Broadcast

• Jos vastaanotettu riittävästi kaikuja

– Tiedetään montako solmua on mukana

– Jos vaikuttaa, että voidaan saada enemmistö

•Ehdotetaan yhteisymmärrystä

– Jos ylivoimainen enemmistö, hyväksytään heti

•Silti jatketaan myös seuraaviin lohkoihin

Oman arvon ehdotus Ensimmäinen kaiku

Konsensuksen ehdotus

Typo(?)

(27)

Msgd-Broadcast

• Jälleen kaiutetaan

• broadcasters ei selitetty alkup. artikkelissa

– Lista mukanaolevista solmuista

Oman arvon ehdotus Ensimmäinen kaiku

Konsensuksen ehdotus

Toinen kaiku

Typo(?)

(28)

Msgd-Broadcast

• Hyväksytään korkeintaan kerran

Oman arvon ehdotus Ensimmäinen kaiku

Konsensuksen ehdotus

Toinen kaiku

Hyväksyminen

Typo(?)

(29)

ss-Byz-Agree -protokolla

• Hylkääminen

– Joko päädytään tyhjään arvoon – …tai ei hyväksytä mitään arvoa

Alustus/esihyväksyminen (seur.kalvo)

Arvon hyväksyminen

Arvon hyväksyminen

Lopetus ilman arvoa Lopetus ilman arvoa

(30)

Todistukset

(31)

Todistukset

…sivuutetaan triviaaleina

…jätetään harjoitustehtäväksi

(32)

Kysyttävää?

Hyvää Joulua!

Viittaukset

LIITTYVÄT TIEDOSTOT

Kaikki oikein toimivat solmut vastaanottavat tämän viestin ja aloittavat näin myös protokollan suorituksen.. Jos kaikki korrektit solmut aloittavat protokollan suorituksen

(vain osittain) Todistetaan vain se puoli, josta saadaan eräs (köm- pelöhkö) keino Eulerin ketjun etsimiseksi. Olkoon siis G yhtenäinen ja kaikki solmut parillista astetta. Olkoon

[r]

Tutki- muksessa oletetaan, että algoritmit joutuvat käymään kartan kaikki solmut läpi löytääkseen reitin ilman, että kartassa olisi yhtään esteitä.. Oletamme myös, että

Solmuvalvonta voidaan tehdä siten, että jokin solmuista (esim. verkonhallintaisäntä) voidaan määrätä kiertoky- selijäksi tai solmut voivat kysellä läsnäoloa solmuilta, jotka

Yhdistämissuunnitelmiin on sisältynyt myös korkeakoulukirjas- toissa suoritettu kysely, jossa henkilökunta on arvioinut erilaisten yhteistoimintamuotojen toimivuutta.. Arviot

Miksi toimia tieteen kentällä suomeksi, ruotsiksi tai ylipäätään jollain muulla kielellä kuin englannilla – siinäpä kysymys.. Esimerkiksi suomea ymmärtää vain

Jos olisi olemassa heuristiikka, joka pystyisi arvioimaan täydellisesti jäljellä olevan matkan maalisolmuun, A*-algoritmi kävisi läpi vain ne solmut, jotka ovat lyhimmäl-..