Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Samankaltaiset tiedostot
Keskusmuistitietokantojen samanaikaisuuden hallinta

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

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus

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

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

D B. Transaktionhallinta - samanaikaisuus

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

D B. Tietokannan hallinta kertaus

5.2 Samanaikaisuuden hallinta

Hajautettujen transaktioiden hallinta

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Transaktiot - kertausta

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Tietokantarakenteet ja -algoritmit 6. harjoitus

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Tikon ostolaskujen käsittely

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Algoritmit 1. Luento 4 Ke Timo Männikkö

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Sähköposti ja uutisryhmät

Tietokantakurssit / TKTL

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2:

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Tikon ostolaskujen käsittely

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi


Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Tietokantarakenteet ja -algoritmit 3. harjoitus

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

4.3. Matemaattinen induktio

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

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

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

GALERIE EXHIBITIONS (13) 1 2 EXHIBITIONS 2

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Algoritmit 2. Luento 3 Ti Timo Männikkö

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Tietokannat II -kurssin harjoitustyö

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

CSE-A1200 Tietokannat

OPI-Maksut - Käyttötapaukset

Tietorakenteet ja algoritmit

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Lähettäjä ja vastaanottaja

Muita transaktioiden hallintamenetelmiä

UML -mallinnus TILAKAAVIO

Java ja tietokannan käsittely (JDBC)

Lähettäjä ja vastaanottaja

Tietokantojen suunnittelu, relaatiokantojen perusteita

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Tietokannat II -kurssin harjoitustyö

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Algoritmit 2. Luento 3 Ti Timo Männikkö

Yleistä. Esimerkki. Yhden palvelimen jono. palvelin. saapuvat asiakkaat. poistuvat asiakkaat. odotushuone, jonotuspaikat

KASVATUSTIETEIDEN TOHTORIOHJELMA HENKILÖKOHTAINEN OPINTOSUUNNITELMA LUKUVUOSILLE JA ,

