Transaktiot - kertausta

Samankaltaiset tiedostot
D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo.

Tietokantarakenteet ja -algoritmit 6. harjoitus

Ohjelmoinnin peruskurssien laaja oppimäärä

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

Ohjelmoinnin peruskurssien laaja oppimäärä

D B. Transaktionhallinta - samanaikaisuus

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

Transaktionhallinta. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

/ ta. Osaa kvalitatiivisella tasolla arvioida sovelluksen hajauttamisen hyötyjä ja haittoja.

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

5.2 Samanaikaisuuden hallinta

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Sisältö. Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat. Abstrakti tietokantamalli. Tietoalkio ACID. Transaktion tilat. Abstrakti tietokantamalli

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

Keskusmuistitietokantojen samanaikaisuuden hallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Muita transaktioiden hallintamenetelmiä

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka

1 Lukujen jaollisuudesta

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Lineaarialgebra ja matriisilaskenta I

Slides for Chapter 11: Time and Global State

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys:

Graafisen käyttöliittymän ohjelmointi Syksy 2013

1. Mitä tehdään ensiksi?

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

Piirikytkentäiset kytkentäkentät. Kapeakaistakenttä kytkee PCM-aikavälejä

Ehto- ja toistolauseet

Algoritmit 1. Luento 11 Ti Timo Männikkö

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

1 Aritmeettiset ja geometriset jonot

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,


Lukkiutuminen. Taustaa Aterioivat Filosofit Ennaltaehkäisy Havaitseminen Välttely. Andrews 4.3 Stallings (tai mikä tahansa KJ-kirja)

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12

Lukkiutuminen. Taustaa

4-13. Ratkaisu 4: OK, mutta... vrt. 2. Ratkaisu 3: OK. Ratkaisu 5: OK? Nälkiintyminen?

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

7.4 Sormenjälkitekniikka

FORD KA KA_202054_V5_2013_Cover.indd /06/ :59

Ajotaitomerkkisäännöt matkailuautolle voimaan

Web-palveluiden transaktionaalinen koostaminen

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

8. Näppäimistöltä lukeminen 8.1

Diofantoksen yhtälön ratkaisut

Talousmatematiikan perusteet ORMS.1030

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

Algebra I, harjoitus 5,

4.3. Matemaattinen induktio

Yhteydettömän kieliopin jäsennysongelma

Matematiikan ohjelmointi. Joakim von Wright

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

8. Näppäimistöltä lukeminen 8.1

Algoritmit 1. Luento 5 Ti Timo Männikkö

Tietohakemisto ja Transaktionkäsittely

Taustaa. Lukkiutuminen. Seuraukset. Määritelmiä Lukkiuma (deadlock) päättymätön odotus BLOCKED-tilassa. prosessi P. prosessi Q. pyydä A? OK.

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

Syitä siirtoon. Hajautettu prosessien hallinta. Stallings, Luku 15. Sisältöä luento 20. Kuka/mikä päättää siirrosta? Esimerkki.

Hajautettu prosessien hallinta. Stallings, Luku 15. Sisältöä luento 20

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

11/20: Konepelti auki

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

Rinnakkaistietokoneet luento S

Algoritmit 1. Luento 10 Ke Timo Männikkö

Yhtäpitävyys. Aikaisemmin osoitettiin, että n on parillinen (oletus) n 2 on parillinen (väite).

Rinnakkaistietokoneet luento S

Sisältöä luento 20. Hajautettu prosessien hallinta. Stallings, Luku 15. Prosessin siirto. Syitä siirtoon. Esimerkki. Kuka/mikä päättää siirrosta?

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

Tarkennamme geneeristä painamiskorotusalgoritmia

Ohjelmoinnin perusteet Y Python

Mikä on Twitter? Rekisteröityminen

1. Tarkastellaan seuraavaa stokastista Petri-verkkoa: p 2. p 1. lock write 1

4. Lue ja arvioi vastauksia

Ohjelmoinnin perusteet Y Python

Insinöörimatematiikka D

