Hajautettujen järjestelmien perusteet. Replikointi. Kari Systä



Samankaltaiset tiedostot
Transaktiot - kertausta

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Ohjelmoinnin perusteet Y Python

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

Käyttöjärjestelmät: poissulkeminen ja synkronointi

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Ohjelmoinnin perusteet Y Python

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

TK Palvelinympäristö

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

Esimerkkinä - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

Poweria analytiikkaan

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Ohjelmoinnin perusteet Y Python

Sähköposti ja uutisryhmät

TK Palvelinympäristö

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

1. Tarkastellaan seuraavaa stokastista Petri-verkkoa: p 2. p 1. lock write 1

TW-EAV510AC mallin ohjelmistoversio

A TIETORAKENTEET JA ALGORITMIT

Ohjelmoinnin perusteet Y Python

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokantarakenteet ja -algoritmit 6. harjoitus

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus

TEKNIIKAN JA LIIKENTEEN TOIMIALA. Sähkö- ja tietoliikennetekniikka. Ohjelmistotekniikka HAJAUTETUT JÄRJESTELMÄT KONSISTENTTISUUS JA REPLIKOINTI

Algoritmit 1. Luento 10 Ke Timo Männikkö

Ohjelmoinnin perusteet Y Python

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Sovellusarkkitehtuurit

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikka / Tietoverkkotekniikka. Antti Parkkinen. ICTLAB tuotantoverkon IPv6 toteutus

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Sisältö. Työn idea Protokollat. Harjoitustyön käytäntöjä. Työn demoaminen. Etäisyysvektori Linkkitila. Palvelin Moodle SSH-tunnelit

Maiju Mykkänen Susanna Sällinen

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Verkon värittämistä hajautetuilla algoritmeilla

Tehtävä 2: Tietoliikenneprotokolla

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

Hammastankohissin modernisointi. Heikki Laitasalmi

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Tulosta yrityksesi tuloslaskelma ja tase myöhempää tarkastusta varten. Ota varmuuskopio tilanteesta ennen tilimuunnosta.

ANVIA VARMUUSKOPIOINTI 2.3

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Ohjelmoinnin perusteet Y Python

IPTV:n asettamat vaatimukset verkolle ja palvelun toteutus. Lauri Suleva TI07 Opinnäytetyö 2011

Tietorakenteet ja algoritmit

T Harjoitustyöluento

XEROXIN TURVATIEDOTE XRX Versio 1.0 Muutettu viimeksi: 10/08/05

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

Ohjeita tietokoneverkon käyttöön Latokartano-säätiön ja Metsäylioppilaiden asuntosäätiön asuntoloissa

Ohjelmoinnin perusteet Y Python

T Harjoitustyöluento

8. Näppäimistöltä lukeminen 8.1

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Transaktionhallinta. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

Results on the new polydrug use questions in the Finnish TDI data

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

TeleWell TW-EA711 ADSL modeemi & reititin ja palomuuri. Pikaohje

Algoritmit 1. Luento 1 Ti Timo Männikkö

Haka-käyttäjien kokoontuminen Arto Tuomi CSC Tieteen tietotekniikan keskus

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Harjoitustyö. Jukka Larja T Tietokoneverkot

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

CSE-A1200 Tietokannat

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmoinnin peruskurssi Y1

Liikenneverkot-tietotuote

5.2 Samanaikaisuuden hallinta

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Yhteisöllinen tapa työskennellä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Nettiposti. Nettiposti käyttöohje

Javan asennus ja ohjeita ongelmatilanteisiin

KODAK EIM & RIM VIParchive Ratkaisut

Visma Liikkuvan työn ratkaisut VLS lisensointi. Ylläpitäjän opas

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Osavuosikatsaus Q JUKKA RINNEVAARA Toimitusjohtaja

Mikä on internet, miten se toimii? Mauri Heinonen

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Windows Phone 7.5 erilainen ja fiksu älypuhelin. Vesa-Matti Paananen Liiketoimintajohtaja, Windows Phone Microsoft Oy

Choose Finland-Helsinki Valitse Finland-Helsinki

Lyhyt kertaus osoittimista

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Transkriptio:

Hajautettujen järjestelmien perusteet Replikointi Kari Systä

Sisältö Replikointi Konsistenssimallit Datakeskeiset Asiakaskeskeiset Replikoiden hallinta Konsistenssiprotokollia

