Hajautettujen transaktioiden hallinta

Koko: px
Aloita esitys sivulta:

Download "Hajautettujen transaktioiden hallinta"

Transkriptio

1 Hajautettujen transaktioiden hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut , luvun 24 (implementing distributed transactions) kohdat 24.1 (implementing the ACID properties), 24.2 (atomic termination), 24.3 (transfer of coordination), 24.4 (distributed deadlock), 24.5 (global serialization) ja 24.6 (when global atomicity cannot be guaranteed); sivut , luvun 23 (architecture of transaction processing systems) kohta 23.4 (the TP monitor: global atomicity and the transaction manager). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Sixth Edition. McGraw-Hill, 2010; sivut ja ja , luvun 19 (distributed databases) kohdat 19.3 (distributed transactions) ja 19.4 (commit protocols), kohdan 19.5 (concurrency control in distributed databases) alakohdat (single lockmanager approach), (distributed lock manager) ja (deadlock handling), sekä kohdan 19.6 (availability) alakohta (coordinator selection). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006; sivut ja ja , luvun 22 (distributed databases) kohdat 22.3 (distributed transactions) ja 22.4 (commit protocols), kohdan 22.5 (concurrency control in distributed databases) alakohdat (single lockmanager approach), (distributed lock manager) ja (deadlock handling), sekä kohdan 22.6 (availability) alakohta (coordinator selection). C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Transactions on Database Systems 17:1 (1992), ; sivut 114, kohta

2 (transaction table), ja , kohdan 6 (restart processing) alakohdat 6.1 (analysis pass), 6.2 (redo pass) ja 6.3 (undo pass). G. Samaras, K. Britton, A. Citron & C. Mohan: Two-phase commit optimizations and tradeoffs in the commercial environment. ICDE 1993, Proc. of the 9th IEEE Internat. Conf. on Data Engineering, 1993, Hajautetun tietokannan transaktiot, s. 63. Atominen sitoutuminen, s. 71. Kaksivaiheinen sitoutumiskäytäntö, s. 75. Usean alueen ylittävä atominen sitoutuminen, s. 86. Häiriöiden käsittely kaksivaiheisessa sitoutumiskäytännössä, s. 90. Pisteen elvytys häiriöstä, s. 94. Hajautettujen transaktioiden X/Open-käsittelymalli, s Hajautettu lukkiuma, s Globaali sarjallistuvuus, s Heikommat sitoutumiskäytännöt, s

3 Hajautetun tietokannan transaktiot Hajautetun tietokantajärjestelmän jokainen piste s pystyy käsittelemään paikallisia transaktioita (local transaction), jotka operoivat ainoastaan pisteessä s säilytettäviin tietoihin. Piste voi myös osallistua globaaleihin transaktioihin (global transaction) eli hajautettuihin transaktioihin (distributed transaction), jotka operoivat useampien eri pisteiden tietoihin. Hajautettu transaktio, joka operoi pisteissä s 0,s 1,...,s n säilytettäviin tietoihin, koostuu alitransaktioista (subtransaction) T 0,T 1,...,T n, missä kukin T i on paikallinen transaktio eli operoi ainoastaan pisteen s i tietoihin. Alitransaktio T i käsittää siis hajautetun transaktion ne tietokantaoperaatiot, jotka kohdistuvat pisteen s i tietoihin. Piste s i (tai sen transaktionhallitsin), jonka suoritettavana on hajautetun transaktion jokin alitransaktio, on osallinen (cohort, participant) kyseiseen hajautettuun transaktioon. 63

4 Hajautettu transaktio on itse asiassa joukko paikallisia transaktioita, joiden suoritusta koordinoidaan. Transaktion koordinoijana (coordinator) on useimmissa tapauksissa transaktion aloituspisteen transaktionhallitsin. Transaktion aloittajan valitseminen transaktion koordinoijaksi ei kuitenkaan aina ole paras ratkaisu. Aloituspiste ei ehkä ole luotettavin transaktion osallisista. Transaktio saattaa olla aloitettu jonkin toiminnon seurauksena myyntipisteen päätteeltä ja siihen voi sisältyä operointia kaupan pääkonttorin ja asiakkaan pankin tietokantapalvelimiin. On turvallisempaa koordinoida transaktio näistä palvelimista käsin. Tämä edellyttää mahdollisuutta siirtää transaktion koordinointi pisteestä toiseen. Toinen syy koordinoinnin siirtoon voi olla transaktion sitoutumisen koordinoinnin aikana vaihdettavien viestien määrän optimointi. 64

5 Seuraavassa oletetaan, että transaktion aloituspiste on samalla koordinaatiopiste. Pisteessä s 0 käynnistetty hajautettu transaktio pilkotaan s 0 :ssa alitransaktioiksi niihin pisteisiin, joiden tietoihin transaktiossa operoidaan. Piste s 0 koordinoi näiden alitransaktioiden suoritusta. Jos pisteessä s 0 käynnistetty hajautettu transaktio T operoi pisteissä s 0,s 1,...,s n säilytettäviin tietoihin, T pilkotaan alitransaktioiksi T 0,T 1,...,T n, missä T i on pisteen s i transaktio, i = 0,1,...,n. Sovellus aloittaa transaktion suorittamalla begin transaction()- operaation, joka asettaa transaktion alkurajan (initial transaction boundary). Sovellus asettaa transaktion loppurajan (final transaction boundary) eli ilmoittaa transaktion T päättymisestä suorittamalla joko operaation commit() (sitoutuminen) tai rollback() (keskeytys ja peruutus). 65

6 Oletetaan, että integroidun hajautetun tietokannan relaatio employee(ssn, name, salary, title, location) on ositettu vaakasuorasti location-attribuutin mukaan pisteisiin s 0,s 1,...,s n. Pisteessä s 0 toimiva sovellus käynnistää hajautetun transaktion suorittamalla seuraavan ohjelmakoodin, jonka tarkoituksena on korottaa kaikkien työntekijöiden palkkoja 5 %:lla: begin transaction(); exec sql update employee set salary = salary 1.05; commit(). Koordinaatiopiste s 0 pilkkoo transaktion (n + 1):ksi paikalliseksi transaktioksi, joista kukin kohdistaa operaation exec sql update employee set salary = salary 1.05 paikalliseen palaseensa employee-relaatiosta. Pisteessä s i suoritettava paikallinen transaktio kirjoituslukitsee paikallisen palasensa employee-relaatiosta ja kirjaa paikalliseen lokiinsa monikoiden päivityksistä normaalit toisto- ja peruutuskelpoiset lokikirjaukset. 66

7 Kussakin pisteessä s i ylläpidetään normaaliin tapaan lokia (log) s i :ssä toimivien transaktioiden tai alitransaktioiden s i :n tietoihin kohdistamista päivityksistä. Transaktion T pisteessä s i suorittama etenemisvaiheen päivitysoperaatio (tietoalkion lisäys, poisto tai muutos) o[ x] kirjataan s i :n lokiin tavanomaisella fysiologisella toisto- ja peruutuskelpoisella (redo-undo) kirjauksella n: T, p,i,o[ x],m, missä n on kirjauksen lokijärjestysnumero (log sequence number, LSN), p on sen tietosivun sivutunniste (page identifier), jolle päivitys tehtiin, i on päivitetyn tietoalkion (relaation monikon) sijaintipaikka sivulla p ja m on T :n edellisen (vielä peruuttamatta olevan) etenemisvaiheen päivityksen lokikirjauksen järjestysnumero (Undo-Next-LSN). Päivitysoperaation o[ x] käänteisoperaatio eli peruutusoperaatio (undo action) o 1 [ x ] kirjataan fysiologisella toistokelpoisella (redo-only) kirjauksella n : T, p,i,o 1 [ x ],m, missä operaation argumenteista x on mukana se osa ( x ), joka tarvitaan operaation toistoon. 67

8 Kunkin pisteen s i transaktiotaulussa (transaction table) on s i :n jokaisesta aktiivisesta tai vasta äskettäin sitoutuneesta transaktiosta T transaktiotietue (transaction record), joka sisältää seuraavat tiedot: (1) T :n tunniste. (2) Alitransaktion T tapauksessa sen transaktion T tunniste, jonka alitransaktio T on, sekä T :n koordinoijan tunniste. (3) Pisteen s i koordinoiman hajautetun transaktion T tapauksessa T :n osallisten tunnisteiden lista L. (4) T :n viimeisen (vielä peruuttamatta olevan) päivitysoperaation lokikirjauksen järjestysnumero Undo-Next-LSN. (5) T :n tila (state), joka voi olla etenevä (forward-rolling), peruuntuva (backward-rolling), sitoutumisvalmis (prepared to commit) tai sitoutunut (committed). Sitoutumisvalmis transaktio (prepared-to-commit transaction, prepared transaction) on etenevä transaktio, joka on päässyt onnistuneesti loppuun ja on ilmoittanut koordinoijalle valmiudestaan sitoutua, mutta odottaa koordinoijan päätöstä siitä, pitääkö sitoutua vai keskeytyä. 68

9 ARIES-algoritmia käyttävän pisteen s i päivitettyjen sivujen taulussa (modified-pages table) on jokaisesta s i :n puskurissa olevasta sivusta p tietue, joka sisältää p:n tunnisteen ja LSN-arvon Rec-LSN(p). Arvo Rec-LSN(p) ilmoittaa (enemmän tai vähemmän konservatiivisesti), mistä LSN-arvosta lähtien lokissa voi olla sivun p päivityksiä, jotka eivät näy p:n levyversiossa. Piste s i hallitsee siellä suorituksessa olevien paikallisten transaktioiden ja hajautettujen transaktioiden alitransaktioiden samanaikaisuutta. Mikäli samanaikaisuuden hallinta perustuu lukitukseen, on s i :ssä lukkotaulu (lock table), joka sisältää s i :n transaktioiden s i :n tietoalkioihin varaamat lukot. 69