1. Johdanto. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki

Johdatus matemaattiseen päättelyyn

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)

LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOTEKNIIKAN OSASTO. 7$3$+780$1.b6,77(/<+$-$87(7866$<03b5,67g66b

Samanaikaisuuden hallinta Snapshot Isolationin avulla

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

812315A Ohjelmiston rakentaminen. Asynkronisuus

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Ohjelmoinnin perusteet, syksy 2006

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Johdatus matematiikkaan

Transkriptio:

Hajautettujen järjestelmien perusteet Transaktiot - kertausta Distributed Systems, Concepts and Design, George Coulouris, Jean Dollimore, Tim Kindberg Addison-Wesley 1988,1994. Pearson Education 2001 ISBN: 0201-61918-0) 2012 OHJ-5010, Hajap, Kari Systä 1

Lukitaan muuttujat sitä mukaa kun niitä käytetään Jos jollakin on jo lukko, niin odotetaan Ja avataan lopussa Kasvuvaihe (grow) and kutistusvaihe (shrink) Kutsutaan kaksivaiheiseksi lukitsemiseksi (two-phase locking) Strict versiossa kaikki lukot vapautetaan vasta kommitissa tai abortissa Lukot 2012 OHJ-5010, Hajap, Kari Systä 2

Esimerkki lukoista Transaktio 1: m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); Transaktio 2: m:=b.saldo(); b.aseta(1.1*m); c.nosto(m/10); 2012 OHJ-5010, Hajap, Kari Systä 3

Operaatio Lukot Operaatio Lukot opentransaction() m:=b.saldo() lock B b.aseta(1.1*m) opentransaction() a.nosto(m/10) lock A m:=b.saldo() wait B closetransaction() unlock A, B b.aseta(1.1*m); c.nosto(m/10); lock B lock C closetransaction() unlock B,C 2012 OHJ-5010, Hajap, Kari Systä 4

Toinen esimerkki - voiko lukkiintua? Transaktio 1: m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); Transaktio 2: m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); Lukkiintuminen tapahtuu jos T1 odottaa T2:a ja T2 odottaa T1:ä. 2012 OHJ-5010, Hajap, Kari Systä 5

Odotusgraafi varattu T1 B odottaa T2 odottaa A varattu 2012 OHJ-5010, Hajap, Kari Systä 6

Toinen esimerkki - voiko lukkiintua? Transaktio 1: m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); Transaktio 2: m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); Kummallekin pätee: Lukkoa B pyydetään vain silloin kun yhtään lukkoa ei ole hallussa Lukkoa A pyydetään vain silloin kun lukko B on saatu Silmukkaa ei siis voi syntyä 2012 OHJ-5010, Hajap, Kari Systä 7

Entä tämä? Transaktio 1: m:=a.saldo(); a.aseta(1.1*m); b.nosto(m/10); (b -> a) Transaktio 2: m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); (a -> b) 2012 OHJ-5010, Hajap, Kari Systä 8

Entä tämä? odottaa B varattu m:=a.saldo(); a.aseta(1.1*m); b.nosto(m/10); m:=b.saldo(); b.aseta(1.1*m); a.nosto(m/10); varattu A odottaa 2012 OHJ-5010, Hajap, Kari Systä 9

Erikseen luku- ja kirjoituslukot Rinnakkaisuus halutaan suureksi Granulariteetti mahdollisimman pieneksi Erikseen luku- ja kirjoituslukko Lukulukko voi olla jaettu Lukitussäännöt Jos transaktio A on lukenut resurssia R, niin rinnakkainen transaktio B ei saa kirjoittaa resurssiin ennen kuin A on lopettanut (kommit tai peruutus) Jos transaktio A on kirjoittanut resurssiin R, niin rinnakkainen transaktio B ei saa lukea eikä kirjoittaa resurssia ennen kuin A on lopettanut 2012 OHJ-5010, Hajap, Kari Systä 10