ACID (http://en.wikipedia.org/wiki/acid) ACID (atomicity, consistency, isolation, durability) is a set of properties that guarantee that db transactions are processed reliably. Atomicity requires that each transaction is "all or nothing": if one part of the transaction fails, the entire transaction fails, and the database state is left unchanged. The consistency property ensures that any transaction will bring the database from one valid state to another. Isolation refers to the requirement that no transaction should be able to interfere with another transaction. Durability means that once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors.

Replikointi Replikointi on sitä, että sama data on monessa paikassa Prosessit kirjoittavat ja lukevat lähintä replikaa Hyöty: luotettavuus Suoritusta saatetaan voida jatkaa yhden replikan kaatuessa tai korruptoidutta Hyöty: suorituskyky Järjestelmän skaalautuessa maantieteellisesti kannattaa replikoida data lähelle prosesseja

Replikointi Replikointi on tyypillinen skaalaustekniikka Kuorman tasaus Datan ollessa lähellä käsittely nopeaa Haitta: Replikoiden ylläpito (ehkä) hidasta Käsittely-päivitys-suhde Uusi ongelma: konsistenssi Miten taataan, että kaikissa replikoissa on (edes suunnilleen) sama data?

Muistutus: Pankin arkkitehtuuri Hajautettujen perusteet / K. Systä 6

Konsistenssi Intuitio: Kaikissa replikoissa sama arvo vaatii synkronisen replikoinnin päivitys on atominen tapahtuma hidas ja vaikea toteuttaa On löydettävä tasapaino suorituskyvyn ja konsistenssin ylläpidon välille replikointi parantaa suorituskykyä replikoiden pitäminen konsistentteina vaatii globaalia synkronointia

Konsistenssi mittareita Numeerinen (numeric) Kuinka paljon jokin arvo/arvot voi poiketa? Tila (stateness) Kuinka vanhaa tietoa replikasta voi saada? Järjestys Voiko tapahtumien järjestys poiketa?

Konsistenssimallit Ratkaisu: luovutaan tiukasta konsistenssivaatimuksesta ja tyydytään vähempään Nyt lukuoperaatio ei palauta välttämättä viimeisintä kirjoitusta Konsistenssimalli on datasäiliön ja prosessien välinen sopimus Jos prosessi noudattaa sääntöjä, niin säiliö lupaa toimia oikein

Konsistenssimallit Datakeskeiset mallit Joukko rinnakkaisesta ohjelmoinnista perittyjä malleja Sarjallinen konsistenssi ja Kausaalinen konsistenssi Asiakaskeskeisyys Konsistenssi yhden asiakkaan näkökulmasta Monotoninen lukeminen Monotoninen kirjoittaminen

Datakeskeiset konsistenssimallit Luku- ja kirjoitusoperaatioiden suhteen Datan tallennus hajautettu monelle koneelle Kirjoitusoperaatiot kohdistetaan lähimpään replikaan ja propagoidaan muihin Lukuoperaatiot kohdistetaan lähimpään replikaan

Malli: Tarkka konsistenssi Strict consistency Jokainen x:n lukuoperaatio palauttaa sen arvon, joka x:ään viimeksi kirjoitettiin Täydellinen toteutus vaatisi globaalin ajan Joskus voidaan helpottaa olettamalla tarkat reaaliaikakellot, jakamalla aika viipaleisiin ja pitämällä huolta siitä, että joka viipaleessa suoritetaan enintään yksi operaatio

Malli: Sarjallinen konsistenssi Lamport (1979): Sequential consistency Suorituksen tulos on sama kuin, jos kaikkien prosessien operaatiot olisi suoritettu jossain sarjallisessa järjestyksessä ja jokaisen prosessin operaatiot esiintyvät tässä sekvenssissä ohjelman määräämässä järjestyksessä Mikä tahansa lomittelu on sallittu, mutta kaikki prosessit havaitsevat sen samana Analogia transaktioihin

Sarjallinen konsistenssi Konsistentti Epäkonsistentti

Malli: Kausaalinen konsistenssi Causal consistency Heikennetään sarjallista siten, että erotellaan potentiaalisesti kausaalisesti riippuvat tapahtumat Prosessien tulee havaita kirjoitukset, jotka ovat mahdollisesti kausaalisesti riippuvat, samassa järjestyksessä. Rinnakkaiset kirjoitukset voidaan havaita missä järjestyksessä tahansa

Kausaalinen konsistenssi Alla on kausaalisesti konsistentti säiliö Se ei ole sarjallisesti konsistentti

Kausaalinen konsistenssi Kausaalisesti epäkonsistentti konsistentti

Kausaalisen konsistenssin toteutuksesta Toteutuksessa täytyy tietää mitkä lukemiset prosessi on nähnyt riippuvuusgraafi vektoriaikaleimat

Operaatioiden ryhmittely Sarjallinen ja kausaalinen konsistenssi varsin hienojakoisia Ei välttämättä vastaa sovelluksen tai käyttäjän oletuksia Ryhmittely tehdään samoilla mekanismeilla kuin poissulkeminen ja transaktionaalisuus

Operaatioiden ryhmittely ENTER_CS ja LEAVE_CS CS = critical section Synkronoitimuuttujat Prosessi, jolla on synkronointimuuttuja voi vapaasti mennä ja tulla kriittiselle alueelle Myös ei-poissulkeva moodi Operaatio acquire hankkii muuttujan Operaatio release vapauttaa sen

Operaatioiden ryhmittely 1. Prosessin p acquire(x) ei saa edetä loppuun ennen kuin kaikki x:n vartioima data on päivitetty p:lle 2. Poissulkeva acquire(x) voidaan suorittaa loppuun vasta kun mikään muu prosessi ei omista x:ää (edes ei-poissulkevasti) 3. Poissulkevan moodin jälkeen toisen prosessin q ei-poissulkeva käsittely ei saa edetä ennen kuin data on päivitetty q:lle

Saapumiskonsistenssi Entry consistency Data synkronoidaan saavuttaessa kriittiselle alueelle Jokaisella data-alkiolla synkronointimuuttuja Synkronointimuuttujilla omistaja, joka voi saapua ja lähteä kriittiseltä alueelta kuten haluaa Halutessaan kriittiselle alueelle prosessi pyytää synkronointimuuttujan ja datan omistajalta

Saapumiskonsistenssi Laillinen operaatioiden ryhmittely

Asiakaskeskeiset konsistenssimallit (client-centric ) Datakeskeiset mallit yleisiä Usein kuitenkin päivitykset harvinaisia - DNS kirjoitus-kirjoitus-konfliktit harvinaisia - WWW Usein riittää, että konsistenssi saavutetaan joskus (eventual-consistency) Replikat konvergoivat kohti identtisiä kopioita, kun päivityksiä ei tehdä

Asiakaskeskeiset Eventual-konsistenssi toimii hyvin niin kauan, kun jokainen asiakas operoi yhden replikan kanssa Esim. mobiilit järjestelmät ongelmallisia Asiakaskeskeinen konsistenssi tarkoittaa konsistenssia yhden asiakkaan näkökulmasta Ei siis koko järjestelmän

Liikkuva asiakas ja asiakaskeskeinen konsistenssi

Monotoninen lukeminen Monotonic read consistency Jos prosessi lukee arvon datasta x, niin kaikki myöhemmät lukemiset palauttavat joko saman tai uudemman arvon Sähköpostiesimerkki Sähköpostilaatikko hajautettu Meilejä voidaan kirjoittaa missä tahansa (laiska päivittyminen käytössä) Luetaan paikassa A ja siirrytään paikkaan B Kaikki ne meilit, jotka nähtiin A:ssa näkyvät myös B:ssä

Monotoninen lukeminen a on monotonisesti konsistentti, b ei ole

Monotoninen kirjoitus Monotonic write Prosessin kirjoitus dataan x saatetaan loppuun ennen saman prosessin seuraavaa kirjoitusoperaatiota x:ään Takaa, että kirjoitukset propagoidaan oikeassa järjestyksessä replikoihin Esimerkiksi softakirjaston päivitys Vanhat funktiot päivitetään Monotoninen kirjoitus takaa, että kaikki aiemmat päivitykset on tehty

Monotoninen kirjoitus a on konsistentti, b ei (x 1 :n kirjoittamissesta L2:een ei takeita)

Muita malleja Lue-kirjoituksesi Read-your-writes consistency Prosessin itse tekemät kirjoitusoperaatiot ovat prosessin luettavissa mistä tahansa kopiosta Kirjoitukset seuraavat lukemista Writes-follow-reads consistency Prosessin tekemä kirjoitusoperaatio kohdistuu edelliseen luettuun tai uudempaan kopioon

Replikoiden hallinta Replikapalvelimen paikka Replikoiden syntyminen Missä, koska ja kenen aloitteesta replikoidaan Miten päivityksiä propagoidaan

Palvelimen paikka Optimointiongelma: mitkä ovat K parasta paikkaa N:stä mahdollisesta (K<N) Qiu et al. Lähtökohtana asiakkaiden ja palvelinten etäisyys (esim. niiden välinen latenssi) Valitaan yksi kerrallaan uusi palvelin siten, että keskimääräinen etäisyys minimoituu olettaen, että k palvelinta on sijoitettu

Pysyvä replika Erilaisia replikoita Esim. peilatut www-sivut Palvelinlähtöiset replikat www-esimerkki: kuorman kasvaessa kannattaa joskus palvelimen sisältö replikoida dynaamisesti eri paikkaan push cache Asiakaslähtöiset replikat Kätkö

Erilaisia replikoita

Palvelinlähtöinen replikointi Oletus replikapalvelimet on sijoitettu Nyt siis sijoitetaan sisältö palvelimiin Rabinovich et al. Algoritmi www-sivujen replikoimiseen dynaamisesti Oletus: päivityksiä harvoin lukemisia usein Pyritään vähentämään palvelinten kuormaa siirtämällä tiedostoja asiakkaiden läheisyyteen

Rabinovichin ja kumppaneiden algoritmi Palvelin pitää kirjaa tiedostojen latauspyyntöjen määrästä ja asiakkaista Järjestelmä tietää mikä palvelin on lähinnä asiakasta A Tuhoamis- ja replikointikynnys

Rabinovichin ja kumppaneiden algoritmi

Asiakaslähtöiset replikat Cache Jätetään periaatteessa asiakkaan huoleksi Lyhennetään saantiaikaa Dataa säilytetään kätkössä yleensä vain rajatun ajan Kätkö joko samassa koneessa tai lähellä Osuma (cache hit) kun kätköä käytetään Osumatarkkuutta voidaan parantaa jakamalla

Päivityksen propagoiminen o Notifikaatio: invalidoidaan dataa. Säästää kaistaa, jos lukuja harvoin o Data: Hyvä, jos lukuoperaatioita paljon o Operaatiot: Säästää joskus kaistaa, mutta vaatii laskentatehoa replikapalvelimilta

Päivityksen propagoiminen Push-based protocols (työntö) Usein pysyvän ja palvelinlähtöisen välillä read-to-update-suhde suuri Jokaista työntöä kohti tulee lukuja Suuret konsistenssivaatimukset Pull-based protocols (veto) Asiakasperustaiset protokollat read-to-update-suhde pieni Kätköissä käytetään vetoa

Propagointi: Unicast vai multicast Unicast Palvelin lähettää itse N viestiä Sopii pull-based-protokolliin Multicast Alla oleva verkko pitää huolta viestityksestä Usein tehokkaampi Sopii push-based-protokolliin

Konsistenssiprotokollia Primary-based protocols Datalla on primäärinen tallennuspaikka, joka koordinoi päivityksiä Äänestykseen perustuvat protokollat Naiiveja toteutuksia asiakaskeskeiseen konsistenssiin

Primääriperustaiset protokollat Primary-based protocols Yksinkertaisimmassa protokollassa yksi palvelin tekee kaikki operaatiot Vähän monimutkaisempi versio sallii asiakkaiden tehdä päivityksiä replikaan Replika lähettää päivitykset edelleen primäärikopiolle Tarjoavat suoraviivaisen tavan toteuttaa sarjallinen konsistenssi

Primary-backup protokolla

Primääriperustaiset protokollat Suorituskykyongelmat Voidaan helpottaa ei-blokkaavalla protokollalla Vikasietoisuusongelmat

Paikallinen kirjoitus -protokolla Primäärikopiota siirrellään Vanhaan tallennuspaikkaan jää kopio Jokaisesta dataoliosta x on yksi kopio Halutessaan kirjoittaa asiakas lähettää kirjoituspyynnön lähimmälle replikalle, joka hankkii kopion itselleen Hankala pitää kirjaa primäärikopion paikasta Asiakkaat voivat lukea paikallista kopiota Sopii mobiileille laitteille

Paikallinen kirjoitus

Äänestysperustaiset-protokollat Äänestetään replikoidun datan arvosta Esimerkki Tiedosto t on replikoitu N palvelimelle Päivittävän asiakkaan on tehtävä päivitys N/2+1:lle palvelimelle Kun päivitys on hyväksytty t:lle uusi versionumero Lukua varten on otettava yhteys N/2+1:een palvelimeen

Naiiveja asiakaskeskeisiä protokollia Asiakaskeskeiset protokollat suhteellisen yksinkertaisia, jos ei välitetä suorituskyvystä Jokaisella kirjoituksella globaali ID Annetaan palvelimessa, jossa päivitys initialisoidaan Jokaisella asiakkaalla on luku- ja kirjoitusjoukko

Yhteenveto Kaksi syytä replikoida: luotettavuus ja suorituskyky Täydellistä konsistenssia ei voida saavuttaa Siksi on kehitetty joukko konsistenssimalleja konsistenssiprotokolla toteuttaa tietyn konsistenssimallin