Tosiaikatietokannat. Anu Kontio. Helsinki Tietokannat nyt seminaari HELSINGIN YLIOPISTO. Tietojenkäsittelytieteen laitos

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

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen,

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Transaktiot - kertausta

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

Tietokanta (database)

Algoritmit 1. Luento 3 Ti Timo Männikkö

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

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

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

Tosiaikajärjestelmät Luento 5: Resurssien hallinta ja prioriteetit

Käyttöjärjestelmät: prosessit

Skedulerisimulaattorin implementointi fysiikkatöille ja sen matemaattinen validointi

Sovellusarkkitehtuurit

Tietokantarakenteet ja -algoritmit 6. harjoitus

CUDA. Moniydinohjelmointi Mikko Honkonen

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

Algoritmit 2. Luento 7 Ti Timo Männikkö

UML -mallinnus TILAKAAVIO


A TIETORAKENTEET JA ALGORITMIT

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Action Request System

D B. Tietokannan hallinta kertaus

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)

Samanaikaisuuden hallinta Snapshot Isolationin avulla

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Nopea kertolasku, Karatsuban algoritmi

HELIA 1 (11) Outi Virkki Tiedonhallinta

Stabiloivat synkronoijat ja nimeäminen

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

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

52480S TIETOKEARKKITEHTUURIT Tentti

811312A Tietorakenteet ja algoritmit I Johdanto

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Tietorakenteet ja algoritmit - syksy

Keskusmuistitietokantojen samanaikaisuuden hallinta

Tietosisällön eheys. Kimmo Janhunen Riskienhallintapäällikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

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

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

Maiju Mykkänen Susanna Sällinen

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

Luento 2: Tiedostot ja tiedon varastointi

Tietohakemisto ja Transaktionkäsittely

LAPS: Testbedhavainnoista. analyysiksi. Janne Kotro Kaukokartoitus/Tutkimus

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

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

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Tietoturvan Perusteet Yksittäisen tietokoneen turva

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

TMR 08 Viikkoajastin/kytkin. Käyttöohjekirja

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

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

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Arto Salminen,

HELIA 1 (15) Outi Virkki Tiedonhallinta

Jatkuvatoiminen monitorointi vs. vuosittainen näytteenotto

Luento 1 Tietokonejärjestelmän rakenne

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus


Kombinatorinen optimointi

11/20: Konepelti auki

Yritysturvallisuuden perusteet

Tutkimus web-palveluista (1996)

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

TOR Arkkitehtuuri. - Muiden palveluiden hyödyntäminen - Tiedon loogiset vastuut - Tietovirrat - Master data -malli - Tietojen siirto

Advanced Test Automation for Complex Software-Intensive Systems

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

Johdatus verkkoteoriaan 4. luento

811120P Diskreetit rakenteet

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

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

Ohjelmoinnin perusteet Y Python

OpenOffice.org Base 3.1.0

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

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

Ohjelmoinnin peruskurssi Y1

Männyn laaturajojen integrointi runkokäyrän ennustamisessa. Laura Koskela Tampereen yliopisto

Seurantalaskimen simulointi- ja suorituskykymallien vertailu (valmiin työn esittely) Joona Karjalainen

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Transkriptio:

Tosiaikatietokannat Anu Kontio Helsinki 2.3.2009 Tietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SISÄLLYS 1 JOHDANTO...1 2 TOSIAIKATIETOKANNAN OMINAISUUDET...2 2.1 DATAN OMINAISUUDET...2 2.2 DATAN KÄSITTELY...3 2.3 KÄYTTÖKOHTEITA...3 3 TRANSAKTIOT JA SAMANAIKAISUUDEN HALLINTA...4 3.1 TRANSAKTIOIDEN AIKAVAATIMUKSET...4 3.2 TRANSAKTIOIDEN ENNUSTETTAVUUS...6 3.3 TRANSAKTIOIDEN PRIORITEETTI...6 3.4 AIKATAULUTUS JA SAMANAIKAISUUDEN HALLINTA...7 4 TUTKIMUS...9 5 YHTEENVETO...10 LÄHTEET...11

