INF3100 – Databasesystemer Transaksjonshåndtering og samtidighetskontroll Ragnar Normann Mange lysark er basert på en original laget av Hector Garcia-Molina.

Slides:



Advertisements
Liknende presentasjoner
12.Studienreise nach Finnland,
Advertisements

Kvinner og politikk Kvinnelig valgmobilisering i Nord-Norge: Glasstak eller etterslep? Marcus Buck.
Hans Olav Norheim
Når matematikk blir magisk
Litt mer om PRIMTALL.
En innføring i spillet: Lag En Setning
Nye internettsider for Høgskolen i Østfold Resultat fra brukerundersøkelse.
Ti måter å ødelegge en CT-undersøkelse av halsen på
Hjemmeoppgave 1: Å høre etter NAVN: ……………………………….. DATO: ……………………….
INF3100 – Databasesystemer Systemfeil og logging Basert på lysark laget av Hector Garcia-Molina Oversatt og bearbeidet av Ragnar Normann.
Hva er PRIMTALL?.
Grafisk design Visuell kommunikasjon
Sunndalsøra Registertjenester Per Ivar Larsen Sugar
Teknologi for et bedre samfunn 1 Asbjørn Følstad, SINTEF Det Digitale Trøndelag (DDT) Brukervennlig digitalisering av offentlig sektor.
Egenskaper til stoff og tidsbegrep: En modell for aspekt i russisk Laura A. Janda UNC-Chapel Hill/University of Tromsø
Kontrollstrukturer (Kapittel 3)
1 Arbeidssted, bruk av fasiliteter og - mengde 5.
Pendeltegning En utdøende kunstart?
Møre og Romsdal. 2 Ligger det et bedehus eller et kristelig forsamlingshus (ikke kirke) i nærheten av der du bor? (n=502) i prosent.
Monopolistisk konkurranse og oligopol
NRKs Profilundersøkelse NRK Analyse. Om undersøkelsen • NRK Analyse har siden 1995 gjennomført en undersøkelse av profilen eller omdømmet til NRK.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
2. Planter. Del 1 (1–4). Nivå 2. Side 19–24
Kap 05 Betinget sannsynlighet
Fra forelesningene om involveringspedagogikk Et utviklingsarbeid Philip Dammen Manuset er under arbeid.
Gjenfinningssystemer og verktøy II
Forelesningsnotater SIF8039/ Grafisk databehandling
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
Eksempel AOA (Activity On Arc)
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Kompleksitetsanalyse
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
Omlasting og direkteleveranser. LOG530 Distribusjonsplanlegging 2 2 Vi har nå utvidet nettverket med direkteleveranser. Distribusjonen går enten via lagrene.
P-MP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
P-CP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Repetisjon kap 6,7,8.
Highlights fra markedsundersøkelse Utarbeidet av Inger Marie Brun,
Klargjøring fra forrige gang
Kap 06 Diskrete stokastiske variable
Chapter 02 Wavelets - Lineær algebra
Komplekse tall Naturlige tall
Muntlige presentasjoner
Øvingsforelesning 9 - Børge Rødsjø
Kap 10 Graf.
Vokabular barneoppdragelse (m) bleie (f/m) blikk (n) bortskjemt (adj.)
11 IKT-baserte læremidler Arne Ketil Eidsvik Avd. for lærerutdanning.
SINTEF Teknologi og samfunn PUS-prosjektet Jan Alexander Langlo og Linda C. Hald 1 Foreløpig oppsummering – underlag for diskusjon på PUS-forum
GRØNNALGER BRUNALGER RØDALGER
1 BM-dagen 29.okt BM1 Fysisk miljøplanlegging Studieprogram for Bygg- og miljøteknikk Meny Prosjektoppgaven Arealbruk og befolkning Transport og.
Structured Query Language Kræsj-kurs
Anvendt statistisk dataanalyse i samfunnsvitenskap
Eiendomsmeglerbransjens boligprisstatistikk Februar 2011 Norges Eiendomsmeglerforbund og Eiendomsmeglerforetakenes Forening ECON Poyry og FINN.
Andre funksjoner. Her kommer en beskrivelse av søkefunksjoner, knapper og annen funksjonalitet. 2.
”Jeg reiser smart”-kampanjen 16. september – 30. oktober 2010.
Virksomhetsrapport Oktober Innhold 1. Oppsummering 2. Hovedmål 3. Pasient 5. Aktivitet 4. Bemanning 6. Økonomi 7. Klinikker 2.
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Avlevering i praksis KDRS-samling
Sett inn preposisjoner eller adverb som passer
Samhandling og informasjon Kunnskaps- utvikling og refleksjon Menings- danning og over- talelse Skrive- kompetanser Handlinger og formål Kunn- skaps- lagring.
De 222 mest brukte ordene i det norske språket..
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
Dagligbankundersøkelsen Fakta Dagligbankundersøkelsen intervju Befolkning 15 år + TNS Gallup Forfatter Bente Pettersen Roar Thorvaldsen.
Befolkning og arbejdsmarked 7. Mikroøkonomi Teori og beskrivelse © Limedesign
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en.
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
Kombinatorikk og sannsynlighet
Matematikk 1 årskurs 26. oktober 2009
Utskrift av presentasjonen:

