INF5030. Håndtering av virksomhetskritiske data

Like dokumenter
Presentasjon av doktorgradsprosjekt

Repetisjonsforelesning, SQL og utover

Systemfeil og logging

INF1300 Introduksjon til databaser

Systemfeil og logging

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Systemfeil og logging

Systemfeil og logging

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

INF1300 Introduksjon til databaser

Transaksjonshåndtering Del 2

Transaksjonshåndtering Del 2

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

DBS20 - Introduksjon til transaksjonsprosessering og teori

Systemfeil og logging

Hva har vi gjort? SQL og Databasedesign

Systemfeil og logging

Databasesystemer, oversikt

Deling av data Transaksjoner

Deling av data Transaksjoner

Repetisjon av transaksjonshåndtering og samtidighetskontroll. Lana Vu

Transaksjonshåndtering Del 2

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

Systemfeil og logging

Transaksjonshåndtering og samtidighetskontroll

Plan for dagen. Måter å tenke på

DBS22 Databasegjenopprettingsteknikker

INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Isolasjon i postgres og mysql

Transaksjonshåndtering Del 3

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

2. Beskrivelse av mulige prosjektoppgaver

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

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Øving 5: Transaksjonshåndtering, logging og normalisering

INF1300 Introduksjon til databaser

Ny 0 0,0% Distribuert 64 66,7% Noen svar 1 1,0% Gjennomført 31 32,3% Frafalt 0 0,0% I alt ,0%

Transaksjonshåndtering og samtidighetskontroll

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

ndtering og samtidighetskontroll

INF3100 V2018 Obligatorisk oppgave nr. 2

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

Transaksjonshåndtering og samtidighetskontroll

CORBA Component Model (CCM)

Introduksjon til fagfeltet

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

Velkommen til. INF våren 2017

INF 3230: Videregående kurs i formell modellering

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

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

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Dagens plan. INF3170 Logikk

Transaksjonshåndtering Del 3

Parallelle og distribuerte databaser del III

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

INF1300 Introduksjon til databaser

Transaksjonshåndtering Del 3

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

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

GJENNOMGANG UKESOPPGAVER 9 TESTING

Kurskategori 3: Design av IKT- systemer. Normalt vår, 14/15: høst

GRUNNLEGGENDE LESE-, SKRIVE- OG MATEMATIKKOPPLÆRING

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

INF3100 Databasesystemer

INF Algoritmer og datastrukturer

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Kort om kursene INF1100 og MAT-INF1100L

- analyse og implementasjon

AlgDat 10. Forelesning 2. Gunnar Misund

Om Kurset og Analyse av Algoritmer

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

Konfigurasjonsstyring

(MVC - Model, View, Control)

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

Margunn Aanestad: Velkommen til INF3290! 27. august 2012

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Datastrukturer og Algoritmer

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

INF1020 Algoritmer og datastrukturer GRAFER

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

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

Technical Integration Architecture Teknisk integrasjonsarkitektur

UNIVERSITETET I OSLO

Introduksjon til Distribuerte System (DS)

Transkript:

UNIVERSITETET I OSLO INF5030 Håndtering av virksomhetskritiske data Jon Grov Ragnar Normann 8. september 2005 INF5030 - Jon Grov 1

Introduksjon Tema for kurset er transaksjonshåndtering Vi er altså interessert i verktøy som sikrer at for eksempel helsevesen banker transportselskaper kan lagre data sikkert og effektivt. 8. september 2005 INF5030 - Jon Grov 2

Om kursholderne Ragnar Normann (ragnarn@ifi.uio.no) Ifis databaseveteran Designet store databaser for Control Data fra 1984 til 1989. Jon Grov (jongr@ifi.uio.no) Stipendiat ved Ifi Skal skrive doktorgrad om transaksjonshåndtering i replikerte databaser. 8. september 2005 INF5030 - Jon Grov 3

Dagens forelesning Del 1: Om kurset Målene med kurset Undervisnings- og vurderingsopplegg Del 2: Transaksjoner Hva er transaksjoner egentlig? Og hva kan vi bruke dem til? Forsmak på neste ukes tema: Distribuerte databaser 8. september 2005 INF5030 - Jon Grov 4

Mål for kurset «God forståelse av utfordringer og metoder knyttet til effektiv og skalerbar transaksjonsutførelse» Mer spesifikt: Formelle krav til korrekthet Praktiske anvendelser Transaksjoner i distribuerte systemer Viktige algoritmer Transaksjonshåndtering i applikasjoner 8. september 2005 INF5030 - Jon Grov 5

