Replikering. Olav Lysne

Like dokumenter
Foreleser: Kjell Åge Bringsrud

Tid og koordinering. Foreleser: Olav Lysne

Bakgrunn. Tid og koordinering. Foreleser: Olav Lysne

Introduksjon til Distribuerte System (DS)

KTN1 - Design av forbindelsesorientert protokoll

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

Distribuerte objekter og objekt-basert mellomvare

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent?

Distribuerte objekter og objekt-basert mellomvare

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

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Distribuerte objekter og objekt-basert mellomvare

RM-ODP og Multimedia middleware (M3W):

CORBA Objektmodell (Java RMI)

Naming og trading INF5040. Foreleser: Olav Lysne. Ifi/UiO 1

CORBA Component Model (CCM)

Hva består Internett av?

Tor-Eirik Bakke Lunde

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O)

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

Løsningsforslag for Eksamen i TDT4190 Distribuerte systemer. Onsdag 23. mai

Systemmodeller for distribuerte system

Systemmodeller for distribuerte system

Fakultet for informasjonsteknologi,

Distributed object architecture

TTM4175 Hva er kommunikasjonsteknologi?

Introduksjon til Distribuerte System (DS)

Litt mer detaljer om: Detaljerte funksjoner i datanett. Fysisk Lag. Multipleksing

Detaljerte funksjoner i datanett

TTM4175 Hva er kommunikasjonsteknologi?

Linklaget. Olav Lysne. (med bidrag fra Stein Gjessing og Frank Eliassen) Oppsummering 1

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål

Time-Independent Invocation(TII) and Interoperable Routing

Løsningsforslag til Eksamensoppgave i TDT4190 Distribuerte systemer

Fakultet for informasjonsteknologi, Kontinuasjonsløsning på SIF8037 Distribuerte systemer og ytelsesvurdering (Distribuerte systemer kun)

Transport - laget (ende-til-ende protokoller) Glidende vindu protokoll. Flyt kontroll. dataoverføringsfasen. Sender. Mottaker

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål

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

6105 Windows Server og datanett Jon Kvisli, HSN Skriveradministrasjon - 1. Utskrift i nettverk

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

Fakultet for informasjonsteknologi, Løsning på SIF8042 Distribuerte systemer Tirsdag 27. mai 2003,

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

6105 Windows Server og datanett

Presentasjon av: Erling Ringen Elvsrud Nils Fredrik Gjerull Håkon Torjus Bommen

Basis interoperabilitetstest - ebxml

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

Request for information (RFI) Integrasjonsplattform

Model Driven Architecture (MDA) Interpretasjon og kritikk

Innledende Analyse Del 1.2

Trådløs Bedrift Mobilapplikasjon

Message Oriented Middleware (MOM) Thomas Filip Andresen Arild Berggren Eivind Bøhn

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

- analyse og implementasjon

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

Peer-to-Peer systemer

Oppgave 1: Multiple choice (20 %)

Oppsummering. Thomas Lohne Aanes Thomas Amble

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

Technical Integration Architecture Teknisk integrasjonsarkitektur

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

Akseptansetest av mottak Svarrapportering av medisinske tjenester Radiologi

Scientific applications in distributed systems

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

Introduksjon til Distribuerte System (DS)

(12) PATENT (19) NO (11) (13) B1 NORGE. (51) Int Cl. Patentstyret

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon

Tildeling av minne til prosesser

Gjennomgang av kap Kommunikasjonsformer Typer av nettverk Adressering og routing Ytelse Protokoller

Innledende Analyse Del 1: Prosjektbeskrivelse (versjon 2)

Grunnleggende testteori

Tildeling av minne til prosesser

Akseptansetest av mottak Svarrapportering av medisinske tjenester Mikrobiologi

Lotus Traveler - Manual for installasjon

Grunnleggende testteori

Akseptansetest av mottak Svarrapportering av medisinske tjenester Immunologi