1 Johdanto Perinteiseen tietokantamalliin kuuluu kyselyjä, transaktioita, tiedon tallennusta ja hallintaa ja jonkinlaista samanaikaisuudenhallintaa. Perinteinen tietokanta ei ota lainkaan kantaa aikarajoitteisiin, joita tietynlaisissa sovelluksissa kuitenkin kaivattaisiin. Esimerkiksi lennonjohdon sovelluksissa tai tehtaan liukuhihnan hallinnassa tietyt tiedot ovat voimassa vain lyhyen aikaa. Tällaisissa sovelluksissa on hyvin tärkeää, että tiedot kannassa ovat jatkuvasti ajantasalla ja nopeasti saatavilla. Tarvitaan nopeita transaktioita, joilla on suoritukseen liittyviä aikarajoitteita, niiden käsittelyyn soveltuvia protokollia, sekä datan voimassaolomääreitä ja -rajoitteita. Tähän on ratkaisuna tosiaikatietokanta. Tosiaikatietokantojen transaktioille on määriteltävissä valmistumisen aikarajoja, suorituksen alkamisaikoja ja periodipituuksia [SSH99]. Näiden lisäksi myös datalle on määritelty aikasemantiikka (time semantics, [SSH99]), joka määrää mm. datan voimassaoloajan pituuden (eli ajanjakson, jonka aikana data on päivitettävä). Tosiaikatietokannassa datan täytyy olla sekä loogisesti että ajallisesti yhdenmukaista [Ram93]. Tosiaikatietokantoja käytetään esimerkiksi sellaisissa sovelluksissa, jotka tallentavat dataa ympäristöstä sensoreiden avulla. Silloin on tärkeää, että kannassa oleva data vastaa mahdollisimman tarkasti ympäristön tilaa. Tosiaikatietokantasysteemin laatua voidaan arvioida transaktioiden suoritusten perusteella: kuinka usein transaktiot myöhästyvät (eli eivät tule suoritetuksi ajoissa), keskiarvoinen myöhästymisen määrä, myöhästymisistä aiheutuneet kulut, datan oikeellisuus ja datan ajallinen oikeellisuus [KaG95]. Tosiaikatietokantasysteemeissä on erilaisia tapoja käsitellä myöhästyviä transaktioita. Näitä käsitellään lisää luvussa 3. Tässä seminaarityössä esitellään tosiaikatietokantojen peruspiirteitä, käyttökohteita, ja eroja perinteisiin tietokantoihin (luku 2). Lisäksi esitellään transaktioiden käsittelyä ja samanaikaisuuden hallintaa tosiaikatietokannoissa (luku 3). Luvussa 4 esitellään vielä aiheeseen liittyviä tutkimuskohteita. 1

2 Tosiaikatietokannan ominaisuudet Tyypillisesti tosiaikajärjestelmät koostuvat kontrolloivasta järjestelmästä ja kontrolloidusta järjestelmästä [Ram93]. Kontrolloidulla järjestelmällä tarkoitetaan esimerkiksi ympäristöä, jota kontrolloiva järjestelmä valvoo. Ympäristöä voidaan havainnoida sensoreiden avulla. Sensoreista saatavan tiedon avulla järjestelmä tekee erilaisia toimintoja, esimerkiksi säätää lämpötilaa. Siksi on tärkeää, että ympäristöstä saadut tiedot ovat erittäin ajantasaisia. Sensoreista saadusta datasta voidaan myös johtaa muuta dataa. Datan aikarajoitteiden avulla voidaan varmistua datan oikeellisuudesta ja ajantasaisuudesta. Nopeasti muuttuvassa ympäristössä datan voimassaoloaika on lyhyempi, kuin hitaammin muuttuvassa ympäristössä. Datan aikarajoitteiden lisäksi myös datan käsittelyllä ja transaktioilla on aikarajoitteita. Transaktioita käsitellään luvussa 3. 2.1 Datan ominaisuudet Dataobjektit voidaan luokitella tosiaikaisiksi tai ei-tosiaikaisiksi objekteiksi [IDS08]. Ei-tosiaikainen data on tavallista dataa, jota on perinteisissä tietokannoissa. Tosiaikaisella datalla on aikarajoite, jonka jälkeen data ei ole enää käytettävissä. Datan aikarajoitteista käytetään myös nimitystä ajallinen yhdenmukaisuus (temporal consistency) [Ram93]. Se koostuu kahdesta osasta: absoluuttinen yhdenmukaisuus (absolute consistency), joka viittaa tietokannan tilaa suhteessa ympäristön tilaan, ja suhteellinen yhdenmukaisuus (relative consistency), joka viittaa sen datan oikeellisuuteen, josta johdetaan muuta dataa. Tämä voidaan ilmaista formaalimmin muodossa d = (value, avi, timestamp), jossa d tarkoittaa tietokannan tietuetta, value tarkoittaa d:n senhetkistä arvoa, timestamp on aikaleima, jolloin d:n senhetkinen arvo on mitattu ja tallennettu. avi puolestaan on absolute validity interval, eli se aika, jonka d on voimassa [Ram93]. Tämän lisäksi määritellään joukko relative consistency set [Ram93], R, joka koostuu useasta sellaisesta tietueesta, joista johdetaan uutta dataa. Jokaiselle R:lle on olemassa 2

