Sivupalvelin- ja yhteislevyjärjestelmät

Koko: px
Aloita esitys sivulta:

Download "Sivupalvelin- ja yhteislevyjärjestelmät"

Transkriptio

1 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 of Data, C. Mohan & I. Narang: Recovery and coherency-control protocols for fast intersystem page transfer and fine-granularity locking in a shared disks transaction environment. VLDB 1991, Proc. of the 17th Internat. Conf. on Very Large Data Bases, 1991, A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Sixth Edition. McGraw-Hill, 2010; sivut ja 783, luvun 17 (database-system architectures) kohdat (data servers) ja (shared disk). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006; sivut ja 796, luvun 20 (database-system architectures) kohdat (data servers) ja (shared disk). 225

2 Tietopalvelin, s Sivupalvelinjärjestelmän rakenne, s Tiedon puskurointi asiakkailla, s Sivupalvelinjärjestelmän tila, s Päivitysten levittämiskäytännöt, s Puskurieheys ja takaisinkutsut, s Lokin hallinta, s Asiakkaan häiriöistä elvytys, s Palvelimen häiriöistä elvytys, s Lukkojen hallinta, s Yhteislevyjärjestelmä, s

3 Tietopalvelin Tavanomainen tietokantapalvelin on ns. kyselypalvelin (query server) eli funktiopalvelin (function server) eli transaktiopalvelin (transaction server), joka palvelee asiakkailta (sovellusprosesseilta) tulevia SQL-operaatiopyyntöjä. Sovelluksen SQL-operaatiot suoritetaan palvelimen puskuriin noudettuihin tietokantasivuihin. Kyselypalvelimen toimintaperiaatetta kutsutaan kyselynkuljetukseksi (query shipping) eli funktionkuljetukseksi (function shipping) eli transaktionkuljetukseksi (transaction shipping): siinä SQL-operaatio (kysely, funktio, transaktio) kuljetetaan sovelluksesta palvelimeen suoritettavaksi siellä (tiedon luona). Tietopalvelin (data server) taas on tietokantapalvelin, joka palvelee asiakkailta tulevia tietokannan yksittäisten (loogisten tai fyysisten) tietoalkioiden noutopyyntöjä. Tietopalvelimen toimintaperiaatetta kutsutaan tiedonkuljetukseksi (data shipping): tieto kuljetetaan palvelimelta asiakkaalle operoitavaksi siellä (ja asiakkaan päivittämä tieto palautetaan palvelimelle). Asiakas puskuroi tietoalkioita omassa asiakaspuskurissaan (client buffer, client cache) ja suorittaa niihin SQL-operaatioita. 227

4 Asiakkaan pyyntöjen kohteena olevien tietoalkioiden rakenteen mukaan tietopalvelin voidaan luokitella oliopalvelimeksi, sivupalvelimeksi tai tiedostopalvelimeksi. Oliopalvelin (object server) palvelee loogisen tietokannan tietoalkioihin kuten relaatiotietokannan monikoihin tai oliotietokannan olioihin kohdistuvia noutopyyntöjä: Nouda tietokannasta oliotunnisteella x varustettu olio asiakaspuskuriin. Sivupalvelin (page server) palvelee fyysisen tietokannan sivuihin kohdistuvia noutopyyntöjä: Nouda tietokannasta sivutunnisteella p varustettu sivu asiakaspuskuriin. Tiedostopalvelin (file server) palvelee fyysisen tietokannan tiedostoihin (tai levyalueisiin) kohdistuvia noutopyyntöjä: Nouda tietokannasta tiedostotunnisteella f varustettu tiedosto asiakaspuskuriin. 228

5 Tietopalvelimessa tietoalkioiden varsinainen käsittely tapahtuu asiakkailla. Itse asiassa kyselynkäsittely (SQL-kyselyn jäsennys, optimointi ja suoritus) tapahtuu kokonaan asiakkailla. Miten muuten asiakas osaisi pyytää palvelimelta jotain tiettyä oliota, sivua tai tiedostoa? Jokainen transaktio käynnistetään jollakin asiakkaalla ja suoritetaan alusta loppuun samalla asiakkaalla. Eri asiakkaiden transaktiot operoivat puskureittensa välityksellä palvelimella sijaitsevaan yhteiseen tietokantaan. Myös pääosa transaktioiden hallinnasta tapahtuu asiakkailla: asiakas aloittaa transaktion (tuottaa uuden transaktiotunnisteen), tuottaa transaktion lokikirjaukset sekä päättää (sitouttaa tai keskeyttää) transaktion. 229

6 Esimerkiksi asiakkaan c sovellusohjelman osasta begin transaction(); exec sql update r set V = V + 1; commit() syntyvän transaktion suoritus sivupalvelimessa sisältää seuraavaa: 1. Asiakas c tuottaa uuden transaktiotunnisteen T sekä T :n aloituskirjauksen. 2. Asiakas c pyytää palvelimelta puskuriinsa tietohakemiston sivuja, kunnes löytää relaatiota r koskevat tiedot. 3. Asiakkaan c kyselynoptimoija määrää update-operaation laskentastrategiaksi relaation r tietosivujen p 1,..., p n selauksen. 4. Asiakas c pyytää palvelimelta yksitellen puskuriinsa jokaisen tietosivun p i, päivittää sen monikoiden V -attribuutin arvon ja tuottaa päivityksistä lokikirjaukset. 5. Lopuksi asiakas c kirjaa T :n sitoutuneeksi ja pyytää palvelinta viemään lokikirjaukset levylle. Asiakaspuskurista päivitetyt sivut toimitetaan aikanaan palvelimen puskuriin. 230

7 Transaktiopalvelimessa lähes kaikki tietokannan hallintajärjestelmän funktionaliteetista on palvelimessa, kun taas tietopalvelimessa suurempi osa järjestelmän funktionaliteetista sisältyy asiakkaalla toimivaan paikalliseen hallintajärjestelmään. Sivupalvelimessa ja erityisesti tiedostopalvelimessa tietokantapalvelimen funktionaliteetti voi olla riisuttu äärimmilleen: Tietokanta on sivupalvelimen kannalta vain joukko sivuja, ja tiedostopalvelimen kannalta vain joukko tiedostoja, joiden yhteiskäytöstä ja pysyvyydestä palvelin huolehtii (tietokanta, loki, lukot). Asiakkaalla toimiva paikallinen hallintajärjestelmä tuntee sivuilla sijaitsevat oliot, oliokokoelmien hakemistorakenteet jne. Työasemaympäristössä toimivat, suunnittelusovelluksiin (CAD, CAM) tarkoitetut oliotietokannan hallintajärjestelmät ovat usein tietopalvelinjärjestelmiä. Tietopalvelinjärjestelmässä työasemien resursseja voidaan hyödyntää paremmin kuin transaktiopalvelinjärjestelmässä. Joissakin oliotietokannan hallintajärjestelmissä nämä kaksi periaatetta (tiedonkuljetus ja transaktionkuljetus) on yhdistetty: metodeja voidaan suorittaa sekä asiakkaalla että palvelimessa. 231

8 Sivupalvelinjärjestelmän rakenne Tarkastellaan sivupalvelinjärjestelmää, jossa tietokantapalvelimeen s on verkon välityksellä kytketty n asiakastyöasemaa c 1,...,c n. Palvelimeen s on kytketty levyasema tai -asemat, joilla tietokannan levyversio sijaitsee, sekä levyasema tai -asemat, joilla tietokannan lokia säilytetään. Asiakkailla c i ei ole tietokannan tai lokin pysyvään säilytykseen käytettävää levyä. Palvelimessa s on palvelimen puskuri (server buffer), jota käytetään tietokantasivujen puskurointiin siten kuin aiemmin on esitetty tavanomaisen kyselypalvelimen puskurinhallinnan yhteydessä. Jokaisella asiakkaalla c i on sen yksityiskäytössä oleva asiakkaan puskuri (client buffer, client cache), joka sisältää c i :ssä toimivien sovellusten operoimien tietokantasivujen kopioita. 232