Overordnet beskrivelse

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

Når du registrerer deg for å få tilgang til Tjenestene som arrangør Kontakter oss med forespørsler

Akseptansetest av mottak Elektronisk epikrise - Den gode epikrise

Distributed object architecture

2EOLJDWRULVNRSSJDYHQU L GDWDNRPPXQLNDVMRQ + VWHQ.,QQOHYHULQJVIULVWRNWREHU *MHQQRPJnVWRUVGDJRNWREHU

Web Services. Olav Lysne

Linklaget - avslutning

Deling av data Transaksjoner

Akseptansetest av mottak Svarrapportering av medisinske tjenester Patologi

Bachelor E. Theodor Rove Nordgård, Chris Sonko HIST DRIFT AV DATASYSTEMER

Kontakt oss i Egroup for mer informasjon!

Akseptansetest for mottak av PLO-meldingen: Helseopplysninger til lege

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

Characteristics of a good design

NORGE. Patentstyret (12) SØKNAD (19) NO (21) (13) A1. (51) Int Cl. G06Q 20/00 ( )

Akseptansetest av mottak Elektronisk henvisning

Innholdsfortegnelse INNHOLDSFORTEGNELSE... 2 REVISJONSOVERSIKT...4 INTRODUKSJON MED FORUTSETNINGER... 5

Administrator guide. Searchdaimon ES (Enterprise Server)

INF2810: Funksjonell Programmering. Mengder og lokal tilstand

Akseptansetest av mottak Elektronisk epikrise - Den gode epikrise

Øving 5: Transaksjonshåndtering, logging og normalisering

Deling av data Transaksjoner

Transkript:

Replikering Olav Lysne 1

Hvorfor replikere I? Forbedret ytelse Flere servere tilbyr samme tjeneste - parallellitet Distribuerte kopier av data fører til mindre nettverksforsinkelse Caching av data gir mindre nettverksbelastning 2

Hvorfor Replikere II? Bedret tilgjengelighet For enkelte tjenester (slik som navnetjenester) er det viktig at tilgjengeligheten med akseptabel responstid er tilnærmet 100%, til tross for at tjenerekanfeile-gåned Deler av nettverket kan feile. Eks: 5% sjanse for serverfeil i en gitt periode - to uavhengige servere gir 99.75% tilgjengelighet. 3

Hvorfor replikere III? Feiltoleranse Krav om korrekt operasjon ved feil. Krever ofte tett samarbeid mellom replika for å vedlikeholde bildet av feiltransparens. Dette samarbeidet kommer ofte i direkte konflikt med kravet om tilgjengelighet. Ved bysantinske feil trengs 2n+1 replika for å kunne tolerere n feilende servere i prinsippet Ved crash-feil trengs kun n+1 replika for å kunne tåle n feil i prinsippet 4

Replikeringsarkitektur Klient Frontend Replika manager Klient Frontend Replika manager Replika manager 5

Replikeringsarkitektur II Denne arkitekturen tillater At replikeringen er transparent Dynamiske replika - nye replika kan komme, andre kan forsvinne uten at klienten behøver å bli informert. Feiltransparens. Det meste av det som foreleses idag er knyttet til kommunikasjon mellom frontend og replikamanagere. 6

Forespørsel til replikert tjeneste - fem faser Forespørsel fra frontend til en eller flere replikamanagere Koordinering mellom replikamanagere Fifo -ordning kausal ordning (hendte før relasjonen) Total ordning (alle replika er enige om rekkefølgen) Eksekvering - forespørselen utføres Enighetomresultatetmellomreplikamanagere Respons til frontend 7

Gruppekommunikasjon receive receive receive multicast receive Group send 8