suhteellinen aikaväli (relative validity interval), jolloin R:n alkioiden ajatellaan olevan valideja. Tätä merkitään R rvi. Oletetaan, että d kuuluu R:ään. Silloin d on validi jos ja vain jos [Ram93]: 1) d value on loogisesti oikeellinen (täyttää kaikki eheysvaatimukset) 2) d on ajallisesti yhdenmukainen, eli absoluuttinen yhdenmukaisuus: (current_time d timestamp ) d avi. suhteellinen yhdenmukaisuus: d R, d timestamp d timestamp R rvi. 2.2 Datan käsittely Kuten perinteisissä tietokannoissa, myös tosiaikatietokannoissa tiedon käsittelytapahtumat ovat joko säännöllisiä (periodic), epäsäännöllisiä (aperiodic) tai satunnaisia (sporadic) [IDS08]. Säännölliset tapahtumat takaavat datan ajallisen yhdenmukaisuuden päivittämällä säännöllisin väliajoin esimerkiksi sensoreista saatavaa dataa, jolla on jokin tietty voimassaoloaika. Tällöin oikeellisuus saadaan suorittamalla säännöllinen päivitys datan voimassaoloajan mukaan. Päivitys koskee datan value- ja timestamp-kenttiä [IDS08]. Satunnaiset tapahtumat liittyvät usein johdetun datan laskemiseen sensoreilta saadusta datasta. Nämä tapahtumat ovat aina kirjoittavia, ja niilläkin on aikarajoitteina määräaika ja periodisuus [IDS08]. Epäsäännöllisiin tapahtumiin kuuluvat loput datan käsittelyyn liittyvät tapahtumat [IDS08], kuten esimerkiksi käyttäjältä tulevat tapahtumakäskyt. Nämä tapahtumat voivat lukea ja kirjoittaa ei-tosiaikaisia dataobjekteja ja ainoastaan lukea tosiaikaisia dataobjekteja. 2.3 Käyttökohteita Nykypäivänä on olemassa paljon erilaisia järjestelmiä, jotka käyttävät aikarajoitteista dataa. Esimerkkeinä voidaan mainita pörssijärjestelmät, teollisuuden automatisoidut tuotantolinjat sekä lentokone- ja lennonjohtojärjestelmät (myös tutkat) [Ram93]. Nykyajan kännyköissäkin käytettäneen GPS-paikantimen kautta jonkinlaista tosiaikatietokantajärjestelmää. Näitä järjestelmiä yhdistävä tekijä on se, että kaikkiin liittyy jonkinlainen ympäristö, jota tarkkaillaan sensoreiden avulla ja ohjataan sensoreilta 3