9 s levyasemat palvelimen puskuri c 1 c 2 c 3 asiakkaan puskuri asiakkaan puskuri asiakkaan puskuri 233

10 Tarkastelemme sivupalvelinjärjestelmää, jonka prosessirakenne sisältää seuraavanlaisia prosesseja: Palvelimessa s toimii monisäikeinen tietokannan palvelinprosessi (database server) S, joka käsittelee asiakkailta tulevat palvelupyynnöt. Jokaisella asiakkaalla c i toimii monisäikeinen asiakkaan tietokantaprosessi (client database process) C i, jolle asiakkaalla c i toimivat sovellukset kohdistavat tietokannan käsittelypyyntönsä. Jokaisella asiakkaalla c i toimii yksi tai useampi asiakassovellusprosessi (client application process) A i j, joka suorittaa tietokantasovellusohjelmaa ja lähettää palvelupyyntöjä paikalliselle tietokantaprosessille C i transaktionkuljetus- eli kyselynkuljetusperiaatteella. 234

11 s S tiedonkuljetus (sivuja) kyselynkuljetus c 1 C 1 C 2 c 2 c 3 C 3 A 11 A 12 A 21 A 22 A 31 Asiakkaan c i sovelluksen A i j näkökulmasta sivupalvelinjärjestelmä on kyselynkuljetusperiaatteella toimiva paikallinen palvelu. 235

12 Transaktion suoritus tapahtuu kokonaan yhdellä asiakkaalla. Yksinkertaisuuden vuoksi voisimme hyvin olettaa, ettei palvelimessa suoriteta lainkaan transaktioita. Mikäli palvelimessakin halutaan suorittaa transaktioita, voidaan sitä varten näet käynnistää palvelimessa toimiva asiakkaan tietokantaprosessi, jonka alaisuudessa palvelimessa käynnistetyt sovellukset toimivat. Asiakkaan c i tietokantaprosessi C i jäsentää ja optimoi paikalliselta asiakassovellukseltaan A i j saamansa SQL-kyselyn ja suorittaa sen tuottaman tietokantaoperaatiosarjan sovelluksen transaktion nimissä. C i suorittaa tietokantaoperaatiot paikallisessa puskurissaan puskuroimilleen tietokantasivuille, pyytäen sivuja tarvittaessa palvelimelta. Puskurissaan olevat päivitetyt sivut ja päivitysten lokikirjaukset C i toimittaa aikanaan palvelimelle, joka asentaa sivut omaan puskuriinsa ja vie lokikirjaukset lokipuskuriin. Palvelimen puskurista päivitetyt sivut viedään aikanaan levylle normaaliin tapaan. 236

13 Tiedon puskurointi asiakkailla Eri asiakkailla puskuroitujen sivujen hallintaa varten palvelin ylläpitää keskusmuistissa puskuroitujen sivujen taulua, joka sisältää jokaisesta jonkin asiakkaan c i paikallisessa puskurissa olevasta sivusta p sivun tunnisteen, asiakkaan c i tunnisteen sekä puskurointioikeuden. Sivun p puskurointioikeus asiakkaalla c i voi olla lukuoikeus (read privilege, read token), joka oikeuttaa c i :n vain lukemaan sivua, tai päivitysoikeus (update privilege, write token), joka oikeuttaa c i :n sekä lukemaan että päivittämään p:tä. Usealla asiakkaalla voi olla samanaikaisesti sivuun p lukuoikeus, ts. p voi olla samanaikaisesti puskuroituna usean asiakkaan paikallisessa puskurissa lukemista varten. Sitä vastoin sivuun p voi kerrallaan olla vain yhdellä asiakkaalla päivitysoikeus, ts. p voi olla kerrallaan vain yhdellä asiakkaalla puskuroituna päivitystä varten. Tarkastelemassamme menetelmässä asiakkaan c i sivuun p omistama päivitysoikeus sulkee samalla pois muilta asiakkailta kaikki oikeudet p:hen. 237

14 Sivun p naulinta asiakkaan c i prosessille sisältää p:n hakemisen palvelimelta, mikäli p:tä ei ennestään ole c i :n puskurissa. Tällöin asiakasta c i palveleva palvelinprosessin S säie naulitsee ja lukusalpaa p:n, toimittaa p:stä kopion c i :hin ja vapauttaa p:n salpauksen ja naulinnan. Sivun p naulinnan vapautus asiakkaalla c i ei koskaan aiheuta mitään kommunikointia asiakkaan ja palvelimen välillä: sivu p jää asiakkaan puskuriin ja palvelimen puskuroitujen sivujen taulussa säilyy tieto p:n puskuroinnista c i :ssä entisellä oikeudella. Myöskään asiakkaan transaktion sitoutuminen ei tarkastelemassamme puskurointikäytännössä aiheuta mitään muutoksia transaktion lukemien tai päivittämien sivujen puskurointiin asiakkaalla. Sovellamme siis transaktiorajat ylittävää eli transaktioiden välistä puskurointia (inter-transaction caching): sivu voi olla salpaamatta ja naulitsematta asiakkaan puskurissa vaikkei asiakkaalla olisi suorituksessa yhtään transaktiota. 238

15 Transaktioiden välinen puskurointi on järkevää, koska samalla asiakkaalla aloitettu uusi transaktio usein operoi ainakin osittain samoihin sivuihin kuin vastikään päättynyt transaktio. Näin varsinkin silloin, kun tietokannan monikot on ryvästetty tietosivuille niiden luonnollista käsittelyjärjestystä noudattaen. Pitkän CAD-dokumentin editointi-istunnon katkaisee välillä operaatio save document, joka päättää transaktion. Istunnon jatko (seuraava transaktio) operoi lähes samoihin monikoihin kuin äsken päätetty transaktio. 239

16 Sivupalvelinjärjestelmän tila Keskitetylle tietokannalle määritellään käsitteet sivun levyversio, puskuriversio ja nykyversio sekä näiden avulla edelleen käsitteet tietokannan levyversio ja tietokannan nykyversio eli tietokannan tila. Sivupalvelinjärjestelmässä tiedon puskurointi asiakkaiden paikallisissa puskureissa tuo näihin määritelmiin yhden tason lisää. Sivun p levyversio (disk version) on p:n se versio, joka on palvelimen levyllä. Sivun p palvelinversio (server version) on palvelimen puskurissa oleva p:n versio, mikäli p on palvelimen puskurissa, ja p:n levyversio muutoin. Sivupalvelinjärjestelmän fyysisen tietokannan palvelinversio on sen sivujen palvelinversioiden joukko; loogisen tietokannan palvelinversio on fyysisen tietokannan tietosivujen palvelinversioiden sisältämien loogisten tietoalkioiden (monikoiden) joukko. 240

17 Sivun p nykyversio (current version) on se p:n versio, joka on puskuroituna jonkin asiakkaan c i paikallisessa puskurissa, mikäli p on puskuroituna jollakin asiakkaalla, ja p:n palvelinversio muutoin. Nykyversion määritelmä on mielekäs, koska puskurointimenetelmässämme sivu p voi olla samanaikaisesti puskuroituna usean asiakkaan puskurissa vain jos p:hen on näillä asiakkailla ainoastaan lukuoikeus (jolloin p on kaikilla asiakkailla samansisältöisenä). Sivupalvelinjärjestelmän fyysisen tietokannan nykyversio eli tila on sen sivujen nykyversioiden joukko; loogisen tietokannan nykyversio eli tila on fyysisen tietokannan tietosivujen nykyversioiden sisältämien loogisten tietoalkioiden (monikoiden) joukko. 241