Gruppekommunikasjon II Atomisitet: Atomisk multicast: En melding som overføres ved atomisk multicast mottas enten av alle prosesser som er medlem i den mottakende gruppe, eller meldingen blir ikke mottat av noen av dem. Pålitelig multicast: En melding som overføres ved pålitelig multicast vil leveres til alle prosesser som er medlem i den mottakende gruppe, etter beste evne ( best effort ), men det gis ingen garantier. Upålitelig multicast: En melding som overføres ved upålitelig multicast sendes kun en gang. 9

Gruppekommunikasjon III Ordning: P1 P2 P3 P4 A A B B Tid Totalt ordnet multicast: når flere meldinger overføres til en gruppe prosesser ved totalt ordnet multicast, vil alle meldingene mottas i samme rekkefølge av alle prosessene i gruppen. Feiltoleranse basert på replikerte tjenester, kan realiseres ved totalt ordnet multicast 10

Implementasjon Gruppekommunikasjon Utnytte broadcast/multicast muligheter på nettlaget Pålitelighet: krever monitorering (av den som venter på svar) Pålitelig meldingsutveksling: S M1 M2 m(1) done(1) ack(1) lever m(1) ack(1) Tid lever m(1) Problem: Dårlig ytelse (mange meldinger) Effektiviseringer: Negative kvitteringer + meldingshistorier 11

Implementasjon Gruppekommunikasjon II Totalt ordnet atomisk multicast Kan implementeres under antagelsen: Alle meldinger kan tilordnes en identifikator med en global felles ordning Mulige tilnærminger: timestamps fra logiske eller fysiske klokker sequencer prosess som alle meldinger sendes via egen protokoll mellom medlemmene i en gruppe for å generere identifikatorer 12

Gruppemedlemskapstjeneste Grensesnitt for oppretting av gruppe, avmelding og påmelding Feildeteksjon Distribuere informasjon om endringer i gruppesammensetningen Adresseekspansjon - en adresse for multicast til hele gruppen. 13

Inne i replikeringsmanageren Replikamanageren leverer ikke meldinger til prosessering før den vet at evt. konsistensbetingelser er oppfylt. F. eks ordnet multicast, atomisk multicast... Meldingsprosessering levér leverings kø Hold back kø Innkommende meldinger Når leveringsbetingelsene er tilfredsstilt 14

View - bilde av gruppens tilstand For enkelte anvendelser er det nødvendig at hvert eneste replika har oversikt over hvilke replika som var medlem av gruppen idet en forespørsel kom inn. For å oppnå dette benyttes et begrep som kalles view-synkronitet. 15

View Et view er et bilde av hvilke prosesser som er med i en gruppe på et git tidspunkt. Når en prosess mottar besjed om at gruppen har endret seg, kan den selv styre når den vil levere (dvs. Prosessere) beskjeden. Dette skal imidlertid skje i henhold til visse konsistenskrav. 16

Konsistenskrav Global orden alle prosesser er enige om sekvensen av views Integritet en prosess leverer bare views den selv er med i Ikke-trivialitet Dersom to prosesser har meldt seg på og forblir i samme gruppe, skal de etterhvert være med i hverandres view av den gruppen. 17

View-synkron kommunikasjon Intuisjon: kommunikasjonen i en gruppe er view synkron dersom alle medlemmene i gruppen leverer de samme meldingene i samme view. Kompliserende faktorer: det behøver ikke være noen prosesser som er med i gruppen hele tiden. Prosesser kan feile etter at man har blitt enige om å levere en melding, men før den har rukket å gjøre det 18

View-synkronitet II Dersom prosessen p leverer m i v(g) og deretter leverer v(g ), vil alle prosesser q som er med i både v(g) og v(g ) levere m i v(g). Dersom p leverer m blir m levert bare én gang, er p med i multicastgruppen til m, og ble m ble sendt til denne gruppen. Dersom p leverer m i v(g), og en prosess q ikke leverer m i v(g), vil det neste viewet p leverer ikke inneholde q. 19

Illustrasjon (fra boken) 20

Feiltoleranse En tjeneste er feiltolerant dersom den framstår som feilfri selv om enkelte komponenter feiler. Eksempel: en bank har to replika av kontodatabasen. Alle klienter kan gjøre oppdateringer på hvilket replika de vil - replikaene oppdaterer hverandre. Klient 1 setter først inn 100 kroner på konto x vha replika A, og deretter 100 kroner på konto y vha replika B. Ved korrekt oppførsel skal ingen noensinne observere at det har kommet inn 100 kroner på y og ikke på x 21

Men... Klient 1 settinn B (x, 100) B feiler settinn A (y, 100) Klient 2 saldo A (y) 100 saldo A (x) 0 Hvordan oppnå feiltoleranse i dette tilfellet? 22

Sekvensialiserbarhet Intuisjon: For enhver eksekvering av systemet skal det eksistere en sekvensiell eksekvering som: gjør det samme som den opprinnelige eksekveringen oppfyller spesifikasjonen av én enkelt kopi av objektene sekvensen av operasjonene er i hendte før orden. 23

Eksempel I Klient 1 settinn B (x, 100) settinn A (y, 100) Klient 2 saldo A (y) 0 saldo A (x) 0 settinn B (x, 100) settinn A (y, 100) saldo A (y) 0 saldo A (x) 0 24

Eksempel II Klient 1 settinn B (x, 100) settinn A (y, 100) Klient 2 saldo A (y) 100 saldo A (x) 0 Dette er IKKE serialiserbart, fordi det ikke finnes en sekvens som tilfredsstiller bildet av et enkelt, ikke-replikert system 25

Passiv replikering I Passiv replikering En (eller noen få) er primæ replika manager, og alle frontender kommuniserer dit Den primære manageren sender oppdateringer til de sekundære tjenere. Når den primære manageren dør, overtar en av de sekundære som primærmnager. 26

Passiv replikering - forespørselfaser Forespørsel Frontend sender en forespørsel med unik ID Koordinering Primær manager håndterer forespørslene i den rekefølge han får dem. Eksekvering Primær m. behandler forespørselen, og lagrer resultatet Enighet Primær m. sender resultatet av oppdateringen til de andre replika Respons resultatet sendes tilbake til frontend. 27

Passiv replikering - egenskaper Sekvensialiserbarhet er opplagt tilfredsstilt Feiltoleranse At en sekundær replika m. feiler er uproblematisk Dersom den primære feiler - En unik sekundær må ta over Transparens oppnås ved at den registrerer seg hos en navnetjener Den må/bør ta over i samme tilstand som den gamle primære var i idet den døde. Alle sekundære må bli enige om hvilke operasjoner som hadde blitt utført idet den døde (krever view-synkronitet) 28

Aktiv replikering for feiltoleranse Alle replika har samme rolle. Frontender multicaster forespørsler til alle replika Alle replika svarer, og derfor er det i prinsippet tilstrekkelig med et replika som ikke feiler. 29

Aktiv replikering - forespørselfase Forespørsel Frontend multicaster en forespørsel med unik ID Koordinering Multicastsystemet gir totalt ordnet multicast Eksekvering Alle replika eksekverer forespørselen - dette skjer automatisk i samme rekkefølge hos alle replika Enighet Unødig - pga. multicast semantikken. Respons Alle replika sender resultatet tilbake til frontend - som da kan velge å svare når første svar kommer, eller f.eks når det har kommet tilstrekkelig med svar til å håndtere evt. Byzantinske feil 30

Aktiv replikering - Egenskaper Sekvensialiserbarhet er oppfylt ved totalt ordnet multicast. Feiltoleranse for forskjellige feilmodeller kan ordnes av frontend. Antar totalt ordnet og pålitelig multicast Dette er ingen banal antagelse, da denne multicastfunksjonaliteten er svært problematisk. Les seksjonene 11.4 og 11.5 i Coulouris. 31

Tilgjengelighet Det vil vanligvis være en tradeoff mellom sekvensialiserbarhet og tilgjengelighet For enkelte applikasjoner er man villig til å gi avkall på feiltoleranse (sekvensialiserbarhet) for å bedre tilgjengeligheten Distribuerte agendaer, distribuerte oppslagstavler... Dette begrepet er spesielt sentralt i mobile omgivelser, hvor brukeren ofte vil veksle mellom å være tilkoblet og frakoblet. 32

Gossip architecture En arkitektur for å implementere tjenester med høy tilgjengelighet, ved å replikere data i nærheten av der brukerene er. Garantier: Hver klient observerer en konsistent tjeneste over tid. Selv om han veksler mellom flere tjenere vil han aldri få svar som indikerer at tiden går bakover. Fleksibel konsistenskontroll causal forced (total og causal) immediate (konsistent i forhold til alle oppdateringer). 33

Gossip arkitekturen II 34

Fault tolerant CORBA Spesifikasjon: OMG TC Document orbos/99-12-19 Basert på: entitetsredundans (replikering (flere kopier) av objekter) feildeteksjon (mulig å oppdage at server feiler) recovery (f.eks. logg-basert) Understøtter ulike strategier for feiltoleranse request retry (gjentar anrop ved uteblivelse av svar) bruk av alternativ server (ved uteblivelse av svar) passiv replikering (løst synkronsiert gruppe) aktiv replikering (tett synkronisert gruppe) 35

Replikering og objektgrupper replika av et objekt opprettes og forvaltes som en objektgruppe hvert individuelle objekt i en gruppe har sin egen objektreferanse gruppen som helhet refereres ved en interoperable object group reference (IOGR) klienter benytter IOGR ved metodeanrop => replikeringstransparens (de individuelle objekt i gruppen skjules) feiltransparens (feil i replika og recovery etter feil skjules) 36

Feiltoleranse-domener Introduseres for å handtere skalerbarhet og kompleksitet Alle objektgrupper innen et feiltoleranse-domene opprettes og forvaltes av en eneste ReplicationManager kan anrope objekter i andre feiltoleranse-domener kan anropes av objekter i andre feiltoleranse-domener ORB uten støtte for feiltoleranse Host 1 A Svalbard IIOP Host 2 gate way B 1 Host 3 B 2 C 1 Host 4 Oslo feiltoleransedomene Tromsø B 3 C 2 feiltoleransedomene Host 5 C 3 D 1 Wide-area feiltoleransedomene Host 6 D 2 E 1 Host 7 D 3 E 2 37

Feiltoleranse-egenskaper Hver objektgruppe har en tilhørende mengde feiltoleranseegenskaper ReplicationStyle COLD_PASSIVE: løst synkronisert uten checkpointing WARM_PASSIVE: løst synkronsiert med checkpointing ACTIVE: tett synkronsiert gruppe IntialNumberOfReplicas MinimumNumberOfReplicas m.m. Alternativt kan et feiltoleranse-domene tilordnes en mengde feiltoleranse-egenskaper => alle objekt-grupper som opprettes i domenet får de samme feiltoleranse-egenskaper 38

Arkitektur FT CORBA set_ properties() create_ object() anropt av applikasjon Replication Manager Property Manager ObjectGrp Manager Generic Factory create_ object() notifications Fault Notifier fault reports Fault Detector is_ alive() Client object C Server replica S 1 Server replica S 2 Factory Fault detector Factory Fault detector ORB ORB ORB Logging mechanism Recovery mechanism Logging mechanism Recovery mechanism 39

Oppsummering Grunner til å replikere er Bedret ytelse Tilgjengelighet feiltoleranse Basale begreper i oppbygging av en replikert tjeneste er Ordnet multicast View-synkronitet sekvensialiserbarhet Fault tolerant CORBA tilbyr både aktiv og passiv replikering, m.m. 40