10 Hajautettujen transaktioiden hallintamekanismin täytyy taata hajautetun transaktion globaali atomisuus (global atomicity): Hajautetun transaktion T aliransaktioiden T 0,T 1,...,T n suorituksen koordinoinnin tulee johtaa joko kaikkien alitransaktioiden sitoutumiseen tai sitten kaikkien alitransaktioiden keskeytymiseen ja peruuntumiseen. Esim. edellisessä esimerkissä palkankorotuksen on jäätävä voimaan kaikissa pisteissä tai ei yhdessäkään pisteessä. Oletamme, että jokaisen pisteen transaktionhallitsin pystyy normaaliin tapaan takaamaan paikallisten transaktioidensa keskinäisen eristyvyyden sekä havaitsemaan (tai estämään) paikallisten transaktioiden varaamista lukoista johtuvat paikalliset lukkiumat. Hajautetun tietokannan transaktioiden hallinnassa täytyy vastaavasti pystyä takaamaan hajautettujen transaktioiden keskinäinen eristyvyys, globaali eristyvyys (global isolation), halutulla tasolla, tiukimmillaan globaali sarjallistuvuus (global serializability). Samoin täytyy pystyä havaitsemaan (tai estämään) hajautettujen transaktioiden alitransaktioiden eri pisteissä varaamista lukoista johtuvat hajautetut lukkiumat (distributed deadlock). 70

11 Atominen sitoutuminen Globaalin atomisuuden takaamiseksi hajautetun transaktion voidaan sallia sitoutuvan vain jos kaikki sen alitransaktiot sitoutuvat. Vaikka alitransaktio olisi onnistuneesti suorittanut kaikki sille osoitetut tietokantaoperaatiot ja olisi omasta puolestaan valmis sitoutumaan, se ei voi yksipuolisesti päättää tehdä niin, koska saman hajautetun transaktion jokin toinen alitransaktio saattaa keskeytyä tai on jo keskeytynyt. Jos hajautetun transaktion jokin alitransaktio keskeytyy, koko hajautetun transaktion pitää keskeytyä. Kun alitransaktio on päässyt onnistuneesti loppuun, sen täytyy siis odottaa saman transaktion kaikkien muidenkin alitransaktioiden onnistunutta päättymistä ennen kuin se voi sitoutua. Hajautetun transaktion koordinoija suorittaa atomisen sitoutumiskäytännön (atomic commit protocol) globaalin atomisuuden takaamiseksi. 71

12 Kun sovellusohjelma haluaa aloittaa pisteessä s 0 uuden transaktion, se ilmoittaa siitä pisteen transaktionhallitsimelle eli transaktion koordinoijalle suorittamalla begin transaction()-operaation. Koordinoija määrää uuden transaktiotunnisteen T, varaa transaktiolle transaktiotietueen s 0 :n transaktiotaulusta ja kirjaa lokiinsa T :n aloituskirjauksen T,B. Aina kun sovellus pyytää SQL-lauseen suorittamista jossakin pisteessä s i, pisteen s i tietokannanhallitsimelle välitetään myös transaktiotunniste T. Jos T :tä varten ei s i :ssä ole vielä alitransaktiota aktiivisena, s i :n transaktionhallitsin määrää uuden transaktiotunnisteen T i, vie transaktiotauluunsa tiedon s 0 :n koordinoiman hajautetun transaktion T alitransaktiosta T i, kirjaa lokiinsa T i :n aloituskirjauksen T i,s 0,T,B ja tiedottaa s 0 :lle liittyneensä (join) transaktioon T. Koordinoija lisää osallispisteen s i tunnisteen T :n transaktiotietueeseen. Transaktion päättyessä T :n transaktiotietue sisältää siis listan T :n kaikista osallisista. 72

13 Jos taas T :tä varten on s i :ssä jo alitransaktio, tämä havaitaan s i :n transaktiotaulusta, joten uutta alitransaktiota ei luoda. Transaktion T osallisessa s i suoritettavat tietokantaoperaatiot toteutetaan kaikki alitransaktion T i nimissä, so. transaktion varaamat lukot s i :n tietoalkioihin kirjataan lukkotauluun T i :n nimiin ja transaktion s i :n tietoalkioihin kohdistamat päivitykset kirjataan s i :n lokiin T i :n nimiin. Sovellus ilmoittaa koordinoijalle transaktion T onnistuneesta päättymisestä suorittamalla commit()-operaation. Koordinoija aloittaa nyt atomisen sitoutumiskäytännön suorittamisen. 73

14 Koordinoijan täytyy tutkia, ovatko kaikki osallispisteet valmiita sitouttamaan T :n. Osallispiste s saattaa olla kyvytön sitouttamaan T :tä seuraavista syistä: Pisteen s tietokantakaaviossa saattaa olla eheysrajoite, jonka tarkistaminen on määrätty suoritettavaksi viivästetysti (deferred) eli vasta transaktion pyytäessä sitoutumista. Kun pisteen s alitransaktio pääsee loppuun, s:n tietokannanhallitsin havaitsee eheysrajoitteen rikkoutuneen ja keskeyttää alitransaktion. Pisteessä s saatetaan käyttää optimistista samanaikaisuuden hallintakäytäntöä. Kun alitransaktio pääsee loppuun, validointiproseduurissa (konfliktien tarkistuksessa) havaitaan eristyvyysrikkomus, joten alitransaktio keskeytetään. Pisteen s alitransaktio on keskeytetty (paikallisen) lukkiuman tai (paikallisen) eristyvyysrikkomuksen vuoksi. Piste s on saattanut romahtaa ja on sen vuoksi kykenemätön vastaamaan koordinoijan lähettämiin viesteihin. Pisteiden väliset tietoliikenneyhteydet ovat saattaneet joutua epäkuntoon, niin etteivät viestit kulje koordinaatiopisteen ja pisteen s välillä. 74

15 Kaksivaiheinen sitoutumiskäytäntö Eniten käytetty atominen sitoutumiskäytäntö on kaksivaiheinen sitoutumiskäytäntö (two-phase commit protocol, 2PC) eri muunnelmineen, joista esitetään keskeytysoletukseen (presumed abort) perustuva. Käytännön kaksi vaihetta ovat äänestys- ja päätösvaihe. Kun transaktio T pyytää sitoutumista, koordinoija aloittaa sitoutumiskäytännön ensimmäisen eli äänestysvaiheen (voting phase): 1. Koordinoija kirjaa lokiinsa valmiuskirjauksen (prepared log record) T,L,P, missä T on transaktion tunniste ja L on T :n kaikkien osallisten tunnisteiden lista (saatu T :n transaktiotietueesta). Operaationimeke P tarkoittaa sitoutumiseen valmistautumista (prepare-tocommit action). 2. Koordinoija pakottaa lokinsa levylle. 3. Koordinoija lähettää T :n kaikille osallisille s i sitoutumiseen valmistautumisviestin (prepare message) prepare(t, L). Viestin tarkoituksena on selvittää, onko T :n osallinen s i halukas sitouttamaan T :n s i :ssä toimivan alitransaktion T i, ja jos näin on, pyytää s i :tä valmistautumaan sitoutumiseen. 75

16 Valmistautumisviestin prepare(t, L) saatuaan T :n osallinen s i tallentaa L:n alitransaktion T i transaktiotietueeseen. Jos s i on halukas sitouttamaan T i :n, s i kirjaa lokiinsa valmiuskirjauksen T i,l,p ja pakottaa lokin levylle. Valmiuskirjauksen tehneen osallisen s i (tai alitransaktion T i ) sanotaan olevan valmiustilassa (prepared state) eli valmis sitoutumaan (prepared to commit) ja se voi vastata valmistautumisviestiin äänestysviestillä (vote message). Osallinen s i lähettää äänestysviestissä valmis-äänen (ready vote) vote(t, ready), jos s i on halukas sitouttamaan T i :n, ja keskeytys-äänen (abort vote) vote(t, abort), jos s i on jo keskeyttänyt alitransaktion T i tai on kyvytön sitouttamaan sitä jostain edellä kerrotusta syystä. Kun osallinen on antanut valmis-äänen, se ei voi enää muuttaa mieltään. Koordinoija näet käyttää tuota ääntä sen päättämiseen, pitääkö koko transaktio T sitouttaa vai ei. Äänestämisen jälkeen pisteen s i sitoutumisvalmis alitransaktio T i ei voi tehdä muuta kuin odottaa koordinoijan päätöstä, ja odotusaikana se ei voi vapauttaa lukkojaan eikä s i :n paikallinen transaktionhallitsin myöskään voi keskeyttää sitä. 76

17 Jos osallinen s i on antanut keskeytys-äänen, se keskeyttää ja peruuttaa alitransaktion T i paikallisen lokin perusteella, ellei ole tehnyt sitä jo aiemmin: 1. Pisteen s i lokiin kirjataan T i :n keskeytyskirjaus T i,a. 2. Suoritetaan T i :n tekemien päivitysten peruutusoperaatiot (käänteisoperaatiot) ja kirjataan ne s i :n lokiin toistokelpoisilla kirjauksilla. 3. Kirjataan s i :n lokiin T i :n peruutuksen päättämiskirjaus T i,l,c, missä transaktion osallisten tunnisteiden lista L on mukana, jos se on saatavilla (keskeytys tapahtuu valmistautumisviestin saamisen jälkeen). 4. Pakotetaan s i :n loki levylle. 5. Vapautetaan T i :n varaamat lukot. 6. Poistetaan T i :n tiedot s i :n transaktiotaulusta. Sitoutumiskäytäntö on T i :n osalta nyt päätöksessä. 77

18 Sitoutumiskäytännön toisessa vaiheessa eli päätösvaiheessa (decision phase) koordinoija odottaa kunkin osallisen vastausta, vastaanottaa osallisen antaman äänen ja kirjaa äänen T :n transaktiotietueeseen. Kun kaikki äänet on saatu tai äänestyksen määräaika on umpeutunut, koordinoija tekee päätöksen. Jos kaikki osalliset ovat määräajassa antaneet valmis-äänen, koordinoija päättää sitouttaa T :n. Jos taas jokin osallinen on antanut keskeytys-äänen tai ei ole äänestänyt määräajassa, koordinoija päättää keskeyttää ja peruuttaa T :n. 78