saadun datan perusteella [LaK01, sivu 17]. Esimerkiksi lentokoneessa on lukuisia sensoreita [IDS08], joiden avulla ohjaamossa tiedetään esimerkiksi suunta, sijainti, korkeus ja nopeus. Näiden lisäksi tietokannassa olisi koneen numero ja määränpää, joita ei tarvitse jatkuvasti päivittää. Sensoreista saadun datan perusteella lasketaan koneen reitti (sijainnin ja korkeuden mukaan) ja lentorata (sijannin ja suunnan mukaan). Järjestelmään kuuluu lisäksi menetelmät tietojen hakemiseen ja päivittämiseen. Toinen esimerkki käyttökohteista on tehtaan liukuhihnan kohteentunnistus [Ram93]. Kohteen kulkiessa liukuhihnalla se kuvataan kameralla, sen piirteet määritetään, verrataan niitä tietokannassa oleviin tietoihin, kohde tunnistetaan tietojen perusteella, ja ohjataan oikeaan suuntaan. Tämän kaiken tulee tapahtua tietenkin hyvin nopeasti, sillä liukuhihna liikkuu koko ajan. 3 Transaktiot ja samanaikaisuuden hallinta Perinteisistä tietokannoista poiketen tosiaikatietokannoissa tarvitaan myös aikarajoitteisia transaktioita [LaK01, sivut 3-4]. Tällä tarkoitetaan, että transaktioiden suoritusaika on rajoitettu ja että niillä on tiettyjä määräaikoja, joihin mennessä transaktion tulee olla valmis. Transaktioiden käsittelyyn tarvitaan erilaisia protokollia, joiden avulla kriittisimmät transaktiot tulevat suoritettua ensin, ja jotka huolehtivat myös määräajoista. Transaktiot voidaan jakaa kolmeen luokkaan [Ram93]: write-only, jotka vain kirjoittavat tietoa kantaan, read-only, jotka vain lukevat tietoa kannasta, ja update, jotka päivittävät kannassa olevia tietoja (luku ja kirjoitus). Koska transaktiot saattavat tapahtua yhtäaikaisesti (esimerkiksi toinen transaktio haluaa päivittää tietoa, jota toinen transaktio haluaa samalla lukea) ja tietokannan eheys täytyy säilyttää, tarvitaan myös samanaikaisuuden hallintaa. 3.1 Transaktioiden aikavaatimukset Transaktiot voidaan jakaa luokkiin myös määräaikojen perusteella [Ram93]. Oikeastaan tarkoitetaan sitä, miten järjestelmä käyttäytyy, kun määräaika ohitetaan [LaK01, sivu 4]. Tällöin puhutaan pehmeistä (soft), lujista (firm) ja kovista (hard) trans- 4

aktioista. Transaktion arvo suhteessa sen päättymisaikaan voidaan esittää funktiona (kuva 1) [LaK01, sivu 4]. Pehmeissä transaktioissa arvo pienenee määräajan ohituttua kohti nollaa. Lujissa transaktioissa arvo nollautuu kun määräaika menee umpeen. Kovissa transaktioissa määräajan umpeuduttua arvo muuttuu (jopa äärettömän) negatiiviseksi, mikä saattaa johtaa katastrofaalisiin seurauksiin. Esimerkki määräajasta voisi olla reaktorin lämpötilan säätely. Jos lämpötila on yli 1000 astetta, lisää jäähdytettä reaktoriin 10 sekunnin kuluessa, eli toiminnon aikaraja on 10 sekuntia [Ram93]. Esimerkiksi jos transaktio on jaettu alitoimintoihin, joille on määritelty määräajat, ja jokin alitoiminto ylittää määräaikansa, saattaa koko transaktio silti suoriutua loppuun oman määräaikansa puitteissa. Silloin on kyseessä pehmeä määräaika [Ram93]. Liukuhihnaesimerkissä on luja määräaika, sillä tieto on kerättävä kohteesta ennen kuin se poistuu kameran näkökentästä. Kuva 1: Transaktioiden aikarajat [LaK01, sivu 4] Määräaikojen lisäksi transaktioihin liittyy periodisia aikarajoja. Datan voimassaoloaika (avi) vaikuttaa sitä päivittävän säännöllisen transaktion periodin pituuteen. Transaktion sanotaan olevan oikeellinen, jos sen suoritus on alkanut ja päättynyt periodin sisällä [Ram93]. 5