18 Päivitysten levittämiskäytännöt Oletamme, että palvelin noudattaa sivujen puskuroinnissa tavanomaisia varasta- ja älä-pakota-käytäntöjä (steal-and-no-force policy): (1) Palvelin voi viedä puskuristaan levylle sivun, jolla on sitoutumattoman transaktion päivitys. (2) Palvelimen ei ole pakko viedä levylle transaktion päivittämiä sivuja transaktion sitoutumisen yhteydessä (eikä fyysisen tietokannan rakennemuutoksen koskettamia sivuja rakennemuutoksen valmistumisen yhteydessä). Asiakkaan c i puskurissa oleva sivu p on päivitetty (modified), jos se eroaa p:n palvelinversiosta, ja päivittämätön (unmodified) muutoin. Vrt. että palvelimen puskurissa olevaa sivua sanotaan päivitetyksi, jos se eroaa sivun levyversiosta. 242

19 Päivitetyn sivun toimittamisessa asiakkaalta palvelimeen voidaan soveltaa tietokannan hallintamenetelmästä riippuen erilaisia päivitysten levityskäytäntöjä (update-propagation policy). Kaikkien levityskäytäntöjen yhteydessä sovelletaan aina asiakkaan WAL-käytäntöä: Aina kun asiakkaalta c i toimitetaan palvelimeen päivitetty sivu p, toimitetaan palvelimeen samalla myös kaikki c i :ssä tuotetut, sivun p päivityksiä esittävät lokikirjaukset (mikäli näitä ei ole toimitettu palvelimeen jo aiemmin). Palvelin noudattaa luonnollisesti päivitettyjen sivujen ja lokikirjausten levylle viennissä tavanomaista WAL-käytäntöä: päivitetty sivu voidaan viedä palvelimen puskurista levylle vasta kun kaikki sivun päivitysten lokikirjaukset on viety levylle. 243

20 Päivitysten välittömässä levittämisessä (immediate update propagation) päivitetty sivu toimitetaan palvelimeen ja asennetaan sen puskuriin välittömästi jokaisen sivulle suoritetun päivityksen jälkeen. Näin esimerkiksi asiakkaalla c i päivitystä varten puskuroitu tietosivu p, jolle on suoritettu kirjoitusoperaatio W[x], toimitetaan (lokikirjauksineen) asiakkaalta c i palvelimeen heti, kun p:n salpaus c i :ssä on vapautettu. Samoin toimitetaan B-puun rakennemuutokseen (esim. sivun halkaisuun) osallistuneet sivut (lokikirjauksineen) c i :stä palvelimeen heti, kun niiden salpaus on rakennemuutoksen valmistuttua vapautettu. Päivitettyjä sivuja ei kuitenkaan poisteta asiakkaan puskurista, vaan asiakkaalle jää niiden päivitysoikeus. Päivitysten välittömässä levittämisessä tietokannan nykyversio yhtyy tietokannan palvelinversioon aina päivitysoperaatioiden välillä. Haittana on tiuhaan päivitetyn sivun jatkuva siirtäminen asiakkaalta palvelimeen. 244

21 Sitoutuneiden päivitysten levityksessä (committed-update propagation, force-to-server-at-commit) asiakas toimittaa transaktion päivittämät sivut palvelimeen transaktion sitoutumisen yhteydessä: Asiakkaan transaktio sitoutuu vasta, kun sen päivittämät sivut on asennettu palvelimen puskuriin (ja päivitysten lokikirjaukset viety palvelimen levylle). Asiakkaalla suoritettu fyysisen tietokannan rakennemuutos sitoutuu vasta, kun sen muuttamat sivut on asennettu palvelimen puskuriin (ja muutoksen lokikirjaus viety palvelimen levylle). Sitoutuneiden päivitysten levittämisessä tietokannan nykyversio yhtyy tietokannan palvelinversioon aina päivitystransaktioiden välillä, ts. aina silloin kun millään asiakkaalla ei ole päivittävää transaktiota tai rakennemuutosta käynnissä. Päivitettyjä sivuja ei poisteta asiakkaan puskurista sitoutumisen yhteydessä, vaan asiakkaalle jää niiden päivitysoikeus. 245

22 Laiskassa eli tarvehakuisessa päivitysten levityksessä (lazy update propagation, demand-driven update propagation) asiakkaalla päivitetty sivu toimitetaan palvelimeen vasta, kun sitä tarvitaan jollakin toisella asiakkaalla (sikäläisen transaktion luku- tai päivitysoperaatiota varten) tai palvelimessa (esim. täydellisen tarkistuspisteen ottoa varten) tai kun asiakkaan puskuritila loppuu. Tällöin asiakas luopuu samalla sivuun omistamastaan päivitysoikeudesta. Tätä levityskäytäntöä oletamme sovellettavaksi seuraavassa. 246

23 Puskurieheys ja takaisinkutsut Tiedon puskuroinnissa asiakkailla on ongelmana puskurieheyden (cache consistency) takaaminen: kun sivu p salvataan asiakkaalla c i transaktion luku- tai päivitysoperaatiota tai rakennemuutosta varten, c i :n puskurissa olevan p:n version täytyy olla p:n nykyversio. Tarvitaan mekanismi, jolla palvelin voi ottaa asiakkaalta c i pois naulitsemattoman sivun puskurointioikeuden, kun sivua pyydetään puskuroitavaksi toiselle asiakkaalle c j päivittämistä varten. Samoin asiakkaan c i puskuroimaansa kirjoitussalpaamattomaan sivuun omistama päivitysoikeus täytyy voida alentaa lukuoikeudeksi, kun sivua pyydetään puskuroitavaksi toiselle asiakkaalle c j lukemista varten. Asiakkaan c i sivuun p omistaman puskurointioikeuden pois ottamista tai alentamista sanotaan sivun p takaisinkutsuksi (callback) asiakkaalta c i. 247

24 Oletetaan, että asiakas c j pyytää palvelimelta oikeutta puskuroida sivu p lukemista varten. Sivua p ei siis ole ennestään c j :n puskurissa. Palvelin tutkii puskuroitujen sivujen taulusta, onko p puskuroituna jollakin toisella asiakkaalla päivittämistä varten. Jos p ei ole puskuroituna päivittämistä varten, palvelin naulitsee ja lukusalpaa p:n, kirjaa puskuroitujen sivujen tauluun c j :lle lukuoikeuden p:hen, toimittaa p:stä kopion c j :lle ja vapauttaa p:n salpauksen ja naulinnan. Asiakas c j asentaa p:n paikalliseen puskuriinsa. Jos taas p on puskuroituna asiakkaalla c i päivittämistä varten, palvelin lähettää c i :lle takaisinkutsun, jolla pyytää c i :tä alentamaan p:n puskurointioikeuden lukuoikeudeksi. 248

25 Takaisinkutsun saatuaan asiakas c i tutkii, onko sivu p parhaillaan päivitettävänä, so. kirjoitussalvattuna. Kun p ei ole enää kirjoitusalvattuna c i :ssä, c i toimittaa p:n ja sen päivitysten lokikirjaukset palvelimeen (mikäli p:tä oli päivitetty ja sitä ja lokikirjauksia ei jo ollut toimitettu palvelimelle aiemmin). Sen lisäksi c i viestittää palvelimelle alentavansa p:n puskurointioikeuden lukupuskuroinniksi. p:tä ei siis poisteta c i :n puskurista. Palvelin vie lokikirjaukset lokipuskuriin ja asentaa p:n puskuriinsa (korvaten siellä mahdollisesti olevan p:n palvelinversion). Palvelin kirjaa puskuroitujen sivujen taulussa p:n puskuroiduksi lukemista varten asiakkailla c i ja c j ja toimittaa kopion p:stä asiakkaalle c j, joka asentaa sivun puskuriinsa. 249

