Parallelle og distribuerte databaser del II

Like dokumenter
Parallelle og distribuerte databaser del II

Parallelle og distribuerte databaser del II

Parallelle og distribuerte databaser del III

Parallelle og distribuerte databaser

Parallelle og distribuerte databaser del I

Anta at det er 3 noder og at node 1 vil fremme dekretet "NEI" og de andre nodene dekretet "JA" hvis de får muligheten til det.

Parallelle og distribuerte databaser

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4190 Distribuerte systemer Onsdag 4. august 2004,

Relasjonsdatabasedesign

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

Relasjonsdatabasedesign

Parallelle og distribuerte databaser Del I

Relasjonsdatabasedesign

UNIVERSITETET. Relasjonsdatabasedesign

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Fakultet for informasjonsteknologi, Løsning på eksamen i TDT4190 Distribuerte systemer Torsdag 9. juni 2005,

Relasjonsdatabasedesign

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

Øving 5: Transaksjonshåndtering, logging og normalisering

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 / SIF8042 Distribuerte systemer August 2005,

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Relasjonsdatabasedesign

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 Distribuerte systemer 19. august 2006,

IN Algoritmer og datastrukturer

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Kompleksitet og Beregnbarhet

Fakultet for informasjonsteknologi,

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen

Løsningsforslag til Eksamensoppgave i TDT4190 Distribuerte systemer

Presentasjon av doktorgradsprosjekt

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

Relasjonsdatabasedesign

DDBS. Distribuerte databasesystemer

Oppsummering. Thomas Lohne Aanes Thomas Amble

Normalformer utover 4NF (ikke pensum)

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

Relasjonsdatabasedesign

Relasjonsdatabasedesign. Ekstramateriale: Normalformer utover 4NF (ikke pensum)

Forprosjektrapport. Utvikle en plattform for digitalisering av foosballbord.

INF3100 V2018 Obligatorisk oppgave nr. 2

Lars Vidar Magnusson

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Systemfeil og logging

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Dokumenter som skal inngå i en melding kan opprettes og signeres uavhengig av hverandre.

Dette er et lite notat der jeg forsøker å beskrive hvordan innblandinger kan implementeres og visualiseres i MUSIT sine databaser og applikasjoner.

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Relasjonsdatabasedesign

Notat for oblig 2, INF3/4130 h07

Lineære ligningssystemer og gausseliminasjon

Relasjonsdatabasedesign

IN Algoritmer og datastrukturer

Relasjonsdatabasedesign

Introduksjon til fagfeltet

INF1300 Introduksjon til databaser

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Peer-to-Peer systemer

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF1300 Introduksjon til databaser

Hva er det, hvordan fungerer det og hva kan det brukes til? Arcane Crypto

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

INF1300 Introduksjon til databaser

Parallelle og distribuerte databaser del III

Datastrukturer. Kevin Thon. 25 april 2017

Relasjonsdatabasedesign

Informasjonssystemer, DBMSer og databaser

4.1. Kravspesifikasjon

Grunnleggende Grafalgoritmer II

UNIVERSITETET I OSLO

INF2220: Forelesning 2

TTM4175 Hva er kommunikasjonsteknologi?

Oppdateringsanomalier Normalformer

INF Algoritmer og datastrukturer

IN Algoritmer og datastrukturer

INF mai 2014 Stein Krogdahl, Ifi, UiO

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

KTN1 - Design av forbindelsesorientert protokoll

UNIVERSITETET I OSLO

Effektiv eksekvering av spørsmål

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Informasjonsbærende representasjoner

INF Algoritmer og datastrukturer

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

UNIVERSITETET I OSLO

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Transaksjonshåndtering Del 3

Databasesystemer, oversikt

INF Algoritmer og datastrukturer

Transkript:

UNIVERSITETET I OSLO Parallelle og distribuerte databaser del II CAP-teoremet (kursorisk) Databaser i mobile ad-hoc-nettverk (kursorisk) Paxos algoritmer for å oppnå konsensus i distribuerte systemer (ikke pensum i 2014) Datamodeller i NoSQL (ikke pensum i 2014) Institutt for Informatikk INF3100 11.4.2014 Ellen Munthe-Kaas 1

