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