INF3100 – Databasesystemer Transaksjonshåndtering og samtidighetskontroll Ragnar Normann Mange lysark er basert på en original laget av Hector Garcia-Molina

Ragnar Normann, Ifi, UiO Ark 2 av 48 INF Transaksjoner En transaksjon er en samling aksjoner som bevarer konsistens i databasen Konsistent DB T

Ragnar Normann, Ifi, UiO Ark 3 av 48 INF ACID-egenskapene A – Atomicity – enten blir hele transaksjonen utført – eller så blir ikke noe av den utført C – Consistency – transaksjoner skal bevare konsistens (dette er en del av definisjonen av begrepet transaksjon) I – Isolation – transaksjoner skal ikke merke at andre transaksjoner utføres samtidig med dem selv D – Durability – når transaksjoner er avsluttet, skal effekten av dem være varig og ikke kunne påvirkes av systemfeil

Ragnar Normann, Ifi, UiO Ark 4 av 48 INF Eksekveringsplaner Operasjonene i en transaksjon er ordnet Det vil si at en transaksjon er en liste av operasjoner Gitt en mengde transaksjoner {T 1, …, T n } En eksekveringsplan (schedule) S for {T 1, …, T n } er en sekvens (liste) av operasjoner slik at: – hvert element i S er en operasjon i en av transaksjonene – hver operasjon i hver transaksjon er element i S nøyaktig en gang – hvis o p og o q er to operasjoner i samme transaksjon T k, og o p kommer foran o q i T k, så kommer o p foran o q i S (Det vil si at S bevarer ordningen i transaksjonene)

Ragnar Normann, Ifi, UiO Ark 5 av 48 INF Transaksjonseksempel T1:Read(A);T2:Read(A); A  A+100;A  A  2;Write(A);Read(B); B  B+100;B  B  2;Write(B); Integritetsregel: A = B

Ragnar Normann, Ifi, UiO Ark 6 av 48 INF Eksekveringsplan S A T1T2 Read(A); A  A+100; Write(A); Read(B); B  B+100; Write(B); Read(A); A  A  2; Write(A); Read(B); B  B  2; Write(B); AB

Ragnar Normann, Ifi, UiO Ark 7 av 48 INF Eksekveringsplan S B T1T2 Read(A); A  A  2; Write(A); Read(B); B  B  2; Write(B); Read(A); A  A+100; Write(A); Read(B); B  B+100; Write(B); AB S A og S B kalles serielle planer – de tar en transaksjon om gangen