CAP-teoremet CAP-teoremet: I et distribuert system er det ikke alltid mulig å tilby samtlige av følgende tre garantier: Consistency en forespørsel vil på et gitt tidspunkt gi samme svar/respons uansett hvilken node den eksekveres på Availability hver forespørsel resulterer i en respons Partition tolerance systemet fortsetter å være virksomt selv om meldinger kan gå tapt (deler av nettverket feiler) eller deler av nodene feiler/går ned INF3100 11.4.2014 Ellen Munthe-Kaas 2

CAP-teoremet utdypet I Med consistency menes det som dekkes av A+C i ACID, dvs. at en enkelt forespørsel+respons skal utføres atomært og bevare konsistens. Med availability menes at enhver forespørsel til en ikkefeilet node skal resultere i en respons. (Den opprinnelige formuleringen av CAP-teoremet sier at «så godt som alle» forespørsler skal motta en respons, for i praksis kan man ikke garantere 100% tilgjengelighet.) INF3100 11.4.2014 Ellen Munthe-Kaas 3

CAP-teoremet utdypet II CAP-teoremet ble opprinnelig formulert med tanke på web service-systemer, men ideene er gyldige uansett hvilket formål det distribuerte systemet har En populær, men overforenklet fremstilling av CAPteoremet sier at man i ethvert distribuert system må velge «to av tre», dvs. CA, CP eller AP. Men CA er ikke egentlig en opsjon i et tjenesteytende distribuert system man må designe ethvert slikt system med tanke på at nettverket kan feile. INF3100 11.4.2014 Ellen Munthe-Kaas 4

CAP-teoremet utdypet III Når en nettverkspartisjon oppstår, må man velge mellom konsistens og tilgjengelighet, man kan ikke tilby begge. CP: Hvis man velger konsistens fremfor tilgjengelighet, kan operative noder måtte avslå å yte tjenester (dvs. forespørsler må kanskje besvares med «prøv igjen senere» eller liknende) AP: Hvis man velger tilgjengelighet fremfor konsistens, kan det være at når nettverket igjen virker som det skal, er det inkonsistenser i systemet der systemet ikke selv kan rydde opp i/bli kvitt alle inkonsistensene INF3100 11.4.2014 Ellen Munthe-Kaas 5

Eksempel: Bestilling av hotellrom To personer ønsker å bestille samme rom i samme hotell for samme tidsrom. Bestillingssystemet er distribuert over to noder med replikater på begge. Nettverket mellom nodene er nede. Alternativer: CP: Ingen rom kan bestilles (hver av forespørslene besvares med «ikke tilgjengelig/prøv senere» selv om hver av nodene er fullt operativ). AP: Begge bestillingene går igjennom (inkonsistens/overbooking). Inkonsistensen rettes når personene ankommer hotellet (ved at hotellet har et ekstra rom som er avsatt til å håndtere overbooking). INF3100 11.4.2014 Ellen Munthe-Kaas 6

CAP-teoremet i praksis I praksis er det ikke et enten-eller, men en glidende overgang/tradeoff mellom de to altermativene. Man kan f.eks. velge forskjellig tilnærming (CP/AP) for forskjellige funksjoner/operasjoner I praksis er det dessuten en tradeoff mellom konsistens og responstid. Jo mer konsistens man krever, desto flere noder må involveres i arbeidet med å gjennomføre dette, og jo lenger tid tar det å respondere på en forespørsel Denne formen for tradeoff gjelder selv om det ikke er noen nettverkspartisjoner INF3100 11.4.2014 Ellen Munthe-Kaas 7

Mobile ad-hoc-nettverk Mobile ad-hoc-nettverk (MANETs) er (lokale) trådløse nettverk som settes opp mellom noder som kommer i kommunikasjonsavstand til hverandre MANETs er karakterisert ved hyppige endringer i den underliggende topologien noder forflytter seg naboskap endres nettverk partisjoneres og smelter sammen kommunikasjon skjer via radiobåndet stor feilrate (kollisjoner av meldinger i eteren) lav båndbredde hver nettverkspartisjon består av i høyden 50-100 noder mer enn dette er ikke praktisk håndterbart (pga. feilraten) INF3100 11.4.2014 Ellen Munthe-Kaas 8