26 Oletetaan sitten, että c j pyytää palvelimelta lukuoikeudella puskuroimansa sivun q puskurointioikeuden korotusta päivitysoikeudeksi. Palvelin tutkii puskuroitujen sivujen taulusta, millä muilla asiakkailla q on puskuroituna. Mikäli q on puskuroituna c j :n lisäksi asiakkailla c i, i = m 1,...,m k, palvelin kutsuu q:n takaisin kaikilta asiakkailta c i, i = m 1,...,m k. Takaisinkutsu sisältää nyt vaatimuksen poistaa sivu puskurista. Takaisinkutsun saatuaan asiakas c i tutkii, onko sivu q parhaillaan luettavana, so. lukusalvattuna. Kun q ei enää ole salvattuna, c i poistaa q:n puskuristaan ja viestittää palvelimelle luopuneensa q:n puskurointioikeudesta. Palvelin poistaa puskuroitujen sivujen taulusta tiedon q:n puskuroinnista c i :ssä. Kun palvelin on saanut takaisinkutsuihinsa kaikilta sivua q puskuroivilta asiakkailta c i vastauksen, palvelin kirjaa q:n puskuroiduksi päivittämistä varten asiakkaalle c j ja viestittää tästä c j :lle. 250

27 Lokin hallinta Lokitiedosto sijaitsee sille varatulla levyllä palvelimessa. Kyselynkuljetusjärjestelmässä kaikki lokikirjaukset syntyvät palvelimessa, koska varsinaiset tietokantaoperaatiot suoritetaan siellä. Tiedonkuljetusjärjestelmässä enimmät lokikirjaukset syntyvät asiakkailla, joista ne täytyy toimittaa palvelimeen. Kullakin asiakkaalla on oma paikallinen lokinhallitsin muttei lokilevyä. Asiakas voi puskuroida lokikirjauksia omassa virtuaalimuistissaan ennen niiden lähettämistä palvelimeen. Kun palvelin saa lokikirjauksia asiakkaalta, se vie ne lokipuskuriin, lokitiedoston perään liitettäviksi. Palvelimen häiriön varalta asiakkaan tulee säilyttää tuottamansa lokikirjaus niin kauan kuin on saatu varmistus siitä, että palvelin on pakottanut lokikirjauksen levylle. 251

28 Miten taataan, että päivitettyä tietokantasivua vastaavat lokikirjaukset menevät palvelimen levylle ennen tietokantasivua, kun lokikirjauksia ja sivuja saapuu palvelimeen toisistaan riippumatta? WAL-käytännön noudattaminen edellyttää, että lokikirjausten järjestysnumeroiden (LSN) tulisi muodostaa päivitysten todellisen järjestyksen (so. lokikirjausten syntyjärjestyksen) suhteen monotonisesti nouseva jono. Miten tämä on mahdollista, jos asiakkaiden sallitaan tuottaa lokikirjauksia toisistaan riippumatta? On tehotonta tiedustella palvelimelta joka kerta erikseen vapaana olevaa LSN:ää. Asiakkaiden pitää antaa tuottaa LSN:nsä paikallisesti. 252

29 Paikallisesti tuotettu LSN ei silloin voi enää olla suora osoite lokitietueeseen palvelimen lokilevyllä. Sivua päivitettäessä sivun otsikkotietueen Page-LSN-kenttään leimattava arvo ilmoittaa edelleen sivulle tulleiden päivitysten kronologisen järjestyksen. Puskurointikäytäntömme mukaisesti sivun sallitaan olevan kerrallaan vain yhden asiakkaan puskurissa päivitettävänä. Koska LSN ei nyt enää ole lokikirjauksen suora osoite, se täytyy eksplisiittisesti sijoittaa lokikirjaukseen omaan kenttäänsä. Asiakkaan tuottamaan lokikirjaukseen sisältyy sekä asiakkaan tunniste että lokikirjauksen LSN. 253

30 Asiakkaan c i paikallinen lokinhallitsin ylläpitää laskuria Local-Max-LSN(c i ), joka sisältää c i :ssä viimeksi tuotetun lokikirjauksen LSN:n. Olkoon o sivuille p 1,..., p n kohdistuva päivitysoperaatio (joko tietosivulle p 1 suoritettava operaatio I, D tai W tai useampaa sivua p 1,..., p n koskettava rakennemuutos), joka suoritetaan asiakkaalla c i. Operaation o lokikirjauksen LSN:ksi tulee arvo n = 1+max{Page-LSN(p 1 ),...,Page-LSN(p n ),Local-Max-LSN(c i )}. Uusi LSN-arvo n sijoitetaan itse lokikirjaukseen, leimataan sivujen p 1,..., p n Page-LSN-kenttään ja asetetaan laskurin Local-Max- LSN(c i ) uudeksi arvoksi. Tällä tavalla taataan, että (1) samalle sivulle eri asiakkailla tehdyt päivitykset saavat päivitysten todellista kronologista järjestystä noudattavan LSN:n ja että (2) samalla asiakkaalla tuotettujen lokikirjausten LSN:ien jono on nouseva. 254

31 Transaktion peruutusta ja järjestelmän häiriöistä elvytystä varten täytyy saada selville se kohta lokista, josta selaus pitää aloittaa. Tämä ei käykään enää selville LSN:istä, jotka ovat vain lokikirjausten loogisia osoitteita eivätkä fyysisiä. Palvelimessa ylläpidetään eri asiakkaiden c i tuottamien LSNarvojen ja niitä vastaavien lokikirjausten fyysisten osoitteiden välistä kuvausta niiden LSN:ien osalta, joita elvytysalgoritmi tarvitsee. Kuvaus esitetään kolmikoista (c i, LSN, osoite) koostuvassa hajautustaulussa. Palvelimen päivitettyjen sivujen taulussa ylläpidetään jokaista palvelimen puskurissa olevaa päivitettyä sivua p kohti arvoa Rec- Addr(p), joka on fyysinen lokiosoite. Rec-Addr(p) ilmoittaa sen kohdan lokissa, josta lähtien sivulla p voi olla eri asiakkaiden tai palvelimen itsensä tekemiä päivityksiä, jotka eivät vielä näy sivun levyversiossa. Elvytysalgoritmissa Rec-Addr-arvoja käytetään Rec-LSN-arvojen sijasta. 255

32 Kunkin asiakkaan c i paikallisessa päivitettyjen sivujen taulussa ylläpidetään jokaista c i :n puskuroimaa päivitettyä sivua p kohti arvoa Rec-LSN(p). Rec-LSN(p) on asiakaskohtainen looginen lokiosoite, LSN-arvo, joka ilmoittaa asiakkaan puskuroiman sivun p päivitysten alkukohdan suhteessa sivun palvelinversioon. Rec-LSN(p) on se LSN, josta lähtien sivulla p voi olla c i :ssä tehtyjä päivityksiä, jotka eivät vielä näy p:n palvelinversiossa. 256

33 Kun asiakas c i lähettää päivitetyn sivun p palvelimeen, lähetetään samalla myös Rec-LSN(p). Mikäli sivun p palvelinversio on vielä päivittämätön, so. joko p:tä ei ole palvelimen puskurissa tai palvelimen puskurissa oleva p:n versio yhtyy p:n levyversioon, viedään p nyt palvelimen päivitettyjen sivujen tauluun ja asetetaan siellä arvoksi Rec-Addr(p) arvoa Rec-LSN(p) vastaava fyysinen lokiosoite (tai konservatiivisesti jokin sitä alempi, helposti määrättävissä oleva lokiosoite). Muussa tapauksessa p on jo kirjattu päivitettyjen sivujen tauluun, ja Rec-Addr(p) jätetään entiselleen. Kummassakin tapauksessa asiakkaan c i lähettämä sivu asennetaan palvelimen puskuriin, jossa se korvaa siellä mahdollisesti vielä olevan entisen version. 257

34 Asiakkaan häiriöistä elvytys Jos asiakas c i romahtaa, palvelin suorittaa sen puolesta ARIESelvytysalgoritmin analyysi-, toisto- ja peruutusvaiheet. Peruutusvaiheessa suoritettavista asiakkaan c i transaktion T käänteisoperaatioista palvelin tuottaa lokikirjaukset T :n nimissä. Asiakkaan häiriöiden käsittely tehostuu, jos myös asiakkaat ottavat aika ajoin tarkistuspisteitä. Asiakkaan c i tarkistuspisteessä kirjataan lokiin c i :n päivitettyjen sivujen taulu ja c i :n aktiivisten transaktioiden taulu. Kuten edellä määrittelimme, päivitetyksi sivuksi katsotaan c i :n puskurissa oleva sivu p, jonka sisältö eroaa p:n palvelinversiosta. 258

