Transaksjonsmodell. Samtidighet (1) ACID-transaksjoner. Samtidighet (2) Systemkræsj (1) Kapittel 17, Coping With System Failure

Like dokumenter
DBS22 Databasegjenopprettingsteknikker

Systemfeil og logging

Systemfeil og logging

Systemfeil og logging

Systemfeil og logging

Systemfeil og logging

Systemfeil og logging

Systemfeil og logging

Repetisjonsforelesning, SQL og utover

Transaksjoner. transaksjon. når starter/slutter 1 trans.?

Øving 5: Transaksjonshåndtering, logging og normalisering

DBS20 - Introduksjon til transaksjonsprosessering og teori

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF3100 V2018 Obligatorisk oppgave nr. 2

Normalisering. ER-modell

Oppgave 1 Datamodellering 25 %

Hva har vi gjort? SQL og Databasedesign

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

INF1300 Introduksjon til databaser

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Transaksjonshåndtering Del 2

Isolasjon i postgres og mysql

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Transaksjonshåndtering og samtidighetskontroll

Transaksjonshåndtering Del 2

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Databasesystemer, oversikt

Andre sett obligatoriske oppgaver i INF3100 V2013

Minikompendium TDT4145 databasemod og dbsys

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner

INF5030. Håndtering av virksomhetskritiske data

Transaksjonshåndtering Del 2

Presentasjon av doktorgradsprosjekt

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

EKSAMENSOPPGÅVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Plan for dagen. Måter å tenke på

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

Apache Derby som MMDB

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Effektiv Systemadministrasjon

Oppgave 1 ER- og relasjonsmodell 10 %

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Deling av data Transaksjoner

Deling av data Transaksjoner

Transaksjonshåndtering og samtidighetskontroll

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

Repetisjon av transaksjonshåndtering og samtidighetskontroll. Lana Vu

ndtering og samtidighetskontroll

Forelesning 3 DAS - Systemtabeller, indekser, distribuerte systemer m.m. - Tom Heine Nätt/Edgar Bostrøm

fra telefonen som skal avregistreres. Dersom telefonen som skal avregistreres, ikke er tilgjengelig, kan du oppgi telefonnummeret i meldingen.

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Andre sett obligatoriske oppgaver i INF3100 V2012

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Minnehåndtering i operativsystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamen i IBE Databaser H 2008

Transaksjonshåndtering. Skalerbarhet.

UNIVERSITETET I OSLO

Andre sett obligatoriske oppgaver iinf3100v2011

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

Generelt om permanent lagring og filsystemer

Transaksjonshåndtering Del 3

Nadine Pedersen GRIT Datamaskinen- kjenn din Mac

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

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Transaksjonshåndtering og samtidighetskontroll

Forord. Faglig ansvarlig og hovedveileder for oppgaven har vært professor Mads Nygård. Medveileder har vært doktoringeniør stipendiat Hien Nam Le.

Sikkerhet og tilgangskontroll i RDBMS-er

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