Ragnar Normann, Ifi, UiO Ark 8 av 48 INF Eksekveringsplan S C T1T2 Read(A); A  A+100; Write(A); Read(A); A  A  2; Write(A); Read(B); B  B+100; Write(B); Read(B); B  B  2; Write(B); AB

Ragnar Normann, Ifi, UiO Ark 9 av 48 INF Eksekveringsplan S D T1T2 Read(A); A  A+100; Write(A); Read(A); A  A  2; Write(A); Read(B); B  B  2; Write(B); Read(B); B  B+100; Write(B); AB

Ragnar Normann, Ifi, UiO Ark 10 av 48 INF Eksekveringsplan S E T1T2’ Read(A); A  A+100; Write(A); Read(A); A  A  1; Write(A); Read(B); B  B  1; Write(B); Read(B); B  B+100; Write(B); AB Samme som plan S D, men med ny T2’

Ragnar Normann, Ifi, UiO Ark 11 av 48 INF «Gode» eksekveringsplaner Vi vil ha eksekveringsplaner som er «gode» Begrepet «god» skal være uavhengig av – initialtilstanden – transaksjonssemantikken Begrepet skal bare være avhengig av lese- og skriveoperasjonene og deres innbyrdes rekkefølge Eksempel: S C = r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B)

Ragnar Normann, Ifi, UiO Ark 12 av 48 INF «Gode» eksekveringsplaner (forts.) Eksempel: S C = r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B) S C ’ = r 1 (A)w 1 (A)r 1 (B)w 1 (B)r 2 (A)w 2 (A)r 2 (B)w 2 (B) T1T1 T2T2 S C kan rearrangeres til en seriell eksekveringsplan Vi sier at S C er serialiserbar

Ragnar Normann, Ifi, UiO Ark 13 av 48 INF En «dårlig» eksekveringsplan Legg merke til at i S B håndterer T 2 dataelementet B før T 1 håndterer det Vi sier at T 2 har presedens (over T 1 på B) og skriver det T 2  T 1 Imidlertid håndterer T 1 dataelementet A før T 2 gjør det Altså har vi også at T 1  T 2 i S D La oss så se på plan S D : S D = r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 2 (B)w 2 (B)r 1 (B)w 1 (B)

Ragnar Normann, Ifi, UiO Ark 14 av 48 INF En «dårlig» eksekveringsplan (forts.) Problemet er at vi både har T 2  T 1 og T 1  T 2 i S D Denne sykel-avhengigheten gjør at S D ikke kan omarrangeres til en seriell eksekveringsplan Vi sier at S D er ikke-serialiserbar Ikke-serialiserbare eksekveringsplaner er «dårlige» eksekveringsplaner, og vi vil ikke tillate dem S D = r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 2 (B)w 2 (B)r 1 (B)w 1 (B)

Ragnar Normann, Ifi, UiO Ark 15 av 48 INF Begreper Transaksjon:En sekvens av r i (A) og w i (B) (lese- og skriveoperasjoner) Konflikt:Det finnes tre typer konflikter: 1) Lese-skrive-konflikt: r i (A) w k (A) eller w i (A) r k (A) 2) Skrive-skrive-konflikt: w i (A) w k (A) 3) Intratransaksjonskonflikt: o i (A) o i (B) (skrive eller lese) Plan:Kronologisk eksekveringsrekkefølge av transaksjonenes enkeltoperasjoner Seriell plan:Plan hvor hver transaksjon fullføres før neste transaksjon startes (dvs. ingen fletting av transaksjoner)

Ragnar Normann, Ifi, UiO Ark 16 av 48 INF Konfliktserialiserbarhet To eksekveringsplaner S 1 og S 2 kalles konflikt- ekvivalente hvis S 1 kan omformes til S 2 ved en serie ombyttinger av nabooperasjoner som ikke er i konflikt med hverandre En eksekveringsplan er konfliktserialiserbar hvis den er konfliktekvivalent med en seriell eksekveringsplan Litt notasjon: La S være en eksekveringsplan og la p i (A) og q k (B) være to (vilkårlige) operasjoner i S. Da betyr p i (A) < S q k (B) at p i (A) gjøres før q k (B) i S