3.2 Transaktioiden ennustettavuus Transaktioiden hallinnassa avaintekijänä on ennustettavuus (predictability) [Ram93]. Ennustettavuudella tarkoitetaan aavistusta siitä, suoriutuuko transaktio loppuun ennen sen määräaikaa. Ennustaminen on mahdollista vain, jos tiedetään transaktion huonoin mahdollinen suoritusaika (worst-case execution time) ja transaktion tarvitsemat datat ja resurssit. Hyvällä ennustettavuudella voidaan säästää resursseja, sillä jos tiedetään, ettei transaktio ehdi suoriutua ennen määräaikaansa, järjestelmä voi keskeyttää tai hylätä sen. Kuitenkaan ennustettu huonoin suoritusaika ei saa kovin radikaalisti erota varsinaisesta (todellisesta) suoritusajasta, sillä muuten transaktiot, jotka saattaisivat hyvinkin suoriutua ajoissa, saattavat tulla hylätyiksi. Transaktion suoritus riippuu sen tarvitsemista data-alkioista ja niiden saatavuudesta. Transaktio voi joutua esimerkiksi odottamaan lukkojen vapautumista tai muita resursseja. Siksi ennustaminen voi olla hankalaa. Tosiaikatietokantatransaktioissa ei suositella käytettäväksi äärettömiä silmukoita tai rekursiivisia ja dynaamisesti konstruoituja tietorakenteita [Ram93]. Myös peruutukset huonontavat ennustettavuutta. Jos transaktio keskeytetään ja käynnistetään uudelleen useita kertoja, sen kokonaissuoritusaika kasvaa huomattavasti tai keskeytyksiä voi tulla lukematon määrä. Kaikki tämä syö resursseja muilta operaatioilta. Tässäkin olisi hyvä, jos tiedettäisiin, tuleeko transaktio suoritetuksi kokonaan ajoissa, ja jos ei, voitaisiin se jättää kokonaan aloittamatta ja näin vähentää keskeytyksien määrää [Ram93]. 3.3 Transaktioiden prioriteetti Tosiaikatietokantasysteemissä transaktioita hallitaan aikataulutuksella (skedulointi, scheduling) [KaG95]. Aikataulut tulisi laatia transaktion kriittisyyden ja määräaikojen perusteella. Tämä saattaa tarkoittaa luopumista reiluudesta ja parhaasta järjestelmän suoritustehosta. Transaktion prioriteetti voidaan laskea useasta attribuutista [KaG95]. Ensimmäiset ovat kriittisyys (criticalness) ja määräaika. Mitä kriittisempi transaktio ja mitä aikaisempi sen määräaika, sitä korkeampi prioriteetti. Tekemättömän työn 6

määrä vaikuttaa siten, että mitä vähemmän transaktiolla on suoritettavia osia jäljellä, sen prioriteettia voidaan nostaa. Näin saadaan suoritus nopeammin päätökseen ja transaktion vaatimat lukot vapautettua. Jos transaktioon on käytetty jo paljon laskentaa, voidaan sen prioriteettia nostaa, jottei sen suoritusta tarvitse peruuttaa. On tuhlausta peruuttaa jo paljon resursseja vaatinut transaktio. Transaktion ikä tarkoittaa sen saapumisaikaa. Aiemmin saapuneen transaktion prioriteetti tulisi olla korkeampi kuin myöhemmin saapuneen. Transaktion löysyys (slackness) tarkoittaa sitä, kuinka paljon transaktion suoritusta voidaan lykätä niin, että se kuitenkin tulee valmiiksi määräaikansa puitteissa. Mitä tiukempi (eli vähemmän löysä) transaktio, sitä korkeampi prioriteetti sille tulee antaa. Jos prioriteetin laskenta perustetaan löysyyteen ja tekemättömän työn määrään, tarvitaan hyvät ennusteet transaktion suoritusajalle [KaG95]. 3.4 Aikataulutus ja samanaikaisuuden hallinta Aikataulutukseen on erilaisia menetelmiä. Osa jakaa prioriteettiä edellisessä osassa kerrotulla periaatteella, osa hieman eri tavoin. Tärkein piirre tosiaikatietokantajärjestelmän skeduloinnissa on kuitenkin aikatietoiset protokollat (time-cognizant protocols), jotka ovat muunnoksia perinteisissä tietokannoissa käytetyistä transaktion ja samanaikaisuuden hallintaprotokollista. Aikataulutuksessa käytetään esimerkiksi earliest-deadline-first (EDF) tai rate-monotonic (RT) menetelmiä. Ne toimivat optimaalisesti kovien (ja säännöllisten) transaktioiden suhteen [Ram93]. Epäsäännöllisten ja satunnaisten transaktioiden käsittely on hieman hankalampaa. Samanaikaisuuden hallinta tietokannoissa jaetaan lukitseviin ja optimistisiin menetelmiin. Yleisin lukitseva menetelmä on kaksivaiheinen lukitus (two-phase locking, 2PL). Siinä lukon saanut transaktio pitää lukkoa, kunnes sitoutuu, vaikka toinen, korkeampiprioriteettinen transaktio tarvitsisi lukon. Tulisi kuitenkin ottaa huomioon konfliktoivien transaktioiden ominaisuudet ja toimia sen mukaisesti. Tähän on muutamia vaihtoehtoja: 7