Lukkiumaesimerkki Transaktio T Transaktio U Operaatio Lukot Operaatio Lukot a.talleta(10) K(A) b.nosta(10) Odota K(B):tä U:lta b.talleta(20) K(B) a.nosta(20) Odota K(A):ta T:tä 2012 OHJ-5010, Hajap, Kari Systä 11

Lukot ja lukkiutumat - ratkaisuja Varataan transaktion alussa kaikki tarvittavat lukot Lukitaan muuttujat aina tietyssä järjestyksessä Johtaa liian aikaiseen lukitsemiseen ja vähentää rinnakkaisuutta lukkomanageri ylläpitää odotusgraafia Huomatessaan silmukan joku silmukan transaktioista perutaan timeout 2012 OHJ-5010, Hajap, Kari Systä 12

Optimistiset algoritmit Optimistiset algoritmit pyrkivät välttämään lukkojen ongelmat Idea: jos konfliktit ovat harvinaisia annetaan transaktioiden tehdä työnsä ja tarkastetaan lopuksi menikö kaikki hyvin 2012 OHJ-5010, Hajap, Kari Systä 13

Transaktiot aikaleimoilla: SDD-1 (system for distributed databases) Kirjoitukset tehdään alustavasti ja ne tulevat näkyviksi vasta closetransactionin jälkeen closetransaction johtaa aina kommittiin Jokaisesta oliosta on kommittoitu versio ja joukko alustavia versioita Jokaisella oliolla on kirjoitusaikaleima ja joukko lukuaikaleimoja (joita voi edustaa suurin) 2012 OHJ-5010, Hajap, Kari Systä 14

SDD-1 Kun kirjoitus hyväksytään, palvelin luo uuden alustavan olion kirjoittavan transaktion aikaleimalla Transaktion T lukuoperaatiot ohjataan siihen versioon oliosta, jonka kirjoitusaikaleima on suurin Transaktio T:n aikaleimaa pienemmistä versioista 2012 OHJ-5010, Hajap, Kari Systä 15

Esimerkki SSD1:llä Transaktio 1: 1: Start 3: m:=a.saldo(); 5: a.aseta(1.1*m); 7: b.nosto(m/10); Transaktio 2: 2: Start 4: m:=b.saldo(); 6: b.aseta(1.1*m); 8: a.nosto(m/10); 2012 OHJ-5010, Hajap, Kari Systä 16

Oletukset Alussa Molempien tilien saldo 100 ja aikaleima 0 T1 pyrkii siirtämään B->A ja T2 A->B Peräkkäiset suoritukset ovat T1;T2 (100,100)-> (110,90); (110,90) -> (101;99) T2;T1 (100,100) -> (90;110); (90;110) -> (99;101) 2012 OHJ-5010, Hajap, Kari Systä 17

Transaktio 1: 1: Start 3: m:=a.saldo(); 5: a.aseta(1.1*m); 100 (B.t = 0) 7: b.nosto(m/10); Esimerkki SSD1:llä T1:n aikaleima = 1 100 (A.t = 0) 110 (1 -> A.t) 90 (1 -> B.t ) Transaktio 2: 2: Start T2:n aikaleima = 2 100 (aikal. 0) 4: m:=b.saldo(); 110 (2 -> B.t) 6: b.aseta(1.1*m); 100 (A.t = 0) 8: a.nosto(m/10); 90 (2 -> A.t) 2012 OHJ-5010, Hajap, Kari Systä 18

Transaktiot aikaleimoilla Ei lukkiumia Aikaleimat ovat joskus herkkiä peruuttamaan 2012 OHJ-5010, Hajap, Kari Systä 19

Rinnakkaisuudenhallintatapojen vertailu Lukitukset ja aikaleimat pessimistisiä Sarjallisuusjärjestyksen määräytyminen Aikaleimat: transaktion alussa Lukot: suorituksen aikana Kun pääasiassa luetaan, niin aikaleimat parempia Jos sekä luetaan, että kirjoitetaan, niin lukitukset parempia Jos ei tule konflikteja, niin optimisti on nopein 2012 OHJ-5010, Hajap, Kari Systä 20