Ragnar Normann, Ifi, UiO Ark 17 av 48 INF Presedensgrafer Noder:Transaksjonene i S Kanter: T i  T k dersom 1) p i (A) og q k (A) er operasjoner i S 2) p i (A) < S q k (A) 3) minst en av p i og q k er en skriveoperasjon Oppgave: Tegn P(S) for S = w 3 (A) w 2 (C) r 1 (A) w 1 (B) r 1 (C) w 2 (A) r 4 (A) w 4 (D) Er S serialiserbar? La S være en eksekveringsplan. Da defineres presedensgrafen til S, P(S), slik:

Ragnar Normann, Ifi, UiO Ark 18 av 48 INF Presedensgrafer (forts.) Lemma S 1 og S 2 er konfliktekvivalente planer  P(S 1 ) = P(S 2 ) Bevis: Anta at P(S 1 )  P(S 2 ) Da finnes i og k slik at T i  T k er kant i S 1, men ikke i S 2 (eventuelt ved å bytte om S 1 og S 2 ) Det betyr at det finnes operasjoner p i og q k som er i konflikt over et dataelement A slik at S 1 = … p i (A) … q k (A) … S 2 = … q k (A) … p i (A) … Dette viser at S 1 og S 2 ikke er konfliktekvivalente q.e.d.

Ragnar Normann, Ifi, UiO Ark 19 av 48 INF Presedensgrafer (forts.) Merk! P(S 1 ) = P(S 2 )  S 1 og S 2 er konfliktekvivalente Bevis (Moteksempel): S 1 = w 1 (A) r 2 (A) w 2 (B) r 1 (B) S 2 = r 2 (A) w 1 (A) r 1 (B) w 2 (B) S 1 og S 2 er åpenbart ikke konfliktekvivalente P(S 1 ) og P(S 2 ) har begge de to nodene T 1 og T 2 og de to kantene T 1  T 2 og T 2  T 1, så P(S 1 ) = P(S 2 )

Ragnar Normann, Ifi, UiO Ark 20 av 48 INF Presedensgrafer (forts.) TEOREM P(S) er asyklisk (sykelfri)  S er konfliktserialiserbar Bevis (  ): Anta at P(S) er asyklisk. Omform S på følgende måte: T 1 T 2 T 3 T 4 1) Velg en transaksjon T1 som ikke har noen inngående kanter i P(S) 2) Flytt alle operasjonene i T1 til starten av S S = …. qk(B) …. p1(A) …. 3) Nå har vi S1 = 4) Gjenta 1–3 for å serialisere resten av S!

Ragnar Normann, Ifi, UiO Ark 21 av 48 INF Presedensgrafer (forts.) TEOREM P(S) er asyklisk  S er konfliktserialiserbar Bevis (  ): Anta at S er konfliktserialiserbar Da finnes en seriell plan S S som er konfliktekvivalent med S Siden S S er seriell, er P(S S ) opplagt uten sykler I følge foregående lemma er P(S) = P(S S ) Følgelig er P(S) asyklisk q.e.d.

Ragnar Normann, Ifi, UiO Ark 22 av 48 INF Håndheving av serialiserbarhet og serialiserbarhetsprotokoller Metode 1: Kjør systemet og registrer P(S) På slutten av dagen sjekker vi om P(S) er sykelfri, dvs. om alt gikk bra Metode 2: Kontroller på forhånd at eksekveringsplanen aldri kan føre til at det blir sykler i P(S) Et regelverk som understøtter metode 2, kalles en serialiseringsprotokoll

