1 / 59

HAJAUTETUT JÄRJESTELMÄT - KONSISTENTTISUUS JA REPLIKOINTI - Erkki Jyrkkänen & Åke Tyvi

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

kimama
Download Presentation

HAJAUTETUT JÄRJESTELMÄT - KONSISTENTTISUUS JA REPLIKOINTI - Erkki Jyrkkänen & Åke Tyvi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HAJAUTETUT JÄRJESTELMÄT- KONSISTENTTISUUS JA REPLIKOINTI - Erkki Jyrkkänen & Åke Tyvi

  2. 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

  3. 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

  4. 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

  5. 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

  6. REPLIKOINTIIN ON KAKSI PÄÄSYÄ • luotettavuuden parantaminen • suorituskyvyn parantaminen Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi

  7. 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

  8. 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

  9. CACHING – REPLIKOINNIN ERIKOISMUOTO • Esimerkkinä web-selain Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. ESIMEKKI 1 Kuva [1] Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi

  18. ESIMEKKI 2 Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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

  47. 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

  48. TYÖNNÄ- JA VEDÄ-KÄYTÄNTÖ (push & pull protocol) Åke Tyvi Ake.Tyvi@curatores.info Erkki Jyrkkänen Erkki.Jyrkkanen@elisanet.fi

  49. 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

  50. 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

More Related