19 Transaktion T sitouttaminen sen koordinaatiopisteessä s 0 : 1. Koordinaatiopisteen s 0 lokiin kirjataan T :n sitoutumiskirjaus T,L,C, missä L on T :n osallisten tunnisteiden lista. 2. Pakotetaan s 0 :n loki levylle. 3. Merkitään T transaktiotauluun sitoutuneeksi ja vapautetaan T :n s 0 :ssa varaamat lukot. 4. Lähetetään T :n jokaiselle osalliselle s i sitoutumisviestillä (commit message) commit(t ) käsky sitouttaa T :n s i :ssä toimiva alitransaktio. 5. Kun kaikki osalliset ovat lähettäneet kuittauksen sitoutumisesta, s 0 :n lokiin kirjataan sitoutumiskäytännön päätöskirjaus (completion record, end record) T, E (pakottamatta lokia levylle) ja poistetaan T :n tiedot s 0 :n transaktiotaulusta. 79

20 Sitoutumisviestin saatuaan osallinen s i sitouttaa T i :n: 1. Pisteen s i lokiin kirjataan T i :n sitoutumiskirjaus T i,l,c, missä L on transaktion osallisten tunnisteiden lista. 2. Pakotetaan s i :n loki levylle. 3. Vapautetaan T i :n s i :ssa varaamat lukot. 4. Poistetaan T i :n tiedot s i :n transaktiotaulusta. 5. Lähetetään koordinoijalle kuittausviesti (acknowledgement, done message) done(t ). 80

21 Transaktion T keskeyttäminen sen koordinaatiopisteessä s 0 : 1. Lähetetään keskeytysviestillä (abort message) abort(t ) jokaiselle valmis-äänen antaneelle T :n osalliselle s i käsky keskeyttää T :n s i :ssä toimiva alitransaktio. 2. Kirjataan s 0 :n lokiin T :n keskeytyskirjaus T,A. 3. Suoritetaan T :n s 0 :ssa suorittamien päivitysten peruutusoperaatiot (käänteisoperaatiot) ja kirjataan ne koordinaatiopisteen lokiin toistokelpoisin kirjauksin. 4. Kirjataan s 0 :n lokiin T :n peruutuksen päättämiskirjaus T,L,C. 5. Pakotetaan s 0 :n loki levylle. 6. Vapautetaan T :n s 0 :ssa varaamat lukot. 7. Poistetaan T :n transaktiotietue koordinaatiopisteen s 0 transaktiotaulusta. Keskeytysviestin saanut osallinen s i keskeyttää ja peruuttaa T i kuten tapauksessa, jossa T i keskeytyy ja peruuntuu s i :n omasta päätöksestä. 81

22 Kun T :n koordinoija päättää sitouttaa T :n, se pakottaa T :n sitoutumiskirjauksen koordinaatiopisteen lokilevylle ennen sitoutumisviestien lähettämistä T :n osallisille. Jos näet sitoutumisviesti lähetettäisiin osalliselle ennen sitoutumiskirjauksen vientiä levylle, koordinoijan romahdus viestin lähetyksen jälkeen mutta ennen sitoutumiskirjauksen levyllevientiä johtaisi tietokannan epäeheään tilaan: T keskeytyy koordinaatiopisteessä, mutta sitoutuu osallispisteessä. Jos taas T :n koordinoija päättää keskeyttää T :n, keskeytysviestit voidaan lähettää osallisille ennen kuin koordinaatiopisteen lokiin viedään mitään tai lokia pakotetaan levylle. Tämä liittyy sitoutumiskäytännön keskeytysoletus-ominaisuuteen. 82

23 Esimerkki. Oletetaan, että sovellus sisältää kaksi SQL-lausetta, jotka kumpikin kohdistuvat kokonaisuudessaan pisteen s i tietokantaan. Sovellus: Koordinoija s 0 : Osallinen s i : begin transaction() uusi transaktio T ; T,B lokiin T :n SQL-lause s i :lle uusi transaktio T i ; T i,s 0,T,B lokiin; SQL-lauseen suoritus T i :n nimissä (onnistui) T :n SQL-lause s i :lle SQL-lauseen suoritus T i :n nimissä (onnistui) commit() T,{s 0,s i },P lokiin; lokin pakotus levylle; prepare(t,{s 0,s i }) s i :lle T i,{s 0,s i },P lokiin; lokin pakotus levylle; vote(t,ready) s 0 :lle T,{s 0,s i },C lokiin; lokin pakotus levylle; commit(t) s i :lle T i,{s 0,s i },C lokiin; lokin pakotus levylle; done(t ) s 0 :lle T,E lokiin; 83

24 Edellä oletettiin, että sovellus pyysi sitoutumista suorittamalla commit()-operaation. Oletetaan nyt, että sovellus pyytääkin transaktion keskeyttämistä ja peruuttamista suorittamalla rollback()-operaation. Silloin transaktion koordinoija lähettää transaktion kaikille osallisille keskeytysviestin ja keskeyttää ja peruuttaa transaktion koordinaatiopisteessä kuten siinä tapauksessa, että koordinoija olisi saanut valmistautumisviestiinsä vastauksena keskeytys-äänen joltakin osalliselta. Osalliset keskeyttävät ja peruuttavat asianomaisen alitransaktionsa. Erona aiempaan on, ettei koordinaatiopisteen ja osallisten lokeihin viedä valmiuskirjausta ja että kussakin pisteessä loki pakotetaan levylle vain kerran. 84

25 Sovellus: Koordinoija s 0 : Osallinen s i : begin transaction() uusi transaktio T ; T,B lokiin T :n SQL-lause s i :lle uusi transaktio T i ; T i,s 0,T,B lokiin; SQL-lauseen suoritus T i :n nimissä (onnistui) T :n SQL-lause s i :lle SQL-lauseen suoritus T i :n nimissä (epäonnistui) rollback() T,{s 0,s i },A lokiin; abort(t,{s 0,s i }) s i :lle; (päivitysten käänteis- T i,{s 0,s i },A lokiin; operaatiot, jos s 0 :ssa päivitysten käänteisolisi T :n päivityksiä) operaatiot; T,{s 0,s i },C lokiin; T i,{s 0,s i },C lokiin; lokin pakotus levylle lokin pakotus levylle 85

26 Usean alueen ylittävä atominen sitoutuminen Edellä olemme olettaneet, että hajautetun transaktion koordinoinnista huolehtii yksi transaktionhallitsin. Todellisuudessa transaktionhallitsimen vastuu rajoittuu usein yhteen alueeseen (domain), joka tyypillisesti sisältää kaikki transaktionhallitsimen toimintapisteen tietokantojen (tai yleisemmin resurssien) hallitsimet. Kun alueen D 1 sovellusohjelma kutsuu toisen alueen D 2 resurssinhallitsinta, kummankin alueen transaktionhallitsimia informoidaan. Alueen D 2 transaktionhallitsinta pidetään D 1 :n transaktionhallitsimen lapsena. Alueen resurssinhallitsimia pidetään puolestaan alueen transaktionhallitsimen lapsina. Yleisessä tapauksessa sovelluksen kutsumat transaktionhallitsimet ja resurssinhallitsimet muodostavat puun, jonka juurena on sovelluksen sisältävän alueen transaktionhallitsin ja lehtisolmuina transaktion osallistujien resurssinhallitsimet. Puun sisäsolmu esittää transaktionhallitsinta, joka koordinoi alueensa resurssinhallitsimia ja toimii osallistujana suhteessa vanhempaansa. 86

27 Atomisen sitoutumiskäytännön viestit kulkevat pitkin transaktionhallitsimista ja resurssinhallitsimista koostuvan puun särmiä. Oletetaan, että alueen D 1 transaktio operoi paikallisten resurssinhallitsimien RM a ja RM b hallitsemiin resursseihin (tietokantoihin), alueen D 2 resurssinhallitsimien RM c ja RM d hallitsemiin resursseihin sekä alueen D 3 resurssinhallitsimen RM e hallitsemaan resurssiin. Merkitään D i :n transaktionhallitsinta TM i :llä. Silloin TM 1 :n lapsia ovat RM a, RM b, TM 2 ja TM 3, TM 2 :n lapsia ovat RM c ja RM d, ja TM 3 :n lapsi on RM e. TM 1 RM a RM b TM 1 TM 2 RM c RM d RM e 87

28 Sovellus lähettää commit()-lauseella sitoutumispyynnön TM 1 :lle, joka aloittaa kaksivaiheisen sitoutumiskäytännön äänestysvaiheen lähettämällä sitoutumiseen valmistautumisviestit lapsilleen RM a, RM b, TM 2 ja TM 3. Kun TM 2 ja TM 3 saavat valmistautumisviestit, ne aloittavat puolestaan sitoutumiskäytännön äänestysvaiheen omien lastensa kesken, so. lähettämällä lapsilleen RM c, RM d ja RM e valmistautumisviestit. Lapsiltaan vastaanottamiensa äänten perusteella TM 2 vastaa TM 1 :lle valmis-äänellä, jos molemmat lapset antoivat valmis-äänen, ja keskeytys-äänellä muutoin. Samoin menettelee TM 3 omalta lapseltaan vastaanottamansa äänen perusteella. Kun TM 1 on vastaanottanut äänet lapsiltaan RM a, RM b, TM 2 ja TM 3, se aloittaa sitoutumiskäytännön päätösvaiheen. Jos TM 1 :n vastaanottamat äänet olivat kaikki valmis-ääniä, TM 1 lähettää sitoutumisviestin lapsilleen RM a, RM b, TM 2 ja TM 3. Sitoutumisviestin saatuaan TM 2 lähettää puolestaan sitoutumisviestit lapsilleen RM c ja RM d ja TM 3 samoin lapselleen RM d. 88