35 Asiakkaan c i päivitettyjen sivujen taulu sisältää jokaisesta c i :n puskurissa olevasta päivitetystä sivusta p sivun tunnisteen ja arvon Rec- LSN(p). Kun palvelin saa asiakkaan c i ottaman tarkistuspisteen päättävän lokikirjauksen c i,end-checkpoint, palvelin muuntaa tarkistuspisteen päivitettyjen sivujen taulun loogiset Rec-LSN-osoitteet fyysisiksi lokiosoitteiksi: Jokaiselle päivitettyjen sivujen taulun Rec-LSN(p)-arvolle määrätään sitä vastaava (tai konservatiivisesti alempi) fyysinen lokiosoite Rec-Addr(p). Näin saatu, pareista (p, Rec-Addr(p)) koostuva taulu sijoitetaan lokikirjaukseen c i,end-checkpoint, minkä jälkeen tietue viedään lokipuskuriin. 259

36 Esimerkki. Asiakkaalla c 1 aloitetaan uusi transaktio. Määrätään transaktiotunniste T 1 ja uusi LSN-arvo n 1. Tuotetaan lokikirjaus c 1,n 1,T 1,B. Transaktio T 1 haluaa sitten suorittaa operaation W[x 1,u 1,v 1 ] sivulle p, johon ei ole vielä operoitu sitten järjestelmän käynnistyksen. Asiakas c 1 pyytää sivua p palvelimelta päivitettäväksi c 1 :ssä. Palvelin naulitsee ja kirjoitussalpaa p:n. Palvelin kirjaa puskuroitujen sivujen tauluun p:n puskuroiduksi päivittämistä varten c 1 :ssä, lähettää kopion p:stä c 1 :lle ja vapauttaa lopuksi p:n salpauksen ja naulinnan. Asiakas c 1 asentaa p:n paikalliseen puskuriinsa ja kirjoitussalpaa sen. Asiakkaalla c 1 muutetaan sivulla p tietuepaikassa i sijaitseva monikko (x 1,u 1 ) monikoksi (x 1,v 1 ), määrätään uusi LSN-arvo n 2, tuotetaan lokikirjaus c 1,n 2,T 1,W, p,i,x 1,u 1,v 1,n 1, asetetaan Page-LSN(p) = n 2 ja Undo-Next-LSN(T 1 ) = n 2 ja vapautetaan sivun p salpaus. 260

37 Asiakkaan c 2 transaktio T 2 haluaa nyt suorittaa sivulle p operaation W[x 2,u 2,v 2 ], missä x 2 x 1. Asiakas c 2 pyytää sivua p palvelimelta päivitettäväksi c 2 :ssa. Palvelin lähettää sivun p takaisinkutsun c 1 :een. Asiakas c 1 lähettää lokikirjaukset n 1 ja n 2 sekä päivitetyn sivun p palvelimeen. Samalla c 1 viestittää palvelimelle, ettei enää puskuroi p:tä, ja poistaa sivun puskuristaan. Palvelin vie lokikirjaukset lokipuskuriin, naulitsee ja kirjoitussalpaa p:n, sijoittaa asiakkaalta c 1 saamansa p:n version p:lle varattuun puskurikehykseen, määrää LSN-arvoa n 2 vastaavan Rec-Addr-arvon, vie p:n päivitettyjen sivujen tauluun ja poistaa puskuroitujen sivujen taulusta tiedon p:n puskuroinnista c 1 :ssä. 261

38 Palvelin kirjaa puskuroitujen sivujen tauluun p:n puskuroiduksi päivittämistä varten c 2 :ssä, lähettää kopion p:stä c 2 :lle ja vapauttaa lopuksi p:n salpauksen ja naulinnan. Asiakas c 2 asentaa p:n paikalliseen puskuriinsa ja kirjoitussalpaa sen. Asiakkaalla c 2 muutetaan sivulla p tietuepaikassa j sijaitseva monikko (x 2,u 2 ) monikoksi (x 2,v 2 ), määrätään uusi LSN-arvo n 3 (> n 2 ), tuotetaan lokikirjaus c 2,n 3,T 2,W, p, j,x 2,u 2,v 2,m, missä m = Undo-Next-LSN(T 2 ), asetetaan Page-LSN(p) = n 3 Undo-Next-LSN(T 2 ) = n 3 ja vapautetaan sivun p salpaus. Sitten asiakas c 1 romahtaa transaktion T 1 ollessa vielä aktiivinen. ja 262

39 Palvelin ryhtyy suorittamaan ARIES-algoritmia romahtaneen asiakkaan c 1 puolesta. Analyysivaiheessa selataan palvelimen lokia ja rekonstruoidaan c 1 :n transaktiotaulu ja c 1 :n päivitettyjen sivujen taulu. Transaktiotaulussa on T 1. Päivitettyjen sivujen taulussa on pari (p,rec-lsn(p)), missä Rec-LSN(p) = n 2. Lokin selaus aloitetaan Rec-LSN(p):tä vastaavasta lokiosoitteesta Rec-Addr(p). Toistovaiheessa sivu p on haettava esiin ja sen Page-LSN tutkittava, koska Rec-LSN(p) n

40 Puskuroitujen sivujen taulusta havaitaan, että p on puskuroituna päivitystä varten asiakkaalla c 2. Kutsutaan p takaisin c 2 :sta. Asiakas c 2 lähettää lokikirjauksen n 3 ja päivitetyn sivun p palvelimeen. Samalla c 2 viestittää palvelimelle, ettei enää puskuroi p:tä, ja poistaa sivun puskuristaan. Palvelin vie lokikirjauksen n 3 lokipuskuriin, naulitsee ja kirjoitussalpaa p:n, sijoittaa asiakkaalta c 2 saamansa p:n version p:lle varattuun puskurikehykseen ja poistaa puskuroitujen sivujen taulusta tiedon p:n puskuroinnista c 2 :ssa. Elvytyksen toistovaihe voi nyt jatkua. Havaitaan, että Page-LSN(p) = n 3 > n 2. Vapautetaan p:n salpaus ja naulinta. Toistovaihe päätyy. 264

41 Peruutusvaiheessa keskeytetään T 1 kirjaamalla lokiin c 1,n 4,T 1,A, missä n 4 > n 3. Peruutetaan T 1, so. naulitaan ja kirjoitussalvataan p, toteutetaan operaation W[x 1,u 1,v 1 ] käänteisoperaatio W 1 [x 1,u 1,v 1 ] sivulle p ja kirjataan lokiin c 1,n 5,T 1,W 1, p,i,x 1,u 1,v 1,n 1, missä n 5 > n 4, asetetaan Page-LSN(p) = n 5 ja Undo-Next-LSN(T 1 ) = n 1 ja vapautetaan sivun p salpaus ja naulinta. Päätetään T 1 :n peruutus kirjaamalla lokiin c 1,n 6,T 1,C, missä n 6 > n 5, ja pakottamalla loki levylle. Entä mitä c 1 :n pitää tehdä, kun se käynnistyy uudestaan? Elvytyksen eteen ei c 1 :n ole enää tarpeen tehdä mitään, vaan se voi ryhtyä heti ottamaan vastaan uusia transaktioita. 265

42 Palvelimen häiriöistä elvytys Omista häiriöistään elpymiseksi palvelin ottaa määräajoin omia tarkistuspisteitä. Palvelimen tarkistuspisteessä lokiin kirjataan palvelimen aktiivisten transaktioiden taulu ja päivitettyjen sivujen taulu. Transaktiotaulussa on tiedot palvelimen omista transaktioista, so. niistä transaktioista, joita suoritetaan palvelimessa. Päivitettyjen sivujen taulussa on tieto jokaisesta palvelimen puskurissa olevasta päivitetystä sivusta, so. sivusta, jonka puskuriversio eroaa sivun levyversiosta. Päivittämättömästä sivusta p tulee merkintä palvelimen päivitettyjen sivujen tauluun, kun (1) p:n päivitetty versio saapuu p:tä ensimmäisenä päivittäneeltä asiakkaalta tai (2) palvelimen oma transaktio päivittää p:tä ensimmäisenä. Samalla määrätään Rec-Addr(p). 266