SLUTTPRØVE 5602 DATABASER I (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

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

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Parallelle og distribuerte databaser Del I

Tildeling av minne til prosesser

Tildeling av minne til prosesser

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak (exceptions) Utgave 3: Kap. 6. Terje Rydland - IDI/NTNU

DBS18 - Strategier for Query-prosessering

Databasemodellering og DBMS. Oppsummering

Fakultet for informasjonsteknologi,

Parallelle og distribuerte databaser del I

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

Applikasjonsutvikling med databaser

Transkript:

SIF8020 Datamodellering og databasesystemer: Transaksjonsmodell Kapittel 17, Coping With System Failure 20. april 2004, Roger Midtstraum, IDI/ ACID-transaksjoner Atomicity Alt eller ingenting Consistency Fra konsistent db-tilstand til ny konsistent dbtilstand Isolation Unngår sideeffekter med samtidige transaksjoner Durability Varige effekter av committede transaksjoner Innskuddstransaksjon: Samtidighet (1) BEGIN Readln(Kontonr, Belop); Saldo := Read(Kontoer[Kontonr]); Saldo := Saldo + Belop; Write(Kontoer[Kontonr], Saldo); END; Situasjon: 1000 kr på konto nr 10 Kunde 1 setter inn kr 100 Kunde 2 setter inn kr 100 000 Samtidighet (2) Systemkræsj (1) Overføringstransaksjon mellom kontoer: Proc Overfor(Frakonto, Tilkonto, Belop); BEGIN Saldo := Read(Kontoer[Frakonto]); Saldo := Saldo - Belop; Write(Kontoer[Frakonto], Saldo); Saldo := Read(Kontoer[Tilkonto]); Saldo := Saldo + Belop; Write(Kontoer[Tilkonto], Saldo); Mister effekten av Transaksjon 2 Tapt oppdatering (eng: Lost update) END;

Systemkræsj (2) Anta 500 på konto 1 og 2 Overfør 100 fra konto 1 til 2 Halve transaksjonen reflekteres i databasen Feiltyper Systemfeil: Tap av flyktig lager (RAM) Strømbrudd Operatørfeil Programvarefeil i DBMS eller operativsystem Katastrofe: Tap av stabilt lager (disk) Operatørfeil Diskhodekræsj Utro tjener Brann, eksplosjon, ol. Håndtering av systemfeil Tap av minne (RAM) Transaksjonstilstander Databasebuffer Logger til stabilt lager underveis Tre hovedtyper UNDO-logging REDO-logging UNDO/REDO-logging Effektivitet Sjekkpunkt Lager/minne Eksempeltransaksjon (1) Eksempeltransaksjon (2) Database med to elementer, A og B. Konsistenskrav: A = B Transaksjon: A := A*2 B := B*2

DBMS-arkitektur Forutsetninger Ser bort fra samtidighetsstyring (eng: Concurrency Control) Antar en diskblokk som datagranularitet Diskblokk: 512 4092 Byte Mer om disse problemstillingene: Kapittel 18, Concurrency Control Kapittel 19, More About Transaction Management Bufferblokk DBMS-Buffer Plass til en diskblokk (noen KB) Dirty bit 1 når blokka er endret, 0 ellers Pin-unpin bit 1 låser blokka i minne, 0 når den kan skrives til disk Datablokker Loggblokker Steal / No-steal Ved steal kan en bufferblokk skrives til disk før transaksjonen committer Force / No-force Vedforce blir alle bufferblokker skrevet til disk når transaksjonen committer UNDO-logging UNDO-logging: Regler Ved feilsituasjoner fjernes effekter av transaksjoner som ikke har committet. Logg: Fil der vi legger til på slutten ( historie ) Loggposter: <START T> <COMMIT T> <ABORT T> <T, X, v> (v = gammel verdi (before image)) Regel 1 ( gjør UNDO mulig ): Loggposten (<T,X,v>) må skrives til disk (logg) før den nye verdien til X skrives til disk (databasen). Regel 2 ( unngår REDO ): Ved commit av en transaksjon kan commitloggposten skrives til disk først etter at alle oppdaterte dataelementer er skrevet til disk. Steal/force

UNDO-logging: Eksempel UNDO-logging: Recovery UNDO alle ufullførte transaksjoner (ikke committet) Start ved slutten av loggen Sett tilbake førverdien for alle loggposter som tilhører ufullførte transaksjoner LOGG-lengde: Sjekkpunkt Eksempellogg Enkle sjekkpunkt: 1. Stopp opptak av nye transaksjoner 2. Vent til alle aktive transaksjoner har avsluttet. 3. Skriv loggen til disk (flush log) 4. Skriv en sjekkpunktpost (<CKPT>) 5. Skriv loggen til disk (flush log) 6. Start opptak av nye transaksjoner Kan slette loggen før sjekkpunktposten Dynamisk sjekkpunkt (nonquiescent checkpointing) Eksempellogg 1. Skriv loggpost: <START CKPT (T 1,...,T k )> der T 1,...T k er de aktive transaksjonene 2. Flush loggen 3. Vent til T 1,...T k har avsluttet, men slipp til nye transaksjoner 4. Skriv loggpost: <END CKPT> 5. Flush loggen

LOGG-lengde REDO-logging Når <END CKPT>-posten er skrevet, kan loggen før starten av sjekkpunktet kastes UNDO-logging: Committer etter at all skriving til disk er gjort ( immediate update ) REDO-logging: All skriving til disk etter commit ( deferred update ) No-steal / no-force Loggpost: <T, X, v> (v = ny verdi (after image)) Write-ahead logging rule REDO-logging: Eksempel Før endring av databaseelement X på disk: 1. Endringsloggpost på disk: <T,X,v> 2. Commit-loggpost på disk: <COMMIT, T> Trenger aldri å omgjøre skrivinger i databasen (UNDO) Kan måtte skrive committede endringer etter systemfeil (REDO) REDO-logging: Recovery REDO alle transaksjoner som har committet Start ved begynnelsen av loggen. Sett inn nyverdien for alle loggposter som tilhører transaksjoner som har committet. REDO-logging: Sjekkpunkt Oppdateringer gjort av committede transaksjoner må tvinges til disk 1. Skriv loggpost <START CKPT (T 1,...,T k )> der T 1,...T k er de aktive transaksjonene 2. Flush logg 3. Skriv til disk alle bufferblokker oppdatert av committede transaksjoner 4. Skriv <END CKPT> og flush logg

Eksempellogg Logg-lengde UNDO kontra REDO logging UNDO Steal / Force Skriver alle bufferblokker før committ (mye disk I/O) REDO No-steal / No-force Skriver ingen bufferblokker før committ (minnekrevende) Committer så snart loggblokkene er skrevet til disk. UNDO/REDO-logging Steal / No-force Logg-post: <T, X, v, w> (v = gammel verdi (before image), w = ny verdi (after image)) Logge-regel: Ingen skriving til disk (databasen) før den tilhørende loggposten er skrevet til disk. Commit-loggposter flushes umiddelbart UNDO/REDO-logging: Recovery Sjekkpunkter 1. REDO committede transaksjoner fra starten av loggen og fremover. 2. UNDO alle andre transaksjoner fra slutten av loggen og bakover. 1. Skriv loggpost <START CKPT (T 1,...,T k )> der T 1,...T k er de aktive transaksjonene 2. Flush logg 3. Skriv til disk alle dirty buffre 4. Skriv <END CKPT> og flush logg

Logg-lengde Loggestrategier Force No-force Steal UNDO NO-REDO UNDO REDO No-steal NO-UNDO NO-REDO (*) NO-UNDO REDO (*) For eksempel shadow paging (ikke pensum) Håndtering av katastrofale feil Tap av stabilt lager (disk) Arkivkopi lagret adskilt fra databasen Logg endringer siden dump