29 Transaktionhallitsin TM 2 toimii siis alueensa resurssinhallitsimien RM c ja RM d edustajana suhteessa vanhempaansa eli transaktionhallitsimeen TM 1 ja on siis hajautetun transaktion käsittelyssä osallisen asemassa suhteessa koordinoijaan TM 1. Samoin TM 3 on RM e :n edustaja ja osallinen suhteessa TM 1 :een. TM 1 :lle pitää siis tiedottaa, että TM 2 ja TM 3 ovat sen koordinoiman transaktion osallisia, TM 2 :lle tiedottaa sen kaksoisroolista toisaalta suhteessa RM c :hen ja RM d :hen sekä toisaalta suhteessa TM 1 :een, ja TM 3 :lle tiedottaa sen kaksoisroolista suhteessa RM e :hen sekä TM 1 :een. Hajautettujen transaktioiden X/Open-käsittelymallissa mainitun informaation levittämistehtävä on asetettu erityiselle palvelimelle (communication-resource manager). 89

30 Häiriöiden käsittely kaksivaiheisessa sitoutumiskäytännössä Edellä esitetty kaksivaiheisen sitoutumiskäytännön kuvaus on epätäydellinen sikäli, ettei siinä ole selostettu, miten toimitaan tietyissä häiriö- tai poikkeustilanteissa. Aikakatkaisukäytäntö (timeout protocol) tarvitaan siltä varalta, ettei piste joudu odottamaan viestiä ikuisesti esim. sen vuoksi, että viestin lähettävä piste on romahtanut, viesti menetetään tai viestin toimitusjärjestelmä on hyvin hidas. Häiriöstä elvytyskäytäntö (restart-recovery protocol) tarvitaan pisteen elvyttämiseksi järjestelmäromahduksesta. Jos piste ei pysty päättämään sitoutumiskäytäntöä ennen kuin häiriö korjataan, sanomme pisteen olevan estynyt (blocked). Kun piste estyy, sitoutumis- tai keskeytyspäätös viivästyy määräämättömäksi ajaksi. Viivästyminen on erityisen epäsuotavaa osallispisteessä, joka käyttää lukitusperustaista samanaikaisuuden hallintaa, koska alitransaktion lukitsemat tietoalkiot pysyvät muiden transaktioiden ulottumattomissa. 90

31 Tämän vuoksi on tärkeää ymmärtää ne tilanteet, joissa kaksivaiheisen sitoutumisen tuloksena voi olla osallispisteen estyminen. Seuraavassa tarkastellaan häiriötilanteita ikään kuin sitoutumiskäytännön puurakenne olisi kaksitasoinen; samat päätökset tehdään vanhemman ja lapsen välillä myös monitasoisen puun tapauksessa aina kahdella vierekkäisellä puun tasolla. (1) Osallisen aikakatkaisu sitoutumiseen valmistautumisviestiä odottaessa. Osallinen voi olla varma, ettei mitään päätöstä sitoutumisesta tai keskeytyksestä ole vielä tehty, koska kerran osallinen ei ole vielä päässyt äänestämään siitä. Osallinen voi sen vuoksi yksipuolisella päätöksellään keskeyttää transaktion. Jos valmistautumisviesti sitten kuitenkin saapuu, osallinen voi vastata yksikertaisesti antamalla keskeytys-äänen. (2) Koordinoijan aikakatkaisu äänestysviestiä odottaessa. Tämä tilanne muistuttaa edellistä. Koordinoija voi yksipuolisesti päättää keskeyttää transaktion ja lähettää keskeytysviestin kaikille osallisille. On mahdollista, että kaikki osalliset ovat lähettäneet valmis-äänen, mutta yksi näistä ei ole ehtinyt perille ennen aikakatkaisua. Tässä tapauksessa tulee siis keskeytetyksi transaktio, vaikka kaikki sen osallispisteet ovat toiminnassa ja alitransaktiot päässeet onnistuneesti loppuun. 91

32 (3) Osallisen aikakatkaisu sitoutumis- tai keskeytysviestiä odottaessa. Tämä tilanne on edellä mainittuja vakavampi, koska osallinen on antanut valmis-äänen ja on nyt valmiustilassa. Osallinen on estynyt, kunnes se voi saada selvyyden, onko koordinoija tehnyt päätöksen ja mikä päätös on. Osallinen ei voi yksipuolisesti sitouttaa eikä keskeyttää transaktiota, koska koordinoija on saattanut tehdä vastakkaisen päätöksen. Osallinen voi yrittää kommunikoida koordinoijan kanssa ja tiedustella transaktion tilaa. Jos tämä ei ole mahdollista (esim. koordinaaatiopisteen romahduksen tai verkon osittumisen vuoksi), osallinen voi yrittää tiedustella päätöstä muilta pisteiltä, jotka mahdollisesti ovat saman hajautetun transaktion osallisia. 92

33 Tällaisen tilanteen varalta transaktion koordinoija on lähettänyt valmistautumisviestissä listan transaktion kaikista osallisista. Tämän listan osallinen tallentaa valmistautumisoperaation lokikirjaukseen. Jos osallinen löytää saman transaktion toisen osallisen, joka ei vielä ole äänestänyt, molemmat voivat päättää keskeyttää transaktion. Tämä on turvallista, koska koordinoija ei ole voinut päättää sitoutumisesta: yhdeltä osallistujaltahan on ääni vielä saamatta. Jos taas osallinen löytää saman transaktion toisen osallisen, jossa transaktio on sitoutunut tai keskeytynyt, osallinen tekee saman päätöksen. Pahimmassa tapauksessa kaikki osallisen löytämät muut osalliset ovat myös valmiustilassa, jolloin osallinenkin jää estyneeksi, kunnes se saa yhteyden koordinoijaan tai johonkin päätöksen toteuttaneeseen osalliseen. 93

34 Pisteen elvytys häiriöstä Piste s i elvytetään häiriöstä suorittamalla ARIES-algoritmin analyysi-, toisto- ja peruutusvaiheet. Analyysivaiheessa (analysis pass) s i :n lokia selataan viimeksi otetun tarkistuspisteen aloituskirjauksesta lähtien lokin loppuun asti ja rekonstruoidaan transaktiotaulu sekä päivitettyjen sivujen taulu. Selauksen aikana suoritetaan samat toimenpiteet kuin keskitetyn tietokannan tapauksessa, mutta aktiiviset transaktiot eritellään nyt viiteen ryhmään: (1) Pisteen s i koordinoimat etenevät transaktiot, joilla ei ole lokissa valmiuskirjausta. (2) Muiden pisteiden s j koordinoimien transaktioiden etenevät alitransaktiot, joilla ei ole lokissa valmiuskirjausta. (3) Pisteen s i koordinoimat sitoutumisvalmiit transaktiot, so. etenevät transaktiot, joilla on lokissa valmiuskirjaus. (4) Muiden pisteiden koordinoimien transaktioiden sitoutumisvalmiit alitransaktiot, so. etenevät alitransaktiot, joilla on lokissa valmiuskirjaus. (5) Keskeytyneet transaktiot. Lisäksi transaktiotauluun jätetään: (6) Pisteen s i koordinoimat sitoutuneet transaktiot T, joilta puuttuu lokista sitoutumiskäytännön päätöskirjaus T,E. 94

35 ARIES-algoritmin toistovaihe (redo pass) suoritetaan s i :ssä kuten keskitetyssä tietokannassa: Lokia selataan LSN-arvosta Redo-LSN = min{rec-lsn(p) p on päivitettyjen sivujen taulussa} lokin loppuun. Aina kun tavataan sivulle p kohdistuneen päivityksen kirjaus, verrataan kirjauksen LSN:ää n päivitettyjen sivujen taulun Rec-LSN(p)- arvoon. Mikäli n Rec-LSN(p), sivu p kirjoitussalvataan ja tutkitaan Page- LSN(p):tä. Mikäli n > Page-LSN(p), päivitys puuttuu sivulta p, joten se toteutetaan lokikirjauksen avulla sivulle p ja Page-LSN(p) edistetään arvoon n. 95

36 ARIES-algoritmin peruutusvaihe (undo pass) suoritetaan s i :ssä seuraavasti: Ryhmien 1, 2 ja 3 transaktiot keskeytetään ja peruutetaan. Ryhmien 1 ja 2 transaktiot eivät näet ole valmiustilassa, joten s i voi keskeyttää ne yksipuolisella päätöksellään. Ryhmien 1 ja 3 transaktioiden sitoutumisesta päätösvalta on s i :llä. Ryhmän 5 transaktioiden peruutus päätetään. Ryhmän 4 transaktioiden (eli muiden pisteiden koordinoimien sitoutumisvalmiiden transaktioiden) kohtalo on epäselvä (in-doubt transaction): transaktio voi olla sitoutunut tai keskeytynyt muissa pisteissä. Näille transaktioille hankitaan lokin perusteella lukot transaktion käsittelemiin tietoalkioihin. Jotta lukkojen hankinta olisi mahdollista, päivityksen lokikirjaukseen on sisällyttävä päivityksen suojaamiseksi tarvittavien lukkojen nimet. Esimerkiksi avainvälilukituskäytännössä avainarvolla x varustetun monikon poisto-operaatio suojataan pitkäkestoisella kirjoituslukolla avainarvon x seuraajaan y, josta määrätty lukon nimi (hajautusarvo) täytyy siis sisällyttää lokikirjaukseen. 96

37 Peruutusvaiheen käynnistyttyä piste s i tiedottaa kunkin ryhmään 2 kuuluvan transaktion koordinoijalle transaktion keskeytymisestä. Koordinoija on analyysivaiheessa saatu selville transaktion aloituskirjauksesta ja viety transaktiotietueeseen rekonstruoidussa transaktiotaulussa. Kunkin ryhmään 3 kuuluvan transaktion keskeytymisestä s i tiedottaa transaktion kaikille osallisille. Osalliset on analyysivaiheessa saatu selville valmiuskirjauksesta ja viety transaktiotietueeseen. Ryhmään 1 kuuluvien transaktioiden osallisia ei saada selville s i :n lokista, koska valmiuskirjausta ei siellä ole. Pisteen s i koordinoiman transaktion transaktiotietue kyllä sisälsi osallisten listan, mutta transaktiotauluhan menetettiin häiriön yhteydessä. Mutta tällaisen transaktion mahdolliset muut osalliset ovat kyllästyneet odottamaan valmistautumisviestiä koordinoijalta ja keskeyttäneet ja peruuttaneet alitransaktionsa yksipuolisella päätöksellään. 97