Ragnar Normann, Ifi, UiO Ark 23 av 48 INF Låseprotokoller Innfører to nye operasjonstyper: Lock:l i (A)T i setter (eksklusiv) lås på A Unlock:u i (A)T i frigir låsen på A I tillegg må DBMS vedlikeholde en låstabell som viser hvilke dataelementer som er låst av hvilke transaksjoner De fleste DBMS har en egen «lock-manager»- modul som holder styr på låstabellen

Ragnar Normann, Ifi, UiO Ark 24 av 48 INF Låseregler i 2PL (2 Phase Locking) Regel 1: Velformede transaksjoner: Hvis T i gjør en operasjon p i (A) som er involvert i en konflikt, skal T i ha gjort l i (A) før den gjør p i (A), og den skal gjøre u i (A) etter at den har gjort p i (A) Eks.: T i : … l i (A) … r i (A) … w i (A) … u i (A) … Regel 2: Lovlige eksekveringsplaner: Eksekveringsplaner kan ikke tillate to transaksjoner å ha lås på samme dataelement samtidig Eks.: S: … l i (A) ………….… u i (A) … ingen l k (A)

Ragnar Normann, Ifi, UiO Ark 25 av 48 INF Eksekveringsplan S F T1 T l 1 (A);Read(A) A  A+100;Write(A);u 1 (A) 125 l 2 (A);Read(A) A  Ax2;Write(A);u 2 (A) 250 l 2 (B);Read(B) B  Bx2;Write(B);u 2 (B) 50 l 1 (B);Read(B) B  B+100;Write(B);u 1 (B) A B

Ragnar Normann, Ifi, UiO Ark 26 av 48 INF Låseregler i 2PL (forts.) Regel 3: 2-faselåsing: En transaksjon som har utført en unlock- operasjon, har ikke lov til å utføre flere lock- operasjoner T i = …… l i (A) …… u i (A) …… ingen u i (B)ingen l i (B) Tiden frem til transaksjonens første unlock- operasjon kalles transaksjonens voksefase Tiden fra og med transaksjonens første unlock- operasjon kalles transaksjonens krympefase

Ragnar Normann, Ifi, UiO Ark 27 av 48 INF Konfliktregler for lock/unlock l i (A), l k (A) gir konflikt l i (A), u k (A) gir konflikt Merk at følgende to situasjoner ikke gir konflikt: – u i (A), u k (A) – l i (A), r k (A)

Ragnar Normann, Ifi, UiO Ark 28 av 48 INF Start av krympefasen En midlertidig hjelpedefinisjon: – Shrink(T i ) = Sh(T i ) = første unlock-operasjon T i gjør Lemma: Hvis T i  T k i S, så er Sh(T i ) < S Sh(T k ) Bevis: At T i  T k betyr at S = … p i (A) … q k (A) …; der p i og q k er i konflikt Regel 1 sier at u i (A) må komme etter p i (A) og l k (A) før q k (A) Regel 2 sier at l k (A) må komme etter u i (A). Altså har vi S = … p i (A) … u i (A) … l k (A) … q k (A) …; Regel 3 sier at Sh(T i ) ikke kan komme etter u i (A) og at Sh(T k ) må komme etter l k (A) Dermed har vi bevist at Sh(T i ) må komme før Sh(T k ) i S q.e.d.

Ragnar Normann, Ifi, UiO Ark 29 av 48 INF PL sikrer konfliktserialiserbarhet TEOREMHvis en plan S overholder regel 1, 2 og 3, så er S konfliktserialiserbar Anta derfor (ad absurdum) at P(S) har en sykel T 1  T 2  …  T n  T 1 I følge lemmaet er da Sh(T 1 ) < S Sh(T 2 ) < S … < S Sh(T n ) < S Sh(T 1 ) Men det er umulig, så P(S) er sykelfri QED Bevis:I følge forrige teorem er det nok å vise at hvis en plan S overholder regel 1, 2 og 3, så er presedensgrafen P(S) sykelfri