Jos lukkoa odottavalla transaktiolla on korkeampi prioriteetti kuin lukkoa pitävällä, syntyy tilanne, jota kutsutaan käänteiseksi prioriteetiksi (priority inversion) [Ram93]. Yksi tapa tilanteen purkamiseen on periyttää lukkoa pitävälle transaktiolle odottavan transaktion prioriteetti, jolloin sen suoritus jatkuu ja odottaja ei joudu odottamaan loputtomiin. Prioriteetin perintä (priority inheritance) vaikuttaisi lyhentävän transaktioiden odottamisaikoja [Ram93]. Sekään ei kuitenkaan aina takaa optimaalista toimintaa. Jos lukkoa pitävällä transaktiolla on pienempi prioriteetti, keskeytetään se. Muussa tapauksessa lukkoa odottava saa jäädä odottamaan. Jos korkeampiprioriteettinen transaktio aiheuttaa aina matalampiprioriteettisen transaktion keskeytyksen, tiedon eheys ei välttämättä enää toteudu [Ram93]. Jos lukkoa pitävällä transaktiolla on määräaika lähempänä, lukkoa odottava joutuu odottamaan huolimatta sen prioriteetista. Paras menetelmä aikatauluttaa transaktioita tosiaikatietokannassa on yhdistelmä näitä kolmea. Jos lukkoa pitävä, matalaprioriteettinen transaktio on lähempänä määräaikaansa kuin lukkoa odottava, järkevintä on periyttää prioriteetti, jotta lukkoa pitävä transaktio saadaan suoritetuksi loppuun, ja lukkoa odottava pääsee jatkamaan suoritustaan mahdollisimman lyhyellä odottelulla [Ram93]. Voidaan huomata jälleen, että vaikka perinteisissä tietokannoissa käytettävät menetelmät eivät aina suoraan sovellu tosiaikatietokantoihin, voidaan menetelmiä muokata sopiviksi. Optimistisissa menetelmissä suurin heikkous on myöhään tapahtuva validointi, joka ei anna mahdollisuutta transaktion ominaisuuksien huomioimiseen. Validoinnilla tarkoitetaan transaktioiden konfliktien tarkistusta. Mikäli konflikteja tapahtuu, keskeytetään transaktio. 8

4 Tutkimus Vaikka tosiaikatietokantoja on tutkittu jo paljon, on alalla vielä paljon haasteita tutkijoille. Kehittyvät laitteistot tarjoavat puitteet nopeammalle laskennalle ja tiedonkäsittelylle, sekä tehokkaampia ja halvempia komponentteja. Suurimmat tutkimushaasteet liittyvät samanaikaisuuden hallintaan ja ongelmista toipumiseen. Eräs tärkeä tutkimuskohde on järjestelmän huonoin mahdollinen käyttäytyminen (worst-case system behavior) [LaK01, sivu 280] ja transaktioiden suoritusaika (worstcase execution time) [SSH99]. Tämä on hankala alue tutkia, sillä siihen liittyy niin monta erillistä komponenttia, jotka vaikuttavat tulokseen. Laitteiston rakenne ja datan määrä vaikuttavat suuresti. Aikataulutusalgoritmien täytyy ottaa huomioon sekä laitteiston resurssit että datan aikataulutusvaatimukset. Tarpeen olisikin ymmärrys ja tieto siitä, kuinka samanaikaisuuden hallinta ja transaktioiden aikataulutus voitaisiin sovittaa paremmin yhteen [SSH99]. Tähän liittyen toisena tutkimuskohteena olisi määritellä uusi kriteeri tietokannan oikeellisuudelle ja kehittää menetelmiä, joiden avulla transaktioiden sarjallistuvuus voitaisiin korvata oikea-aikaisuudella (timeliness), sillä yleensä sarjallistuvuus on ollut avaintekijänä aikataulujen oikeellisuudessa [SSH99]. Suuria datamääriä käsiteltäessä indeksointi on tärkeässä asemassa [LaK01, sivu 280]. Aiemmat tutkimukset ovat keskittyneet B-puurakenteisiin indekseihin. Tosiaikaista tiedonsaantimenetelmää, johon voisi yhdistää muita menetelmiä, kuten hajautusta, ei ole vielä tutkittu [LaK01, sivu 280]. Tällaista suunnitellessa tulisi myös ottaa huomioon tosiaikatietokannan datan aikarajoitukset. Suuren datamäärän hallintaa voitaisi kehittää myös laitteiston osalta [LaK01, sivu 280]. Multiprosessorit ovat jo arkipäivää, joten rinnakkainen tai hajautettu laskenta tehostaisi tosiaikatietokantojen toimintaa. Tarkistuspisteet ja ongelmista toipuminen ovat olleet perinteisissä tietokannoissa aktiivisesti tutkittu ja kehitetty alue [LaK01, sivu 280-281]. Tosiaikatietokannoissa näitä ei ole vielä riittävästi tutkittu. Laitteistojen kehityksen ja halpenemisen myötä tietokannat siirretään toimimaan keskusmuistissa, jolloin toivotaan nopeampia suori- 9

tusaikoja transaktioille. Tämä kuitenkin aiheuttaa ongelmia järjestelmän luotettavuudelle. Samanaikaisuuden hallintaprotokollien ja toipumisalgoritmien toimiva yhdistelmä on tärkeä osa luotettavan ja nopean tosiaikatietokantajärjestelmän suunnittelua [LaK01, sivu 281]. Tähän liittyy lisäksi transaktioiden perumisista syntyvät ongelmat [SSH99]. Haasteita tarjoaa myös tosiaikatietokantasysteemien integrointi kaupallisiin järjestelmiin [LaK01, sivu 281]. Pitäisi saada aikaan tosiaikaista suorittamista kustannustehokkaasti perinteisessä ei-tosiaikaisessa ympäristössä. Tämä aiheuttaa ongelmia järjestelmän turvallisuudelle. Käänteinen prioriteetti ajattelumalli, joka on tarpeellinen tosiaikasysteemeissä, ei saisi esiintyä turvallisissa järjestelmissä [SSH99]. 5 Yhteenveto Merkittävin ero tosiaikatietokantojen ja perinteisten tietokantojen välillä ovat dataan ja transaktioihin liittyvät aikarajoitteet. Data on voimassa (validia) vain tietyn ajan ja transaktioilla on määräaikoja ja suoritusaikavaatimuksia. Tietokantajärjestelmän tehtävänä on aikatauluttaa transaktiot siten, että mahdollisimman moni tulee suoritetuksi määräaikaansa mennessä. Varsinkin kovat transaktiot tulee suorittaa aina ajoissa, muuten voi seurata katastrofi. Tosiaikatietokantajärjestelmän laatua mitataan määräajassa suoritettujen transaktioiden määrällä: mitä suurempi osa transaktioista tulee suoritetuksi ajoissa, sitä parempi järjestelmä on. Tosiaikatietokantoja käytetään yleensä jonkin ympäristön havainnointiin ja kontrollointiin. Tietokantaan tallennetaan sensoreista saatavaa dataa, jota käsitellään ja jonka perusteella suoritetaan toimintoja. Esimerkkeinä tosiaikatietokantajärjestelmistä ovat lentokoneet ja teollisuus. Tosiaikatietokannoille on tärkeää aikatietoiset protokollat, jotka ottavat huomioon transaktion prioriteetin, ja varsinkin sen määräajan. Menetelmiä on monia erilaisia ja ne käsittelevät transaktioiden lukituksia hieman eri periaatteilla. Alan tutkimuksessa suurin haaste on juuri tuo aikataulutusprotokollien kehittäminen. Myös tosiaikaisten tietokantojen integroiminen nykyisiin järjestelmiin on haasteel- 10

lista. Laitteistojen ja järjestelmien tosiaikaisuuden kehittymisen myötä tosiaikatietokantojen käyttö kuitenkin yleistynee. Lähteet IDS08 Idoudi N, Duvallet C, Sadeg B, Bouaziz R, Gargouri F: Structural Model of Real-time Databases: an illustration. Proceedings of the 2008 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing (ISORC) - Volume 0, May 2008, sivut 58-65. KaG95 Kao B, Garcia-Molina H: An Overview of Real-time Database Systems. Advances in Real-time Systems, Prentice Hall, USA, 1995, sivut 463-486. LaK01 Lam K, Kuo T: Real-time Database Systems: Architecture and Techniques. Kluwer Academic Publishers, Massachusetts, USA, 2001. Ram93 Ramamritham K: Real-time Databases. Journal of Distributed and Parallel Databases 1(2):199-226, April 1993, Kluwer Academic Publishers, Boston, USA. SSH99 Stankovic J, Son S, Hansson J: Misconceptions About Real-time Databases. Computer 32(6):29 36, June 1999, IEEE Computer Society. 11