38 Kunkin ryhmään 4 kuuluvan alitransaktion T i kohtaloa s i :n täytyy tiedustella transaktion T koordinoijalta s 0, missä T i on T :n alitransaktio. Transaktio T ja sen koordinoija s 0 on analyysivaiheessa saatu selville T i :n aloituskirjauksesta. Tiedustelu voidaan osoittaa T :n kaikille muillekin osallisille, sillä T i :n valmiuskirjaus s i :n lokissa sisältää listan kaikista osallisista. Jos saadaan tieto, että T on sitoutunut, viedään s i :n lokiin T i :n sitoutumiskirjaus, pakotetaan loki levylle ja vapautetaan T i :lle s i :ssä hankitut lukot. Jos taas saadaan tieto, että T on keskeytynyt, viedään s i :n lokiin T i :n keskeytyskirjaus, suoritetaan T i :n peruutusvaiheen operaatiot T i :lle s i :ssä hankittujen lukkojen turvin ja päätetään peruutus T i :n peruutuksen päättämiskirjauksella, lokin levylle pakotuksella ja lukkojen vapautuksella. 98

39 Tarkastellaan vielä tapaa, jolla transaktion T koordinoija s 0 vastaa T :n osallisen s i tiedusteluun T :n kohtalosta, kun häiriöstä elpyvä s i on havainnut T :n s i :ssä toimineen alitransaktion T i sitoutumisvalmiiksi. Koordinoija pystyy aina vastaamaan tiedusteluun lokiaan tutkimatta: Mikäli koordinoijan transaktiotaulu sisältää yhä T :n transaktiotietueen, koordinoija voi sen perusteella vastata tiedusteluun; muutoin koordinoija vastaa T :n olevan keskeytynyt. Tätä esittämämme kaksivaiheisen sitoutumiskäytännön useimmiten sovelletun muunnelman piirrettä kutsutaan nimellä keskeytysoletus (presumed abort). 99

40 Keskeytysoletus toimii, koska T :n transaktiotietueen puuttuminen koordinoijan transaktiotaulusta merkitsee, että jokin seuraavista pätee: (1) Koordinoija on sitouttanut T :n, saanut kuittausviestit kaikilta osallisilta, kirjannut T :n päätöskirjauksen T, E ja poistanut T :n transaktiotietueen. (2) Koordinoija on romahtanut ja löytänyt elvytyksen analyysivaiheessa lokistaan T :n päätöskirjauksen, joten T :n transaktiotietue on jätetty pois rekonstruoidusta transaktiotaulusta. (3) Koordinoija on keskeyttänyt T :n ja poistanut T :n transaktiotietueen. (4) Koordinoija on romahtanut ja elvytyksen analyysivaiheessa ei ole löytynyt mitään T :n kirjauksia lokista. Koska osallinen s i on yhä valmiustilassa (eikä ole sen vuoksi voinut lähettää kuittausta sitoutumisesta), tapaukset (1) ja (2) eivät ole mahdollisia. Sama päättely pätee tilanteeseen, jossa valmiustilassa olevan alitransaktion suorituspiste on kyllästynyt odottamaan transaktion koordinoijan päätöstä ja tiedustelee sen vuoksi transaktion kohtaloa koordinoijalta. 100

41 Hajautettujen transaktioiden X/Open-käsittelymalli Kaksivaiheinen sitoutumiskäytäntö sitoo yhteen eri ohjelmistokomponentteja kuten tietokannanhallitsimia ja transaktionhallitsimia, jotka saattavat olla peräisin eri ohjelmistotoimittajilta. Jotta ohjelmistokomponentit voisivat toimia tehokkaasti keskenään ja jotta sovellusohjelmat voisivat kommunikoida niiden kanssa, niiden pitää sopia eri komponenttien välisistä liittymistä. Liittymien standardointi edesauttaa eri ohjelmistotoimittajien tuotteiden yhteentoimivuutta. X/Open-standardin hajautettujen transaktioiden käsittelymalli toteuttaa yhteentoimivuuden määrittelemällä joukon funktiokutsuja sovellusten, transaktionhallitsimien ja resurssinhallitsimien välisten viestien vaihtoa varten sekä määrittämällä näiden viestien muodon. 101

42 X/Open-standardissa sovelluksen funktiokutsujen tx-liittymä sisältää mm. seuraavat transaktionhallitsimen kutsut: tx begin(): sovellus aloittaa uuden transaktion; transaktionhallitsin luo uuden transaktiotunnisteen ja palauttaa sen sovellukselle. tx commit(): sovellus pyytää transaktion sitoutumista; transaktionhallitsin koordinoi sitoutumiskäytännön suorittamisen; kutsu palauttaa joko arvon committed (kun transaktio sitoutui) tai arvon aborted (kun transaktio keskeytyi). tx rollback(): sovellus pyytää transaktion keskeyttämistä ja peruuttamista; transaktionhallitsin koordinoi transaktion keskeyttämisen ja peruuttamisen. 102

43 X/Openissa resurssinhallitsimen (tietokannanhallitsimen) ja transaktionhallitsimen välisten funktiokutsujen xa-liittymä sisältää mm. seuraavat kutsut: xa reg(): resurssinhallitsin ilmoittaa transaktionhallitsimelle liittyneensä transaktioon T, kun resurssinhallitsin on saanut sovellukselta ensimmäisen T :hen liittyvän palvelupyynnön. xa prepare(): transaktionhallitsin lähettää valmistautumisviestin resurssinhallitsimelle; kutsu palauttaa joko arvon ready (kun resurssinhallitsin on valmis sitouttamaan transaktion) tai aborting (kun resurssinhallitsin keskeyttää transaktion). xa commit(): transaktionhallitsin käskee resurssinhallitsinta sitouttamaan transaktion. xa abort(): transaktionhallitsin käskee resurssinhallitsinta keskeyttämään transaktion. 103

44 Hajautettu lukkiuma Hajautetussa tietokannassa voi yksittäisen pisteen transaktioiden keskisten lukkiumien lisäksi esiintyä hajautettuja lukkiumia (distributed deadlock) esimerkiksi seuraavasti. Pisteessä s 1 transaktion T alitransaktio T 1 varaa kirjoituslukon tietoalkioon x 1. varaa kirjoituslukon tie- Pisteessä s 2 transaktion T alitransaktio T 2 toalkioon x 2. Pisteessä s 1 transaktion T alitransaktio T 1 pyytää lukkoa x 1:een ja joutuu odottamaan. Pisteessä s 2 transaktion T alitransaktio T 2 pyytää lukkoa x 2 :een ja joutuu odottamaan. Kumpikaan transaktioista T ja T ei voi edetä: lukkiuma! Kummankaan pisteen alitransaktioiden kesken ei lukkiumaa esiinny. 104

45 Keskitetyn tietokannan lukkiumien esto- ja havaitsemismenetelmät voidaan yleistää hajautettuun tietokantaan. Samoin aikaleimajärjestyksen käyttö (wait-or-die, wound-or-wait). Suoraviivaisin menettely lukkiumien käsittelemiseksi niin keskitetyssä kuin hajautetussakin tietokantajärjestelmässä on aikakatkaisu (timeout): Aina kun pisteen s i transaktio joutuu odottamaan pyytämäänsä lukkoa kauemmin kuin etukäteen asetetun kynnysajan, s i päättelee, että ylipitkään odotusaikaan on syynä lukkiuma (tai jonkin pisteen tai linkin häiriö), ja keskeyttää transaktion yksipuolisella päätöksellään. Tällainen transaktio ei näet voi olla valmiustilassa, koska se kerran ei ole vielä päässyt suorittamaan kaikkia operaatioitaan. 105

46 Todellisten lukkiumien havaitsemiseksi pisteiden täytyy välittää toisilleen tietoa pisteen transaktioiden keskisistä odotuksista. Kun hajautetun transaktion T alitransaktio joutuu pisteessä s i odottamaan hajautetun transaktion T alitransaktiota, s i ilmoittaa T :n koordijoijalle odotussuhteesta T T. T :n koordinoija lähettää puolestaan tiedusteluviestin (probe message) T :n koordinoijalle. Jos T :n koordinoija on saanut ilmoituksen odotussuhteesta, jossa jokin sen koordinoiman transaktion alitransaktioista odottaa jonkin transaktion T alitransaktiota, T :n koordinoija välittää tiedusteluviestin edelleen T :n koordinoijalle. Lukkiuma havaitaan, jos tiedusteluviesti palaa T :n koordinoijalle. 106

47 Globaali sarjallistuvuus Keskitetyssä järjestelmässä transaktioiden samanaikaisuuden hallinnan tavoitteena on tahdistaa transaktioiden tietoalkioihin kohdistamat luku- ja päivityspyynnöt niin, että kukin transaktio tulee ajetuksi sille asetetulla eristyvyystasolla (isolation level), kuten esim. yhdellä neljästä SQL:n eristyvyystasosta (read uncommitted, read committed, repeatable read, serializable). Hajautettu transaktio operoi useampaan tietokantajärjestelmään, joissa samanaikaisuutta saatetaan hallita eri menetelmin ja joissa ei ole tarjolla samoja eristyvyystasoja. Transaktion eristyvyystaso saattaa siten olla huonosti määritelty. Periaatteessa kaikki keskitetyn tietokannan eristyvyyskäsitteet yleistyvät suoraviivaisesti hajautettuun tietokantaan, jossa mitään tietoalkiota ei ole toisinnettu useampaan pisteeseen. Esimerkiksi hajautetun transaktion T alitransaktion T i pisteessä s i tekemä päivitysoperaatio W[x] on likainen kirjoitus (dirty write), jos tietoalkio x on jonkin toisen, vielä aktiivisen transaktion T pisteessä s i toimivan alitransaktion T i päivittämä. Vastaavasti yleistyvät eristyvyysanomaliat likainen luku (dirty read) ja toistokelvoton luku (unrepeatable read). 107