(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ä.

Ohjelmistoarkkitehtuurit kevät

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Looginen tietokanta ja transaktiot

Algoritmit 2. Luento 2 To Timo Männikkö

HELIA 1 (14) Outi Virkki Tiedonhallinta

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Tietohakemisto ja Transaktionkäsittely

Algoritmit 2. Luento 2 Ke Timo Männikkö

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Ohjelmistoarkkitehtuurit

Sivupalvelin- ja yhteislevyjärjestelmät

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

7.4 Sormenjälkitekniikka

TIES542 kevät 2009 Yhteismuistisamanaikaisuus

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Algoritmit 1. Luento 3 Ti Timo Männikkö

Ohjelmoinnin peruskurssien laaja oppimäärä

2. Koetilan palvelin. 4. Varatietokoneet ja -kuulokkeet. 6. Kokelaan tikkuja osallistujille, varapäätelaitteille ja varalle

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

Ohjelmoinnin perusteet Y Python

Sovellusarkkitehtuurit

Autentikoivan lähtevän postin palvelimen asetukset

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Mittalaite ja puhelin on laitettu toimimaan automaattisesti yhdessä, sinun tulee seurata puhelimen antamia ohjeita mittauksen suorittamiseen.

Transkriptio:

Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Kaksivaiheiseen lukituskäytäntöön perustuva samanaikaisuuden hallinta Yhteenveto

Johdanto Käsiteltävä tieto muistissa, ei levyviipeitä Lokituksesta aiheutuvat levyviipeet Vaikutus transaktioiden suoritusnopeuteen Vaikutus transaktion käsittelyyn osallistuvien komponenttien operointikustannuksien merkitykseen Samanaikaisuuden hallinta Pessimistinen Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Kaksivaiheiseen lukituskäytäntöön perustuva samanaikaisuuden hallinta Optimistinen

Esiteltävien menetelmien taustoja Transaktioiden kasvanut suoritusnopeus Lukituskäytäntö Lukot lyhyemmän aikaa transaktion hallussa Kilpailu lukoista vähentyy Mahdollistaa lukitusrakeen koon kasvatuksen Uusi koko: Sivu, relaatio, tietokanta, Mitä suurempi koko, sitä pienemmät operointikustannukset ja matalampi samanaikaisuuden taso Lukitustietojen ylläpito lukittavassa tietoalkiossa Tietoalkion koon kasvu haittana Operointikustannukset vähenevät, keskitetyn lukkojenhallinnan pullonkaula poistuu

Esiteltävien menetelmien taustoja Transaktioiden sarjallinen suoritus Samanaikaisuuden hallinnan operointikustannukset poistuvat Pitkäkestoiset transaktiot haittana Tallennettujen proseduurien käyttö Erikoistuneet tietokannat sallivat sekä pitkä- että lyhytkestoiset transaktiot HyPer Hajautus Tiedon ositus ja toisintaminen Hajautus erillisille palvelimille, palvelimen prosessoreille Tietokannan palanen täysin pisteen hallinnassa Hajautus tietokannan ylläpitäjän toimesta tai automaattisen menetelmän avulla Schism Hajautetut transaktiot

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Tietokantajärjestelmän arkkitehtuuri Asiakassovellukset Hajautettu tietokanta Piste voi olla palvelin, palvelimen prosessori Pisteet suorittavat transaktioita sarjallisesti Keskitetty koordinaattori Hajautettujen transaktioiden koordinointi

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Yhden pisteen tietoja käsittelevä transaktio BEGIN UPDATE P1 SET A=A+1 WHERE X=x; SELECT A FROM P1 WHERE X=x; COMMIT Asiakassovellus lähettää suoraan pisteelle Asiakkaalla tieto hajautuksesta

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Hajautettu transaktio Th BEGIN SELECT B FROM P2 WHERE Y=y; SELECT C FROM Pn WHERE Z=z; INSERT INTO P2 (B) VALUES (C) WHERE Y=y; INSERT INTO Pn (C) VALUES (B) WHERE Z=z; COMMIT Asiakassovellus lähettää keskitetylle koordinaattorille

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Yleinen hajautettu transaktio Th BEGIN SELECT B FROM P2 WHERE Y=y; SELECT C FROM Pn WHERE Z=z; INSERT INTO P2 (B) VALUES (C) WHERE Y=y; INSERT INTO Pn (C) VALUES (B) WHERE Z=z; COMMIT Paloittelu eri pisteille lähetettäviin palasiin Alitransaktio voi koostua useasta palasesta Palasten väliset tietoriippuvuudet Alitransaktio T1: 1. SELECT B FROM P2 WHERE Y=y; 2. INSERT INTO P2 (B) VALUES (C) WHERE Y=y; Alitransaktio T2: 1. SELECT C FROM Pn WHERE Z=z; 2. INSERT INTO Pn (C) VALUES (B) WHERE Z=z;

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Yksinkertainen hajautettu transaktio Th BEGIN UPDATE P2 SET B=B+1 WHERE Y=y; UPDATE Pn SET C=C+1 WHERE Z=z; COMMIT Paloittelu eri pisteille lähetettäviin palasiin Kaikki transaktion palaset voidaan suorittaa samanaikaisesti eri pisteillä Alitransaktio T1: 1. UPDATE P2 SET B=B+1 WHERE Y=y; Alitransaktio T2: 1. UPDATE Pn SET C=C+1 WHERE Z=z;

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Hajautettujen transaktioden sitouttaminen käyttäen kaksivaiheista sitoutumiskäytäntöä Äänestysvaihe ja päätösvaihe Koordinaattori lisää sitoutumiseen valmistautumisviestin viimeiseen alitransaktion palaseen Muiden transaktioiden spekuloiva suoritus pisteellä valmiustilassa olevan hajautetun transaktion alitransaktion odottaessa lopullista sitoutumispäätöstä koordinaattorilta Spekuloidusti suoritettujen transaktioiden oletetaan konfliktoivan Joka pisteellä spekulointia varten kaksi jonoa: Suorittamattomien transaktioiden jono Pisteelle saapuneet vielä suorittamattomat transaktiot Pisteelle saapunut transaktio lisätään jonoon, jos pisteellä on aktiivisena hajautetun transaktion alitransaktio, joka ei odota vielä sitoutumispäätöstä Sitoutumattomien transaktioiden jono Suoritetut transaktiot, jotka odottavat lupaa saada sitoutua Ensimmäinen jonossa oleva transaktio on aina spekuloimattomasti suoritettu transaktio Loput jonossa olevat transaktiot ovat spekuloidusti suoritettuja transaktioita

Esimerkkejä A.n/m Hajautetun transaktion m:n palan alitransaktion A n:s pala A.1/1 Yksinkertaisen hajautetun transaktion alitransaktion A (ainoa) palanen A.2/5 Yleisen hajautetun transaktion alitransaktion A 2. palanen, jota seuraa vielä 3 palasta. B Yhden pisteen tietoja käsittelevä transaktio B

Esimerkki: Transaktion suoritus pisteellä Yhden pisteen tietoja käsittelevä transaktio T Pisteellä ei kesken transaktioita

Esimerkki: Transaktion suoritus pisteellä Yhden pisteen tietoja käsittelevä transaktio T Pisteellä ei kesken transaktioita Transaktio T suoritetaan

Esimerkki: Transaktion suoritus pisteellä Yhden pisteen tietoja käsittelevä transaktio T Pisteellä ei kesken transaktioita Transaktio T suoritetaan Ja tulos palautetaan lähettäjälle

Esimerkki: Transaktioiden spekuloiva suoritus Yleiset hajautetut transaktiot A ja E Yksinkertainen hajautettu transatio C Yhden pisteen tietoja käsittelevät transaktio B, D ja F

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.1/2 suoritetaan ja sen tulos palautetaan takaisin koordinaattorille Transaktio A.1/2 on aktiivisena pisteellä

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.1/2 on aktiivisena pisteellä Transaktiota B ei voida vielä suorittaa spekuloiden A.1/2:n aktivisuudesta johtuen

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.1/2 on aktiivisena pisteellä Transaktiota C.1/1 ei voida vielä suorittaa spekuloiden A.1/2:n aktivisuudesta johtuen

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 suoritetaan ja sen tulos sekä äänestysviesti lähetetään takaisin koordinaattorille Transaktio A.2/2 on paikallisesti valmis pisteellä Suorittamattomien transaktioiden jonossa olevien transaktioiden spekuloiva suoritus voi alkaa

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio B suoritetaan spekuloiden ja sen tulos puskuroidaan pisteelle Tuloksen palautus menisi suoraan lähettäjälle

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio C.1/1 suoritetaan spekuloiden ja sen tulos palautetaan takaisin koordinaattorille tiedolla, että tulos riippuu transaktion A.2/2 sitoutumispäätöksestä

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio D suoritetaan spekuloiden ja sen tulos puskuroidaan pisteelle Tuloksen palautus menisi suoraan lähettäjälle

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio E.1/3 suoritetaan spekuloiden ja sen tulos puskuroidaan pisteelle Transaktio E.1/3 tulosta saatetaan käyttää toisella pisteellä suoritettavassa alitransaktiossa joka suoritetaan spekuloimattomasti Transaktio E.1/3 on aktiivisena pisteellä

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio E.1/3 on aktiivisena pisteellä Transaktiota F ei voida suorittaa spekuloiden, sillä pisteellä on aktiivisena transaktio E.1/3

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio E.1/3 on aktiivisena pisteellä Transaktio A.2/2 saa päätöksen sitouttaa transaktion Sitouttamattomien transaktioiden jonosta sitoutetaan kaikki transaktiot ensimmäiseen toiseen hajautettuun transaktioon asti

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio E.1/3 on aktiivisena pisteellä Transaktio C.1/1 saa päätöksen sitouttaa transaktion Sitouttamattomien transaktioiden jonosta sitoutetaan kaikki transaktiot ensimmäiseen toiseen hajautettuun transaktioon asti Transaktion E.1/3 tulos voidaan lähettää koordinaattorille Piste jää odottamaan seuraavia transaktioita

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio E.1/3 on aktiivisena pisteellä Transaktio A.2/2 saa päätöksen keskeyttää transaktion Koordinaattori poistaa puskuristaan C.1/1 transaktion tuloksen

Esimerkki: Transaktioiden spekuloiva suoritus Transaktio A.2/2 on paikallisesti valmis pisteellä Transaktio E.1/3 on aktiivisena pisteellä Transaktio A.2/2 saa päätöksen keskeyttää transaktion Kaikki transaktiot perutaan käänteisessä suoritusjärjestyksessä sitoutumattomien transaktioiden jonosta kunnes vastaan tulee keskeytyspäätökseen saanut transaktion A.2/2 ja perutut transaktiot lisätään takaisin suorittamattomien transaktioiden jonon kärkeen Viimeisenä perutaan transaktion A kaikki pisteellä suoritetut palaset ja jatketaan transaktioiden suorittamista normaalisti suorittamattomien transaktioiden jonosta tai jos jono on tyhjä, jäädään odottamaan seuraavaa pisteelle saapuvaa transaktiota

Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Menetelmä soveltuu parhaiten ympäristöihin, joissa Esiintyy runsaasti vain yhden pisteen tietoja käsitteleviä transaktioita Esiintyy vain joitakin yksinkertaisia hajautettuja transaktioita ja yleisiä hajautettuja transaktioita Transaktiot keskeytyvät harvoin Keskitetty koordinaattori pullonkaula Yleiset hajautetut transaktiot heikentävät menetelmän suorituskykyä

Kaksivaiheiseen lukituskäytäntöön perustuva samanaikaisuuden hallinta Perustuu ankaraan kaksivaiheiseen lukituskäytäntöön Luku- ja kirjoituslukot Lukkiutumat Haamumonikot Avainvälilukitus Tavoitteena operointikustannuksien vähentäminen Kasvattamalla tietoalkion rakeisuuden kokoa Keskusmuistialkio, joka sisältää useita monikoita fyysisen sivun käsitteen tavoin Ylläpitämällä lukitustietoja lukittavassa tietoalkiossa Lukko-otsake Aktiivisen lukon tyyppi (luku- tai kirjoituslukko) Tietoalkion lukkojen linkitetyn listan juuri Tieto siitä, odottaako jokin transaktio lukon myöntämistä tähän tietoalkioon

Kaksivaiheiseen lukituskäytäntöön perustuva samanaikaisuuden hallinta Lukkopyyntö Yhden lukon tiedot Lukon tyyppi (luku. kirjoitus) Tilatieto (myönnetty, odottava, korottava) Lukon omistava transaktio (transaktiotunniste) Linkitetty lista tietoalkion muista lukoista Linkitetty lista transaktion muista lukoista Transaktiotietue Transaktion lukkojen linkitetyn listan juuri Transaktioiden, joiden lukkojen vapautumista tämä transaktio odottaa, listan juuri Listan ylläpito, kun transaktio joutuu odottamaan lukon myöntämistä tai saatuan lukon haltuunsa Odotusverkon muodostaminen lukkiutumien havaitsemiseen

Kaksivaiheiseen lukituskäytäntöön perustuva samanaikaisuuden hallinta

Yhteenveto Operointikustannuksien merkityksen kasvu Perinteiset samanaikaisuuden hallinnat eivät välttämättä sovellu sellaisenaan keskusmuistitietokannoille Keskusmuistitietokantojen samanaikaisuuden hallintaan on kehitetty uusia menetelmiä Hajautetun tietokannan spekuloiva samanaikaisuuden hallinta Kaksivaiheiseen lukituskäytäntöön perustuva samanaikaisuuden hallinta +muut