Ragnar Normann, Ifi, UiO Ark 30 av 48 INF Vranglås T1T2 l 1 (A); Read(A); A  A+100; Write(A); l 2 (B); Read(B); B  B  2; Write(B); l 1 ( B); l 2 (A); må vente på T 2 må vente på T 1 Dette viser at 2PL ikke sikrer mot vranglås (deadlock)!

Ragnar Normann, Ifi, UiO Ark 31 av 48 INF Lese- og skrivelåser For å få bedre samtidighet kan vi bruke to låsetyper: Leselås (Shared lock) som tillater andre transaksjoner å lese dataelementet, men ikke å skrive det Skrivelås (eXclusive lock) som hverken tillater andre transaksjoner å lese eller skrive dataelementet Notasjon: – sl k (A)– T k setter leselås på A – xl k (A)– T k setter skrivelås på A – u k (A)– T k sletter sin(e) lås(er) på A sl k (A) blir ikke utført hvis noen annen transaksjon enn T k har skrivelås på A xl k (A) blir ikke utført hvis en annen transaksjon enn T k har låst A (det spiller ingen rolle om det er lese- eller skrivelås)

Ragnar Normann, Ifi, UiO Ark 32 av 48 INF Regler for lese- og skrivelåser Velformede transaksjoner Enhver transaksjon T k må overholde disse tre reglene: – En r k (A) må komme etter en sl k (A) eller xl k (A) uten at det er noen u k (A) mellom dem – En w k (A) må komme etter en xl k (A) uten at det er noen u k (A) mellom dem – Etter en sl k (A) eller xl k (A) må det komme en u k (A) 2PL for transaksjoner Enhver 2PL-transaksjon T k må i tillegg overholde: – Ingen sl k (A) eller xl k (A) kan komme etter en u k (B) (uavhengig av hva A og B er)

Ragnar Normann, Ifi, UiO Ark 33 av 48 INF Regler for lese- og skrivelåser (forts.) Lovlige eksekveringsplaner Hvert dataelement er enten ulåst, eller det har én skrivelås, eller det har en eller flere leselåser Dette sikres ved at alle planer S følger disse reglene: – Hvis xl i (A) forekommer i S, må den etterfølges av en u i (A) før det kan komme en xl k (A) eller sl k (A) med k  i – Hvis sl i (A) forekommer i S, må den etterfølges av en u i (A) før det kan komme en xl k (A) med k  i Merk at det er tillatt for en transaksjon å ha både lese- og skrivelås på samme dataelement Dette gir større fleksibilitet og kan bidra til mer samtidighet (dette er situasjonsavhengig)

Ragnar Normann, Ifi, UiO Ark 34 av 48 INF Konfliktserialiserbarhet av S/X-planer TEOREMHvis en plan S overholder reglene for lese- og skrivelåser på de to forrige lysarkene, så er S konfliktserialiserbar Bevis:Nær identisk med beviset for at planer som bare bruker skrivelåser, sikrer konflikt- serialiserbarhet Den eneste forskjellen er at vi får bruk for at hverken ls i (A) fulgt av ls k (A) eller ls i (A) fulgt av u k (A) er en konflikt

Ragnar Normann, Ifi, UiO Ark 35 av 48 INF Kompatibilitetsmatriser Kompatibilitetsmatriser brukes for å lagre regelverket for tildeling av låser når vi benytter flere låstyper Matrisene har en rad og en kolonne for hver låstype Kompatibilitetsmatriser tolkes slik: Hvis T i ber om å få satt en lås av type K på data- element A, får den det bare hvis det står ‘Ja’ i kolonne K i alle rader R i matrisen hvor noen annen T k har en lås av type R på A Eksempel: Kompatibilitetsmatrise for S/X-låser SX (lås T ber om å få på A) (lås somSJaNei A har)XNeiNei