48 Eristyvyysanomalioiden avulla voidaan edelleen määritellä SQL:n eristyvyystasot hajautetuille transaktioille. Korkeinta tasoa kutsutaan globaaliksi sarjallistuvuudeksi (global serializability). Oletetaan, että kukin piste s i hallitsee omiin tietoalkioihinsa kohdistuvien luku- ja päivitysoperaatioiden tahdistuksen ankaralla kaksivaiheisella lukituskäytännöllä, jossa siis s i :ssä toimivat transaktiot suojavat operaationsa pitkäkestoisilla (eli vasta sitoutumisen jälkeen vapautettavilla) lukoilla. Toisin sanoen kukin piste s i takaa omille paikallisille transaktioilleen sekä s i :ssä toimiville hajautettujen transaktioiden alitransaktioille (paikallisen) sarjallistuvuuden. Oletetaan vielä, että hajautettujen transaktioiden sitoutuminen koordinoidaan kaksivaiheisella sitoutumiskäytännöllä. Voidaan näyttää, että silloin jokainen hajautettu transaktio on globaalisti sarjallistuva. 108

49 Tarkastellaan esimerkkiä, jossa kaksi hajautettua transaktiota, T ja T, eivät ole globaalisti sarjallistuvia: Pisteessä s i on T :llä alitransaktio T i ja T :lla alitransaktio T i. Samaan s i :n tietoalkioon x i kohdistuvan konfliktoivan operoinnin vuoksi alitransaktiot sarjallistuvat paikallisesti järjestykseen T i < T i. Pisteessä s j on T :llä alitransaktio T j ja T :lla alitransaktio T j. Samaan s j :n tietoalkioon x j kohdistuvan konfliktoivan operoinnin vuoksi alitransaktiot sarjallistuvat paikallisesti järjestykseen T j < T j. Pisteessä s i alitransaktio T i voi operoida x i :hin vasta kun T i on vapauttanut x i :hin varaamansa lukon. Ankarassa kaksivaihelukinnassa tämä voi tapahtua vasta, kun T i on sitoutunut. Siis T i sitoutuu ennen T i :tä. Pisteessä s j alitransaktio T j voi operoida x j :hin vasta kun T j on vapauttanut x j :hin varaamansa lukon. Ankarassa kaksivaihelukinnassa tämä voi tapahtua vasta, kun T j on sitoutunut. Siis T j sitoutuu ennen T j :tä. Jompikumpi hajautetuista transaktioista T ja T ei siis noudata kaksivaiheista sitoutumiskäytäntöä, koska alitransaktioiden keskinäinen sitoutumisjärjestys on vastakkainen pisteissä s i ja s j. 109

50 Heikommat sitoutumiskäytännöt Käytännössä on tilanteita, joissa atomista sitoutumiskäytäntöä ei voida saattaa päätökseen, jolloin siis globaalia atomisuutta ei voida taata. Transaktion osallispisteessä ei välttämättä ole lainkaan käytössä kaksivaiheista sitoutumiskäytäntöä. Resurssinhallitsin voi olla perinnejärjestelmä (legacy system), jossa ei tunneta transaktion valmiustilaa. Tällöin piste ei pysty osallistumaan sitoutumiskäytäntöön. Transaktion osallispiste saattaa myös välttää osallistumasta sitoutumiskäytäntöön pisteen suorituskyvyn vaarantumisen pelossa: valmiustilassa olevan transaktion varaamat lukot estävät muilta transaktioilta pääsyn lukittuihin tietoalkioihin. Piste ei ehkä myöskään halua menettää itsenäisyyttään. Koska piste ei voi itse määrätä valmiustilan kestoa, se ei enää ole itsenäinen: lukittuihin resursseihin pääsyä valvotaan muualta. 110

51 Osallispiste, joka suostuu osallistumaan kaksivaiheiseen sitoutumiskäytäntöön, usein ratkaisee estymisongelman päättämällä yksipuolisesti sitouttaa tai keskeyttää estyneen alitransaktion vapauttaakseen tämän varaamat lukot. Tällainen päätös voi olla ristiriidassa transaktion koordinoijan päätöksen kanssa ja aiheuttaa siten tietokannan eheyden rikkoutumisen, mikä täytyy myöhemmin korjata. Osallispiste voi myös muista syistä jättää osallistumatta sitoutumiskäytäntöön. Piste saattaa veloittaa maksun alitransaktion suorittamisesta ja vaatia maksun suoritettavaksi alitransaktion päästyä loppuun ja palautettua tuloksen, vaikka koko hajautettu transaktio lopulta keskeytyisikin. Pisteen tietokannan valvojan vaatimuksesta alitransaktion pitääkin sitoutua heti tuloksen palautettuaan, odottamatta hajautetun transaktion sitoutumista tai keskeytymistä. 111

52 Sovelluksen ohjelmointikielessä ei välttämättä ole kaksivaiheisen sitoutumisen toteuttavia funktioita. Tietokannan kyselykielellä saattaa olla mahdollista yhdistää transaktio useampaan tietokantapalvelimeen, mutta kaksivaiheista sitoutumista ei ole toteutettu. Kun transaktio pääsee loppuun, se lähettää erilliset (toisistaan riippumattomat) sitoutumispyynnöt kullekin palvelimelle, jotka sitten sitouttavat tai keskeyttävät alitransaktionsa toisistaan riippumatta. Esimerkiksi useimmat sulautetut SQL-liittymät eivät tarjoa kaksivaiheista sitoutumista. JDBC (Java DataBase Connectivity) ja ODBC (Open DataBase Connectivity) kumpikin sisältävät sovellusohjelmointiliittymät, jotka toteuttavat kaksivaiheisen sitoutumisen: JTS (Java Transaction Service) ja MTS (Microsoft Transaction Server). 112

53 Hajautettu tietokantajärjestelmä ei mahdollisesti lainkaan tarjoa kaksivaiheista sitoutumista. Kaksivaiheisen sitoutumiskäytännön toteutus edellyttää, että järjestelmän väliohjelmisto sisältää transaktioiden koordinoijan (transaktionhallitsimen) ja että sovelluksella, koordinoijalla ja tietokantapalvelimilla on yhteisymmärrys sitoutumiskäytännön viestien vaihtomekanismista ja viestien muodosta. X/Open-standardi määrittää ohjelmointiliittymät tähän tarkoitukseen (tx- ja xa-liittymät). Kaikille sovelluksille sellaista järjestelmätukea ei ole saatavilla, jolloin myöskään kaksivaiheista sitoutumista ei voi toteuttaa. 113

54 Kun transaktion osallispiste ei osallistu kaksivaiheiseen (tai muuhun atomiseen) sitoutumiskäytäntöön, sovellussuunnittelijan on huolellisesti arvioitava, miten tästä johtuva mahdollinen globaalin atomisuuden tai eristyvyyden rikkoutuminen vaikuttaa tietokannan eheyteen ja sitä kautta sovelluksen perimmäiseen hyödyllisyyteen asiakkailleen. Kun kaksivaiheista sitoutumiskäytäntöä ei ole käytettävissä, joudutaan turvautumaan johonkin heikompaan sitoutumiskäytäntöön. Oletuskäytäntönä mm. JDBC:ssä ja ODBC:ssä on lausetason automaattinen sitoutumiskäytäntö (autocommit protocol), jossa sitoutumisoperaatio suoritetaan automaattisesti jokaisen SQL-lauseen suorituksen jälkeen. 114

55 Nollavaiheisessa sitoutumiskäytännössä (zero-phase commit protocol) hajautetun transaktion eri osallispisteiden alitransaktiot sitoutuvat toisistaan riippumatta heti päästyään onnistuneesti loppuun (ja peruuntuvat muutoin). Transaktion jotkin alitransaktiot siis sitoutuvat ja jotkin peruuntuvat. Yksivaiheisessa sitoutumiskäytännössä (one-phase commit protocol) sovellus ei lähetä mitään sitoutumis- tai keskeytysviestejä hajautetun transaktion eri osallispistelle, ennen kuin nämä ovat ilmoittaneet alitransaktion pääsystä onnistuneesti loppuun tai keskeytymisestä. Jos kaikki alitransaktiot pääsevät loppuun onnistuneesti, lähetetään sitoutumiskäsky kaikille osallisille, muutoin keskeytyskäsky kaikille osallisille. Tässä käytännössä jotkin alitransaktiot saattavat sitoutua ja jotkin keskeytyä. Sulautetulla SQL:llä toteutettu hajautettu transaktio saattaa toimia tällä tavoin. 115

56 Mikään mainituista heikommista sitoutumiskäytännöistä ei takaa globaalia atomisuutta, koska transaktion jotkin alitransaktiot voivat sitoutua ja toiset keskeytyä. Globaali sarjallistuvuus on kuitenkin taattu, jos seuraavat ehdot ovat voimassa: (1) Kunkin pisteen samanaikaisuuden hallinta perustuu paikallisen sarjallistuvuuden takaavaan lukituskäytäntöön tai optimistiseen käytäntöön. (2) Sovellusohjelma käyttää yksivaiheista sitoutumiskäytäntöä. (3) Kaikkien osallispisteiden alitransaktiot sitoutuvat. 116