Mål for kurset forts. «Kjennskap til sentrale forskningstemaer innen feltet» Vi skal lage en liste med aktuelle artikler. Hver student velger én artikkel, som skal presenteres muntlig og drøftes i et essay. 8. september 2005 INF5030 - Jon Grov 6

Eksamen Bare hjemmeeksamen Karakter på essayet (men ikke på presentasjonen) Vanskelighetsgrad teller med. I tillegg gis en mindre hjemmeeksamen til slutt i semesteret. Sluttkarakter: essay-karakter * 0.6 + oppgave-karakter * 0.4 8. september 2005 INF5030 - Jon Grov 7

Dato 08. september 15. september 22. september 29. september 06. oktober 13. oktober 20. oktober 27. oktober 03. november 10. november 17. november 24. november Tema Introduksjon BBS Forelesningsplan Distribuerte databaser: Heterogenitet, autonomi, terminering og anvendelser. Distribuert transaksjonshåndtering: TPM, heterogenitet og transparens, DBMS-støtte Samtidighetskontroll: Serialiserbarhet, The page model Algoritmer for samtidighetskontroll: 2PL, tidsstempler, MVCC, SG-testing, distribuert CC Logging og gjenopprettelse: Gjenopprettelse i distribuerte systemer Pålitelighet og redundans: Feilsannsynlighetsestimater, replikeringsstrategier etc. Alternative transaksjonsmodeller: Nøstede og flernivå-transaksjoner, sagaer m.m. Transaksjoner og programmering: Java Transaction API m.m. Essaypresentasjoner, del 1 Essaypresentasjoner, del 2 Fordeling av hjemmeeksamen-oppgaver Ansv. 1) RN/JG RN RN/JG JG JG JG JG JG JG JES JG/RN JG/RN 1) RN = Ragnar Normann, JG = Jon Grov, JES = Jan Erik Secker (BBS) 8. september 2005 INF5030 - Jon Grov 8

Pensum Forelesningene er pensum (foiler kommer på web) Alle får hver sin artikkel, hvor det som regel vil være nødvendig å lese bakgrunnsstoff. Alle essayene dere skriver inngår i pensum for hjemmeeksamen. 8. september 2005 INF5030 - Jon Grov 9

Tilleggslitteratur - 1 Weikum og Vossen: Transactional Information Systems (Morgan Kaufman, 2002) En svært velskrevet og oppdatert gjennomgang av teoretiske og praktiske metoder for samtidighetskontroll og gjenopprettelse. 708 kroner hos Akademika 650 kroner (+ frakt) hos Amazon.co.uk Bernstein og Newcomer: Principles of Transaction Processing (Morgan Kaufman, 1997) Lettlest gjennomgang av prinsippene for transaksjonshåndteringssystemer, med praktiske eksempler. 462 kroner hos Akademika 405 kroner (+ frakt) hos Amazon.co.uk 8. september 2005 INF5030 - Jon Grov 10