Ragnar Normann, Ifi, UiO Ark 36 av 48 INF Oppgradering av låser For å gi bedre samtidighet kan vi tillate T å først sette leselås og så oppgradere den til skrivelås ved behov Eksempel: T 1 T 2 sl 1 (A); r 1 (A); sl 2 (A); r 2 (A); sl 2 (B); r 2 (B); sl 1 (B); r 1 (B); xl 1 (B);Avslått u 2 (A); u 2 (B); xl 1 (B); w 1 (B); u 1 (A); u 1 (B);

Ragnar Normann, Ifi, UiO Ark 37 av 48 INF Oppgradering av låser (forts.) En ulempe er at å oppgradere låser gir økt risiko for vranglås Eksempel: T 1 T 2 sl 1 (A); r 1 (A); sl 2 (A); r 2 (A); xl 1 (A);Avslått xl 2 (A);Avslått Eksemplet illustrerer at protokoller som bruker oppgradering av låser, bare egner seg hvis det er mange flere lese- enn skrivetransaksjoner

Ragnar Normann, Ifi, UiO Ark 38 av 48 INF Oppdateringslåser En oppdateringslås er en leselås som senere skal oppgraderes til en skrivelås Oppdateringslåser betegnes med U (Update lock) Kompatibilitetsmatrisen for S/X/U-låser finnes i to varianter (hvor den usymmetriske er mest vanlig): – en usymmetrisk som prioriterer skrivetransaksjoner – en symmetrisk som prioriterer lesetransaksjoner Komp.matriseSXU(ønsket lås) SJaNeiJa (holdt lås) XNeiNeiNei UJ/NNeiNei

Ragnar Normann, Ifi, UiO Ark 39 av 48 INF Oppdateringslåser (forts.) Planer som gir vranglås på grunn av oppgraderinger av lese- til skrivelåser, gjør det ikke med bruk av oppdateringslåser (NB Det kan være andre årsaker til vranglås!) Eksempel (Det som ga vranglås i sted (ark 37)): T 1 T 2 ul 1 (A); r 1 (A); ul 2 (A); Avslått xl 1 (A); w 1 (A); u 1 (A); ul 2 (A); r 2 (A); xl 2 (A); w 2 (A); u 2 (A);

Ragnar Normann, Ifi, UiO Ark 40 av 48 INF Inkrementlåser Atomisk inkrementoperasjon: IN i (A) {Read(A); A  A+v; Write(A)} (NB Her gjøres Read og Write bare fra og til hukommelsen, ikke til disk !!) IN i (A) og IN k (A) er ikke i konflikt! A=7 A=5A=17 A=15 IN i (A) +2 IN k (A) IN k (A) +2 IN i (A)

Ragnar Normann, Ifi, UiO Ark 41 av 48 INF Inkrementlåser (forts.) Hensikten er å effektivisere bokholderitransaksjoner Inkrementlåser betegnes med I (Increment lock) Inkrementlåser er i konflikt med både lese- og skrivelåser, men ikke med andre inkrementlåser Her er kompatibilitetsmatrisen for S/X/I-låser: Komp.matriseSXI(ønsket lås) SJaNeiJa (holdt lås) XNeiNeiNei INeiNeiJa

Ragnar Normann, Ifi, UiO Ark 42 av 48 INF Låshåndtering (Lock Scheduling) I praksis vil ikke noe DBMS la transaksjonene sette eller frigi noen låser selv Transaksjonene utfører bare operasjonene read, write, commit og abort, og eventuelt update og increment Låsene legges inn i transaksjone og settes og frigis av en egen modul i DBMS kalt låshåndtereren (Lock Scheduler (i noen DBMS kalt Lock Manager)) Låshåndtereren bruker en egen intern datastruktur, låstabellen, til å administrere låsene Låstabellen er ikke en del av bufferområdet; den er utilgjengelig for transaksjonene