57 Nollavaiheisessa sitoutumiskäytännössä hajautetun transaktion yhden osallispisteen alitransaktio voi sitoutua ja vapauttaa lukkonsa ennen kuin toisen pisteen alitransaktio on edes aloitettu ja varannut lukkoja siellä. Eristyvyysanomaliat ovat siis mahdollisia, vaikka kaikki alitransaktiot sitoutuvat. Globaali sarjallistuvuus ei siis ole taattu. Kahden hajautetun transaktion T ja T osallispisteen s i alitransaktioiden T i ja T i keskinäinen sarjallistuvuusjärjestys saattaa olla T i < T i, kun taas jonkin toisen osallispisteen s j alitransaktioille T j ja T j se onkin T j < T j. Nollavaiheisessa sitoutumiskäytännössä alitransaktiot pitävät lukkoja varattuna vähemmän aikaa kuin yksivaiheisessa sitoutumiskäytännössä, joten se on tehokkaampi. Nollavaiheinen sitoutumiskäytäntö sopii sellaisiin sovelluksiin, joissa hajautetussa tietokannassa ei tarvitse ylläpitää mitään globaaleja, useamman pisteen tietokantojen välisiä eheysrajoitteita. Silloinhan globaali sarjallistuvuus ei ole välttämätön. 117

58 Esimerkkinä sovelluksesta, jonka koordinointiin riittää nollavaiheinen sitoutumiskäytäntö, olkoon aiemmin mainittu verkkokauppasovellus. Verkkokaupalla on päätoimipiste, joka rekisteröi asiakkaat ja hyväksyy tavaratilaukset, sekä eri puolilla maata joukko varastopisteitä, joista tilatut tavarat toimitetaan asiakkaille. Kunkin asiakkaan tiedot säilytetään sekä päätoimipisteessä että siinä varastopisteessä, josta asiakkaan tilaamat tavarat toimitetaan. Asiakkaan rekisteröintitransaktio voisi koostua kahdesta alitransaktiosta, jotka suoritetaan seuraavassa järjestyksessä: ensimmäinen alitransaktio luo asiakastietueen päätoimipisteessä ja toinen alitransaktio luo vastaavan tietueen asianomaisessa varastopisteessä. Rekisteröintitransaktion annetaan sitoutua nollavaiheisesti: ensimmäinen alitransaktio saa sitoutua ennen toisen alkamista. Näin koneensa ääressä istuvalle asiakkaalle taataan nopea palaute rekisteröinnin onnistumisesta. 118

Tietokantarakenteet ja -algoritmit 3. harjoitus

Tietokantarakenteet ja -algoritmit 3. harjoitus Tietokantarakenteet ja -algoritmit 3. harjoitus Malliratkaisut 1. Analyysivaiheen alussa alustetaan aktiivisten transaktioiden taulu (tyhjä) ja päivitettyjen sivujen taulu (samoin tyhjä) tarkistuspisteestä.

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

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

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Elvytys R & G Chapter 18 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Motivaatio Atomisuus: Transaktiot voivat päättyä peruutukseen ( Rollback ). Pysyvyys: Entä jos TKHJ kaatuu? (Syyt?) Halutut ominaisuudet

Lisätiedot

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

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo. Tietokantarakenteet ja -algoritmit 5. harjoitus Malliratkaisut 1. B 1 : T 1 alkaa. I 1 [1]: T 1 :lle pitkäkestoinen X-lukko avaimeen 1 ja lyhytkestoinen X-lukko avaimen 1 seuraajaan. B 2 : T 2 alkaa. I

Lisätiedot

Transaktioiden peruutus ja tietokannan elvytys häiriöstä

Transaktioiden peruutus ja tietokannan elvytys häiriöstä Transaktioiden peruutus ja tietokannan elvytys häiriöstä C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial

Lisätiedot

Muita transaktioiden hallintamenetelmiä

Muita transaktioiden hallintamenetelmiä Muita transaktioiden hallintamenetelmiä H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on

Lisätiedot

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

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...

Lisätiedot

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

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?

Lisätiedot

Tietokantarakenteet ja -algoritmit 6. harjoitus

Tietokantarakenteet ja -algoritmit 6. harjoitus Tietokantarakenteet ja -algoritmit 6. harjoitus Malliratkaisut 1.. a) T1 = B I[b, r 2, 0, 0] IX-lukitaan järjestelmä s, tietokanta b ja relaatio (b, r 2 ) (tässä järjestyksessä), X-lukitaan (b, r 2, 0)

Lisätiedot

Transaktioiden eristyvyys

Transaktioiden eristyvyys Transaktioiden eristyvyys H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on Management of

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11

Lisätiedot

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

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2. Samanaikaisuuden hallinta tietokantapalvelimessa Tiedonhallintaa Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 1 Transaktiot eli tapahtuma(sarja)t 2 Transaktio (transaction) on DBMSn

Lisätiedot

Lokin ylläpito ja puskurinhallinta

Lokin ylläpito ja puskurinhallinta Lokin ylläpito ja puskurinhallinta C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead

Lisätiedot

Sivupalvelin- ja yhteislevyjärjestelmät

Sivupalvelin- ja yhteislevyjärjestelmät Sivupalvelin- ja yhteislevyjärjestelmät C. Mohan & I. Narang 1994: ARIES/CSA: a method for database recovery in client-server architectures. Proc. of the 1994 ACM SIG- MOD Internat. Conf. on Management

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Looginen tietokanta ja transaktiot

Looginen tietokanta ja transaktiot Looginen tietokanta ja transaktiot A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 22 23, luvun 1 (introduction) kohta kohta 1.9 (transaction

Lisätiedot

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

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin yhdenkään

Lisätiedot

D B. Transaktionhallinta - samanaikaisuus

D B. Transaktionhallinta - samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin yhdenkään

Lisätiedot

5.2 Samanaikaisuuden hallinta

5.2 Samanaikaisuuden hallinta Tietokannan hallinta 29 5. Tapahtumien hallinta Tietokannan hallinta 30 5. Tapahtumien hallinta 5.2 Samanaikaisuuden hallinta Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (ohjelmia/ihmisiä).

Lisätiedot

Transaktiot - kertausta

Transaktiot - kertausta 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:

Lisätiedot

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

25.4.05. Helsingin yliopisto/tktl Tietokannan hallinta, kevät 2005. Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (= käyttäviä prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin

Lisätiedot

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

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2: Tietokannan hallinta 1 5. Tapahtumien hallinta Tietokannan hallinta 2 5. Tapahtumien hallinta 5. Tapahtumien hallinta = transaction management (yleistä: E&N, Ch. 19) kaikkien tietokantajärjestelmien keskeinen

Lisätiedot

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

Lisätään avainarvo 6, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Samanaikaisuuden hallinta Snapshot Isolationin avulla

Samanaikaisuuden hallinta Snapshot Isolationin avulla hyväksymispäivä arvosana arvostelija Samanaikaisuuden hallinta Snapshot Isolationin avulla Olli Korhonen Helsinki 4.3.2009 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

Lisätiedot

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

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta. Transaktionhallinta. Transaktionhallinta (transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi

Lisätiedot

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

Transaktionhallinta. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Transaktionhallinta R & G Chapter 17 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Transaktionhallinta ~ samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja).

Lisätiedot

Web-palveluiden transaktionaalinen koostaminen

Web-palveluiden transaktionaalinen koostaminen hyväksymispäivä arvosana arvostelija Web-palveluiden transaktionaalinen koostaminen Tobias Rask Helsinki 18.11.2013 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 15.4.2019 CS-A1150 Tietokannat 15.4.2019 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17 R & G Chapter 17 ~ samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että: Yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita

Lisätiedot

Tietohakemisto ja Transaktionkäsittely

Tietohakemisto ja Transaktionkäsittely HELIA TIKO-05 1 (18) Tietohakemisto ja Transaktionkäsittely Tietohakemisto...2 Oraclen tietohakemistonäkymät (osa)...3 Yleiset...3 Taulut...3 Säännöt...3 Näkymät...3 Synonyymit...4 Indeksit...4 Sekvenssit...4

Lisätiedot

Transaktioiden samanaikaisuuden hallinta

Transaktioiden samanaikaisuuden hallinta Transaktioiden samanaikaisuuden hallinta C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using

Lisätiedot

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

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) SQL-transaktiot Lähes kaikissa tietojärjestelmissä tietojen talletus on toteutettu tietokannoissa, joita käytetään tietokannanhallintajärjestelmien (DBMS) palvelujen

Lisätiedot

T-106.5220 Transaktionhallinta tietokantajärjestelmissä

T-106.5220 Transaktionhallinta tietokantajärjestelmissä Opetusmoniste T-106.5220 Transaktionhallinta tietokantajärjestelmissä Kevät 2009 (periodi III) Osa 1: Looginen tietokanta ja transaktiot Osa 2: Fyysinen tietokanta Osa 3: Lokin ylläpito ja puskurinhallinta

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

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

Lisätään avainarvo 1, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat Pasi Oja-Nisula Helsinki 19.9.2006 Tietokannat nyt -seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1 2 Tilannevedoseristyvyyden

Lisätiedot

D B. Transaktionhallinta

D B. Transaktionhallinta (transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi

Lisätiedot

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

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

Sisältö. Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat. Abstrakti tietokantamalli. Tietoalkio ACID. Transaktion tilat. Abstrakti tietokantamalli Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat Tiina Niklander Perustuu Jan Lindströmin materiaalin S2002 ja artikkeliin: Ramamritham, Son & DiPippo: Real-Time Databases and Data Services. Real-Time

Lisätiedot

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat Tiina Niklander Perustuu Jan Lindströmin materiaalin S2002 ja artikkeliin: Ramamritham, Son & DiPippo: Real-Time Databases and Data Services. Real-Time

Lisätiedot

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 12.4.2016 CSE-A1200 Tietokannat 12.4.2016 1 / 42 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

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

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47 CS-A1150 Tietokannat 10.4.2018 CS-A1150 Tietokannat 10.4.2018 1 / 47 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

5.2 Samanaikaisuuden hallinta

5.2 Samanaikaisuuden hallinta Tietokannan hallinta 29 5. Tapahtumien hallinta Tietokannan hallinta 30 5. Tapahtumien hallinta 5.2 Samanaikaisuuden hallinta Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (ohjelmia/ihmisiä).

Lisätiedot

Tiedon hajauttaminen ja hajautettu kyselynkäsittely

Tiedon hajauttaminen ja hajautettu kyselynkäsittely Tiedon hajauttaminen ja hajautettu kyselynkäsittely M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Second Edition. Pearson Addison Wesley, 2006;

Lisätiedot

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

TCAP - Transaction Capabilities Sovellusosaa käyttävät

TCAP - Transaction Capabilities Sovellusosaa käyttävät AP - Transaction Capabilities Sovellusosaa käyttävät Mobiilipalvelut (tilaajien roamaus) Älyverkkopalvelut Puhejohdoista riippumattomat palvelut (look-ahead ) O&M sovellukset jne AP tarjoaa geneerisiä

Lisätiedot

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten

Lisätiedot

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

Tapahtumanhallinnan pulmakohtia ja ratkaisuja Tapahtumanhallinnan pulmakohtia ja ratkaisuja TJT E54 Kehittämismenetelmät ja arkkitehtuurit liiketoiminnassa Kevät 2006 Ville Seppänen ACID Atomicity? Consistency? Isolation? Durability?

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Keskusmuistitietokantojen samanaikaisuuden hallinta

Keskusmuistitietokantojen samanaikaisuuden hallinta Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Helsinki 09.03.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI

Lisätiedot

Tiedon varmentaminen mobiilissa ja langattomassa ympäristössä

Tiedon varmentaminen mobiilissa ja langattomassa ympäristössä Tiedon varmentaminen mobiilissa ja langattomassa ympäristössä Tietokannat nyt -seminaari Tuomo Saarinen tuomo.saarinen@helsinki.fi i 1. Johdanto... 1 2. Mobiilin tietojenkäsittelyn ongelmat... 2 2.1 2PC:n

Lisätiedot

[c] What is the difference between a modified page and a dirty page? Mitä eroa on päivitetyllä sivulla ja likaisella sivulla?

[c] What is the difference between a modified page and a dirty page? Mitä eroa on päivitetyllä sivulla ja likaisella sivulla? CS-E4230 Transaction Management in DB Early Spring 2017 Tutorial No 2 (1/5) [0] [a] Why is it a good idea to keep the DB log on a separate disk? Miksi on hyvä pitää tietokannan loki omalla levyllään? [b]writing

Lisätiedot

D B. Tietokannan hallinta kertaus

D B. Tietokannan hallinta kertaus TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia

Lisätiedot

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

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

Samanaikaisuuden hallinta

Samanaikaisuuden hallinta Samanaikaisuuden hallinta TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. maaliskuuta 2007 Samanaikaisuus engl. concurrency useampaa

Lisätiedot

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12

Tietokantarakenteet ja -algoritmit Harjoitukset 1-12 Tietokantarakenteet ja -algoritmit Harjoitukset 1-12 Malliratkaisut 1 Harjoitus 1 1. Kukin DEPARTMENT-monikko d sijoitetaan omalle sivulleen. Sen seuraksi samalle sivulle sijoitetaan tähän liittyviä EMPLOYEE-monikoita

Lisätiedot

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

Tapahtumanhallinnan pulmakohtia ja ratkaisuja Tapahtumanhallinnan pulmakohtia ja ratkaisuja ITK E54 - Kehittämismenetelmät ja arkkitehtuurit liiketoiminnassa kevät 2005 Ville Seppänen Jakamattomuus (Atomicity) Tapahtuman järjestelmään

Lisätiedot

T Hajautetut tietokannat

T Hajautetut tietokannat Opetusmoniste T-106.5241 Hajautetut tietokannat Syksy 2010 (periodi II) ss. 1 60 Osa 1: Tiedon hajauttaminen ja hajautettu kyselynkäsittely 3 Useaan tietokantaan operoivat sovellukset 6 Hajautettu tietokantajärjestelmä

Lisätiedot

Käyttöjärjestelmät: prosessit

Käyttöjärjestelmät: prosessit Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä

Lisätiedot

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

Tapahtumanhallinnan pulmakohtia ja ratkaisuja Tapahtumanhallinnan pulmakohtia ja ratkaisuja TJTSE54 - Kehittämismenetelmät ja arkkitehtuurit liiketoiminnassa, kevät 2007 Ville Seppänen Kertausta Transaktio eli tapahtuma Tietokantatapahtumien

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas Visma Liikkuvan työn ratkaisut Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan

Lisätiedot

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi 5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden

Lisätiedot

Java ja tietokannan käsittely (JDBC)

Java ja tietokannan käsittely (JDBC) Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio

Lisätiedot

Visma Liikkuvan työn ratkaisut

Visma Liikkuvan työn ratkaisut Visma Liikkuvan työn ratkaisut Päivitysohje Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta.

Lisätiedot

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

TIEDONHALLINTA - SYKSY 2011. Luento 12. Hannu Markkanen 28.-29.11.2011. 9/10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY 2011. Luento 12. Hannu Markkanen 28.-29.11.2011. 9/10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 12 TU00AA48-2002 TU10S1E Hannu Markkanen 28.-29.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Tietokantapahtumien hallinta

Lisätiedot

TCAP - Transaction Capabilities Sovellusosaa käyttävät

TCAP - Transaction Capabilities Sovellusosaa käyttävät AP - Transaction Capabilities Sovellusosaa käyttävät Mobiilipalvelut (tilaajien roamaus) Älyverkkopalvelut Puhejohdoista riippumattomat palvelut (look-ahead ) O&M sovellukset jne AP tarjoaa geneerisiä

Lisätiedot

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI Tarkastellaan tietokantojen perusominaisuuksia taulujen suhteita toisiinsa tietokantojen suunnittelun alkeita Id enimi snimi muuta 1 Aki Joki xxx 2 Esa Elo yyy Id katuos

Lisätiedot

2. EDUCLOUD -ALLIANSSIN TAUSTA JA TARKOITUS

2. EDUCLOUD -ALLIANSSIN TAUSTA JA TARKOITUS 1 (5) EDUCLOUD ALLIANCE LIITTYMISSOPIMUS EDUCLOUD ALLIANSSIIN VUODELLE [lisää vuosi] [pvm xx.xx.xxxx] 1. SOPIMUKSEN OSAPUOLET [Yrityksen nimi], y-tunnus [lisää y-tunnus], jäljempänä ( Jäsen ) ja Suomen

Lisätiedot

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum

Lisätiedot

Samanaikaisuuden hallinta MySQLtietokannanhallintajärjestelmässä. Vesa Tähkävuori

Samanaikaisuuden hallinta MySQLtietokannanhallintajärjestelmässä. Vesa Tähkävuori Samanaikaisuuden hallinta MySQLtietokannanhallintajärjestelmässä käyttäen InnoDBtietokantamoottoria Vesa Tähkävuori Opinnäytetyö Tietojenkäsittelyn koulutusohjelma 2010 Tiivistelmä 16.11.2010 Tietojenkäsittelyn

Lisätiedot

Opus SMS tekstiviestipalvelu

Opus SMS tekstiviestipalvelu Opus SMS tekstiviestipalvelu Sivu 1 / 17 1. Yleistä toiminnosta Opus SMS tekstiviestipalvelun avulla voidaan Opus Dental potilashallintaohjelmasta Lähettää muistutuksia tekstiviestillä Lähettää tiedusteluita

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

Hajautettujen transaktioiden käsittelyjärjestelmät

Hajautettujen transaktioiden käsittelyjärjestelmät Hajautettujen transaktioiden käsittelyjärjestelmät M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 947 1004,

Lisätiedot

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, sovellusohjelmille ja käyttäjille? 2012-2013 Lasse Lensu

Lisätiedot

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Tietokantaohjelmoinnin tekniikkoja Java-kielellä Tietokantaohjelmoinnin tekniikkoja Java-kielellä Ville Kuokkanen Helsinki 6. helmikuuta 2003 Relaatiotietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Tietokantaohjelmoinnin

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 5 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Tietokannan normalisoinnin

Lisätiedot

Hajautetut tietokannat Talvi 2016 Vastaukset Laskuharj. 5. CS-E4630 Distributed Databases Winter 2016 Answers Tutorial 5 1/9

Hajautetut tietokannat Talvi 2016 Vastaukset Laskuharj. 5. CS-E4630 Distributed Databases Winter 2016 Answers Tutorial 5 1/9 Hajautetut tietokannat Talvi 2016 Vastaukset Laskuharj. 5. CS-E4630 Distributed Databases Winter 2016 Answers Tutorial 5 1/9 Sivupalvelimet sekä yhteislevyjärjestelmät Page Servers and Shared Disk Systems

Lisätiedot

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

/ ta. Osaa kvalitatiivisella tasolla arvioida sovelluksen hajauttamisen hyötyjä ja haittoja. Hajautetut järjestelmät 7.3.2006 / ta Pääteema Esitiedot Lähestyy oppimistavoitteita Hajautuksen tavoitteet ja ongelmat Hajautetun järjestelmän rakenne Käyttöjärjestelmät ja tietoliikenne: - hallitsee

Lisätiedot

Toisinnetun tietokannan hallinta

Toisinnetun tietokannan hallinta Toisinnetun tietokannan hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 1028 1037, luvun 24 (implementing

Lisätiedot

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella

Lisätiedot

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

TIES542 kevät 2009 Yhteismuistisamanaikaisuus

TIES542 kevät 2009 Yhteismuistisamanaikaisuus TIES542 kevät 2009 Yhteismuistisamanaikaisuus Antti-Juhani Kaijanaho 9. maaliskuuta 2009 Tehtävät ovat samanaikaiset (engl. concurrent), jos ne etenevät yhtä aikaa samalla toistensa kanssa kommunikoiden.

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta. Tieto - data Digitaalisesti tallennettua informaatiota jostakin kohteesta Vapaamuotoinen tieto (unformatted) Esim. teksti, puhe, kuvat, Sisältö jäsentämätöntä Koneellinen käsittely vaikeaa paitsi kokonaisuutena

Lisätiedot

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu HELIA 1 (16) Luento 3.2 Suorituskyvyn optimointi jatkuu...... 2 Tietojen tallennusratkaisut... 2 Tiedon tallennuksen yksiköitä... 3 Loogiset... 3 Fyysiset... 3 Tallennusmäärittelyt Oraclessa... 5 Loogiset

Lisätiedot