Hajautetut järjestelmät K07 LH 3 Tanenbaum Ch 4, 5 1. Osoita (= selitä asiaa tuntemattomalle), että Lamportin kellot kuvaavat "kausaalijärjestystä" (eli jos a -> b, niin C(a)" -relaatiota). Miksi Lamportin kelloa ei voida käyttää esimerkiksi hajautetun ilmoitustaulun toteuttamiseen (jossa "kausaalirelaatio" vaaditaan)? Mihin Lamportin kello sitten voidaan käyttää? Anna esimerkki. 2. Esitä yksityiskohtaisesti totaalijärjestyksen toteuttava hajautettu algoritmi (Tanenbaum: luku 5.2.1, luennot: luvun 5 kalvo 16 ) ja perustele sen toimivuus: - kaikissa sanomien odotusjonoissa (hold-back queue) sanomat ovat samassa järjestyksessä - kun odotusjonon kärjessä olevaan sanomaan liittyvät kuittaukset ovat saapuneet, niin sen eteen ei voi enää ilmestyä ketään (eli kaikki sen edeltäjät ovat jo saapuneet) Onko ehdottoman välttämätöntä, että jokainen sanoma kuitataan? Totaalijärjestys on muuten aivan helppo toteuttaa keskitettynä palveluna. Miten? Anna pari esimerkkiä sovelluksista, joissa totaalijärjestystä tarvitaan. 3. Ilmoitustaulu on replikoitu kolmelle palvelijalle P1, P2, P3. Peruskäyttäjä on yhteydessä yhteen ilmoitustauluun, jota hän voi lukea ja jolle hän voi lähettää sanomia. Ilmoitustaulujärjestelmä levittää sanomat vähitellen kaikille muille imoitustauluille. Kuljetusajat vaihtelevat merkittävästi. Sanomat eivät välttämättä edes tule perille lähetysjärjestyksessä, mutta niiden halutaan kuitenkin toteuttavan "kausaalijärjestyksen". a) Mitä "kausaalijärjestys" tässä yhteydessä tarkoittaa? b) Miten järjestysvaatimus saadaan toteutettua vektoriaikaleimoja käyttäen? Esitä periaate ja perustele sen toimivuus. Keskeistä: millainen semantiikka vektoriaikaleimaan on hyvä liittää (eli mitä solmun i vektorikellon kukin komponentti tarkoittaa ja mitä sanomaan kytketystä aikaleimasta on pääteltävissä)? c) Ilmoitustaulujen aikaleimat ovat tietyllä hetkellä (5,2,8), (4,5,6) ja (4,5,8). Jokaisen ilmoitustaulun äärellä on lukija, joka päättää lisätä oman kommenttinsa ilmoitustaululle. Simuloi syntyvää kommunikointia. d) Esitä algoritmi, jolla sanomanvälitysjärjestelmä toteuttaa ilmoitustaulusovelluksen vaatiman kausaalijärjestyksen. (Sanomanvälitysjärjestelmä ottaa vastaan sanomia paikalliselta käyttäjältä ja verkosta, huolehtii "kelloista" ja aikaleimoista sekä varastoi saapuneen sanoman, kunnes sen voi luovuttaa ilmoitus- taulusovellukselle. Keskeinen kysymys: mistä sanomanvälitysjärjestelmä tietää, että sanoma voidaan luovuttaa ilmoitustaululle eli että yhtäkään sen 4. Sovellus muodostuu kiinteästä N:n prosessin ryhmästä, kukin prosesseista toimii omassa solmussaan hitaan yhteyden takana. Kommunikointiin on käytettävissä send/receive-operaatioita, joiden perussyntaksi on send to receive from (kaikki persistence/synchronization -yhdistelmät ovat käytettävissä; täsmennä, minkä haluat ja perustele valintasi). Miten toteuttaisit näitä käyttäen sovellustasolle tarkoitetun luotetta- van monilähetysoperaation "multicast to " ? Tarkoitus on tehdä operaatiosta mahdollisimman tehokas. Vertaa siis eri ratkaisumahdollisuuksia keskenään ja perustele ratkaisusi.