43 Palvelimen häiriöstä elvytys perustuu ARIES-algoritmin mukaisesti palvelimen viimeksi ottamaan tarkistuspisteeseen, joka on kokonaisuudessaan kirjattu lokiin ja ehtinyt levylle asti ennen häiriötä. Elvytyksen toistovaiheessa toistetaan kaikki eri asiakkaiden transaktioiden lokiin kirjatut päivitykset (samoin kuin palvelimen omien transaktioiden lokiin kirjatut päivitykset), jotka eivät olleet ehtineet palvelimen puskurista levylle ennen häiriötä. Elvytyksen peruutusvaiheessa peruutetaan palvelimen omat aktiiviset transaktiot. Analyysivaiheessa rekonstruoidaan päivitettyjen sivujen taulu alustaen se palvelimen ottamasta tarkistuspisteestä ja lisäämällä siihen vasta tarkistuspisteen jälkeen päivitetyt sivut. 267

44 Asiakkaan päivittämä sivu p, joka on saapunut palvelimeen ja kirjattu päivitetyksi ennen tarkistuspistettä, löytyy rekonstruoidusta päivitettyjen sivujen taulusta, koska siitä on merkintä lokiin vedostetussa päivitettyjen sivujen taulussa. Samoin löytyy sellainen sivu p, joka muuttui päivitetyksi vasta tarkistuspisteen jälkeen ja jonka lokikirjauksia on saapunut palvelimeen ja ehtinyt levylle ennen häiriötä, sillä analyysivaiheessa lokista poimitaan kaikki tarkistuspisteen aloituksen jälkeen päivitetyt sivut ja viedään ne rekonstruoituun päivitettyjen sivujen tauluun. Sitä vastoin taulusta ei välttämättä löydy sivua p, joka on ennen tarkistuspistettä päivittämättömänä lähetetty jollekin asiakkaalle c ensi kertaa päivitettäväksi. Tällaisen sivun p päivitysten ainoat lokikirjaukset ovat voineet saapua palvelimeen ja ehtiä levylle asti ennen tarkistuspistettä. 268

45 ... Sivu p noudetaan levyltä ja toimitetaan asiakkaalle c. Asiakkaan c transaktio T sitoutuu; T :n lokikirjaukset palvelimeen. c,n 2,T,W, p,i,x,u,v,n 1. c,n 3,T,C. Palvelin ottaa tarkistuspisteen: s,n 4,begin-checkpoint. s,n 5,transaction-table{...}. s,n 6,page-table{...} ei sisällä p:tä. s,n 7,end-checkpoint. Päivitetty p toimitetaan c:stä palvelimeen (esim. takaisinkutsusta). Palvelin vie p:n tiedot päivitettyjen sivujen tauluun. Asiakas c poistaa p:n puskuristaan. Palvelin romahtaa häiriöön. 269

46 Saatuaan palvelimelta varmistuksen lokikirjausten levylle viennistä asiakas c on poistanut lokikirjaukset paikallisesta puskuristaan. Tarkistuspisteen jälkeen asiakas c on lähettänyt päivitetyn sivun p palvelimeen ja poistanut sen paikallisesta puskuristaan. Asiakkaalla ei nyt enää ole tallessa p:n päivityksiä missään muodossa. Palvelin on asettanut p:n puskuriin, kirjannut p:stä tiedot päivitettyjen sivujen tauluunsa, pakottanut lokin levylle ja tiedottanut siitä asiakkaalle. Tarkistuspisteen ottamisen jälkeen ei palvelimeen ole tullut minkään transaktion päivitysten lokikirjauksia sivulle p eikä sivua p ole viety levylle. Palvelimen häiriön vuoksi puskurissa oleva päivitetty sivu p menetetään. 270

47 Analyysivaiheen tuloksena saatava, toistovaiheen aloituskohdan ilmoittama Redo-Addr-arvo voi olla suurempi kuin p:n päivitysten lokikirjausten osoitteet, jolloin asiakkaan c sitoutuneen transaktion sivulle p tekemiä päivityksiä ei toisteta, vaan ne menetetään. Yksinkertainen ratkaisu olisi viedä päivittämätön sivu p palvelimen päivitettyjen sivujen tauluun heti, kun sitä pyydetään puskuroitavaksi päivittämistä varten jollekin asiakkaalle. Rec-Addr(p)-arvo jää silloin kylläkin tarpeettoman varhaiseksi. 271

48 Parempi ratkaisu on sisällyttää palvelimen ottamaan tarkistuspisteeseen kaikkien asiakkaiden paikalliset päivitettyjen sivujen taulut. Palvelin aloittaa tarkistuspisteen kirjaamalla lokiin s,n, begin-checkpoint. Sitten palvelin pyytää kaikkia asiakkaita lähettämään palvelimeen vedoksen päivitettyjen sivujen tauluistaan. Kun kaikki asiakkaat ovat lähettäneet omansa, palvelin yhdistää oman taulunsa ja asiakkailta saamansa päivitystiedot ja vedostaa tiedot lokiin. Päivitettyjen sivujen Rec-LSN-arvot muutetaan Rec-Addr-osoitteiksi, kuten edellä on selostettu. Kirjataan lokiin palvelimen omien aktiivisten transaktioiden taulu. Kirjataan lokiin s,n,end-checkpoint{(p,rec-addr(p))-parit}. 272

49 Nyt analyysivaihe osaa määrätä tarpeeksi aikaisen Redo-Addrarvon, ja toistovaihe tuo kaikki lokiin kirjatut päivitykset palvelimen puskuriin. Kun palvelin on elpynyt häiriöstään, sen täytyy vielä suorittaa elvytys niiden asiakkaiden puolesta, jotka mahdollisesti sillä välin olivat romahtaneet, sekä hankkia käynnissä olevilta asiakkailtaan ne tiedot transaktioiden hallussa olevista lukoista ja puskuroiduista sivuista, joista on tarpeen olla tieto palvelimessa. Asiakkaiden täytyy lähettää uudestaan palvelimeen ne lokikirjaukset, joiden levylle viennistä ei ollut saatu varmistusta palvelimelta häiriön vuoksi. 273

50 Lukkojen hallinta Keskitettyihin tietokantoihin kehitettyjä lukitusmenetelmiä voidaan soveltaa myös sivupalvelinjärjestelmän transaktioiden samanaikaisuuden hallinnassa. Lukot voivat olla loogisia (avaimiin tai relaatioihin varattuja) tai fyysisiä (monikkotunnisteisiin tai sivuihin varattuja). Lukituskäytäntö täytyy sovittaa yhteen puskurointikäytännön kanssa. Koska puskurointi on fyysistä, on fyysisen lukituksen sovittaminen puskuroinnin kanssa suoraviivaisempaa kuin loogisen lukituksen. Sivun rakeisuudella toimiva ankara kaksivaihelukitus voidaan kytkeä suoraan puskurointiin siten, että sivun puskurointioikeus asiakkaalla säilytetään asiakkaan transaktion kestoajan. 274

51 Tietoalkioihin varattujen lukkojen ylläpitoa varten jokaisella asiakkaalla c on oma paikallinen lukkotaulu, johon kirjataan c:n transaktioiden hallussa olevat lukot. Asiakkaan c paikallisen lukkotaulun alkiot ovat normaaliin tapaan nelikkoja (T,x,m,d), missä x on lukon nimi, m lukon tyyppi, d kestoaika ja T asiakkaan c transaktion tunniste. Asiakkaiden transaktioiden varaamista lukoista pidetään kirjaa myös palvelimen globaalissa lukkotaulussa, johon lukot kirjataan asiakkaiden nimiin. Globaalin lukkotaulun alkiot ovat siis nelikkoja (c, x, m, d), missä x on lukon nimi, m lukon tyyppi, d kestoaika ja c asiakkaan tunniste. 275

