Presentasjon av doktorgradsprosjekt

Like dokumenter
Repetisjon av transaksjonshåndtering og samtidighetskontroll. Lana Vu

Transaksjonshåndtering Del 2

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

Transaksjonshåndtering Del 2

Transaksjonshåndtering Del 2

Transaksjonshåndtering og samtidighetskontroll

Transaksjonshåndtering og samtidighetskontroll

Repetisjonsforelesning, SQL og utover

Transaksjonshåndtering og samtidighetskontroll

Transaksjonshåndtering Del 3

ndtering og samtidighetskontroll

DBS21 Samtidighetskontrollteknikker

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

Replikeringsgrafer og multiversjonsserialiserbarhet. Jon Grov. Hovedfagsoppgave. 29. april 2003

Transaksjonshåndtering Del 3

INF3100 V2018 Obligatorisk oppgave nr. 2

UNIVERSITETET I OSLO

Transaksjonshåndtering Del 3

Transaksjonshåndtering Del 3

DBS20 - Introduksjon til transaksjonsprosessering og teori

Transaksjonshåndtering Del 3

Transaksjonshåndtering Del 3

Hva har vi gjort? SQL og Databasedesign

Samtidighetsfenomener og anomalier i eksekveringsplaner. INF Ellen Munthe-Kaas 1

For alle ikke-trivielle FDer X A i R: eller A er et nøkkelattributt i R eller X K for noen kandidatnøkkel K i R

INF5030. Håndtering av virksomhetskritiske data

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Samtidighetsfenomener og anomalier i eksekveringsplaner (kursorisk) INF3100 Ellen Munthe-Kaas 1

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

Parallelle og distribuerte databaser del I

INF1300 Introduksjon til databaser

Isolasjon i postgres og mysql

Parallelle og distribuerte databaser Del I

Transaksjoner og flerbrukerproblematikk. Transaksjoner

UNIVERSITETET I OSLO Institutt for informatikk. En teoretisk studie av Snapshot Isolation. Masteroppgave 60 studiepoeng. Lene T.

Øving 5: Transaksjonshåndtering, logging og normalisering

UNIVERSITETET I OSLO

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

Parallelle og distribuerte databaser

Deling av data Transaksjoner

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

MAT-INF 1100: Obligatorisk oppgave 1

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

Systemfeil og logging

Deling av data Transaksjoner

Introduksjon til fagfeltet

IN1000 Obligatorisk innlevering 7

INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer

DBS22 Databasegjenopprettingsteknikker

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

UNIVERSITETET I OSLO

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

Databasesystemer, oversikt

Parallelle og distribuerte databaser

Fakultet for informasjonsteknologi,

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

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

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

MAT Oblig 1. Halvard Sutterud. 22. september 2016

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Andre sett obligatoriske oppgaver i INF3100 V2010

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

Stein Grimstad. Konsulent i Scienta AS. Prosjekt hos Skatteetaten. Forsker hos Simula (deltid) 3/7/18

Parallelle og distribuerte databaser del III

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Multiblokkseminaret: LS-PLS. Bjørn-Helge Mevik

UNIVERSITETET I OSLO

Andre sett obligatoriske oppgaver i INF3100 V2013

Plan for dagen. Måter å tenke på

Tråder Repetisjon. 9. og 13. mai Tråder

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

Masteroppgave 60 studiepoeng

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Sammenlikningav simuleringsverktøyfor reguleringsteknikk

MAT-INF 1100: Obligatorisk oppgave 1

Definisjon: Et sortert tre

Systemfeil og logging

Andre sett obligatoriske oppgaver i INF3100 V2012

IN1010 våren Repetisjon av tråder. 15. mai 2018

Et eksempel: Åtterspillet

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Effektiv eksekvering av spørsmål

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

Quadri DCM Et system for modellbasert samhandling

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

Datatyper og typesjekking

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

Datatyper og typesjekking

Løse reelle problemer

Hvorfor objektorientert programmering?

Transkript:

Presentasjon av doktorgradsprosjekt Fredag Jon Grov Tre deler Del 1 - litt om transaksjonshåndtering. Del 2 - om doktorgradsarbeidet. Del 3 - bittelitt om Python og SimPy (bare hvis vi har tid). 1 av 14

Del 1 Transaksjonshåndtering Transaksjoner brukes for å sikre konsistent lesing og skriving av kritiske data, og er en viktig komponent i systemer som håndterer bestillinger, penger, aksjer, logistikk osv. En transaksjon kan sees som en sekvens av lese- og skrivetransaksjoner. Eksempel: t = r(x), r(y), w(y). ACID: Atomicity, Consistency, Isolation and Durability. 2 av 14

Transaksjoner og replikering Vi ser på transaksjonshåndtering i store replikerte databaser, hvor det høye antallet skriveoperasjoner begrenser skaleringsevnen: Én node r(x) r(y) w(y) c Fire noder r(x) r(y) w(y) w(y) w(y) w(y) c c c c Skaleringsproblemet er knyttet til isolasjonskravet, som ofte innebærer krav om serialiserbarhet. Dvs. at for utførelsen av flere samtidige transaksjoner skal det finnes en seriell utførelse som gir samme sluttilstand. 3 av 14