Databaser i mobile ad-hoc-nettverk Krav til databasesystemet er omtrent som for P2P-nettverk. I tillegg er det ytterligere utfordringer knyttet til begrensninger i nettverkskapasitet og hyppige endringer i nettverkstopologien: Distribuert: Data er fordelt mellom nodene. Optimalt antall og opimal plassering av replikater avhenger av nettverkstopologien. Desentralisert: Nodene må kollektivt ivareta det administrative ansvaret for databasen. Ved nettverkspartisjoner må databasen overleve i hver av partisjonene. Ved sammensmelting av nettverk må databasepartisjonene samordnes. Feiltolerant: Systemet må være pålitelig selv om noder feiler, naboskap endres, nettverket partisjoneres eller nettverk smelter sammen. Skalerbart: Størrelsen på hver nettverkspartisjon er begrenset, derfor er ikke dette kravet like fremtredende som i P2P-nettverk. Konsistent: Kan ikke holde replikater konsistente på tvers av nettverkspartisjoner. Må gjøre avveiinger mellom CP og AP i CAP-teoremet INF3100 11.4.2014 Ellen Munthe-Kaas 9

Eksempel: MIDAS Dataspace EU-prosjekt 2006-2009 med åtte internasjonale partnere. Fra Ifi: Forskningsgruppen DMMS (Distribuerte multimediasystemer) Formål: Mellomvare som støtter utvikling av applikasjoner for MANETs Applikasjonsscenarier: Redningsaksjoner og store sportsarrangementer Prototyp som ble testet ut i emuleringsomgivelse og på små håndholdte enheter (PDAer) Proof-of-concept-applikasjoner: Det 32. internasjonale sykkelcrossløpet i Gieten, Nederland, 2007 De Nijmegen Vierdaagse, 2008 (firedagers turmarsj i Nijmegen, Nederland) INF3100 11.4.2014 Ellen Munthe-Kaas 10

Datahåndtering i MIDAS I Dataelementer er replikert på tvers av noder for at noder skal beholde sin funksjonalitet ved nettverkspartisjoner systemet prioriterer tilgjengelighet (AP) fremfor konsistens (CP): noder kan fortsette å jobbe på sin lokale kopi Replikater må likevel så langt som mulig holdes konsistente (de skal representere samme logiske enhet) Antall replikater må balanseres mot økt nettverkstrafikk oppdateringer av et dataelement krever meldingsutveksling mellom alle replikatene INF3100 11.4.2014 Ellen Munthe-Kaas 11

Datahåndtering i MIDAS II Konsistens på tvers av nettverkspartisjoner kan ikke garanteres noder i forskjellige nettverkspartisjoner kan ikke kommunisere replikater i forskjellige nettverkspartisjoner kan derfor utvikle seg ulikt Når to partisjoner smelter sammen, må konsistens gjenopprettes Løsning: Versjonering ingen sletting eller endring av gamle data to replikater samordnes ved å utveksle alle versjoner av dataelementet applikasjoner må selv velge hvordan semantiske konflikter skal løses (hvilken versjon av et dataelement som er den rette når dette f.eks. ikke kan avledes fra tidsstempler på versjonene) selv med versjonering (ingen data slettes) forblir datamengden overkommelig i de gitte applikasjonsscenariene INF3100 11.4.2014 Ellen Munthe-Kaas 12

Oppslagstjenester i MIDAS Hver node vedlikeholder en oversikt (metadata) over hvilke replikater som befinner seg på hvilke noder Når nye replikater opprettes, propageres metadata om dette til alle noder i nettverkspartisjonen Radiobølger betyr at meldinger kringkastes (alle i lytteavstand lytter på alle meldinger som sendes). Dette utnyttes i valg av algoritmer for metadatapropagering Størrelsen på total mengde metadata forblir liten i applikasjonsscenariene Når to partisjoner smelter sammen, utveksles metadata En node vil ikke nødvendigvis ha en perfekt global oversikt fordi det tar tid før endringer i metadata er propagert til alle Propagering av metadata i en nettverkspartisjon krever flere meldinger når ikke alle noder er i direkte kommunikasjonsavstand til hverandre (multihop) INF3100 11.4.2014 Ellen Munthe-Kaas 13