52 Esimerkki. Asiakkaan c transaktio T alkaa ja pyytää S-lukkoa avainarvoon x. Asiakas c tarkistaa paikallisesta lukkotaulustaan, onko siinä S-lukon kanssa yhteensopimatonta lukkoa. Jos on, T jää odottamaan. Muutoin jos c:n paikallisessa lukkotaulussa on x:ään jollakin toisella c:n transaktiolla S-lukko, myöntää c S- lukon T :lle omalla päätöksellään, keskustelematta palvelimen kanssa. Jos c:n paikallisessa lukkotaulussa ei ole x:ää, c pyytää palvelimelta S-lukkoa x:ään omissa nimissään. Palvelin tarkistaa globaalista lukkotaulusta, onko siinä pyydetyn lukon kanssa yhteensopimatonta lukkoa. Jos on, asiakkaan pyyntö jää odottamaan. Jos ei ole, palvelin kirjaa globaaliin lukkotauluun pyydetyn lukon c:n nimiin ja palauttaa tiedon c:lle, joka kirjaa lukon paikalliseen lukkotauluunsa T :n nimiin. 276

53 Yhteislevyjärjestelmä Monet sivupalvelinjärjestelmän hallinnassa tarvittavat menetelmät soveltuvat sellaisinaan tai vähän muutettuina myös yhteislevyjärjestelmän (shared-disks system) hallintaan. Eroja syntyy siitä, että yhteislevyjärjestelmässä erillistä palvelinsolmua ei ole, vaan järjestelmän solmut ovat keskenään vertaisia: kussakin solmussa toimii täsmälleen saman tietokannan hallintajärjestelmän ilmentymä (instance), so. solmun yksityisessä keskusmuistissa toimiva prosessijoukko. Jokaisella solmulla on suora pääsy yhteiseen tietokantaan oman puskurinsa välityksellä: solmu voi tuoda sivun levyltä suoraan omaan puskuriinsa ja viedä päivitetyn sivun puskurista suoraan levylle. Sivu voidaan myös siirtää yhden solmun puskurista yhteenkytkentäverkon välityksellä toisen solmun puskuriin. Tämä onkin yleensä huomattavasti nopeampaa kuin sivun siirto levyn välityksellä. 277

54 Samoin kuin sivupalvelinjärjestelmässä, yhteislevyjärjestelmässä jokainen transaktio aloitetaan jossakin solmussa ja suoritetaan alusta loppuun samassa solmussa. Tällainen transaktio voi luonnollisesti olla jonkin hajautetun transaktion alitransaktio hajautetussa tietokantajärjestelmässä, jonka yhtenä pisteenä yhteislevyjärjestelmä toimii. Järjestelmän jokainen solmu ylläpitää omaa lokiaan, johon solmun transaktioiden lokikirjaukset ensin viedään. Solmu tuottaa transaktioidensa päivityskirjausten lokijärjestysnumerot samalla tavalla kuin sivupalvelinjärjestelmän asiakas. Järjestelmän solmuista yhdellä on pääsy kaikkien muiden solmujen lokitiedostoihin, ja tuossa solmussa toimiva prosessi tuottaa lokitiedostoista lomitettua versiota. 278

55 Sivun puskurointia solmujen puskureissa valvotaan samanlaisin puskurointioikeuksin kuin sivupalvelinjärjestelmässäkin: sivu voi olla puskuroituna samanaikaisesti useammassa solmussa lukemista varten, mutta puskurointi päivitystä varten yhden solmun puskurissa sulkee muilta solmuilta pois puskurointioikeuden. Solmun s 1 päivittämän sivun p päivitysoikeuden siirto solmulta s 1 solmulle s 2 voidaan toteuttaa eri tavoin. Yksinkertaisimmassa (ja hitaimmassa) tavassa p siirretään levyn kautta: s 1 vie p:n puskuristaan levylle WAL-käytäntöä noudattaen ja luopuu sitten päivitysoikeudestaan p:hen, minkä jälkeen s 2 saa päivitysoikeuden p:hen ja tuo p:n levyltä omaan puskuriinsa. Hieman nopeammassa tavassa s 1 vie p:n levylle ja samanaikaisesti siirtää p:n myös yhteyslinkin välityksellä suoraan s 2 :lle, jolta siten säästyy levyhaku. 279

56 Nopeimmissa tavoissa sivun p päivitysoikeuden nykyinen haltija s 1 ei vie sivua levylle, vaan s 1 ainoastaan pakottaa lokikirjaukset levylle Page-LSN(p):hen asti ja siirtää tämän jälkeen p:n sen päivitysoikeutta pyytäneeseen solmuun s 2 yhteyslinkin välityksellä. Päivitetty sivu voi nyt sisältää useammassa solmussa tehtyjä päivityksiä ennen kuin se aikanaan viedään levylle. Tämä vaikeuttaa häiriöstä elvytystä. Sivua p viimeksi päivittäneen solmun romahdettua menetetään p:n nykyversio. Sivun p saattaminen ajan tasalle p:n levyversiosta, josta puuttuu useamman eri solmun transaktioiden päivityksiä, vaatii eri solmujen lokeista lomitetun lokin läpikäyntiä tietystä LSN-arvosta alkaen. Kaikkein nopeimmassa siirtotavassa s 1 ei edes pakota lokikirjauksia levylle ennen p:n siirtoa s 2 :lle. WAL-käytäntöä täytyy nyt muuttaa niin, että päivitetty sivu voidaan viedä sitä viimeksi päivittäneen solmun puskurista levylle vasta kun kaikki sivua päivittäneet solmut ovat pakottaneet lokinsa levylle. 280

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

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

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

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

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

Transaktiopalvelimen rakenne, s. 43. Levyjaksot, sivut ja tiedostot, s. 46. Tietokantasivujen puskurointi, s. 53. Tietokannan tila, s. 57.

Transaktiopalvelimen rakenne, s. 43. Levyjaksot, sivut ja tiedostot, s. 46. Tietokantasivujen puskurointi, s. 53. Tietokannan tila, s. 57. Fyysinen tietokanta A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 24 26, luvun 1 (introduction) kohta 1.11 (database architecture); sivut

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

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

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

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

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

Hajautettujen transaktioiden hallinta

Hajautettujen transaktioiden hallinta Hajautettujen transaktioiden hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 1005 1028, luvun 24

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 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

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

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

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

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

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

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

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

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

The answers to many of these questions can be found in the article above, with the online link.

The answers to many of these questions can be found in the article above, with the online link. Hajautetut tietokannat Talvi 2015 Laskuharjoitus 5. T-106.5241 Distributed Databases Winter 2015 Tutorial 5 1/5 Sivupalvelimet ja yhteislevyjärjestelmät; kertausta Page Servers, Shared-Disk Systems; Review

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

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

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE 1) Navita Budjettijärjestelmä asennetaan palvelimelle asennetusta Navita\NavitaSetup kansiosta Setup komennolla tämä mahdollistaa Navita-työasemien automaattisen

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

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

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