Ragnar Normann, Ifi, UiO Ark 43 av 48 INF Låshåndtering (forts.) Låshåndtereren består av to deler: Del I analyserer hver transaksjon T og legger inn «riktige» låsekrav foran operasjonene i T og legger kravene i låstabellen Hvilke krav den velger, er avhengig av hvilke låstyper som er tilgjengelige Del II kontrollerer om operasjonene og låskravene den mottar fra del I kan utføres De som ikke kan det, legges i en kø for å vente på at den låsen som hindrer utførelsen blir fjernet (det er en kø for hver lås) Når T gjør commit (eller abort), sletter del I alle låser satt av T og varsler del II som sjekker ventekøene for disse låsene og lar de transaksjonene som kan, fortsette

Ragnar Normann, Ifi, UiO Ark 44 av 48 INF Låstabellen Låstabellen er logisk sett en tabell som for hvert dataelement i databasen inneholder all låsinformasjon for dette elementet I praksis organiseres låstabellen som en hashtabell med dataelementets adresse som nøkkel Ulåste dataelementer er ikke med i låstabellen Låstabellen er derfor proporsjonal med antall ønskede og innvilgede låser, og ikke med antall dataelementer For hver A i låstabellen lagres følgende informasjon: – Gruppemodus (strengeste lås som holdes på A) – Et venteflagg som sier om noen venter på å få låse A – En liste over de T som har, eller venter på, lås på A

Ragnar Normann, Ifi, UiO Ark 45 av 48 INF Eksempel på låsinfo for et dataelement A Trans Modus Vent? Neste T_link Dataelement:A Gruppemodus:U Venter:ja Liste: T1T1 S nei T2T2 U T3T3X ja  Til andre dataelementer T 3 har (venter på) lås på (nyttig ved commit/abort)

Ragnar Normann, Ifi, UiO Ark 46 av 48 INF Granularitet og varsellåser Begrepet dataelement er med vilje udefinert Tre naturlige granulariter på dataelementer er: – en relasjon – et naturlig største (låsbare) dataelement – en blokk – en relasjon består av en eller flere blokker – et tuppel – en blokk kan inneholde ett eller flere tupler Forskjellige transaksjoner kan samtidig ha behov for låser på alle disse nivåene For å få til det innfører vi varsellåser, IS og IX, som sier at vi har til hensikt å sette henholdsvis en lese- eller skrivelås lenger ned i hierarkiet

Ragnar Normann, Ifi, UiO Ark 47 av 48 INF Varsellåser (forts.) Eksempel: T vil skrive tuppel A i blokk B i relasjon R 1. Hvis R hverken har S-lås eller X-lås, setter T IX-lås på R 2. Fikk T satt IX-lås på R, sjekker den om B har S- eller X- lås Har ikke B det, setter T IX-lås på B 3. Fikk T satt IX-lås på B, sjekker den om A har noen lås Har ikke A det, setter T X-lås på A og kan skrive A Merk at hvis en transaksjon T har en skrivelås på R, kan ingen andre skrive noe tuppel i R før T sletter låsen Komp.matriseISIXSX (ønsket lås) ISJaJaJaNei (holdt lås) IXJaJaNeiNei SJaNeiJaNei XNeiNeiNeiNei

Ragnar Normann, Ifi, UiO Ark 48 av 48 INF Håndtering av fantomtupler Eksempel: Vi skal summere et felt for alle tuplene i en relasjon R Før summeringen setter vi leselås på alle tuplene i R for å sikre oss et konsistent svar Under summeringen legger en annen transaksjon inn et nytt tuppel i R, noe som gjør at summen kan bli gal Dette er mulig fordi tuppelet ikke eksisterte da vi satte våre leselåser (et slikt tuppel kalles et fantomtuppel) Løsningen er å sette en IS-lås på relasjonen Da får ingen legge inn nye tupler før låsen er slettet