Serialiserbarhet En eksekveringsplan beskriver rekkefølgen for utførelsen av operasjonene i flere transaksjoner. Eksempel: s = r 1 (x), r 2 (x), w 1 (x), c 1, w 2 (x), c 2 Vi er interessert i konfliktserialiserbarhet: Skriveoperasjoner fører til konflikter, og i s har vi konfliktene [r 1 (x), w 2 (x)], [r 2 (x), w 1 (x)] og [w 1 (x), w 2 (x)]. Generelt er en plan p konfliktserialiserbar dersom det finnes en seriell plan p s hvor vi for hver konflikt har at rekkefølgen av transaksjonene er den samme i p og p s. Vi ser av figuren at s ikke er serialiserbar. t i x x t j 4 av 14

Tofase låsing Leseoperasjoner krever leselåser og skriveoperasjoner skrivelåser. Leselåser kan deles, mens skrivelåser er eksklusive. Tofase-låsing garanterer serialiserbarhet ved at ingen låser kan slippes før transaksjonen har fått alle låsene den trenger. Sårbar for vranglåser. Ant. låser Serialiseringspunkter Tid 5 av 14

Tofase låsing og replikering Antall avbrudd på grunn av vranglåser blir utålelig i databaser replikert over mange noder. Ved full replikering øker frekvensen av vranglåser med noder 3. Jim Gray konkluderte i 1996 slik: «Simple replication (transactional update-anywhere-anytime-anyway) cannot be made to work with global serializability» 6 av 14

Alternativer til tofase låsing Optimistisk samtidighetskontroll, hvor transaksjonene valideres før committ. Dersom eksekveringen ikke valideres må transaksjonen restartes. Tidsstempling, hvor vi for en konflikt [o i, o j ] restarter t j dersom ts(t i ) > ts(t j ) Multiversjonsalgoritmer, hvor tidligere versjoner beholdes ved oppdatering. Vi unngår dermed låser for lesetransaksjoner ved å lese eldre versjoner om nødvendig. Replikeringsgrafbaserte algoritmer vedlikeholder en komprimert serialiseringsgraf. Dersom det for en gitt plan finnes en asyklisk replikeringsgraf, er planen serialiserbar. 7 av 14

Del 2 Doktorgradsprosjekt «Scalability and Transaction Isolation with Replication» Veiledes av Ragnar Normann, Stein Krogdahl og Ellen Munthe-Kaas. Mål: Få oversikt over «state of the art». Rangere effektiviteten til ulike metoder for samtidighetskontroll replikerte databaser ved hjelp av en simuleringsmodell. Implementere og måle den beste i MySQL eller PostgreSQL (muliggjør testing mot «offisielle» benchmarks). 8 av 14

Framdrift så langt Laget simulatoren «STIRSIM» Implementert og målt en låsbasert og en replikeringsgraf-basert protokoll for samtidighetskontroll. Begge ble målt med og uten multiversjonsstøtte. Tidligere publiserte resultater indikerer at replikeringsgraf-protokoller skalerer overlegent bedre enn låsbaserte. Målingene våre bekrefter at protokollen med replikeringsgraf skalerte best, men at forskjellene var mindre enn i tidligere målinger. I de valgte eksperimentene oppnådde vi dramatisk bedre ytelse ved å eliminere lesetransaksjoner ved hjelp av multiversjoner. 9 av 14

Utfordringer Replikeringsgraf-protokollen avhenger av at replikeringsgrafen lagres ved en node. Ingen av alternativene håndterer lange transaksjoner som inneholder oppdateringer. Simulatoren og simuleringsmodellen kan gjøres mer realistisk. 10 av 14

Del 3 Python og SimPy Om Python Interpretert «skriptspråk». Dynamisk typing. God støtte for objektorientering. Om SimPy http://simpy.sourceforge.net/ Gratis, Python-basert rammeverk for discrete-event simulering (sterk inspirert av Simula) NB Jeg er Python-novise, og har ingen tidligere erfaring med simuleringsverktøy! 11 av 14

Et bittelite SimPy program 1 #!/usr/bin/env python 2 3 from SimPy.Simulation import * 4 from random import expovariate,seed 5 6 class Source(Process): 7 """ Source generates customers randomly""" 8 9 def generate(self,number,interval): 10 for i in range(number): 11 c = Customer(name = "Customer%02d"%(i,)) 12 activate(c,c.visit(timeinbank=12.0)) 13 t = expovariate(1.0/interval) 14 yield hold,self,t 15 16 class Customer(Process): 17 """ Customer arrives, looks round and leaves """ 18 19 def visit(self,timeinbank=0): 20 print "%7.4f %s: Here I am"%(now(),self.name) 21 yield hold,self,timeinbank 22 print "%7.4f %s: I must leave"%(now(),self.name) 23 24 def model(): 25 seed(99999) 26 initialize() 27 s=source(name= Source ) 28 activate(s,s.generate(5,10.0),0.0) 29 simulate(until=400.0) 30 31 model() 12 av 14

Min mening om Python Positivt: Godt miljø for «vitenskapelig» bruk (Numerical Python, SimPy, matplotlib). Godt og robust runtime-miljø! Det enkle er enkelt, det vanskelige mulig. Negativt: Blokkavgrensning med whitespace er ikke bare fint. Lite utbredt i produksjonsmiljøer, selv om Google er svært aktive Python-brukere. 13 av 14

Min mening om SimPy Positivt: Opphavsmennene virker svært imøtekommende og kompetente. God kvalitetssikring. Negativt: Savner ferdige moduler for å simulere nettverk, disker o.l. Suboptimalt at for hver prosess må all venting skje i samme metode. 14 av 14