Tilleggslitteratur - 2 Gray og Reuter: Transaction Processing: Concepts and Techniques (Morgan Kaufman, 1993) En grundig og dyp gjennomgang av transaksjonshåndteringssystemer. Anses for å være sterk på praktiske metoder og detaljer (og følgelig et funn for DBMS-utviklere 884 kroner hos Akademika 811 kroner hos Amazon.co.uk Bernstein, Hadzilacos og Goodman: Concurrency Control and Recovery in Database Systems (Addison Wesley, 1987) Forløperen til Weikum & Vossen. Grundig, teoretisk gjennomgang. Litt gammel, men gratis: http://research.microsoft.com/pubs/ccontrol/ 8. september 2005 INF5030 - Jon Grov 11

Del 2: Transaksjoner Sumererne registrerte for mer enn 5000 år siden handler på steintavler. Kasseapparat med papirrull ble oppfunnet omkring 1884. I 1970-årene ble det vanlig med minibanker, hvor penger kan overføres helautomatisk fra bankens side. 8. september 2005 INF5030 - Jon Grov 12

Definisjon En transaksjon er en gruppe av deloperasjoner som sammen utgjør en større, logisk operasjon. Kravene til korrekte transaksjoner: Atomicity Consistency Isolation Durability 8. september 2005 INF5030 - Jon Grov 13

Anvendelser Transaksjoner brukes i: Batch-prosessering On-Line Transaction Processing Transaksjoner er uegnet til å håndtere sanntidsinformasjon (umulig å sikre konsistens) 8. september 2005 INF5030 - Jon Grov 14

Batch vs OLTP Batch I et batch-system utføres transaksjonene sekvensielt, og i en kontrollert rekkefølge. Eksekveringstiden er lett å estimere, og man trenger vanligvis bare å kjøre én batch-jobb av gangen. Svært lave krav til responstid. Eksempel: Legg til renter på alle konti for en gitt bank. OLTP Hovedtema for kurset! Transaksjonsforespørslene kommer utenfra, og vi kjenner ikke nøyaktig frekvens og fordeling. Relativt strenge krav til responstid. Eksempel: Pengeoverføring initiert av banketminaler 8. september 2005 INF5030 - Jon Grov 15

OLTP-systemer Store OLTP-systemer: Brukes bl.a. av finans, varehandel, reiseselskaper og helsevesen. Stor heterogenitet. Svært lang levetid. Transaksjonsmellomvare: CICS, BEA Tuxedo m.fl. Mindre OLTP-systemer: Regnskapssystemer, dokumenthåndtering, mindre nettbutikker og lignende. Liten heterogenitet, kortere levetid. Ofte basert på transaksjonsstøtte i ett DBMS (for eksempel Oracle) 8. september 2005 INF5030 - Jon Grov 16

SABRE Semi-Automatic Business Research Environment ble utviklet av IBM og American Airlines for å automatisere booking av reiser. Påbegynt i slutten av 50-årene, i full drift omkring 1965. Kostet 45 millioner USD (ca. 350 mill. med dagens verdi) American Airlines sies å ha redusert bookinkostnadene med 30% SABRE er fremdeles i drift, og håndterte i 2004 reiser for ca. 70 milliarder USD. Kilde: http://www.sabre-holdings.com/ 8. september 2005 INF5030 - Jon Grov 17

Et transaksjonsprogram sub send_money() { BEGIN(); (a_id, b_id, amount) = process_user_input(); old_a = get_account(a_id); old_b = get_account(b_id); Lesing av delte data new_a = old_a amount; new_b = old_b + amount; if (new_a < 0) { ABORT(); } else { try { update_account(a_id, new_a); update_account(b_id, new_b); } except (Exception e) { ABORT(); } COMMIT(); } } Skriving av delte data 8. september 2005 INF5030 - Jon Grov 18

Krav sub send_money() { BEGIN(); (a_id, b_id, amount) = process_user_input(); old_a = get_account(a_id); old_b = get_account(b_id); new_a = old_a amount; new_b = old_b + amount; if (new_a < 0) { ABORT(); } else { try { update_account(a_id, new_a); update_account(b_id, new_b); } except (Exception e) { ABORT(); } COMMIT(); } } Alle sideeffekter må kunne reverseres før COMMIT. Vi må overholde integritetsreglene unngå overtrekk. Vi må sikre at verdiene som leses av get_account ikke endres (av andre transaksjoner) før update_account eksekveres. Etter COMMIT må alle utførte endringer forbli i databasen også dersom strømmen går. 8. september 2005 INF5030 - Jon Grov 19

Operasjonshierarki VISA: send_money() Bank A (Norway) get_account(a_id) update_account(a_id, new_a) Bank B (USA) get_account(b_id) update_account(b_id, new_b) r(x) w(x) w(log) r(y) w(y) w(log) 8. september 2005 INF5030 - Jon Grov 20

Distribuerte transaksjoner Vi må altså sikre atomisitet og konsistens på tvers av (relativt) autonome systemer. Skalerbarhet er kritisk, og systemet må fungere tilfredsstillende ved peak loads Tema for forelesningene 15. og 22. september 8. september 2005 INF5030 - Jon Grov 21

Samtidighetskontroll Overholde isolasjonskravet To transaksjoner: T 1 = r 1 (x) w 1 (x) og T 2 = r 2 (x) w 2 (x) Eksempel på inkonsistent eksekvering: r 1 (x) r 2 (x) w 1 (x) w 2 (x) Lett å løse teoretisk (tofase-låsing), men begrenser skalerbahet, særlig i distribuerte databaser. Tema for forelesningene 29. september og 6. oktober. 8. september 2005 INF5030 - Jon Grov 22

Gjenopprettelse og pålitelighet Atomicity og Durability. Vi må støtte rollback (undo). Crash recovery: alle skriveoperasjoner som ikke var committet før kræsjet må fjernes alle transaksjoner som var committet må gjøres permanente Implementeres med logging og redundans. Tema for forelesningene 13. og 20. oktober. 8. september 2005 INF5030 - Jon Grov 23

Ikke-funksjonelle krav Antall klienter Mengde data Transaksjonsbelastning Tilgjengelighet >100 000 Flere terabyte >10 000 tps Ca. 99.9% (tillatt nedetid: 8t 45 min pr. år) Transaction processing systems have to efficiently handle high volume, avoid errors due to concurrent operation, avoid producing partial results, grow incrementally, avoid downtime, and never lose results. It's a tall order. Phil A. Bernstein, 1987 8. september 2005 INF5030 - Jon Grov 24