590 likes | 813 Views
HAJAUTETUT JÄRJESTELMÄT - KONSISTENTTISUUS JA REPLIKOINTI - Erkki Jyrkkänen & Åke Tyvi. ESITYKSEN SISÄLTÖ. SEMINAARISSA KÄSITELTÄVÄT ASIAT Tietokeskeiset eheysmallit (Erkki Jyrkkänen) tiukka eheysmalli (strict consistency model) jaksollinen eheysmalli ja lineaarisoitavuus
E N D
HAJAUTETUT JÄRJESTELMÄT- KONSISTENTTISUUS JA REPLIKOINTI - Erkki Jyrkkänen & Åke Tyvi
ESITYKSEN SISÄLTÖ SEMINAARISSA KÄSITELTÄVÄT ASIAT • Tietokeskeiset eheysmallit (Erkki Jyrkkänen) • tiukka eheysmalli (strict consistency model) • jaksollinen eheysmalli ja lineaarisoitavuus • Replikointikäytännöt (Åke Tyvi) • Replikaatin sijaintipaikka (replicate placement) • Epideemiset protokollat (epidemic protocols) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ASIAN OPPIMISMOTIVOINTI • Kuuntelija ymmärtää luennon jälkeen • miten parantaa (hajautetun) järjestelmän suorituskykyä ja luotettavuutta • erilaiset replikointikäytännöt ja niiden hyödyntäminen hajautettujen järjestelmien järjestelmäsuunnittelussa eli IT-infran rakentamisessa • käyttöympäristön asettamat vaatimukset tiedon ristiriidattomuudelle (consistency) ja replikoinnille (replicating) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
HAJAUTETUT JÄRJESTELMÄT - KONSISTENTTISUUS JA REPLIKOINTI - TEKNIIKAN JA LIIKENTEEN TOIMIALASähkö- ja tietoliikennetekniikkaOhjelmistotekniikka Erkki Jyrkkänen & Åke Tyvi Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
MITÄ REPLIKOINTI ON? • Replikointi tarkoittaa tietojen automaattista päivitystä paikasta toiseen siten, että vain muuttuneet osat kopioidaan. • Data, johon luku- ja kirjoitusoperaatiot kohdistuvat, voi hajautetuissa järjestelmissä sijaita monessa eri paikassa, kuten jaetussa muistissa, tietokannoissa tai tiedostoissa. Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
REPLIKOINTIIN ON KAKSI PÄÄSYÄ • luotettavuuden parantaminen • suorituskyvyn parantaminen Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
REPLIKOINTI PARANTAA LUOTETTAVUUTTA • Jos data on vioittunut, voidaan palvelu ohjata käyttämään replikaa • Saadaan varmuuskopiointi lähes automaattisesti Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
REPLIKOINTI PARANTAA SUORITUSKYKYÄ • On järkevää sijoittaa palvelu mahdollisimman lähelle käyttäjiä • Vähentää komponenttien kuormaa • Järjestelmään voidaan lisätä enemmän prosessoreita ja muistia Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
CACHING – REPLIKOINNIN ERIKOISMUOTO • Esimerkkinä web-selain Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
kuinka paljon viivettä suvaitaan? eheyden säilyttäminen REPLIKOINNIN ONGELMAT Kuva [1] Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Tietokeskeiset eheysmallit eheysmallit kuvaavat kuinka muutokset tehdään Tiukka eheys Jaksollinen eheys EHEYSMALLIT Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
TIUKAN EHEYDEN MÄÄRITELMÄ • Jokainen lukuoperaatio tietoalkioon (data item) X, palauttaa arvon viimeisimmästä kirjoitusoperaatiosta tietoalkioon X Esimerkki [1] Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ONGELMAT • Määritelmän mukaan suoriuduttava viimeisimmän tiedon lukemisesta ennen uutta kirjoitustapahtumaa. • Jotta määritelmän sanalla ”viimeisin”, olisi jotain merkitystä, pitäisi olla olemassa absoluuttinen globaali aika, jonka mukaan tapahtumat voidaan asettaa aikajärjestykseen. • Jos prosessien aikaero 1ns ja kuljettava matka 3 metriä. Signaalin kuljettava kymmenkertaisella valon nopeudella! Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ONGELMAT • Yksiprosessori järjestelmissä toteutettavissa • Hajautetuissa järjestelmissä toteuttaminen mahdotonta • Sitä pidetään ns. ideaalina mallina. Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
JAKSOLLLINEN EHEYS • Kaikkien prosessien tietovarastoon kohdistuvat operaatiot (luku ja kirjoitus) suoritetaan jossain jaksollisessa järjestyksessä ja jokaisen yksittäisen prosessin operaatio tapahtuu tässä järjestyksessä, sen oman ohjelman määrittelemällä tavalla Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
JAKSOLLLINEN EHEYS • Unohdamme absoluuttisen globaalin ajan käsityksen • Tapahtumien järjestys pitää ratkaista ohjelmallisesti erilaisilla synkronointi operaatioilla, kuten semaforeilla • Semaforeilla muuttuja lukitaan siten, että lukuoperaatiota ei voida suorittaa ennen kuin kirjoitusoperaatio on suoritettu loppuun Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ESIMEKKI 1 Kuva [1] Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ESIMEKKI 2 Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
LINEARISOINTI • Lineaarisointi = jaksollinen eheys + operaatiot varustettuina aikaleimoilla • Jos, niin OP1(x) suoritetaan ennen OP2(y) suorittamista Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
KONSISTENTTISUUS JA REPLIKOINTI REPLIKOINTISYYT • Luotettavuus • Suorituskyvyn paraneminen REPLIKOINNISTA JOHDETTAVA VAATIMUS • Tiedon viite-eheys eli ristiriidattomuus Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
KONSISTENTTISUUS JA REPLIKOINTI REPLIKOINTIPÄÄTÖKSEN SEURAAMUS • Tiedon kopioiminen lähteestä kohteeseen REPLIKOINTIPROSESSI KOOSTUU • Tiedon kopioinnista ilman eheysvaadetta • Ristiriidattomasta eli viite-eheästä tiedosta Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
MONENNETUN TIEDON SIJAINTIPAIKKA Tietovaraston hajaut- tamispäätös liittyy ai- na tietovarastojen suunnitteluun: • Pysyväisluontoiset • Palvelinpyyntöiset • Työasemapyyntöi-set kopiot Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Alkuperäiskopiot muo-dostavat hajautetun tietovaraston (distributed data store) Esim. 1: Paikallisver-kossa palvelua dedi-koiva Round-Robin periaatteella toimiva Web-palvelin PYSYVÄISLUONTOISET KOPIOT (permanent replicas) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Esim. 2: Peilauspalveli-mia (mirror sites). Käyttäjä valitsee halua-mansa palvelimen Palvelimet ovat yleensä rypästettyjä staattisessa kokoonpanossa PYSYVÄISLUONTOISET KOPIOT (permanent replicas) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
PALVELINALOITTEISET KOPIOT (server-initiated replicas) • Perustuu tietovaraston omistajan (data store owner) tarpeeseen tasata purkeista aiheutuva kuormitus • suorituskyvyn parantuminen tai sen ennallaan pysyminen • monennetut (ja yleensä) staattiset tietovarastot toimivat lähettävänä välimuisteina (push cache) • Käytettään mm. Web-maailmassa Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Dynaamisen replikoin-tialgoritmin avulla pal-velin monistaa itsensä tai palvelimen kuormi-tetut tiedostot Replikointi toteutetaan peilaamalla tai monis-tamalla ko. sivusto tai tiedosto(t) kyselyitä lähettäneen asiakkaan läheisyyteen PALVELINALOITTEISET KOPIOT (server-initiated replicas) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Kukin palvelin pitää kirjaa tiedostokohtai-sista saantipyynnöistä ja mistä saantipyyntö tuli etäisyydet selvillä dynaamisen uudel-leenjärjestelyn edel-lytys PALVELINALOITTEISET KOPIOT (server-initiated replicas) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
PALVELINALOITTEISET KOPIOT (server-initiated replicas) KÄSITTEISTÖÄ • Saantipyyntö (access count) cnt0(P,F) • Poistamiskynnys (deletion threshold) del(S,F) • Replikointikynnys rep(S,F) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
PALVELINALOITTEISET KOPIOT (server-initiated replicas) • Palvelimella Q on kahden-tumisaika tiedostolle F pal-velimessa P, jonka määrää tekijät rep(Q,F), del(Q,F), cntQ(Palvelimet,F) ja cntP(Q,F). • Tieto replikoidaan palveli-melle P, jos cntP(Q,F) > 0.5 x cntQ(Palvelimet,F). Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
PALVELINALOITTEISET KOPIOT (server-initiated replicas) • Poistamissääntö:cntQ(P,F) < del(P,F), jossa on huomioitava viimeisen kopion poistamatta jättäminen. • Migraatiosääntö:rep(S,F) > del(P,F). • Replikointisääntö:rep(P,F) > del(P,F) ja cntP(Q,F) > 0.5 x cntQ(Palvelimet,F). Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Migraatiosääntö rep(P,F) > 2 täyttyy, jolloin tiedos-to kopioidaan palvelimel-le P cntP(Q,F) >0.5 x cntQ(Palvelimet,F) eli 3 > 0.5 x 5, jolloin P:ltä Q:lle tiedostoa F koskevat palvelupyyn-nöt ohjataan palveli-melle P (C1-C3) PALVELINALOITTEISET KOPIOT (server-initiated replicas) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
PALVELINALOITTEISET KOPIOT VRS PYSYVÄISLUONTOISET KOPIOT • Pysyväisluonteisia kopioita käytetään yleensä varmuuskopioina • Ainoana sellaisena tietovarastona, johon voidaan kohdistaa muutoksia • Palvelinaloitteista kopioimista käytetään pysyväisluonteisen kopioinnin lisänä • toimitetaan luettavaksi tarkoitetuista tiedostoista kopio asiakasta lähellä sijaitsevalle palvelimelle Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Muutokset pysyviin kopioihin Q, S ja P asiakaspalvelupyyntöjä varten lukukopio replikaattipalvelimelle Q (C3) ja R (C1 ja C2) PALVELINALOITTEISET KOPIOT VRS PYSYVÄISLUONTOISET KOPIOT Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ASIAKAS-/TYÖASEMA ALOITTEISET KOPIOT (client-server replicas) • Tunnetaan paremmin työaseman välimuistikopiona (client cache replica) eli ’cache’-muistina KÄYTTÖTARKOITUS • Tiedon saantiviiveen lyhennetäminen puskuroimalla tieto • työaseman välimuistiin tai verkkolaitteen muistiin Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ASIAKAS-/TYÖASEMA ALOITTEISET KOPIOT (client-server replicas) VÄLIMUISTI • Työasema vastaa itsenäisesti välimuis-tinsa toiminnasta • Välimuistin toiminta ei liity tiedon ristirii-dattomuuteen, vaan se toimii välivaras-toina tiedolle • Tiedon päivittämisestä vastaavat palvelimet Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Työasema luottaa tietovaraston ilmoitukseen puskuroidun tiedon vanhenemisesta (stale) ASIAKAS-/TYÖASEMA ALOITTEISET KOPIOT (client-server replicas) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ASIAKAS-/TYÖASEMA ALOITTEISET KOPIOT (client-server replicas) • Noudettu tieto (fetched data) ei saa muuttua palvelimelta välimuistiin ja sieltä elvyttämisen kuluessa tai sen jälkeen • Replikoinnin onnistuminen riippuu pitkälti jaettavaksi tarkoitetun tietovaraston (data store) tyypistä, • tiedostoja ei replikoida asiakaslaitteistoille • yleensä asiakaslaitteistoille replikoidaan Web-sivuja [frekvenssi] Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ASIAKAS-/TYÖASEMA ALOITTEISET KOPIOT (client-server replicas) • Tietoa säilytetään välimuistissa vain tietty aika • Käyttöjärjestelmän muistinkäsittely- eli sivutusalgoritmi sekä käyttöjärjestelmän parametrisointi vastaavat vanhentuneiden välimuistisivujen poistamisesta tai uusimisesta • tiedonhakupyyntöjä cache-muistista mitataan välimuistiosumilla (cache-hit –arvo) • Jos esimerkiksi hakujen osalta 100% löytyisi suoraan välimuistista, niin cache-hit –arvoa kuvaisi luku 1 Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
ASIAKAS-/TYÖASEMA ALOITTEISET KOPIOT (client-server replicas) VÄLIMUISTIKONFIGURAATIOTYYPIT • Yksittäinen työasema tai verkkolaite (shared machine) • Paikallisverkon kesken jaettu yhtenäi-nen välimuisti • yhteinen data-avaruus • Hybridimalli, jossa monta eri tasoa • Asiakasvalintaiset välimuistit, jolloin asiakas valitsee käyttämänsä laitteiston ja sen välimuistiavaruuden Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
Päivitysoperaatiot suoritetaan tavallisesti asiakkaasta käsin yhteen replikaateista, josta se etenee (propagate) muihin replikaatteihin johdonmukaisesti (consistecy) PÄIVITYSTEN ETENEMINEN (update propagation) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
MITÄTÖIMISPROTOKOLLA (invalidation protocol) • Protokolla voi kertoa mikä tietovaraston osa tai sen osoitettavissa oleva tietoyksikkö on päivitetty niin, että osa sen sisältämästä tiedosta on mitätöity • Replikaattien välillä siirretään vain tieto tiedon mitätöimisestä • Asetettaessa mitätöityyn tietoon kohdistuva palvelupyyntö päivitetään tieto aina ajan tasalle ennen vastauksen palauttamista pyynnön esittäneelle osapuolelle Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
MITÄTÖIMISPROTOKOLLA (invalidation protocol) MITÄTÖITÄESSÄ • Siirtyy vain mitätöityä tietoa koskeva erittely (spefication) • tietoliikennekaistan säästö • toimii parhaiten päivitysfrekvenssin ollessa suuri Seuraavaksi: CASE-study mitätöintiprotokollan toiminnasta. Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
MITÄTÖIMISPROTOKOLLA (invalidation protocol) • Muutetun tiedon eli tietoalkioiden (data item) tai lokin siirtä-minen replikaattien välillä. • Päivitystä koskevat tiedot lähetetään kaikille replikaateille. Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
MITÄTÖIMISPROTOKOLLA (invalidation protocol) • Aktiivinen replikointi (active replication) lähetetään muille replikaateille päivitysoperaatio • replikalla on prosessi, jonka oletetaan kykenevän pitämään siihen liitetyt tietoalkiot replikaattien tasolla ajan tasalla • saattaa vaatia enemmän prosessointitehoa Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
TYÖNNÄ- JA VEDÄ-KÄYTÄNTÖ (push & pull protocol) • Tarvittava tieto asiakkaan ja palvelimen välillä voidaan päivittää joko • työntämällä (push) vai vetämällä (pull) tieto asiakkaan ja palvelimen välillä • Makuasia miten tiedon päivittäminen hoidetaan Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
TYÖNNÄ-KÄYTÄNTÖ (push-protocol) • Päivitykset työnnetään toisille palvelimille ilman heiltä tulevaa pyyntöä • Yleinen pysyväisluoteisessa (permanen replicas) ja palvelinaloitteisessa replikoinnissa (server-initiaited replicas) • Käytetään, kun kopioidun tiedon eli replikoiden tulee olla identtisiä sen kaikilta osin • Lue-kirjoittaaksesi (read-to-write) suhdeluku (ratio) jokaisessa kopiossa on suhteellisen korkea Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
VEDÄ-KÄYTÄNTÖ (pull-protocol) • Palvelin tai asiakas pyytää toista palvelinta lähettämään sillä ajan hetkellä kaikki saatavilla olevat päivitykset • Asiakas kiertokyselee (poll) palvelimelta selvittääkseen josko välimuistin tieto on päivitettävä ajan tasalle (esim. selaimen Web-cache) • Vedä-tyyppinen käytäntö on tehokas lue-kirjoittaaksesi -suhdeluvun (read-to writeratio) ollessa suhteellisen matala Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
TYÖNNÄ- JA VEDÄ-KÄYTÄNTÖ (push & pull protocol) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
TYÖNNÄ- JA VEDÄ-KÄYTÄNTÖN LEASING MALLI (lease system) • Palvelin lupautuu työntämään päivitykset asiakaslaitteistolle tietyn ajan. • Vuokra-aikasopimuksen päätyttyä asiakkaan on kiertokyseltävä palvelinta päivitysten varalta ja tarvittaessa vedä-käytännön mukaisesti noudettava muuttunut tieto laitteistolleen. • Vaihtoehtoisesti asiakas voi pyytää uutta vuokra-aikasopimusta palvelimelta saadakseen palve-limen jatkamaan työntö-käytännön mukaisesta päivitetyn tiedon automaattista päivittämistä Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi
TYÖNNÄ- JA VEDÄ-KÄYTÄNTÖN LEASING MALLI (lease system) • Vuokra-aikasopimuksen ikäpohjaisuus • Pitkäaikaisten vuokra-aikasopimusten myöntäminen pitkään muuttumattomana pysyvälle tiedolle vähentää merkittävästi päivitysviestejä. • Asiakkaiden välimuistin päivitysfrekvenssiin • Palvelin myöntää pitkäaikaisen vuokra-aikasopimuksen useasti välimuistipäivitystä tarvitsevalle asiakkaalle ja lyhytaikaisen vuokra-aikasopimuksen harvoin välimuistipäivitystä pyytävälle asiakkaalle Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi