Begrepsforvirring i databaseverdenen?

Like dokumenter
DDBS. Distribuerte databasesystemer

Informasjonssystemer, DBMSer og databaser

Hvordan databasesystemene kan hjelpe RAM-produsentene

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF3100 Databasesystemer

INF3100 Databasesystemer

INF3100. Databasesystemer

INF1300 Introduksjon til databaser

OM DATABASER DATABASESYSTEMER

Introduksjon til fagfeltet

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

Parallelle og distribuerte databaser Del I

Parallelle og distribuerte databaser del III

Fakultet for informasjonsteknologi,

Parallelle og distribuerte databaser

Parallelle og distribuerte databaser del I

INF212 - Databaseteori. Kursinnhold

Fakultet for informasjonsteknologi,

INF1300 Introduksjon til databaser

Databasesystemer, oversikt

Parallelle og distribuerte databaser

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

INF3100 Databasesystemer

IN2090 Introduksjon til databaser

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det.

INF3100 Databasesystemer

INF3100 Databasesystemer. Transaksjonshåndtering. ndtering Del 3. Ragnar Normann

INF1300 Introduksjon til databaser

HVA ER XML? extensible Markup Language En standardisert måte å strukturere ulike typer data Åpent format Enkelt:

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1

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

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

Historisk tidslinje. Resource Description Framework (RDF) Web Ontology Language (OWL) Object-Role Modeling (ORM) Entity Relationship Model (ER)

Transaksjonshåndtering Del 3

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

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

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

Systemfeil og logging

Databaser & objektorientering.

Systemfeil og logging

INF1300 Introduksjon til databaser

Parallelle og distribuerte databaser del II

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2007

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Transaksjonshåndtering Del 3

UNIVERSITETET I OSLO

Oppsummering. Thomas Lohne Aanes Thomas Amble

1. Relasjonsmodellen Kommentarer til læreboka

INF1300 Introduksjon til databaser

Dagens tema: Oppdateringsanomalier Normalformer

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Databaser: Relasjonsmodellen, del I

1. SQL server. Beskrivelse og forberedelse til installasjon

UNIVERSITETET I OSLO

INF3100 Databasesystemer

Repetisjonsforelesning, SQL og utover

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Relasjonsdatabasedesign

Tildeling av minne til prosesser

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

Generelt om permanent lagring og filsystemer

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas

Informasjonsorganisering. Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6

Oppdateringsanomalier Normalformer

Applikasjonsutvikling med databaser

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Hvordan kan en gjenbrukbar NOARK kjerne bidra til samhandling mellom forvaltningsnivåene?

Utvikling fra kjernen og ut

INF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ragnar Normann

Transaksjonshåndtering Del 2

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Parallelle og distribuerte databaser del II

Tildeling av minne til prosesser

Databaser fra et logikkperspektiv

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

SOLICARD ARX. Adgangssystemet som gir deg ubegrenset frihet. An ASSA ABLOY Group company

Transaksjonshåndtering Del 3

Integritetsregler i SQL

DBS18 - Strategier for Query-prosessering

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign (forts.)

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det

Semistrukturerte data og XML

INF1300 Introduksjon til databaser

Intro til WWW, HTML5 og CSS

Generelt om operativsystemer

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Romlig datamanipulering

Systemfeil og logging

Overordnet beskrivelse

Generelt om operativsystemer

Relasjonsalgebraen. Algebra

Transkript:

UNIVERSITETET I OSLO Begrepsforvirring i databaseverdenen? Om arkitektur og taksonomi for databasesystemer OMS-seminar 2.11.2005 Ragnar Normann 1

Disposisjon DBMS-arkitekturer Hvilke typer databasehåndteringssystemer har vi? DB-arkitekturer 2- og 3-skjemaarkitektur for (sentraliserte) databaser DDB-arkitekturer Hvordan klassifiserer vi de utallige variantene av distribuerte databaser? Klassifisering og håndtering av pålitelighet OMS-seminar 2.11.2005 Ragnar Normann 2

DBMS-arkitekturer En ufullstendig oversikt OMS-seminar 2.11.2005 Ragnar Normann 3

Begynnelsen Bachman & Williams: A General Purpose Programming System for Random Access Memories [1964] beskrev IDS IDS (Integrated Data Store fra General Electric) var det første kommersielle DBMS Dette var første gang to programmer kunne ha aksess til de samme dataene samtidig (kvasiparallell aksess) IDS ble videreutviklet og solgt til John Cullinane som markedsførte produktet under navnet IDMS (firmanavnet skiftet fra Cullinane til Cullinet) OMS-seminar 2.11.2005 Ragnar Normann 4

Nettverksdatabaser IDS var en nettverksdatabase, dvs at skjemaet besto av to typer datastrukturer: Posttyper (COBOL record type) Sett-typer (1:n relasjon mellom to posttyper kalt hhv eier- og medlemstype) Hver enkelt post kunne delta i vilkårlig mange sett, som eier i noen og medlem i andre, men bare en gang i hver sett-type Nettverksdatabaser ble standardisert av CODASYL i 1972 med en revisjon i 1978 OMS-seminar 2.11.2005 Ragnar Normann 5

Hierarkiske databaser Et hierarkisk databaseskjema har to datastrukturer: Posttyper 1:n relasjoner, kalt foreldre barn-relasjoner, mellom to posttyper Foreldre barn-relasjonene danner et hierarki (tre) Rotposter er ikke barn i noen foreldre barn-relasjon Andre poster er barn i eksakt én foreldre barn-relasjon I realiteten finnes bare ett kommersielt hierarkisk DBMS, IMS, som ble utviklet av IBM og Rockwell International (North American Aviation) og lansert av IBM i 1968 95% av Fortune-1000-firmaene bruker fortsatt IMS OMS-seminar 2.11.2005 Ragnar Normann 6

Relasjonsdatabaser Relasjonsdatabaser har én type datastruktur, relasjoner (tabeller), som tilsvarer posttyper Kolonnene har navn og kalles attributter Linjene er navnløse og kalles tupler (forekomster) Tuplenes attributtverdier er atomiske COBOLs repeterende grupper er ikke tillatt Alle logiske sammenhenger mellom relasjoner er basert på verdilikhet (fremmednøkler, join) SQL er ISO-standard for definisjon og bruk av relasjonsdatabaser OMS-seminar 2.11.2005 Ragnar Normann 7

Objektrelasjonelle databaser SQL:1999 tillater lob-attributter (lob=large object) Det er tre typer lob-er: Blob (Binary), bilder, lyd, video Clob (Character), fri tekst Row type (Attributter med indre struktur) Lob-er kan ikke indekseres og kan ikke inngå i nøkler eller fremmednøkler For databasen er en lob en atomisk verdi, så all indre struktur må håndteres av applikasjonen Objektrelasjonelle databaser er en generalisering (videreutvikling) av relasjonsdatabaser OMS-seminar 2.11.2005 Ragnar Normann 8

Objektdatabaser Dataelementene er objekter Objektene kan stå i relasjon (relationship) til hverandre; slike relasjoner er alltid toveis Applikasjonsgenererte objekter er i utgangspunktet transiente De kan gjøres persistente enten ved eksplisitt lagring eller ved å settes i relasjon med et persistent objekt Gjeldende standard er ODMG 3.0, men ingen har til nå laget en full implementasjon av denne Implementasjonsmessig er objektdatabaser en generalisering av nettverksdatabaser, mens spørrespråket OQL er en beregningskomplett SQL-etterligning (OQL returnerer et objekt; SQL returnerer en relasjon) OMS-seminar 2.11.2005 Ragnar Normann 9

Objektdatabaser vs objektlagre Tidligere (1980-90) var persistente objektorienterte programmeringsspråk et hett forskningstema Fra dette miljøet ble det foreslått en databasearkitektur som vi i dag kaller objektlagre Her ble objektenes tilstand lagret, og ved lesing ble objektet bygget opp i applikasjonens adresserom I en (ekte) objektdatabase er objektene aktive det vil si at applikasjonene kommuniserer med objektene i databasen med meldinger, og at objektenes metoder (i det minste logisk) utføres i databasens adresserom OMS-seminar 2.11.2005 Ragnar Normann 10

Semistrukturerte databaser Semistrukturerte data er skjemaløse og selvbeskrivende data Desidert største bruk er XML-dokumenter tilgjengelig på internett (eller intranett) XML 1.0 (Extensible Markup Language) er en W3C-standard fra 1998 I XML definerer «tag»-er semantikken (i HTML definerer de formatering) Strengt tatt er det bare skjemafri («standalone») XML som er semistrukturert OMS-seminar 2.11.2005 Ragnar Normann 11

XML-skjemaer XML-dokumenter kan ha et skjema (angis med «standalone = no») Et slikt skjema kalles en DTD (Document Type Definition) En DTD beskriver hva som er en lovlig nøsting av «tag»-er Det legges for tiden ned et betydelig arbeid for å få definert DTD-er som kan fungere som internasjonale bransjestandarder for informasjonsutveksling OMS-seminar 2.11.2005 Ragnar Normann 12

Databasearkitektur Skjemaer og datauavhengighet OMS-seminar 2.11.2005 Ragnar Normann 13

2-skjemaarkitektur IDS var en 2-skjemaarkitektur database Ettskjema ga en fullstendig beskrivelse av databasen Ettsubskjema tilpasset applikasjonen fungerte som applikasjonens vindu mot databasen Hver database hadde bare ett skjema, men kunne ha vilkårlig mange subskjemaer OMS-seminar 2.11.2005 Ragnar Normann 14

Datauavhengighet 2-skjemaarkitekturen tilbød datauavhengighet: Skjemaet definerte både struktur og lagringsformat for dataene Subskjemaet definerte navn og format på de dataene applikasjonen brukte Det ble dermed mulig å forandre lagringsformatet uten å forandre programmene OMS-seminar 2.11.2005 Ragnar Normann 15

Litt mer databasehistorie Det ble fort klart at 2-skjemaarkitektur ikke var bra nok I 1971 foreslo CODASYL DBTG (Committee on Data Systems Languages, Data Base Task Group) å splitte det sentrale skjema i to: Et logisk (begrepsmessig) skjema Et fysisk (internt) skjema ANSI/SPARC (ANSI Standards Planning And Requirement Committee) foreslo dette som standard i 1978 Det begrepsmessige skjema ble ISO-standard i 1982 (sub-skjemaene ble her kalt eksterne skjemaer) Vi fikk dermed to former for datauavhengighet: Fysisk mellom internt og begrepsmesig skjema Logisk mellom begrepsmessig og eksternt skjema OMS-seminar 2.11.2005 Ragnar Normann 16

3-skjemaarkitekturen OMS-seminar 2.11.2005 Ragnar Normann 17

Distribuerte databaser OMS-seminar 2.11.2005 Ragnar Normann 18

Litteratur Den følgende fremstilling er basert på boken M. Tamer Özsu & Patrick Valduriez: Principles of Distributed Database Systems Second Edition Prentice Hall 1999 OMS-seminar 2.11.2005 Ragnar Normann 19

Distribuerte databaser (DDBer) (Snever definisjon) En distribuert database er en samling av flere logisk relaterte databaser som er forbundet med et datanettverk «Logisk relatert» betyr at det skal finnes et overordnet (globalt) skjema som definerer (den semantiske) sammenhengen mellom de ulike databasene Merk at multiprosessorsystemer med felles hukommelse ikke regnes som DDBer OMS-seminar 2.11.2005 Ragnar Normann 20

DDBMSer Et DDBMS er et program med to hovedoppgaver: Det skal håndheve de semantiske reglene gitt av det globale skjemaet Det skal gjøre distribusjonen av data transparent for brukerne OMS-seminar 2.11.2005 Ragnar Normann 21

Fordeler med DDBSer Transparent håndtering av distribuerte og replikerte (kopierte) data Økt pålitelighet og tilgjengelighet med bruk av distribuerte transaksjoner replikater horisontal fragmentering Økt ytelse pga mindre nettverkstrafikk Forenklet håndtering av systemvekst OMS-seminar 2.11.2005 Ragnar Normann 22

Problemer og forskningsområder OMS-seminar 2.11.2005 Ragnar Normann 23

Taksonomi for DBMS-arkitekturer For å beskrive ulike DBMS-arkitekturer er det vanlig å bruke tre uavhengige (ortogonale) egenskaper: Autonomi Distribusjon Heterogenitet Arkitekturene klassifiseres altså som punkter i et tredimensjonalt ADH-rom OMS-seminar 2.11.2005 Ragnar Normann 24

Autonomi Autonomi handler ikke om distribusjon av data, men om distribusjon av kontroll Vi opererer med tre klasser av autonomi: A0: Tett integrasjon (ingen autonomi) A1: Semiautonomi (delvis autonomi) A2: Total isolasjon (full autonomi) Det finnes andre inndelinger, men denne er den mest brukte i faglitteraturen OMS-seminar 2.11.2005 Ragnar Normann 25

De tre autonomiklassene A0: Klassiske distribuerte databaser Alle brukere ser samme logiske database. Det finnes bare ett felles begrepsmessig skjema, men hver node har sitt eget interne skjema. A1: «Federated databases» Nodene har hvert sitt begrepsmessig skjema, men er enige om at visse data skal være felles. Disse fellesdataene distribueres via et felles eksternt skjema som gjerne kalles eksportskjemaet. A2: Multidatabaser De enkelte databasene vet ikke om hverandre, så all koordinering mellom nodene er applikasjonenes (eller mellomvarens) ansvar. OMS-seminar 2.11.2005 Ragnar Normann 26

Distribusjon Denne dimensjonen klassifiserer graden av fysisk distribusjon av dataene (Distribusjontransparens er en forutsetning, dvs at distribusjonen er usynlig for brukerne) Vi opererer med tre grader av distribusjon: D0: Ingen distribusjon De logiske nodene ligger på samme fysiske node D1: Delvis distribusjon Én sentral database, flere satelitter (client/server) D2: Full distribusjon Flere likeverdige databasenoder (peer-to-peer (P2P)) OMS-seminar 2.11.2005 Ragnar Normann 27

Heterogenitet Heterogenitet kommer i mange varianter (som hardware, nettverk, spørrespråk, transaksjonsprotokoller, datamodeller og DBMSer) Det er vanlig å forenkle til to klasser: H0: Homogene systemer Systemene har samme DBMS (og som oftest samme OS og hardware) H1: Heterogene systemer (alt annet enn H0) OMS-seminar 2.11.2005 Ragnar Normann 28

Arkitekturrommet Vi har definert 18 mulige arkitekturer, men ikke alle er like relevante Homogene systemer på samme node er forholdsvis sjeldne (A2,D0,H0) forekommer oftere, men er heller ikke særlig vanlig (A1,D0,H0) er (var i hvert fall tidligere) vanlig Eksempel: UiOs gamle lønns- og personalsystem gikk på samme maskin og DBMS som økonomisystemet med felles kontoplan, artskoder og kostnadsstedregister OMS-seminar 2.11.2005 Ragnar Normann 29

Bruk av multidatabaser (A2) Det er to måter å aksessere en multidatabase på: Brukerapplikasjonene håndterer selv all kontakt med (de autonome) databasenodene Brukerapplikasjonene kontakter databasenodene via et mellomvareprogram Et slikt mellomvareprogram forutsetter at det finnes et globalt begrepsmessig skjema som brukerne kan forholde seg til Mellomvaren vil tolke brukernes transaksjoner og generere subtransaksjoner til de berørte databasenodene OMS-seminar 2.11.2005 Ragnar Normann 30

Semijoin (en nødvendig digresjon) La R og S være to relasjoner. Kall Rs skjemaa og S skjema B. Semijoinen av R med S over et joinpredikat θ er de tuplene i R som ville ha deltatt i en θ-join med S. Formel: R θ S = π A R θ S ( )= R θ π A B S ( ) OMS-seminar 2.11.2005 Ragnar Normann 31

Fragmentering Det finnes algoritmer for å finne optimal fragmentering ut fra statistisk kunnskap om applikasjonene Merk at fragmentering innenfor samme node kan øke effektiviteten merkbart Eksempel: Anta at relasjonen R har en fremmednøkkel til relasjonen S med de horisontale fragmentene S 1,...,S m (fragmenter som ligger på ulike noder). Da vil en fragmentering R k = R S k kunne effektivisere en join av R med S betydelig. OMS-seminar 2.11.2005 Ragnar Normann 32

Allokering Problem: Gitt en mengde noder, en mengde partisjoner og en mengde applikasjoner. Hva er den optimale plasseringen av partisjonene på nodene? Litteraturen opererer med tre optimaliseringsmål: Minimale kostnader Minimale svartider Maksimal gjennomstrømning av transaksjoner Merk at samme partisjon kan havne på flere noder (replikering) OMS-seminar 2.11.2005 Ragnar Normann 33

UNIVERSITETET I OSLO Pålitelighet i distribuerte databasesystemer OMS-seminar 2.11.2005 Ragnar Normann 34

Pålitelighet (Reliability) Formelt er pålitelighet et statistisk mål for hvor sjelden et system (eller komponent) feiler: R(t) = Pr{0 feil i tidsrommet [0,t] feilfri ved t=0} Databaseverdenen bruker begrepet «pålitelighet» om et systems evne til å overleve feil Litteraturen omtaler fire feilkategorier: Transaksjonsfeil (abort) Mediefeil (disk-kræsj) Nodefeil (maskinstopp) Kommunikasjonsfeil OMS-seminar 2.11.2005 Ragnar Normann 35

Transaksjons- og mediefeil Vi deler transaksjonsfeil i to grupper: Transaksjonen aborterer av egen vilje Slike feil er irrelevante for et DDBMS Transaksjonen aborteres av DBMSet Dette må vi ta hensyn til i vår behandling av globale transaksjoner Det er ingen forskjell på håndtering av mediefeil i et sentralisert DBMS og i et DDBMS OMS-seminar 2.11.2005 Ragnar Normann 36

Node- og kommunikasjonsfeil Nodefeil må/bør DDBMSet ta hensyn til i håndteringen av globale transaksjoner Kommunikasjonsfeil deles i to grupper: Transmisjonsfeil som gjør at meldinger ikke kommer frem Dette håndteres av nettverksprogrammene og er DDBMSet uvedkommende Linjefeil som partisjonerer nettet DDBMSet behandler disse som nodefeil OMS-seminar 2.11.2005 Ragnar Normann 37

Distribuerte pålitelighetsprotokoller For å oppnå pålitelighet opererer et DDBMS med protokoller for å håndtere tre oppgaver: Commit Terminering Gjenoppretting Commit og gjenoppretting må håndteres annerledes enn i et sentralisert DBMS Terminering er bare relevant for DDBSer OMS-seminar 2.11.2005 Ragnar Normann 38

(Klassisk) To-fase commit (2PC) Initiator og koordinator Slaver Koordinator Slaver Koordinator Klar til commit? Vil abortere/ Vil committe Global abort/ Global commit Fase 1 Fase 2 Abortert/ Committed OMS-seminar 2.11.2005 Ragnar Normann 39

Lineær 2PC Fase 1 Klar? VA/VC VA/VC VA/VC Initiator Node2 Node3..... NodeN GA/GC GA/GC GA/GC GA/GC Fase 2 VA/VC = Vil abortere/vil committe GA/GC = Global abort/global commit OMS-seminar 2.11.2005 Ragnar Normann 40

Distribuert 2PC Andre noder Alle noder Initiator Initiator Klar til commit? Vil abortere/committe Global abort/commit Fase 1 Fase 2 OMS-seminar 2.11.2005 Ragnar Normann 41

Tilstandsdiagram for 2PC INITIAL INITIAL WAIT READY ABORT COMMIT ABORT COMMIT Koordinator Slave OMS-seminar 2.11.2005 Ragnar Normann 42

2PC er en synkron protokoll En protokoll hvor alle kommuniserende noder enten er i samme tilstand eller i nabotilstander, kalles synkron 2PC er synkron fordi Koordinatoren er første node som går ut av INITIAL-tilstanden Koordinatoren blir i WAIT-tilstanden helt til alle andre noder har forlatt INITIAL-tilstanden OMS-seminar 2.11.2005 Ragnar Normann 43

Termineringsprotokoller for 2PC Vi skal begrense oss til klassisk 2PC Problem: Hva gjør vi når en eller flere noder feiler? Vi må skille mellom feil (timeout) oppdaget av koordinatoren og feil oppdaget av slaver Koordinatoren kan oppdage feil i WAITtilstanden og i ABORT- eller COMMIT-tilstanden Slaver kan oppdage feil i INITIAL-tilstanden og i READY-tilstanden OMS-seminar 2.11.2005 Ragnar Normann 44

Timeout hos koordinatoren Timeout i WAIT-tilstanden Minst en slave har ikke svart ennå Kan ikke gjøre global commit Kan velge å gjøre global abort Timeout i ABORT- eller COMMIT-tilstanden Vet ikke om abort/commit er utført i alle slaver Send purringer (global abort/commit) i fall forrige melding ikke kom frem OMS-seminar 2.11.2005 Ragnar Normann 45

Timeout hos en slave I Timeout i INITIAL-tilstanden: Koordinatoren har feilet i sin INITIAL-tilstand, og transaksjonen aborteres Hvis det senere kommer en «Klar til commit?», har noden to muligheter Svare «Vil abortere» Ikke svare, og la koordinator få en timeout OMS-seminar 2.11.2005 Ragnar Normann 46

Timeout hos en slave II Timeout i READY-tilstanden: Noden har sagt den vil committe, men kan ikke gjøre det uten mer informasjon Velg en ny koordinator Alternativt: Spør alle andre noder om deres tilstand (dette kan øke meldingsmengden) Hvis minst en node svarer ABORT eller COMMIT, vet noden hva den skal gjøre Hvis alle svarer READY, kan noden hverken abortere eller committe transaksjonen OMS-seminar 2.11.2005 Ragnar Normann 47

Blokkering I det siste tilfellet på forrige lysark vil transaksjonen «henge igjen» i serialiseringsgrafen og blokkere for andre transaksjoner Vi sier at 2PC er en blokkerende protokoll Som det fremgår av det følgende teoremet, er det bevist at 2PC ikke kan endres til å bli ikke-blokkerende uten å innføre flere tilstander OMS-seminar 2.11.2005 Ragnar Normann 48

Ikke-blokkerende protokoller En (lokal) tilstand kalles committbar hvis noder i denne tilstanden vet at alle andre noder vil committe Teorem (Skeen (og Stonebraker)): En synkron protokoll er ikke-blokkerende hvis, og bare hvis, følgende to betingelser er oppfylt: Ingen tilstand er «nabo» til både ABORT- og COMMIT-tilstanden Ingen ikke-committbar tilstand er «nabo» til COMMIT-tilstanden OMS-seminar 2.11.2005 Ragnar Normann 49

Tilstandsdiagram for 2PC INITIAL INITIAL WAIT READY ABORT COMMIT ABORT COMMIT Koordinator Slave OMS-seminar 2.11.2005 Ragnar Normann 50

Tre-fase commit (3PC) 2PC bryter begge kriteriene i Skeens teorem Den minste endringen vi kan gjøre for å oppfylle kriteriene, er å legge inn en ny tilstand mellom WAIT/READY og COMMIT Den nye tilstanden kalles PRECOMMIT Vi får da tre tilstandsskifter på veien fra INITIAL til COMMIT En slik protokoll kalles tre-fase commit (3PC) OMS-seminar 2.11.2005 Ragnar Normann 51

Tilstandsdiagram for 3PC INITIAL INITIAL WAIT READY ABORT PRE- COMMIT ABORT PRE- COMMIT Koordinator COMMIT Slave COMMIT OMS-seminar 2.11.2005 Ragnar Normann 52

3PC Koordinator timeout Timeout i WAIT-tilstanden Som i 2PC: Send «Global abort» til alle Timeout i PRECOMMIT-tilstanden (alle må minst ha kommet til READY-tilstanden) Send «Forbered commit» til alle (det flytter dem til PRECOMMIT-tilstanden) Commit og send «Global commit» til alle Timeout i COMMIT- (ABORT-) tilstanden (alle er minst i PRECOMMIT- (READY-) tilstanden) Bruk termineringsprotokollen (om to lysark) OMS-seminar 2.11.2005 Ragnar Normann 53

3PC Timeout i slaver Timeout i INITIAL-tilstanden Behandles som i 2PC Timeout i READY-tilstanden (Vil committe, men vet ikke hva koordinator vil) Velg en ny koordinator Følg termineringsprotokollen på neste lysark Timeout i PRECOMMIT-tilstanden (Meldingen «Forbered commit» er mottatt) Håndteres som forrige punkt OMS-seminar 2.11.2005 Ragnar Normann 54

3PC Termineringsprotokollen Hvis den nye koordinatoren er i WAIT-tilstanden, gjør en global abort NB I dette ene tilfellet er det lov for noder i PRECOMMIT-tilstanden å abortere Hvis den nye koordinatoren er i PRECOMMITtilstanden, gjør en global commit Hvis den nye koordinatoren er i ABORTtilstanden, vil de andre nodene automatisk komme i ABORT-tilstanden de også OMS-seminar 2.11.2005 Ragnar Normann 55

3PC varianter Avhengig av nettverkstopologien finnes det flere ikke-blokkerende 3PC-protokoller Distribuert 3PC er lett å få til Lineær 3PC lar seg også gjøre, men er ikke helt triviell å få til Det finnes også 3PC-varianter for å håndtere nettverkspartisjoner (behandles som om minst to noder er gått ned), men de er alle blokkerende OMS-seminar 2.11.2005 Ragnar Normann 56