[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

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

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

D B. Tiedostojen käsittely

D B. Tiedostojen käsittely Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin

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

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

Taitaja 2015 Windows finaalitehtävä

Taitaja 2015 Windows finaalitehtävä Taitaja 2015 Windows finaalitehtävä Tehtäväkuvaus Tehtävänäsi on siirtää, asentaa ja määritellä yrityksen Windows -ratkaisuihin perustuva IT-ympäristö. Käytä salasanaa Qwerty123, jos muuta ei ole pyydetty.

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

WEIKKA. Asennus opas. Hannu-Matti Lemettinen HML Productions 2009-2011

WEIKKA. Asennus opas. Hannu-Matti Lemettinen HML Productions 2009-2011 WEIKKA Asennus opas Hannu-Matti Lemettinen WEIKKA OHJELMAN ASENNUS Weikka ohjelman asennuksessa tarvitaan kaksi tiedostoa. Setup.exe sekä Weikka.msi tiedostot. Asennus käynnistetään suorittamalla (kaksoisnapsautus)

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...

Lisätiedot

Visma Avendon asennusohje

Visma Avendon asennusohje Visma Avendon asennusohje 1 Versio 5.21 On tärkeää, että käytössäsi on aina uusin toimittamamme versio ohjelmistosta. Asentamalla viimeisimmän version saat käyttöösi ohjelman tuoreimmat ominaisuudet ja

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

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Aditro Tikon ostolaskujen käsittely versio 6.2.0 Lokakuu 2012 1 (9) Aditro versio 6.2.0 Päivitysohje Lokakuu 2012 2 (9) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Aditro Pankkipalvelut yhteensopiva

Lisätiedot

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle.

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle. TEE KONEESTA CD-VARASTO: Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle. Siirrä cd-levysi TIETOJA Kopioi cd-levyt kiintolevylle levykuviksi, niin pääset sisältöön nopeasti käsiksi

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

Automaster tai MBS. 2. ODBC - ajurin asennus (jos ei ole jo asennettu)

Automaster tai MBS. 2. ODBC - ajurin asennus (jos ei ole jo asennettu) 1 GHTransaction-ohjelman asennusohje Copyright Grey-Hen Oy. All rights reserved. Sisältö: 1. Johdanto 2. ODBC - ajurin asennus 3. GH Transaction ohjelman asennus Automaster tai MBS 1. Johdanto GHTransaction

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

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

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

Aditro Tikon ostolaskujen käsittely versio SP1

Aditro Tikon ostolaskujen käsittely versio SP1 Toukokuu 2012 1 (8) Aditro versio 6.1.2 SP1 Päivitysohje Toukokuu 2012 2 (8) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Application Pool Identity...

Lisätiedot

Tiedon talletuspaikkoja. Levymuisti. Vaihtoehtoisia talletusrakenteita. Tietokantojen säilytys. R&G Chapter 8 & 9. Useita vaihtoehtoja:

Tiedon talletuspaikkoja. Levymuisti. Vaihtoehtoisia talletusrakenteita. Tietokantojen säilytys. R&G Chapter 8 & 9. Useita vaihtoehtoja: Tiedon talletuspaikkoja Levymuisti R&G Chapter 8 & 9 Levy: Pystytään noutamaan satunnainen sivu kiinteällä kustannuksella Useiden sivujen noutaminen halvempaa kuin satunnaisen sivun Nauha: Sivuja käsiteltävä

Lisätiedot

Levymuisti. R&G Chapter 8 & Tietokannan hallinta, kevät 2006, Jan 1

Levymuisti. R&G Chapter 8 & Tietokannan hallinta, kevät 2006, Jan 1 Levymuisti R&G Chapter 8 & 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedon talletuspaikkoja Levy: Pystytään noutamaan satunnainen sivu kiinteällä kustannuksella Useiden sivujen noutaminen halvempaa

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Toukokuu 2012 1 (14) Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Asennusohje Toukokuu 2012 2 (14) Sisällysluettelo 1. Vaatimukset palvelimelle... 3 1.1..NET Framework 4.0... 3 1.2. Palvelimen Internet

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta Tietokannan hallinta - kurssin tavoite Kurssilla opitaan periaatteet fyysisen tietokannan tallennuksesta ja käsittelystä tietokantakyselyiden muuntamisesta fyysisen tietokannan käsittelyoperaatioiksi kyselyn

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

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

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

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

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

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

VÄLIMUISTITIETOISET PUSKURIT. Markus Montonen

VÄLIMUISTITIETOISET PUSKURIT. Markus Montonen VÄLIMUISTITIETOISET PUSKURIT Markus Montonen Sisällys 1. Johdanto 2. L1-välimuistin puskuroinnin ongelma ja ratkaisuehdotus 3. L1-välimuistin puskurioperaation kokeellinen tutkiminen 4. L2-välimuistin

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

1. päivä ip Windows 2003 Server ja vista (toteutus)

1. päivä ip Windows 2003 Server ja vista (toteutus) 1. päivä ip Windows 2003 Server ja vista (toteutus) Olette pomosi kanssa tarkastaneet asiakkaan tekemän ja sinun korjaaman suunnitelman ja tehneet oman versionsa siitä. Noudata siis tätä tekemäänne uutta

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

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1 Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija OUGF syysseminaari 2002 Sivu 1 Oracle 8i (8.1.7) muistinkäyttöä ja viritystä: SGA ja PGA mitä ne on ja niihin vaikuttavat init.orat SGA:n rakenne Kannan

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

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

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

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I. Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu HELIA 1 (21) Luento 3.1 Suorituskyvyn optimointi... 2 Suunnittele... 3 Tiedonhallintajärjestelmän rakenne... 4 SQL-käsittelijä... 5 Parsinta... 5 Optimointi... 5 Tilan käsittelijä... 5 Puskurin käsittelijä

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

Windows 8.1:n vaiheittainen päivitysopas

Windows 8.1:n vaiheittainen päivitysopas Windows 8.1:n vaiheittainen päivitysopas Windows 8.1:n asennus ja päivitys Päivitä BIOS, sovellukset ja ohjaimet ja suorita Windows Update Valitse asennustyyppi Asenna Windows 8.1 Käy Samsungin päivitystukisivust

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

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

Visma L7 Visma Sign. Sähköinen allekirjoittaminen L7:ssä

Visma L7 Visma Sign. Sähköinen allekirjoittaminen L7:ssä Visma L7 Visma Sign Sähköinen allekirjoittaminen L7:ssä Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta.

Lisätiedot

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

D B. Levytiedostojen käsittely. Levytiedostojen käsittely Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Visma GATEWAY INSTALLER. asennusopas

Visma GATEWAY INSTALLER. asennusopas Visma GATEWAY INSTALLER asennusopas 1 Sisällys Tietoa dokumentista...3 Tuetut käyttöjärjestelmät...3 GATEWAY INSTALLER sovelluksen itselatausohjelma...3 GATEWAY INSTALLER sovelluksen suorittaminen...4

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

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

Langattomien kauko-ohjainten WR-1/WR-R10 laiteohjelman päivittäminen

Langattomien kauko-ohjainten WR-1/WR-R10 laiteohjelman päivittäminen Langattomien kauko-ohjainten WR-1/WR-R10 laiteohjelman päivittäminen Kiitos, että valitsit Nikon-tuotteen. Tässä oppaassa kerrotaan, kuinka päivitetään laiteohjelma langattomiin kauko-ohjaimiin WR-1 ja

Lisätiedot

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE Ennen palvelinohjelman asennusta perustetaan tarvittavat kansiot. Oikeustasoista share- tai security-tason oikeudet riittävät; molempien oikeustasojen

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

ARKIPÄIVÄN SUOMEA-ohjelma vaatii toimiakseen multimedia-pc:n, jossa on seuraavat tekniset ominaisuudet ja ohjelmat asennettuna.

ARKIPÄIVÄN SUOMEA-ohjelma vaatii toimiakseen multimedia-pc:n, jossa on seuraavat tekniset ominaisuudet ja ohjelmat asennettuna. ASENNUS Ennen ARKIPÄIVÄN SUOMEA-ohjelman käytön aloittamista se on asennettava tietokoneeseen. Asentaminen suoritetaan alla esitettävien ohjeiden mukaisesti. Huom: ARKIPÄIVÄN SUOMEA-ohjelmasta on saatavana

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

Lisätiedot

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO TEHTÄVÄ 2: Symantec Endpoint Protection Manager, SEPM keskitetyn tietoturva hallintaohjelmiston asennus, sekä vaadittavien palveluiden/roolien käyttöönottaminen

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

FuturaPlan. Järjestelmävaatimukset

FuturaPlan. Järjestelmävaatimukset FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0

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

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

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

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

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta

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

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot