Läsnäolo: 3 tehtävää
1. Millaisesta operaatiosarjasta koostuu tyypillinen pankkiautomaattitransaktio? Oletetaan, että tunnusluku tarkistetaan paikallisesti (ei tietokannasta), mutta tilitiedot ovat tietokannassa. Tarkastele myös toiminnan mahdollisia häiriökohtia tapahtumienhallinnan näkökulmasta. 2. Oletetaan, että järjestelmän romahdettua lokitiedoston sisältö on seuraava: 100: [start, T1] 101: [start, T2] 102: [write, T1, A, 10, 20] 103: [write, T2, B, 11, 22] 104: [commit, T1] 105: [start, T3] 106: [write, T3, A, 20, 30] 107: [abort, T2] 108: [checkpoint] 109: [start, T4] 110: [write, T3, B, 11, 33] 111: [write, T3, A, 30, 40] 112: [write, T4, C, 15, 25] 113: [commit, T3] 114: [write, T4, C, 25, 35] a) Mitä operaatioita sisältyy tästä tilanteesta alkavaan elvytykseen? Oletetaan, että tietoalkion A sisältävän sivun PageLSN = 106, tietoalkion B sisältävän sivun PageLSN = 110 ja tietoalkion C sisältävän sivun PageLSN = 112. b) Oletetaan, että tarkistuspistettä (checkpoint) ei olisi otettu ollenkaan. Mikä on tällöin se toiminnan vaihe, jossa elvytys saattaa vaatia eniten toimenpiteitä? 3. Mitä etua on WAL-käytännöstä puskurinhallinnassa? Onko käytäntö suorastaan välttämätön? 4. Miksi elvytyksessä undo-operaatiot suoritetaan selaamalla lokia lopusta alkuun päin ja redo-operaatiot alusta loppuun päin? Anna esimerkki tilanteesta, joka osoittaa konkreettisesti näiden järjestysten merkityksen. 5. Oletetaan, että tietokannan hallintajärjestelmä on parhaillaan toipumassa häiriöstä eli suorittaa elvytysoperaatioita (undo, redo). Miten menetellään, jos kesken elvytyksen sattuu uusi häiriö. Pitäisikö myös elvytysoperaatioiden suorituksesta kirjata lokitietueita? 6. Millaista sitoutumiskäytäntöä pitäisi noudattaa, jos halutaan, ettei elvytyksessä tarvitsisi koskaan uusia (redo) transaktioiden operaatioita? Mitä huonoja puolia tällä käytännöllä on?