Paxos Utgangspunkt: Et distribuert system av N samarbeidende noder som trenger å oppnå konsensus/komme frem til en felles beslutning. Noder kan feile og meldinger bli borte Samme melding kan bli levert flere ganger En melding kan bruke vilkårlig lang tid på å bli levert Paxos-algoritmen består av en eller flere avstemningsrunder der målet er at nodene skal vedta ett felles dekret. (Dekretet representerer eller beskriver den felles beslutningen.) Hvis en majoritet av nodene blir enige om et dekret, blir det vedtatt. INF3100 11.4.2014 Ellen Munthe-Kaas 14

Paxos-algoritmen I hver avstemningsrunde foreligger ett forslag til dekret. Dekretet kan variere fra runde til runde. Bare ett av dekretene som fremmes, kan/vil bli vedtatt. I hver runde kan en node enten stemme for dekretet eller la være å stemme. I utgangspunktet er alle noder positivt innstilt til alle forslag til dekreter. Hvis en node ikke besvarer en melding, er det fordi ett av følgende har skjedd: meldingen eller svaret gikk tapt noden gikk ned før den fikk meldingen eller før den fikk svart på meldingen noden velger å ikke besvare meldingen INF3100 11.4.2014 Ellen Munthe-Kaas 15

Avstemningsrundene Hver avstemningsrunde tilordnes et nummer (b,p) der b er et tall og p en node. Rundenumrene ordnes leksikografisk: (b,p) b p q. Flere runder kan pågå samtidig hvis flere noder velger å påbegynne nye runder omtrent samtidig og/eller en node velger å påbegynne en ny runde, typisk fordi den ikke fikk inn nok svar i foregående runde. Rundenummeret reflekterer ikke nødvendigvis i hvilken rekkefølge rundene faktisk gjennomføres, men en og samme node tildeler sine runder stigende nummere. INF3100 11.4.2014 Ellen Munthe-Kaas 16

Fasene i en avstemningsrunde A. Forberedelsesfasen: En node ønsker å initiere en ny avstemningsrunde. Noden innhenter informasjon fra et tilstrekkelig stort antall noder om i hvilken runde de sist stemte, og hvilket dekret som da var oppe til avstemning. B. Stemmefasen: Noden initierer en ny avstemningsrunde der dekretet det skal stemmes over og hvilke noder som skal være med i avstemningen (et kvorum Q), delvis blir bestemt utifra de svarene som ble innhentet i fase A. C. Vedtaksfasen: Hvis alle i kvorumet stemte, er dekretet vedtatt og noden sender dekretet til samtlige noder i N. INF3100 11.4.2014 Ellen Munthe-Kaas 17

Variable og initialverdier lasttried p = b (b,p) er rundenummeret til siste runde initiert av node p. Initielt: - prevvote p = (b,q,d) (b,q) er høyeste rundenummer blant de rundene der node p har stemt. d er dekretet som var oppe til avstemning i runden. Initielt: (-, nil, BLANK) nextballot p = (b,q) (b,q) er høyeste rundenummer blant de rundene der node p har sagt seg villig til å delta. Initielt: (-, nil) outcome p = d d er det vedtatte dekretet. Initielt: BLANK INF3100 11.4.2014 Ellen Munthe-Kaas 18

Fase A forberedelsesfasen 1. Node p velger en ny b lasttried p. lasttried p := b. Send meldingen NextBallot(b,p) til en mengde noder M der M N. 2. Node q mottar en NextBallot(b,p)-melding: Hvis (b,p) nextballot q : nextballot q := (b,p). Send meldingen LastVote(b,p,prevVote q ) til p. Hvis (b,p) nextballot q : Ignorer meldingen. INF3100 11.4.2014 Ellen Munthe-Kaas 19

Fase B - stemmefasen 3. Node p har mottatt en LastVote(b,p,v)-melding fra alle noder i en mengde Q M der Q utgjør en majoritet av nodene og b = lasttried p : Velg dekret d (se algoritme neste side). Send meldingen BeginBallot(b,p,d) til hver av nodene i Q. 4. Node q mottar en BeginBallot(b,p,d)-melding: Hvis (b,p) = nextballot q : prevvote q := (b,p,d) Send meldingen Voted(b,p,q) til p. Ellers: Ignorer meldingen. INF3100 11.4.2014 Ellen Munthe-Kaas 20

Fase B valg av dekret Hvis samtlige LastVote(b,p,v) har v = (-, nil, BLANK), kan dekretet i avstemningsrunde (b,p) velges fritt. Hvis det finnes minst én b - (da er q nil og BLANK), så finn den med størst Dette, sammen med at kvorumet i hver runde må omfatte en majoritet av nodene, sikrer at avstemningsrundene vil konvergere mot et felles dekret. INF3100 11.4.2014 Ellen Munthe-Kaas 21

Fase C - vedtaksfasen 5. Node p har mottatt en Voted(b,p,q)-melding fra hver av nodene i Q, der b = lasttried p : outcome p := d Send meldingen Success(d) til hver av nodene i N. 6. Node q mottar en Success(d)-melding: outcome q := d INF3100 11.4.2014 Ellen Munthe-Kaas 22

Konsistens og vranglås Algoritmen sikrer konsistens, dvs. alle noder der outcome p = d BLANK, har samme verdi d. Algoritmen hindrer vranglås (deadlock): Til ethvert tidspunkt er det alltid mulig å gjennomføre en runde som leder til et vedtak, såsant tilstrekkelig mange meldinger kommer frem og besvares i hver fase. INF3100 11.4.2014 Ellen Munthe-Kaas 23

Fremdrift I utgangspunktet kan en node fritt velge å la være å besvare meldinger. Dette påvirker ikke konsistensen, men kan hindre at nodene oppnår konsensus/kommer frem til en beslutning. For å sikre at algoritmen har fremdrift, må alle noder forplikte seg til å gjennomføre stegene 2-6 så raskt de kan (besvare meldinger så lojalt som mulig). I tillegg må, så lenge det ikke er vedtatt noe dekret, nye runder (steg 1) initieres fra tid til annen. Dessuten må ikke nye runder initieres for ofte: Hvis det stadig initieres nye runder, risikerer man at ingen av rundene lykkes (livelock). Det er enklest å møte utfordringene i de to foregående punktene hvis en av nodene velges til president og bare presidenten får initiere avstemningsrunder. Da må man i tillegg ha en protokoll for valg av ny president hvis presidentnoden går ned. INF3100 11.4.2014 Ellen Munthe-Kaas 24

NoSQL NoSQL er et paraplybegrep som omfatter en rekke ulike typer DBMSer. Typiske egenskaper ved NoSQL-databaser: Datamodell avviker fra relasjonsmodellen Intet fast (eksplisitt) skjema enklere å videreutvikle databasen Enorme mengder data store maskinclustere Open-source INF3100 11.4.2014 Ellen Munthe-Kaas 25

Datamodeller under NoSQL Grafmodellen: Data er strukturert i form av entiteter (noder) og kanter som reflekterer hvordan entitetene forholder seg til hverandre. Søk: Angi hvordan grafen skal navigeres. Aggregatorienterte modeller: Et aggregat er i denne forbindelsen en samling av data som utgjør en naturlig enhet, dvs. spørringer og transaksjoner er typisk begrenset til ett og ett aggregat og involverer sjeldnere samlinger av aggregater. Hvert aggregat lagres som en enhet. Transaksjoner mot aggregater har typisk ACIDegenskapene INF3100 11.4.2014 Ellen Munthe-Kaas 26

Aggregatorienterte modeller Key-value store: Data er på formen (k,v) der k er en nøkkel og v en verdi. Søk: Oppgi k, finn tilhørende v. Document database: Data består av nestede strukturer av navn-verdi-par. Hvert «dokument» inneholder én slik kompleks datastruktur. Søk: Finn verdi for et gitt navn med angivelse av hvor i strukturen navn-verdiparet befinner seg. Column family database: Data er strukturert etter samhørende kolonner. Kolonnefamilier knyttes sammen med en radnøkkel. Søk: Angi radnøkkel og kolonnefamilienavn. INF3100 11.4.2014 Ellen Munthe-Kaas 27

Introduksjon til NoSQL Se følgende introduksjon til NoSQL av Martin Fowler (GOTO Aarhus Conference 2012): http://www.youtube.com/watch?v=qi_g07c_q5i (Varighet: 55 min.) Temaer: Historikken bak NoSQL Datamodeller i NoSQL Distribusjonsmodeller (sharding, replikering) ACID vs. BASE CAP-teoremet Når og hvorfor bruke NoSQL INF3100 11.4.2014 Ellen Munthe-Kaas 28