Rinnakkaistietokannat

Koko: px
Aloita esitys sivulta:

Download "Rinnakkaistietokannat"

Transkriptio

1 Rinnakkaistietokannat A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Sixth Edition. McGraw-Hill, 2010; sivut , luvun 17 (database-system architectures) kohta 17.3 (parallel systems); sivut , luku 18 (parallel databases); sivut ja , luvun 28 (Oracle) kohdat (partitioning) ja (parallel execution). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006; sivut , luvun 20 (database-system architectures) kohta 20.3 (parallel systems); sivut , luku 21 (parallel databases); sivut ja , luvun 27 (Oracle) kohdat (partitioning) ja (parallel execution). Rinnakkaisjärjestelmät, s Nopeutuvuus ja mitoittuvuus, s Rinnakkaistietokanta-arkkitehtuurit, s Tiedon osittaminen, s Vinoumien käsittely, s Kyselyiden välinen ja kyselynsisäinen rinnakkaisuus, s Operaationsisäinen rinnakkaisuus, s Rinnakkaisliitos, s Operaatioiden rinnakkaislaskennan kustannus, s Operaatioiden välinen rinnakkaisuus, s Rinnakkaistietokannan kyselynoptimointi, s Rinnakkaisjärjestelmän suunnittelusta, s

2 Rinnakkaisjärjestelmät Rinnakkaisjärjestelmä (parallel system) koostuu joukosta yhdelle maantieteellisesti suppealle tallennusalueelle (konehuoneeseen) sijoitetusta joukosta samanaikaisesti toimivia komponentteja: suorittimia, keskusmuisteja ja levyjä. Komponentit kommunikoivat toistensa kanssa kiinteän ja hyvin nopean yhteenkytkentäverkon (interconnection network) välityksellä. Yleisesti käytettyjä yhteenkytkentäverkkoja ovat väyläverkko (bus network), silmukkaverkko (mesh network) ja hyperkuutio (hypercube network). Rinnakkaistietokantajärjestelmiä (parallel database system) on kehitetty sellaisten tietokantasovellusten tarpeisiin, joissa operoidaan tavattoman suuriin, teratavujen (10 12 tavun) kokoisiin tietokantoihin tai joissa on pystyttävä käsittelemään valtava määrä (tuhansia) transaktioita sekunnissa. Tavanomaiset keskitetyt ja asiakas-palvelinjärjestelmät eivät yleensä ole riittävän tehokkaita sellaisiin sovelluksiin. 170

3 Rinnakkaiskäsittelyssä (parallel processing) useita operaatioita suoritetaan aidosti samanaikaisesti toisin kuin yhden suorittimen tietokoneen osituskäytössä (time sharing). Tietokantaoperaation tai -kyselyn rinnakkaisuuden asteella (degree of parallelism) tarkoitetaan niiden suorittimien lukumäärää, jotka osoitetaan operaation suorittamiseen. Karkearakeinen (coarse-grain) rinnakkaiskone koostuu pienestä määrästä tehokkaita suorittimia. Useimmat tehokäyttöön tarkoitetut koneet tarjoavat jonkinasteista rinnakkaisuutta: kahden tai neljän koneen suorittimet ovat yleisiä. Hienorakeinen (fine-grain) eli massiivisesti rinnakkainen kone käyttää tuhansia pienempiä suorittimia. Useamman sadan suorittimen ja levyn rinnakkaiskoneita on kaupallisesti saatavina. 171

4 Tietokantajärjestelmän suorituskykyä on perinteisesti mitattu suoritusteholla ja vasteajalla. Suoritusteho (throughput) ilmoittaa, kuinka monta tehtävää (transaktiota) järjestelmä pystyy käsittelemään annetun aikavälin kuluessa (esim. sekunnissa). Vasteaika (response time) tarkoittaa sitä aikaa, joka kuluu tehtävän antamisesta sen suorituksen päättymiseen. Järjestelmä, joka käsittelee suuren määrän pieniä transaktioita, voi parantaa suoritustehoaan käsittelemällä useita transaktioita rinnakkaisesti. Järjestelmä, joka käsittelee suuria transaktioita, voi parantaa sekä vasteaikaa että suoritustehoa suorittamalla transaktioiden alitehtäviä rinnakkaisesti. Erityisesti suoritustehon mittaukseen on 1980-luvun alusta lähtien kehitetty erilaisia tietokantakoetinkuormia (database benchmarks). 172

5 Nopeutuvuus ja mitoittuvuus Järjestelmän nopeutuvuus (speedup) tarkoittaa annetun tehtävän käsittelyajan pienentymistä, kun rinnakkaisuutta lisätään. Järjestelmän mitoittuvuus (scaleup) tarkoittaa kykyä käsitellä suurempia (tai enemmän) tehtäviä, kun rinnakkaisuutta lisätään. Tarkastellaan rinnakkaisjärjestelmässä ajettavaa tietokantasovellusta. Lisätään järjestelmän kokoa lisäämällä suorittimien, levyjen ynnä muiden järjestelmäkomponenttien määrää. Tavoitteena on käsitellä tehtävä ajassa, joka on kääntäen verrannollinen suorittimien ja levyjen määrään nähden. Olkoon tehtävän käsittelyaika pienemmällä koneella t S ja suuremmalla koneella t L. Rinnakkaisuudesta johtuvaksi nopeutuvuudeksi määritellään t S /t L. 173

6 Rinnakkaisjärjestelmä on lineaarisesti nopeutuva, jos nopeutuvuus on n, kun suuremman järjestelmän resurssien (keskusyksiköt, levyt ym) määrä on n-kertainen pienempään järjestelmään verrattuna. Jos nopeutuvuus on pienempi kuin n, nopeutuvuuden sanotaan olevan alilineaarinen. Olkoon T tehtävä ja T n sitä n kertaa suurempi tehtävä. Olkoon T :n käsittelyaika pienemmällä koneella t S ja T n :n käsittelyaika n kertaa suuremmalla koneella t n,l. Mitoittuvuudeksi määritellään t S /t n,l. Järjestelmä on lineaarisesti mitoittuva, jos t S = t n,l, ja alilineaarisesti mitoittuva, jos t n,l > t S. 174

7 Tietokantajärjestelmille voidaan määritellä kaksi erilaista mitoittuvuutta siitä riippuen, miten tehtävän koko mitataan. Erämitoittuvuudessa (batch scaleup) tietokannan koko kasvaa ja sen johdosta kasvaa myös yksittäisten tehtävien käsittelyaika. Esimerkkinä transaktio, joka lukee läpi tietokantarelaation, jonka sivujen määrä on suorassa suhteessa tietokannan kokoon. Tietokannan koko on siis tehtävän koon mittari. Transaktiomitoittuvuudessa (transaction scaleup) järjestelmään tulevien transaktioiden määrä aikayksikköä kohti kasvaa ja tietokannan koko kasvaa samassa tahdissa. Transaktiomitoittuvuus on tärkeää transaktionkäsittelyjärjestelmissä, joissa transaktiot ovat pieniä päivityksiä, esim. tilille panoja tai tililtä ottoja, ja transaktioiden määrä aikayksikköä kohti kasvaa sitä mukaa kuin uusia tilejä perustetaan. Tällainen käsittely soveltuu erikoisen hyvin rinnakkaistettavaksi, sillä transaktiot voivat olla suorituksessa samanaikaisesti ja (pitkälti) toisistaan riippumatta, ja kukin transaktio vie suurin piirtein saman ajan, tietokannan koostakin riippumatta. 175

8 Mitoittuvuus on yleensä nopeutuvuutta tärkeämpi tehokkuusmittari rinnakkaisille tietokantajärjestelmille. Tavoitteena on varmistaa, että järjestelmä kykenee toimimaan hyväksyttävällä nopeudella silloinkin, kun tietokannan koko ja transaktioiden määrä lisääntyvät. Olemassa olevan järjestelmän kapasiteetin lisääminen on yritykselle usein helpompaa ja halvempaa kuin keskitetyn järjestelmän korvaaminen kokonaan nopeammalla. Toisaalta on tekijöitä, jotka vähentävät rinnakkaistamisesta saatavia hyötyjä: (1) Uuden prosessin käynnistäminen on kallis operaatio; tuhat rinnakkaista prosessia sisältävän operaation käynnistysaika voi olla suurempi kuin varsinainen käsittelyaika. (2) Rinnakkaiset prosessit eivät suinkaan aina ole toisistaan riippumattomia, vaan käsittelevät yhteisiä resursseja (väylä, levyt, tietoalkioiden lukot), mistä aiheutuu odotuksia. 176

9 (3) Tehtävän jakamisella useampiin rinnakkaisiin osa-askeliin voidaan vähentää keskimääräistä askeleen kokoa, mutta koko tehtävän palveluaika määräytyy hitaimman askeleen mukaan. Tehtävää on usein vaikea jakaa tarkasti samankokoisiin osiin; osien kokojen jakauma voi siis olla vinoutunut (skewed). Jos esimerkiksi 100 yksikön kokoinen tehtävä jaetaan kymmeneen osaan, ja jako on siten vinoutunut, että muutamat osatehtävät ovat pienempiä kuin 10 ja muutamat suurempia kuin 10, joukossa yksi kooltaan 20, niin rinnakkaistamisella saavutettava nopeutuvuus on vain 5 eikä

10 Rinnakkaistietokanta-arkkitehtuurit Rinnakkaiskäsittelyyn kykeneviä tietokonejärjestelmiä on eri tyyppisiä siitä riippuen, mitkä resursseista ovat yhteisiä. Yhteismuistijärjestelmässä (shared-memory system) keskusmuisti on yhteinen kaikkien suorittimien ja levy-yksiköiden kesken muistiväylän tai yhteenkytkentäverkon välityksellä. CPU CPU CPU CPU CPU Muisti Levy Levy Levy 178

11 Yhteismuistijärjestelmän etuna on suorittimien välisen kommunikoinnin tehokkuus: yhteisessä keskusmuistissa olevaan tietoon pääsee mikä tahansa suoritin käsiksi suoraan, eikä mitään ohjelmallista tiedon siirtoa tarvita. Suoritin voi lähettää viestin muille suorittimille kirjoittamalla keskusmuistipaikan, mikä on huomattavasti nopeampaa kuin viestin lähettäminen kommunikointimekanismin välityksellä. Yhteismuistijärjestelmän heikkoutena on, ettei se mitoutu ylitse 64 suorittimen, sillä muistiväylästä tai yhteysverkosta muodostuu pullonkaula (koska se on yhteinen kaikkien suorittimien kesken). Tietyn rajan jälkeen suorittimien lisääminen järjestelmään ei enää lisää tehokkuutta, sillä suorittimet käyttävät enimmän aikaansa odottaen vuoroaan väylälle päästäkseen muistiin. 179

12 Yhteismuistijärjestelmässä on jokaisella suorittimella yleensä suuri välimuisti (cache), jotta yhteiseen muistiin viittaukset vältetään mahdollisimman usein. Välimuistien käyttö yhteismuistijärjestelmässä edellyttää välimuistieheyden (cache coherency) ylläpitoa: Jos jokin suoritin kirjoittaa muistipaikkaan, jonka sisältö on parhaillaan myös toisen suorittimen välimuistissa, myös tämä välimuisti täytyy päivittää tai tieto poistaa sieltä. Välimuistieheyden ylläpitorasite lisääntyy suorittimien määrän kasvaessa. Yhteismuistijärjestelmät eivät tästäkään syystä mitoutu ylitse tietyn rajan; 64 suoritinta on maksimi. 180

13 Yhteislevyjärjestelmässä (shared-disks system, SD system, SD complex) suorittimilla on yksityiset keskusmuistit mutta yhteiset levyt. Kaikki suorittimet voivat lukea ja kirjoittaa kaikkia levyjä yhteenkytkentäverkon välityksellä, mutta suorittimen muistiin pääsee vain kyseinen suoritin yksin. Yhteislevyjärjestelmiä kutsutaan joskus rypäiksi (cluster), esim. Oraclen reaalisovellusryväs (real application cluster). CPU CPU CPU CPU CPU Levy Levy Levy Muisti Muisti Muisti Muisti Muisti 181

14 Muistiväylä ei yhteislevyjärjestelmässä ole pullonkaula. Yhteislevyjärjestelmä on myös vikasietoinen: jos suorittimessa tai muistissa sattuu häiriö, muut suorittimet voivat ottaa sen tehtäviä suorittaakseen. Koska tietokannan levyversio ja lokilevy ovat kaikkien suorittimien saatavilla, yhden suorittimen romahtaessa toinen suoritin voi huolehtia tietokannan elvytyksestä ja uusien transaktioiden vastaanotosta. Ongelmana yhteislevyjärjestelmässä on edelleen mitoittuvuus: yhteys levyjärjestelmään voi muodostua pullonkaulaksi. Yhteismuistijärjestelmään verrattuna yhteislevyjärjestelmä voi mitoittua jonkin verran suurempaan määrään suorittimia, mutta suorittimien välinen kommunikointi on hitaampaa (koska se tapahtuu yhteenkytkentäverkon välityksellä). 182

15 Yhteislevyjärjestelmän kukin suoritin puskuroi yhteisen tietokannan sivuja yksityisessä puskurissaan. Koska sama sivu voi samanaikaisesti olla puskuroituna usean eri suorittimen puskurissa, on huolehdittava puskurieheydestä: Kun tietosivu q on puskuroituna suorittimilla P 1 ja P 2, ja suorittimella P 1 suorituksessa oleva transaktio haluaa lukea tai päivittää puskuroimassaan sivun q kopiossa olevan monikon, pitää taata, että monikko kuuluu tietokannan nykytilaan. Yhteiseen lokiin kirjataan eri suorittimilla suoritettavien transaktioiden tuottamia lokikirjauksia. Eri suorittimilla suoritettavat transaktiot varaavat lukkoja yhteisen tietokannan tietoalkioihin. Näistä aiheutuu kommunikointitarvetta eri suorittimien välillä. Samanaikaisuuden hallinta ja häiriöistä elvytys on monimutkaisempaa kuin keskitetyssä (transaktiopalvelin)järjestelmässä. 183

16 Yksityislevyjärjestelmä (shared-nothing system) eli massiivisesti rinnakkainen järjestelmä (massively-parallel-processing system, MPP system) koostuu itsenäisistä solmuista (node) eli pisteistä (site), joissa kussakin on suoritin, yksityinen keskusmuisti sekä yksi tai useampia yksityisiä levyjä. CPU CPU CPU CPU CPU Muisti Muisti Muisti Muisti Muisti Levy Levy Levy Levy Levy 184

17 Yksityislevyjärjestelmän solmut ovat yhteydessä toisiinsa nopean yhteenkytkentäverkon välityksellä. Solmu toimii järjestelmän palvelimena solmun omistamien tietojen osalta, so. niiden tietojen osalta, joita säilytetään solmun levyillä. Kaiken levyltä haun ja levylle viennin ei nyt tarvitse kulkea yhteisiä linjoja myöten. Ainoastaan kyselyt, joissa viitataan muihin kuin paikallisiin tietoihin, sekä vastaavat tulosrelaatiot täytyy välittää verkon kautta. Yhteenkytkentäverkko suunnitellaan mitoittuvaksi niin, että sen välityskapasiteetti lisääntyy sitä mukaa kuin järjestelmään lisätään uusia solmuja. Yksityislevyjärjestelmä onkin yhteismuisti- ja yhteislevyjärjestelmiä mitoittuvampi ja siihen voidaan liittää suuri määrä solmuja. 185

18 Suorittimien välinen kommunikointi sekä tietojen saanti muulta kuin paikalliselta levyltä ovat yksityislevyjärjestelmässä luonnollisesti hitaampia kuin yhteismuisti- tai yhteislevyjärjestelmässä. Jokainen solmu puskuroi vain omilla levyillään pysyvästi säilytettäviä tietokantasivuja, joten puskurieheyden ylläpito-ongelmaa ei ole. Mikäli jokainen solmu voi itsenäisesti suorittaa transaktioita, on kussakin solmussa oma lokilevy, ja solmussa ylläpidetään transaktioiden hallinnan tarvitsemia keskusmuistirakenteita (lukkotaulu, aktiivisten transaktioiden taulu, päivitettyjen sivujen taulu jne). Solmun lokiin kirjataan paikallisilla levyillä sijaitseviin tietokantasivuihin kohdistuneet päivitykset ja solmun lukkotaulussa säilytetään paikallisilla levyillä sijaitseviin tietoalkioihin varattuja lukkoja. Mikäli transaktio voi operoida useammassa eri solmussa sijaitseviin tietoihin, kysymyksessä on hajautettu transaktio, jonka suoritus joudutaan koordinoimaan (esim. kaksivaiheisella sitoutumiskäytännöllä). Tällaisen yksityislevyjärjestelmän hallinnassa käytetäänkin osin samoja menetelmiä kuin hajautetuissa tietokantajärjestelmissä. 186

19 Hierarkkinen järjestelmä (hierarchical system) yhdistää piirteitä yhteismuisti-, yhteislevy- ja yksityislevyjärjestelmistä. CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU Muisti Muisti Muisti Muisti Levy Levy Levy Levy Levy Levy Levy Levy 187

20 Ylimmällä tasolla hierarkkinen järjestelmä koostuu yhteenkytkentäverkon yhdistämistä solmuista, joilla ei yhteistä muistia eikä levyä. Ylin taso on siis yksityislevyjärjestelmä. Kukin solmu voisi itse asiassa olla yhteismuistia käyttävä pieni joukko suorittimia. Kukin solmu voisi toisaalta olla yhteislevyjärjestelmä, ja kutakin samaa levyjoukkoa käyttävä järjestelmä yhteismuistijärjestelmä. Järjestelmä voidaan siis rakentaa hierarkiaksi, jonka alimmalla tasolla on muutaman suorittimen yhteismuistijärjestelmiä, keskimmäisellä tasolla yhteislevyjärjestelmiä ja ylimmällä tasolla yksityislevyjärjestelmä. 188

21 Tiedon osittaminen Levynkäsittelyn rinnakkaistamisessa (I/O parallelism) tietokantarelaation levyltätuontiaikaa ja levyllevientiaikaa pyritään vähentämään osittamalla (partition) relaatio useammalle levylle. Rinnakkaistietokannoissa yleisimmin käytetty tiedonositusmenetelmä on vaakasuora ositus (horizontal partitioning): Relaatio r ositetaan eli hajautetaan (decluster) n:lle levylle D 0,D 1,...,D n 1 yhtä moneen palaseen (fragment) eli osarelaatioon r 0,r 1,...,r n 1 niin, että (1) palanen r i sijoitetaan levylle D i, i = 0,1,...,n 1, (2) r 0 r 1... r n 1 = r ja (3) palaset ovat erillisiä, so. r i r j = /0, kun i j. Ositukseen on kolme perusmenetelmää: kiertovuoro, hajautus ja osavälit. Kiertovuoroon (round-robin) perustuvassa menettelyssä relaatio r luetaan läpi jossakin järjestyksessä ja r:n i:s monikko sijoitetaan levylle D i mod n. Menettely takaa monikoiden tasaisen jakautumisen levyille, ts. kukin levy saa suurin piirtein saman määrän monikoita. 189

22 Hajautusosituksessa (hash partitioning) jokin relaation r attribuuteista A sovitaan ositusattribuutiksi. Ositusattribuutteja voi olla useampiakin, jolloin ositus perustuu näiden arvokombinaatioon. Määritellään ositusattribuutin A arvojen joukkoon hajautin h, jonka maalijoukko on {0,1,...,n 1}. Relaation r monikko t, jolle h(t[a]) = i, sijoitetaan levylle D i. Osaväliosituksessa (range partitioning) sijoitetaan kullekin levylle relaation r monikot ositusattribuutin A tietyltä arvoväliltä. Ositusattribuutille A valitaan ositusvektori (partitioning vector) [v 0,v 1,...,v n 2 ], jossa v i :t ovat A:n arvojoukkoon kuuluvia arvoja niin että v i < v j aina kun i < j. Relaation r monikko t sijoitetaan (1) levylle D 0, jos t[a] < v 0, (2) levylle D i+1, jos v i t[a] < v i+1, ja (3) levylle D n 1, jos t[a] v n

23 Kun relaatio on ositettu, se voidaan lukea rinnakkaisesti, kukin osa omalta levyltään yhtäaikaa. Vastaavasti relaatiota ositettaessa osat voidaan kirjoittaa levyille samanaikaisesti. Tarkastellaan, miten eri ositusmenetelmät tehostavat erityyppisiä kyselyitä: (1) Koko relaation r tauluselaus (table scan): select from r. (2) Pistekysely (point query), so. relaation r monikon assosiatiivinen haku: select from r where A = a, missä A on (a) ositusattribuutti, (b) muu kuin ositusattribuutti. (3) Osavälikysely (range query), so. relaation r monikoiden haku attribuutin osaväliltä: select from r where A > a 1 and A < a 2, missä A on (a) ositusattribuutti, (b) muu kuin ositusattribuutti. 191

24 Kiertovuoro-ositus sopii ihanteellisesti kyselyihin, joissa selataan koko relaatio läpi eikä järjestyksellä ole väliä. Relaation selausaika on noin (1/n):s osa relaation selausajasta yhden levyn järjestelmässä. Pistekyselyihin ja osavälikyselyihin menettely sopii huonommin, sillä hakuehdon täyttäviä monikoita joudutaan aina hakemaan jokaiselta levyltä. Hajautusositus sopii parhaiten ositusattribuuttiin perustuviin pistekyselyihin: kysely on tarpeen suorittaa vain yhdelle levylle. Koko relaation selaus voidaan toteuttaa kuten kiertovuoro-ositetulle relaatiolle, mutta selaus ei ole yhtä tehokasta, jos eri levyillä on eri määrä relaation monikoita. Hajautusosituksesta ei ole mitään hyötyä pistekyselyissä, jotka perustuvat muihin kuin ositusattribuuttiin, ei liioin osavälikyselyissä. 192

25 Osaväliositus sopii hyvin ositusattribuuttiin perustuville piste- ja osavälikyselyille. Tiedon etsintä voidaan rajoittaa niihin levyihin, joiden osavälit leikkaavat kyselyn osavälejä. Tämä piirre on sekä etu että haitta. Etu on, että pienen (so. vähän monikoita sisältävän) osavälin kysely voidaan laskea lähettämällä se vain yhdelle (tai korkeintaan muutamalle) levylle; muita levyjä voidaan käyttää muiden kyselyiden laskemiseen, mikä lisää suoritustehoa ja ylläpitää hyvää vasteaikaa. Jos taas kyselyn osaväli on suuri, joudutaan hakemaan suuri määrä monikoita yhdeltä tai muutamalta levyltä, mikä voi aiheuttaa pullonkaulan kyseisillä levyillä. 193

26 Vinoumien käsittely Ositettuun tietoon kohdistuvassa kyselynlaskennassa voi esiintyä erilaisia vinoumia (skew). Kun kyselyn laskenta ei ole jakaantunut tasaisesti kaikille levyille, esiintyy suoritusvinouma (execution skew). Kun relaatio ositetaan muulla kuin kiertovuoromenetelmällä, relaation monikoiden jakauma levyille voi olla vino. Tämä voi johtua joko attribuuttiarvovinoumasta tai ositusvinoumasta. Attribuuttiarvovinouma (attribute-value skew) esiintyy, kun relaation ositusattribuutin arvojen jakauma on epätasainen. Hajautusosituksessa ja osaväliosituksessa kaikki tietyllä ositusattribuutin arvolla varustetut monikot joutuvat samalle levylle. Attribuuttiarvovinouma aiheuttaa siis näissä ositusmenetelmissä vinoutta monikoiden jakaumassa levyille. 194

27 Ositusvinoumalla (partition skew) tarkoitetaan osittamisessa esiintymää kuorman epätasapainoa, kun se ei johdu attribuuttiarvovinoumasta. Osaväliositus on altis paitsi attribuuttiarvovinoumalle myös ositusvinoumalle: ositusvektori on saatettu valita alunpitäen huonosti tai välien koot (so. välien sisältämien monikoiden määrät) poikkeavat päivitysten takia suuresti toisistaan. Ositusvinouma on vähemmän todennäköinen hajautusosituksessa, mikäli hajautin on valittu hyvin. 195

28 Vinouma on sitä suurempi ongelma, mitä suurempi on rinnakkaisuuden aste. Olkoon 1000 monikon relaatio r ositettu 10 palaseen. Jos ositus on vinoutunut, joissakin palasissa voi olla vähemmän kuin 100 ja joissakin palasissa enemmän kuin 100 monikkoa. Jos yhdessäkin palasessa on 200 monikkoa, relaation selauksessa rinnakkaistuksella saavutettava nopeutuvuus on vain 5 eikä 10. Oletetaan sitten, että sama relaatio r onkin ositettu 100 palaseen. Silloin yhdessä palasessa on keskimäärin 10 monikkoa. Palasten suuren määrän huomioon ottaen on hyvin mahdollista, että jossain palasessa sattuu olemaan 40 monikkoa tai enemmän. Rinnakkaistuksella saavutettava tauluselauksen nopeutuvuus on silloin vain 25 eikä 100. Nopeutuvuudessa siis menetetään vinouman vuoksi sitä enemmän mitä suurempi on rinnakkaisuuden aste. 196

29 Järjestämällä relaatio voidaan muodostaa tasapainoinen ositusvektori (balanced range-partitioning vector). Olkoon n osituksessa muodostettavien palasten lukumäärä. Relaatio järjestetään ensin ositusattribuutin mukaan. Sitten järjestetty relaatio selataan. Aina kun (1/n):s osa relaatiosta on luettu, seuraavan monikon ositusattribuutin arvo viedään ositusvektoriin. Jos relaatiossa on paha attribuuttiarvovinouma, tuotettu ositus voi yhä olla jonkin verran vino. Pahin haitta on luonnollisesti järjestämisen vaatima ylimääräinen levynkäsittelyaika. 197

30 Ositusvektorin muodostamisesta koituvaa rasitetta voidaan vähentää muodostamalla relaation r kullekin (tärkeälle) attribuutille A sen arvojakaumaa esittävä histogrammi, jota säilytetään tietokannan tietohakemistossa. Relaation r attribuutin A histogrammi on vektori, jonka i:s alkio sisältää ehdon a i t[a] < a i+1 täyttävien r:n monikoiden lukumääräarvion, kun a i on i:nnen osavälin alaraja ja a i+1 on i:nnen osavälin yläraja. Ositusattribuutin histogrammin avulla on suoraviivaista muodostaa ositusvektori, joka on kutakuinkin tasapainoinen. Jos histogrammia ei ole tallennettu, sille voidaan laskea approksimaatio otannalla, poimimalla monikoita satunnaisesti valitusta osasta relaation tietosivuja. 198

31 Toinen menettely erityisesti osaväliosituksen vinouman vaikutusten pienentämiseksi on käyttää virtuaalisuorittimia. Virtuaalisuoritin (virtual processor) on näennäinen (looginen) suoritin, joita voi olla usempia osoitettuna samalle todelliselle (fyysiselle) suorittimelle. Virtuaalisuorittimia voi olla monta kertaa enemmän kuin todellisia suorittimia. Ositus- ja laskentamenetelmät osittavat relaation monikot ja laskennan virtuaalisuorittimille. Virtuaalisuorittimet vuorostaan kuvataan todellisille suorittimille, yleensä käyttäen kiertovuoro-ositusta. Ajatuksena on, että vaikka jollakin osavälillä olisi vinouman takia enemmän monikoita kuin muilla osaväleillä, nämä monikot hajaantuvat useammalle virtuaalisuoritinosavälille. Virtuaalisuorittimien kiertovuoro-ositus hajauttaa ylimääräisen työn useampien todellisten suorittimien kesken, jolloin yksittäisen suorittimen ei tarvitse yksinään kantaa koko taakkaa. 199

32 Kyselyiden välinen ja kyselynsisäinen rinnakkaisuus Kyselyiden välinen rinnakkaisuus (interquery parallelism) tarkoittaa, että eri kyselyitä tai transaktioita suoritetaan samanaikaisesti eri suorittimilla. Transaktionkäsittelyn suoritusteho kasvaa, mutta yksittäisen transaktion vasteaika ei ole sen parempi kuin ajettaessa transaktio yksinään. Kyselyiden välisen rinnakkaisuuden päätarkoituksena onkin mitoittaa transaktionkäsittelyjärjestelmä niin, että se kykenee käsittelemään useampia transaktioita sekunnissa. Kyselyiden välinen rinnakkaisuus on rinnakkaisuuden muodoista se, joka on helpoiten toteutettavissa tietokantajärjestelmässä, erityisesti yhteismuistijärjestelmässä. Yhden suorittimen koneelle suunniteltua tietokantajärjestelmää voidaan käyttää vähäisin muutoksin myös yhteistä keskusmuistia käyttävällä rinnakkaiskoneella, sillä onhan siinä samanaikaisten prosessien hallinta. Transaktiot, jotka osituskäytössä voivat olla samanaikaisesti suorituksessa, voivat yhteismuistijärjestelmässä toimia aidosti rinnakkaisesti. 200

33 Kyselyiden välinen rinnakkaisuus on vaikeampaa toteuttaa yhteislevyjärjestelmässä ja yksityislevyjärjestelmässä. Suorittimien pitää suorittaa eräitä tehtäviä, kuten lukitus ja lokin hallinta, koordinoidusti, mikä edellyttää viestien vaihtoa. Järjestelmän tulee taata, ettei kaksi suoritinta päivitä samaa tietoa toisistaan riippumatta samaan aikaan. Kun suoritin käsittelee yhteisen tietokannan tietoa yksityisessä puskurissaan, järjestelmän täytyy taata puskurieheys, ts. että suorittimella on puskurissaan tietokantasivun tuore versio. Puskurieheyden ylläpitokäytäntö yleensä integroidaan transaktioiden samanaikaisuuden hallintaan. 201

34 Kyselynsisäinen rinnakkaisuus (intraquery parallelism) tarkoittaa, että kyselyn yksittäisiä osatehtäviä suoritetaan samanaikaisesti usealla suorittimella ja levyllä. Tarkoituksena on nopeuttaa pitkäkestoisia kyselyitä. Tarkastellaan esimerkkinä kyselyä, jonka laskenta edellyttää relaation r järjestämistä attribuutin A mukaan. Oletetaan, että r on ositettu usealle levylle attribuutin A osaväleihin perustuen. r voidaan silloin järjestää järjestämällä r:n palaset rinnakkaisesti ja katenoimalla järjestetyt palaset. Kysely voidaan siis rinnakkaistaa rinnakkaistamalla sen yksittäisen operaation laskenta silloin, kun operaatio voidaan jakaa osaoperaatioiksi, joiden tuloksista saadaan helposti koko operaation tulos (operaationsisäinen rinnakkaisuus). Useita operaatioita sisältävä kyselysuunnitelma voidaan rinnakkaistaa laskemalla rinnakkaisesti ne operaatiot, jotka eivät riipu toisistaan (operaatioiden välinen rinnakkaisuus). Toisistaan riippuvat kaksi operaatiota voidaan rinnakkaistaa, kun toisen operaation tuottamaa tulosta voidaan putkittaa toisen operaation kuluttamaksi syötteeksi. 202

35 Seuraavassa tarkastellaan erityyppisten kyselyiden rinnakkaistamista. Kyselyihin ei liity päivityksiä. Algoritmit luonnollisesti riippuvat rinnakkaisjärjestelmän arkkitehtuurista. Algoritmien kuvailussa käytetään kuitenkin yksinomaan yksityislevyjärjestelmää. Ts. kuvataan eksplisiittisesti, milloin tieto pitää siirtää suorittimelta toiselle. Yksityislevyjärjestelmää voidaan simuloida muissa järjestelmissä: tieto voidaan siirtää yhteisen muistin kautta yhteismuistijärjestelmässä ja yhteisten levyjen kautta yhteislevyjärjestelmässä. Yksinkertaisuuden vuoksi oletetaan, että järjestelmässä on n suoritinta, P 0,...,P n 1, ja n levyä, D 0,...,D n 1, missä D i on suorittimeen P i liittyvä levy. Algoritmit ovat helposti yleistettävissä tilanteeseen, jossa suorittimeen liittyy useampia levyjä. 203

36 Operaationsisäinen rinnakkaisuus Operaationsisäinen rinnakkaisuus (intraoperation parallelism) tarkoittaa, että yksittäistä tietokantaoperaatiota (järjestäminen, valinta, projektio, liitos jne) nopeutetaan jakamalla se rinnakkain suoritettaviksi osaoperaatioiksi. Relaation järjestäminen attribuutin A mukaan voidaan rinnakkaistaa seuraavasti. Oletetaan, että relaatio r on ositettu n:ään palaseen r 0,...,r n 1, missä r i on sijoitettu levylle D i. Mikäli ositus perustuu A:n osaväleihin, r voidaan järjestää rinnakkaisesti kuten edellä on todettu. Jos taas ositus on muunlainen, r voidaan ensin osittaa A:n osaväleihin. 204

37 Toinen mahdollisuus on rinnakkainen lomitusjärjestäminen (parallel merge sort): 1. Suoritin P i järjestää oman palasensa r i :n, i = 0,...,n Järjestetyt palaset r 0,...,r n 1 lomitetaan. Lomitusvaihe voidaan rinnakkaistaa seuraavasti: 1. Jaetaan A:n arvojoukko m:ään osaväliin jollakin m n. Ositetaan järjestetty palanen r i attribuutin A osavälien mukaan suorittimille P 0,...,P m 1, jokaisella i = 0,...,m 1. Monikot lähetetään järjestyksessä niin, että kukin suoritin P i saa monikot järjestettynä virtana. 2. Kukin suoritin P i lomittaa saamansa monikkovirrat sitä mukaa kuin niitä saapuu. 3. Suorittimilla P 0,...,P m 1 olevat järjestetyt r:n erät katenoidaan. Suoritusvinouman välttämiseksi pitää askeleessa 1 kunkin suorittimen lähettää monikot seuraavasti: Ensin ensimmäinen erä (esim. sivullinen) osavälin 1 monikoita suorittimelle P 1, sitten ensimmäinen erä osavälin 2 monikoita suorittimelle P 2 jne. Sitten toinen erä osavälin 1 monikoita suorittimelle P 1, sitten toinen erä osavälin 2 monikoita suorittimelle P 2 jne. 205

38 Valinnan σ A=v (r) laskennassa voidaan rajoittua suorittimeen P i, kun r on ositettu attribuutin A mukaan ja arvoa v vastaava r:n palanen on suorittimella P i. Kun relaatio r on ositettu attribuutin A osavälien mukaan, voidaan valinnan σ u A v (r) laskennassa rajoittua niihin suorittimiin, joille sijoitettujen r:n palasten osavälit leikkaavat väliä [u,v]. Muissa tapauksissa valintaoperaatio lasketaan rinnakkaisesti kaikilla niillä suorittimilla, joille r:n palasia on sijoitettu. 206

39 Kaksoiskappaleiden eliminointi relaatiosta r voidaan toteuttaa rinnakkaisjärjestämistä hyväksi käyttäen. Toinen tapa on osittaa r osaväleihin tai hajauttaen ja eliminoida kaksoiskappaleet rinnakkaisesti. Kaksoiskappaleet säilyttävä projektio π X (r) voidaan toteuttaa lukemalla r:n palasia rinnakkaisesti. Jos kaksoiskappaleet pitää eliminoida, menetellään kuten edellä. Ryhmittely- ja koosteoperaatio select X, f (A) from r group by X voidaan laskea osittamalla relaatio r attribuuttijoukon X mukaan osaväleihin (tai hajauttaen) ja laskemalla suorittimella P i sille osoitetut ryhmät. 207

40 Rinnakkaisliitos Relaatioiden r ja s liitoksen laskenta voidaan rinnakkaistaa, kun kysymyksessä on yhtäläisyys- tai luonnollinen liitos. Yhtäläisyysliitoksen r A=B s laskenta ositettuna rinnakkaisliitoksena (partitioned parallel join) tapahtuu seuraavasti: 1. Ositetaan r palasiin r 0,...,r n 1 attribuutin A mukaan hajautusositusta (osaväliositusta) käyttäen, missä r i osoitetaan suorittimelle P i. 2. Ositetaan s palasiin s 0,...,s n 1 attribuutin B mukaan hajautusositusta (osaväliositusta) käyttäen, missä s i osoitetaan suorittimelle P i. Askelissa 1 ja 2 käytetään samaa hajautinta (vast. ositusvektoria). 3. Suoritin P i laskee liitoksen q i = r i A=B s i jollakin tavanomaisella liitosmenetelmällä, i = 0,...,n 1. r 0 s 0 r 1 s 1 r r 2 s 2 r 3 s 3 r 4 s 4 s 4. Lopullinen liitos saadaan yhdisteenä q 0 q n

41 Algoritmi luonnollisesti yksinkertaistuu, jos jompikumpi tai molemmat relaatioista r ja s on jo valmiiksi ositettu liitosattribuutin mukaan. Vinouma on erityinen ongelma osaväliositusta käytettäessä, sillä ositus, joka jakaa relaation r yhtä suuriin palasiin, saattaa jakaa relaation s hyvin vaihtelevankokoisiin palasiin. Ositusvektorin pitää olla sellainen, että palasten r i ja s i monikoiden yhteenlaskettu määrä on kutakuinkin sama kaikilla i = 0, 1,..., n 1. Hajautusositus johtaa yleensä pienempään vinoumaan, paitsi silloin, kun liitosattribuutin jollain arvolla on hyvin monta esiintymää. 209

42 Osittaminen ei sovellu kaikentyyppisiin liitoksiin. Esim. liitoksessa r A<B s on mahdollista, että kaikki r:n monikot liittyvät johonkin s:n monikkoon (tai kääntäen). Ei siis ole mitään helppoa tapaa osittaa r ja s niin, että palasen r i monikot liittyisivät vain palasen s i monikoihin. Tämäntyyppisiä liitoksia r θ s voidaan kuitenkin rinnakkaistaa paloitteluksi ja toisintamiseksi (fragment and replicate) kutsutulla menetelmällä. Tarkastellaan ensin tämän menetelmän erikoistapausta, epäsymmetristä paloittelu- ja toisinnusliitosta (asymmetric fragment-andreplicate join): 1. Ositetaan toinen relaatio, esimerkiksi r, jollakin ositusmenetelmällä, vaikkapa kiertovuoro-osituksella. 2. Toisinnetaan (so. kopioidaan) toinen relaatio, s, kaikille suorittimille. 3. Suoritin P i laskee paikallisesti liitoksen r i θ s jollakin liitosmenetelmällä. r 0 s r 1 s r r 2 s s r 3 s r 4 s 210

43 Yleinen paloittelu- ja toisinnusliitos (fragment-and-replicate join) toimii seuraavasti: 1. Ositetaan r jollakin menetelmällä n:ään palaseen r 0,...,r n Ositetaan s jollakin menetelmällä m:ään palaseen s 0,...,s m 1. Askelissa 1 ja 2 ei tarvitse käyttää samaa ositusmenetelmää eikä n:n tarvitse olla yhtä suuri kuin m. n ja m pitää kuitenkin valita niin, että käytettävissä on vähintään n m suoritinta. 3. Toisinnetaan palanen r i suorittimille P i, j, j = 0,...,m 1, i = 0,...,n Toisinnetaan palanen s j suorittimille P i, j, i = 0,...,n 1, j = 0,...,m Suorittimella P i, j lasketaan liitos r i θ s j jollakin liitosmenetelmällä. r 0 s 0 r 0 s 1 r 0 s 2 r 0 s 3 r 0 s 4 r 1 s 0 r 1 s 1 r 1 s 2 r 1 s 3 r 1 s 4 r 2 s 0 r 2 s 1 r 2 s 2 r 2 s 3 r 2 s 4 r 3 s 0 r 3 s 1 r 3 s 2 r 3 s 3 r 3 s 4 211

44 Tarkastellaan liitoksen r A=B s laskemista tapauksessa, että r on valmiiksi ositettu (jollakin menetelmällä) palasiin r 0,...,r n 1 ja että s on paljon pienempi kuin r. Relaation r ositus ei perustu liitosattribuuttiin B. Oletetaan vielä, että palasen r i tallentavalla suorittimella P i on hakemisto palaseen r i liitosattribuutilla A, i = 0,...,n 1. Lasketaan liitos epäsymmetrisenä paloittelu- ja toisinnusliitoksena, jossa relaatio s toisinnetaan ja r:lle käytetään olemassaolevaa ositusta. Jokainen suoritin P j, jolla on relaation s palanen, toisintaa sen kaikille muille suorittimille. Tämän vaiheen jälkeen kaikilla suorittimilla on toisinnettuna koko relaatio s. Nyt jokainen suoritin P i laskee liitoksen s A=B r i hakemistoliitoksena (indexed nested-loop join). Hakemistoliitokset voidaan laskea limittäin s:n palasten toisintamisen kanssa niin, että vältetään s:n monikoiden viemistä levylle. Liitos ja toisintaminen täytyy tahdistaa niin, että jokaisella suorittimella P i on kylliksi keskusmuistitilaa niiden s:n monikoiden säilyttämiseen, joita ei vielä ole käytetty liitoksen s A=B r i laskennassa. 212

45 Operaatioiden rinnakkaislaskennan kustannus Rinnakkaisuutta saavutetaan osittamalla levynkäsittelyä usealle levylle ja osittamalla keskusmuistikäsittelyä usealle suorittimelle. Jos osittaminen pystytään toteuttamaan aiheuttamatta mitään ylimääräistä rasitetta ja jos työkuorman osituksessa ei esiinny vinoumaa, n:ää suoritinta käyttävä rinnakkaisoperaatio vie vain 1/n-osan siitä ajasta, minkä sama operaatio veisi yhdellä suorittimella. Täytyy kuitenkin ottaa huomioon myös seuraavat lisäkustannukset: (1) Operaation käynnistyskustannus (startup cost), joka koituu operaation käynnistämisestä usealla suorittimella. (2) Vinouma (skew), joka voi esiintyä työkuorman jakelussa prosesssoreille, niin että jotkin suorittimet saavat suuremman työkuorman kuin muut. (3) Kilpailu resursseista (contention for resources), kuten muistista, levystä ja yhteysverkosta, mistä aiheutuu viipeitä. (4) Laskennan lopullisen tuloksen koontikustannus (cost of assembling), mikä sisältää osittaistulosten siirtoja suorittimelta toiselle. 213

46 Rinnakkaisoperaation viemäksi ajaksi voidaan arvioida T part + T asm + max{t 0,T 1,...,T n 1 }, missä T part on relaatioiden ositusaika, T asm on tuloksen koontiaika ja T i on operaation viemä aika suorittimella P i. Mikäli osittamisessa ei esiinny mitään vinoumaa, kukin suoritin saa 1/n-osan monikoiden kokonaismäärästä. Mikäli kilpailua resursseista ei oteta huomioon, kullakin yksittäisellä suorittimella P i suoritettavien operaatioiden kustannukset voidaan arvioida erikseen. Saatu arvio on optimistinen, sillä työkuorman jakaantuminen suorittimille on usein vino. Vaikka yksittäisen kyselyn osittaminen joukoksi rinnakkaisia osatehtäviä pienentää keskimääräisen tehtävän kokoa, kyselyn laskentaajan määrää hitain osatehtävä. Ositettu rinnakkaislaskenta on vain niin nopea kuin hitain yksittäinen laskenta. 214

47 Operaatioiden välinen rinnakkaisuus Operaatioiden välinen rinnakkaisuus (interoperation parallelism) tarkoittaa, että kyselyä nopeutetaan suorittamalla kyselysuunnitelman sisältämiä eri operaatioita rinnakkain. Operaatioiden välistä rinnakkaisuutta on kahta lajia: putkitettua rinnakkaisuutta ja riippumatonta rinnakkaisuutta. Putkitetussa rinnakkaisuudessa (pipelined parallelism) operaatiot o 1 ja o 2 ajetaan rinnakkain eri suorittimilla niin, että o 2 kuluttaa monikoita sitä mukaa kuin o 1 tuottaa niitä. Liitoksen r 1 (AB) r 2 (BC) r 3 (CD) r 4 (DE) laskennassa voidaan hyödyntää putkitettua rinnakkaisuutta käyttämällä liitosten vasemmalle syvää laskentajärjestystä ((r 1 r 2 ) r 3 ) r 4 : (1) s 1 = r 1 r 2 suorittimella P 1, (2) s 2 = s 1 r 3 suorittimella P 2 ja (3) s 3 = s 2 r 4 suorittimella P 3. Rinnakkaisuutta saavutetaan luonnollisesti vain, jos käytetään putkitukseen soveltuvaa liitosmenetelmää. 215

48 Putkitettu rinnakkaisuus on käyttökelpoista pienellä määrällä suorittimia, muttei mitoutu hyvin. Putkiketjut ovat yleensä niin lyhyitä, että rinnakkaisuusaste jää matalaksi. Sellaisia operaatioita (kuten joukkoerotus), jotka voivat tuottaa tulosta vasta kun koko syöte on saatavilla, ei voi putkittaa ollenkaan. Tapauksissa, joissa yhden operaation kustannus on huomattavasti muita korkeampi, putkituksesta saatava nopeutus on marginaalinen. Kun rinnakkaisuusaste on korkea, putkitus on rinnakkaisuuden lähteenä toissijainen tiedon osittamisella saavutettuun rinnakkaisuuteen nähden. Putkituksen tärkein hyöty onkin siinä, että vältytään kirjoittamasta välituloksia levylle. 216

49 Riippumattomassa rinnakkaisuudessa (independent parallelism) kyselyn operaatiot, jotka eivät riipu toisistaan, suoritetaan rinnakkain. Liitoksen r 1 (AB) r 2 (BC) r 3 (CD) r 4 (DE) laskennassa voidaan hyödyntää riippumatonta rinnakkaisuutta käyttämällä liitosten laskentajärjestystä (r 1 r 2 ) (r 3 r 4 ). Tässä liitokset s 1 = r 1 r 2 ja s 2 = r 3 r 4 voidaan laskea toisistaan riippumattomasti rinnakkain eri suorittimilla: lasketaan s 1 suorittimella P 1 ja s 2 suorittimella P 2. Lopullinen liitos s 3 = s 1 s 2 voidaan laskea suorittimella P 3. s 3 :n laskenta voi toimia rinnakkain s 1 :n ja s 2 :n laskennan kanssa, jos käytetään sopivaa liitosalgoritmia, esim. hajautusliitosta. s 3 :n laskennalle P 3 :ssa putkitetaan s 1 :n laskennan tuottamia monikoita P 1 :stä ja s 2 :n laskennan tuottamia monikoita P 2 :sta. P 3 sijoittaa vastaan ottamiaan monikoita liitosattribuutin C mukaan organisoituun hajautusrakenteeseen, jonka perusteella P 3 voi tuottaa lopulliseen liitokseen s 3 tulevia monikoita. Kuten putkitettu rinnakkaisuus, riippumaton rinnakkaisuuskaan ei yleensä tarjoa korkeaa rinnakkaisuuden astetta. 217

50 Rinnakkaistietokannan kyselynoptimointi Kyselynoptimointi rinnakkaisjärjestelmässä on monimutkaisempaa kuin peräkkäisjärjestelmässä (so. yhden suorittimen tietokantajärjestelmässä). Kustannusmallit ovat monimutkaisempia, koska osituskustannukset täytyy ottaa huomioon, samoin kuin vinoumat ja suorittimien kilpailu resursseista. Tärkeimpänä uutena ongelmana on kyselyn rinnakkaistamistavan määrääminen. Oletetaan, että kyselylle on jollain tavalla valittu ekvivalenttien relaatiolausekkeiden joukosta lauseke, jonka mukaan kysely on tarkoitus laskea. Tarkastellaan lauseketta operaatiopuuna. Operaatiopuun laskemiseksi rinnakkaisjärjestelmässä operaatiopuulle on luotava ajoitus (scheduling), so. on tehtävä seuraavat päätökset: (1) Miten kukin operaatio rinnakkaistetaan ja kuinka montaa suoritinta operaation laskentaan käytetään? (2) Mitä operaatioita putkitetaan eri suorittimien välillä, mitkä operaatiot suoritetaan rinnakkaisesti toisistaan riippumattomasti ja mitkä operaatiot suoritetaan peräkkäisesti, yksi toisensa jälkeen? 218

51 Optimointiongelmaan liittyy myös erityyppisten resurssien, kuten suorittimien, levyjen ja muistien, varaaminen kullekin operaatiolle. Saattaa tuntua järkevältä käyttää rinnakkaisuutta hyväksi maksimaalisesti, mutta tietyt operaatiot on syytä toteuttaa peräkkäisesti. Operaatiot, joiden laskentavaatimukset ovat merkittävästi alhaisemmat kuin kommunikoinnista aiheutuva rasite, kannattaa sijoittaa naapuriensa läheisyyteen. Pitkät operaatioputket eivät johda hyvään resurssien käyttöön. Putken viimeinen operaatio saattaa joutua odottamaan pitkään syötettään samalla kun se pitää varattuna kallista resurssia kuten muistia. Rinnakkaisia kyselysuunnitelmia on valittavana paljon suurempi joukko kuin peräkkäisiä kyselysuunnitelmia. Kyselynoptimointi on siis kalliimpaa rinnakkaisjärjestelmässä kuin peräkkäisjärjestelmässä. 219

52 Vaihtoehtoisia kyselysuunnitelmia on syytä karsia heuristisesti. Eräs heuristiikka on rajoittua sellaisiin kyselysuunnitelmiin, joissa jokainen operaatio rinnakkaistetaan kaikille suorittimille ja joissa ei käytetä lainkaan putkitusta. Parhaan kyselysuunnitelman etsiminen on silloin samanlaista kuin peräkkäisjärjestelmässä. Erona on osituksen suorittamistapa sekä käytettävä kustannusarviointikaava. Toinen heuristiikka on valita ensin tehokkain peräkkäinen kyselysuunnitelma ja sitten rinnakkaistaa sen operaatiot. Kyselynoptimointiin vaikuttaa luonnollisesti myös tietojen fyysinen organisointi (hakemistot jne). 220

53 Rinnakkaisjärjestelmän suunnittelusta Suurimittaisia rinnakkaisjärjestelmiä käytetään enimmäkseen suurten tietomäärien tallentamiseen kuten tietovarastointiin (data warehousing) sekä tähän tietoon kohdistuvien, yrityksen päätöksentekoa tukevien kyselyiden (decision-support queries) käsittelyyn. Tietovaraston pääasiallisinta käyttötapaa kutsutaan tosiaikaiseksi tiedonjalostukseksi (online analytic processing, OLAP). Tietovarasto saa tietonsa tavallisista operatiivisista tietokannoista (transaktionkäsittelyjärjestelmistä) ja muista informaatiolähteistä aika ajoin tapahtuvissa latauksissa (loading). Rinnakkaislataus (parallel loading) on keino tehostaa suuren tietomäärän latausta tietovarastoon. 221

54 Kun tietokannan tietomäärä kohoaa teratavuihin, sinänsä yksinkertaiset operaatiot kuten hakemistojen luonti sekä tietokannan kaavion muutokset (esim. attribuutin lisäys relaatioon) voivat viedä hyvin pitkän ajan, useita tunteja tai jopa päiviä. Ei ole suotavaa pitää järjestelmää poissa normaalikäytöstä niin pitkää aikaa. Mainitunlainen tietokannan uudelleenjärjestely (reorganization) pitäisi voida suorittaa tosiaikaisesti (online), normaalin käytön kanssa rinnakkaisesti. Relaation tosiaikaisessa hakemistonluonnissa (online index construction) järjestelmä sallii relaation luku- ja päivitysoperaatioiden suorituksen samanaikaisesti hakemistonluonnin kanssa. Hakemistonluontioperaatio ei siis voi S-lukita koko relaatiota. 222

55 Suuren rinnakkaistietokantajärjestelmän tulee sietää häiriöitä, joita voi sattua joillakin suorittimilla tai levyillä. Kun suorittimia ja levyjä on monta, yhden suorittimen tai levyn toimintahäiriö on merkittävästi todennäköisempi kuin yhden suorittimen ja yhden levyn järjestelmässä. Huonosti suunniteltu rinnakkaisjärjestelmä lopettaa toimintansa yhdenkin komponentin (suorittimen tai levyn) mentyä epäkuntoon. Olettaen, että yksittäisen suorittimen tai levyn häiriön todennäköisyys on pieni, järjestelmän häiriön todennäköisyys kasvaa lineaarisesti järjestelmän suorittimien ja levyjen lukumäärään nähden. Jos yksittäinen suoritin tai levy joutuu epäkuntoon kerran viidessä vuodessa, niin 100 suorittimen järjestelmässä on häiriö joka 18. päivä. 223

56 Suurimittaiset rinnakkaistietokantajärjestelmät on suunniteltu toimimaan, vaikka jokin suoritin tai levy joutuisi epäkuntoon. Kaikki tieto toisinnetaan ainakin kahdelle suorittimelle. Järjestelmä pitää kirjaa epäkuntoon joutuneista suorittimista ja jakelee työkuormaa toimivien suorittimien kesken. Epäkuntoon joutuneessa pisteessä tallennettuun tietoon kohdistuvat kyselyt reititetään automaattisesti sille etävarmistuspisteelle (backup site), jossa tieto on toisinnettuna. Jos romahtaneen suorittimen P kaikki tieto on toisinnettuna ainoastaan suorittimelle P, joutuu P käsittelemään omien kyselyidensä lisäksi myös P:n kyselyt, mikä tekee P :sta pullonkaulan. Yhden suorittimen tallentamat tiedot onkin syytä toisintaa useammalle muulle suorittimelle. 224

Käyttöjärjestelmät: Virtuaalimuisti

Käyttöjärjestelmät: Virtuaalimuisti Käyttöjärjestelmät: Virtuaalimuisti 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 Muistinhallinta

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

Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015

Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015 Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015 1. Onko olemassa yhtenäistä verkkoa, jossa (a) jokaisen kärjen aste on 6, (b) jokaisen kärjen aste on 5, ja paperille piirrettynä sivut eivät

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 1 Derivaatta Tarkastellaan funktion f keskimääräistä muutosta tietyllä välillä ( 0, ). Funktio f muuttuu tällä välillä määrän. Kun tämä määrä jaetaan välin pituudella,

Lisätiedot

TILASTOLLINEN LAADUNVALVONTA

TILASTOLLINEN LAADUNVALVONTA 1 Aki Taanila TILASTOLLINEN LAADUNVALVONTA 31.10.2008 2 TILASTOLLINEN LAADUNVALVONTA Tasalaatuisuus on hyvä tavoite, jota ei yleensä voida täydellisesti saavuttaa: asiakaspalvelun laatu vaihtelee, vaikka

Lisätiedot

Lisää segmenttipuusta

Lisää segmenttipuusta Luku 24 Lisää segmenttipuusta Segmenttipuu on monipuolinen tietorakenne, joka mahdollistaa monenlaisten kyselyiden toteuttamisen tehokkaasti. Tähän mennessä olemme käyttäneet kuitenkin segmenttipuuta melko

Lisätiedot

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä. .. Käänteisunktio.. Käänteisunktio Mikäli unktio : A B on bijektio, niin joukkojen A ja B alkioiden välillä vallitsee kääntäen yksikäsitteinen vastaavuus eli A vastaa täsmälleen yksi y B, joten myös se

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

arvostelija NoSQL-tietokannat Joel Sandborg Helsinki 27.3.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

arvostelija NoSQL-tietokannat Joel Sandborg Helsinki 27.3.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos hyväksymispäivä arvosana arvostelija NoSQL-tietokannat Joel Sandborg Helsinki 27.3.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI

Lisätiedot

Laajan mittakaavan Internet-sovelluksia varten kehitetyt hajautetut tietokannat

Laajan mittakaavan Internet-sovelluksia varten kehitetyt hajautetut tietokannat Laajan mittakaavan Internet-sovelluksia varten kehitetyt hajautetut tietokannat Joel Sandborg Helsinki 28.12.2012 Pro gradu -tutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

Lisätiedot

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista. OHJE OPISKELIJALLE MOODLEN KÄYTTÖÖN 1/5 2011/2012 MOODLE KOULUTUKSESSA Työterveyslaitoksella käytetään Moodle -verkko-oppimisalustaa. Potilassiirtojen Ergonomia - koulutus on monimuotokoulutusta, johon

Lisätiedot

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c. Epäyhtälö Kahden lausekkeen A ja B välisiä järjestysrelaatioita A < B, A B, A > B ja A B nimitetään epäyhtälöiksi. Esimerkiksi 2 < 6, 9 10, 5 > a + + 2 ja ( + 1) 2 2 + 2 ovat epäyhtälöitä. Epäyhtälössä

Lisätiedot

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Simo K. Kivelä, 15.4.2003 Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Aksioomat Luonnolliset luvut voidaan määritellä Peanon aksioomien avulla. Tarkastelun kohteena on

Lisätiedot

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1 String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen

Lisätiedot

Tiedon hajauttaminen ja hajautettu kyselynkäsittely

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

Lisätiedot

ESTON LASKENTA VERKOSSA

ESTON LASKENTA VERKOSSA J. Virtamo 38.3141 Teleliikenneteoria / Esto verkossa 1 ESTON LASKENTA VERKOSSA Erlangin funktion E(C, a) avulla voidaan laskea esto yhdessä linkissä, jonka kapasiteetti on C (johtoa) ja johon tarjotun

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

Lausuntopyyntö STM 2015

Lausuntopyyntö STM 2015 Lausuntopyyntö STM 2015 1. Vastaajatahon virallinen nimi Nimi - Vaasan sairaanhoitopiirin ky 2. Vastauksen kirjanneen henkilön nimi Nimi - Göran Honga 3. Vastauksen vastuuhenkilön yhteystiedot Nimi Asema

Lisätiedot

Miten korkeakoulujen yhteishaun ja erillishakujen kokonaisuutta tulisi kehittää?

Miten korkeakoulujen yhteishaun ja erillishakujen kokonaisuutta tulisi kehittää? Miten korkeakoulujen yhteishaun ja erillishakujen kokonaisuutta tulisi kehittää? Nykytilan haasteita, mahdollisen kehittämisen aikataulu ja vaihtoehtoja OKM/KTPO 2.6.2016 Tulevat haut ja kehittämisen aikajanaa

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 1 Ti 6.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 1 Ti 6.9.2011 p. 1/28 p. 1/28 Numeriikan termejä Simulointi: Reaalimaailman ilmiöiden jäljitteleminen (yleensä)

Lisätiedot

Ratkaisuehdotukset Kesäyliopisto 2014. 1. Kuvassa on esitetty erään ravintolan lounasbuffetin kysyntäfunktio.

Ratkaisuehdotukset Kesäyliopisto 2014. 1. Kuvassa on esitetty erään ravintolan lounasbuffetin kysyntäfunktio. Harjoitukset 2 Taloustieteen perusteet Ratkaisuehdotukset Kesäyliopisto 2014 1. Kuvassa on esitetty erään ravintolan lounasbuffetin kysyntäfunktio. a) Mikä on kysynnän hintajousto 12 :n ja 6 :n välillä?

Lisätiedot

Kenguru 2016 Mini-Ecolier (2. ja 3. luokka) Ratkaisut

Kenguru 2016 Mini-Ecolier (2. ja 3. luokka) Ratkaisut sivu 1 / 11 TEHTÄVÄ 1 2 3 4 5 6 VASTAUS E B C D D A TEHTÄVÄ 7 8 9 10 11 12 VASTAUS E C D C E C TEHTÄVÄ 13 14 15 16 17 18 VASTAUS A B E E B A sivu 2 / 11 3 pistettä 1. Anni, Bert, Camilla, David ja Eemeli

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

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

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

Lisätiedot

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra DO NOT PRINT THIS DOCUMENT operaatiot, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran operaatioita projektio,

Lisätiedot

SKYPE-RYHMÄN LUOMINEN

SKYPE-RYHMÄN LUOMINEN SKYPE-RYHMÄN LUOMINEN JA RYHMÄPUHELUN SOITTAMINEN Ryhmän perustaminen on helppoa. Tarvitset internet-yhteyden sekä tietokoneen, jossa on mikrofoni ja webbikamera. Useimmissa kannettavissa tietokoneissa

Lisätiedot

2.2 Täydellinen yhtälö. Ratkaisukaava

2.2 Täydellinen yhtälö. Ratkaisukaava . Täydellinen yhtälö. Ratkaisukaava Tulon nollasäännöstä näkee silloin tällöin omituisia sovellutuksia. Jotkut näet ajattelevat, että on olemassa myöskin tulon -sääntö tai tulon "mikä-tahansa"- sääntö.

Lisätiedot

MAA10 HARJOITUSTEHTÄVIÄ

MAA10 HARJOITUSTEHTÄVIÄ MAA0 Määritä se funktion f: f() = + integraalifunktio, jolle F() = Määritä se funktion f : f() = integraalifunktio, jonka kuvaaja sivuaa suoraa y = d Integroi: a) d b) c) d d) Määritä ( + + 8 + a) d 5

Lisätiedot

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi Rinnakkaisuuden hyväksikäyttö peleissä Paula Kemppi 24.4.2008 Esityksen rakenne Johdantoa Rinnakkaisuus Pelimoottorien rinnakkaisuuden mallit Funktionaalisen rinnakkaisuuden malli Rinnakkaisen tiedon malli

Lisätiedot

Matematiikan tukikurssi 3.4.

Matematiikan tukikurssi 3.4. Matematiikan tukikurssi 3.4. Neliömuodot, Hessen matriisi, deiniittisyys, konveksisuus siinä tämän dokumentin aiheet. Neliömuodot ovat unktioita, jotka ovat muotoa T ( x) = x Ax, missä x = (x 1,, x n )

Lisätiedot

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1 Liitosesimerkki 16.02.06 Tietokannan hallinta, kevät 2006, J.Li 1 Esim R1 R2 yhteinen attribuutti C T(R1) = 10,000 riviä T(R2) = 5,000 riviä S(R1) = S(R2) = 1/10 lohkoa Puskuritilaa = 101 lohkoa 16.02.06

Lisätiedot

Induktio kaavan pituuden suhteen

Induktio kaavan pituuden suhteen Induktio kaavan pituuden suhteen Lauselogiikan objektikieli määritellään kurssilla Logiikka 1B seuraavasti: 1. Lausemuuttujat p 1, p 2, p 3,... ovat kaavoja. 2. Jos A on kaava, niin A on kaava. 3. Jos

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa

Lisätiedot

Aluksi. 2.1. Kahden muuttujan lineaarinen epäyhtälö

Aluksi. 2.1. Kahden muuttujan lineaarinen epäyhtälö Aluksi Matemaattisena käsitteenä lineaarinen optimointi sisältää juuri sen saman asian kuin mikä sen nimestä tulee mieleen. Lineaarisen optimoinnin avulla haetaan ihannearvoa eli optimia, joka on määritelty

Lisätiedot

Algoritmit ja tietorakenteet Copyright Hannu Laine. 1, kun n= 0. n*(n-1)!, kun n>0;

Algoritmit ja tietorakenteet Copyright Hannu Laine. 1, kun n= 0. n*(n-1)!, kun n>0; 1 Rekursio Rekursion periaate ja rekursio määrittelyvälineenä Rekursiota käytetään tietotekniikassa ja matematiikassa erilaisiin tarkoituksiin. Eräänä käyttöalueena on asioiden määrittely. Esimerkkinä

Lisätiedot

Diskreetit rakenteet

Diskreetit rakenteet Diskreetit rakenteet 811120P 5 op 7. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 Mikä on verkko? verkko (eli graafi) koostuu solmuista ja väleistä, jotka yhdistävät solmuja

Lisätiedot

Väli- ja loppuraportointi

Väli- ja loppuraportointi Väli- ja loppuraportointi Hyvän raportin merkitys hankkeen tulosten kuvaamisessa Sari Ahvenainen ESR-koordinaattori 25.5.2011 Uudenmaan ELY-keskus Väliraportti (1/8) Miksi väliraportti tehdään? - Tarkoituksena

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

Näkymät ja hakemistot

Näkymät ja hakemistot Näkymät ja hakemistot A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin opintomoniste Eri web-lähteet

Lisätiedot

Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on

Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on Derivaatta Erilaisia lähestymistapoja: geometrinen (käyrän tangentti sekanttien raja-asentona) fysikaalinen (ajasta riippuvan funktion hetkellinen muutosnopeus) 1 / 13 Derivaatan määritelmä Määritelmä

Lisätiedot

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

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan

Lisätiedot

Dynaamisen järjestelmän siirtofunktio

Dynaamisen järjestelmän siirtofunktio Dynaamisen järjestelmän siirtofunktio Nyt päästään soveltamaan matriisilaskentaa ja Laplace muunnosta. Tutkikaamme, miten lineaarista mallia voidaan käsitellä. Kuten edellä on jo nähty säätötekniikassa

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Muuttujat. Nimi ja arvo. Algoritmin tila. Muuttujan nimeäminen. Muuttujan tyyppi. Muuttuja ja tietokone. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeetiikka.

Lisätiedot

ARVIOINTIPERIAATTEET

ARVIOINTIPERIAATTEET PSYKOLOGIAN YHTEISVALINNAN VALINTAKOE 2012 ARVIOINTIPERIAATTEET Copyright Helsingin yliopisto, käyttäytymistieteiden laitos, Materiaalin luvaton kopiointi kielletty. TEHTÄVÄ 1. (max. 34.5 pistettä) 1 a.i)

Lisätiedot

Sähköpostiohjeet. Tehokas ja huoleton sähköposti

Sähköpostiohjeet. Tehokas ja huoleton sähköposti Sähköpostiohjeet 1 Uuden PST tiedoston luominen sähköposteille... 3 Tärkeää!... 3 Tiedoston luominen... 3 Kansioiden luominen datatiedostoon... 5 Pikatoimintojen luominen... 8 Odottaa vastausta allekirjoitus...

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

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

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

Raportointi hankkeen tulosten kuvaajana ja toteutuksen tukena

Raportointi hankkeen tulosten kuvaajana ja toteutuksen tukena Raportointi hankkeen tulosten kuvaajana ja toteutuksen tukena Tiivistelmät, väli- ja loppuraportit Auli Vuorela ESR-koordinaattori Uudenmaan ELY-keskus 6.5.2013 Raportteja, raportteja, raportteja Loppuraportti

Lisätiedot

Lausuntopyyntökysely. Ohjeet:

Lausuntopyyntökysely. Ohjeet: Lausuntopyyntökysely Ohjeet: Sähköisessä kyselylomakkeessa voi liikkua edestakaisin painamalla Edellinen- tai Seuraava - painikkeita. Kysely on mahdollista lähettää vastaamatta kaikkiin kysymyksiin, mutta

Lisätiedot

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi Miksi optimoidaan Relaatiotietokannan kyselyt esitetään käytännössä SQLkielellä. Kieli määrittää halutun tuloksen, ei sitä miten tulos muodostetaan (deklaratiivinen kyselykieli) Tietokannan käsittelyoperaatiot

Lisätiedot

Kulttuuripalvelut, toimintamallien vertailu

Kulttuuripalvelut, toimintamallien vertailu Kulttuuripalvelut, toimintamallien vertailu Mitkä asiat on oleellisia? Sitovuus Päätöksenteko Strateginen ohjaus ja toiminnan ohjaus Henkilöstöpolitiikka Asiakasrajapinnat/reagointikyky asiakastarpeisiin

Lisätiedot

Luento 6. June 1, 2015. Luento 6

Luento 6. June 1, 2015. Luento 6 June 1, 2015 Normaalimuodon pelissä on luontevaa ajatella, että pelaajat tekevät valintansa samanaikaisesti. Ekstensiivisen muodon peleissä pelin jonottaisella rakenteella on keskeinen merkitys. Aluksi

Lisätiedot

SIS. Vinkkejä Ampèren lain käyttöön laskettaessa magneettikenttiä:

SIS. Vinkkejä Ampèren lain käyttöön laskettaessa magneettikenttiä: Magneettikentät 2 SISÄLTÖ: Ampèren laki Menetelmän valinta Vektoripotentiaali Ampèren laki Ampèren lain avulla voidaan laskea maneettikenttiä tietyissä symmetrisissä tapauksissa, kuten Gaussin lailla laskettiin

Lisätiedot

Mielestämme hyvä kannustus ja mukava ilmapiiri on opiskelijalle todella tärkeää.

Mielestämme hyvä kannustus ja mukava ilmapiiri on opiskelijalle todella tärkeää. Ops-perusteluonnosten palaute Poikkilaakson oppilailta 1 LUKU 2 B Perusopetuksen arvoperusta Suunta on oikea, ja tekstissä kuvataan hyvin sitä, kuinka kaikilla lapsilla kuuluisi olla oikeus opiskella ja

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

JOENSUUN SEUDUN HANKINTATOIMI KOMISSIOMALLI 28.03.2014

JOENSUUN SEUDUN HANKINTATOIMI KOMISSIOMALLI 28.03.2014 JOENSUUN SEUDUN HANKINTATOIMI KOMISSIOMALLI 28.03.2014 KOMISSIO Komissio otetaan käyttöön kaikissa kilpailutuksissa, joiden hankintakausi alkaa 1.1.2012 tai sen jälkeen Raha liikkuu Joensuun seudun hankintatoimen

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

Lue ohjeet huolellisesti ennen laitteen käyttöä.

Lue ohjeet huolellisesti ennen laitteen käyttöä. 1 Väliaikaisen tallennuskansion käyttö Lue ohjeet huolellisesti ennen laitteen käyttöä. Kun skannaat kuvia, dioja, asiakirjoja jne. sekä digitoit LP-levyjä tai C-kasetteja, sinulla on mahdollisuus tallentaa

Lisätiedot

SISÄLLYSLUETTELO. KVALT, 30.11.2015 18:00, Pöytäkirja

SISÄLLYSLUETTELO. KVALT, 30.11.2015 18:00, Pöytäkirja SISÄLLYSLUETTELO KVALT, 30.11.2015 18:00, Pöytäkirja 73 LAUSUNTO ITSEHALLINTOALUEJAON PERUSTEISTA JA SOTE-UUDISTUKSESTA... 1 Pykälän liite: Liite 3: Lopen kunnan lausunto... 2 73, KVALT 30.11.2015 18:00

Lisätiedot

Mobiiliturva Palvelun käyttöönotto

Mobiiliturva Palvelun käyttöönotto Mobiiliturva Palvelun käyttöönotto Protecting the irreplaceable f-secure.com Sovelluksen lataus Tilattuaan Mobiiliturva palvelun, asiakas saa Android-laitteeseensa latauslinkin*, jota klikkaamalla sovellus

Lisätiedot

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Kyselyt: Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Verkkotehtäviin pohjautuva arviointi matematiikan opetuksessa

Verkkotehtäviin pohjautuva arviointi matematiikan opetuksessa Verkkotehtäviin pohjautuva arviointi matematiikan opetuksessa Linda Blåfield, Helle Majander, Antti Rasila & Pekka Alestalo Aalto-yliopiston teknillinen korkeakoulu Oppimisen arviointi Käytännössä: Tarkastellaan

Lisätiedot

Perusopetuksen aamu- ja iltapäivätoiminnan laadun arviointi 2016 Västankvarns skola/ Tukiyhdistys Almus ry.

Perusopetuksen aamu- ja iltapäivätoiminnan laadun arviointi 2016 Västankvarns skola/ Tukiyhdistys Almus ry. Perusopetuksen aamu- ja iltapäivätoiminnan laadun arviointi 06 Västankvarns skola/ toteutti perusopetuksen aamu- ja iltapäivätoiminnan seurantakyselyn lapsille ja huoltajille huhtikuussa 06. Vuoden 06

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

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien Monen taulun kyselyt FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: SELECT FROM Tuloksena on taululistassa lueteltujen taulujen rivien karteesinen

Lisätiedot

TK081001 Palvelinympäristö

TK081001 Palvelinympäristö TK081001 Palvelinympäristö 5 opintopistettä!! Petri Nuutinen! 8 opintopistettä!! Petri Nuutinen! RAID RAID = Redundant Array of Independent Disks Useasta fyysisestä kiintolevystä muodostetaan yhteinen

Lisätiedot

Suomen Lions-liitto ry Käyttäjätunnus ja sisäänkirjautuminen MyLCI - Käyttäjäohje Versio 1.2 4.4.2016

Suomen Lions-liitto ry Käyttäjätunnus ja sisäänkirjautuminen MyLCI - Käyttäjäohje Versio 1.2 4.4.2016 Suomen Lions liitto ry Suomen Lions-liitto ry Käyttäjätunnus ja sisäänkirjautuminen MyLCI - Käyttäjäohje Versio 1.2 4.4.2016 Dokumenttien ja ohjeiden luovutus kolmannelle osapuolelle ilman lupaa, kopioimalla,

Lisätiedot

FYYSINEN SUUNNITTELU

FYYSINEN SUUNNITTELU IIO30120 DATABASE DESIGN / TIETOKANTOJEN SUUNNITTELU JA IIO30220 DATABASE MANAGEMENT / TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI,

Lisätiedot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot Esim yhteinen attribuutti C Liitosesimerkki T() = 10,000 riviä T() = 5,000 riviä S() = S() = 1/10 lohkoa Puskuritilaa = 101 lohkoa 1 2 Vaihtoehdot Sisäkkäiset silmukat Liitosjärjestys:, Liitosalgoritmit:

Lisätiedot

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman

Lisätiedot

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa

Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa Hakijan ohje Opetushallitus kevät 2013 Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa Tässä ohjeessa on kuvattu miten hakulomake täytetään ja lähetetään yliopistohaku.fi-palvelussa. Näytön

Lisätiedot

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

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org Sisällysluettelo Yleistä...3 Asennus... 4 Asetukset... 4 Toimitustavat... 5 Tilauksen käsittely...6 Huomioitavaa... 7 Lähipaketti toimitustapa...

Lisätiedot

Terveydenhuollon ATK-päivät

Terveydenhuollon ATK-päivät Terveydenhuollon ATK-päivät Case Medikes Roadmap Järjestelmäasiantuntija Juha Viitala Liikelaitos Medikes Kokonaisarkkitehtuuri Kokonaisarkkitehtuuri on strategisen johtamisen väline, jonka avulla yhtenäistetään

Lisätiedot

ABT 2000kg Haarukkavaunun käyttöohje

ABT 2000kg Haarukkavaunun käyttöohje ABT 2000kg Haarukkavaunun käyttöohje HUOM! Käyttäjän tulee lukea käyttöohje ennen käytön aloittamista. 1. YLEISKUVAUS Kapasiteetti Max. haarukoiden korkeus Min. haarukoiden korkeus Haarukoiden pituus Vaunun

Lisätiedot

Luovia ratkaisuja Erasmus-byrokratian kanssa painimiseen KANSAINVÄLISTEN ASIOIDEN KEVÄTPÄIVÄT 10.5.2016, TURKU

Luovia ratkaisuja Erasmus-byrokratian kanssa painimiseen KANSAINVÄLISTEN ASIOIDEN KEVÄTPÄIVÄT 10.5.2016, TURKU Luovia ratkaisuja Erasmus-byrokratian kanssa painimiseen KANSAINVÄLISTEN ASIOIDEN KEVÄTPÄIVÄT 10.5.2016, TURKU Erasmus+ -ohjelman hallinto Oamkissa - Osin keskitetty, osin hajautettu malli - Kv-palvelut

Lisätiedot

Riskienhallinta DTV projektissa. Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Riskienhallinta DTV projektissa. Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Teknillinen korkeakoulu 61 Riskienhallinta DTV projektissa Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Versio Päiväys Tekijä Kuvaus 1.0 29.10.01 Oskari Pirttikoski Ensimmäinen versio

Lisätiedot

Lausuntopyyntökysely. Ohjeet:

Lausuntopyyntökysely. Ohjeet: Lausuntopyyntökysely Ohjeet: Sähköisessä kyselylomakkeessa voi liikkua edestakaisin painamalla Edellinen tai Seuraava painikkeita. Kysely on mahdollista lähettää vastaamatta kaikkiin kysymyksiin, mutta

Lisätiedot

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt: Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot,

Lisätiedot

2.7 Neliöjuuriyhtälö ja -epäyhtälö

2.7 Neliöjuuriyhtälö ja -epäyhtälö 2.7 Neliöjuuriyhtälö ja -epäyhtälö Neliöjuuren määritelmä palautettiin mieleen jo luvun 2.2 alussa. Neliöjuurella on mm. seuraavat ominaisuudet. ab = a b, a 0, b 0 a a b =, a 0, b > 0 b a2 = a a > b, a

Lisätiedot

Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö

Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö Algoritmit 2 Luento 8 Ke 13.4.2016 Timo Männikkö Luento 8 Rekursioyhtälöt Master-lause Lähin pistepari Ahne menetelmä Lyhin virittävä puu Kruskalin menetelmä Primin menetelmä Merkkitiedon tiivistäminen

Lisätiedot

LIITTOKOKOUSVAALIT 2016

LIITTOKOKOUSVAALIT 2016 1(5) VAALIOHJEET LIITTOHALLITUKSEN JÄSENEHDOKKAIDEN ASETTAMISTA VARTEN 1. Yleistä Liiton sääntöjen 18 :n mukaan liittohallitukseen kuuluvat puheenjohtajan ja varapuheenjohtajan lisäksi 14 varsinaista jäsentä

Lisätiedot

Dynaaminen optimointi

Dynaaminen optimointi Dynaaminen optimointi Tapa ratkaista optimointitehtävä Tehtävä ratkaistaan vaiheittain ja vaiheet yhdistetään rekursiivisesti Perustuu optimaalisuusperiaatteeseen: Optimaalisen ratkaisupolun loppuosa on

Lisätiedot

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto Harri Laine Helsingin yliopisto Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä teoria käytäntö kaavio: R(A 1 :D 1, A

Lisätiedot

Lausuntopyyntö STM 2015

Lausuntopyyntö STM 2015 Lausuntopyyntö STM 2015 1. Vastaajatahon virallinen nimi Nimi - Itä-Savon sairaanhoitopiirin kuntayhtymä 2. Vastauksen kirjanneen henkilön nimi Nimi - Panu Peitsaro 3. Vastauksen vastuuhenkilön yhteystiedot

Lisätiedot

Sähköstaattisen potentiaalin laskeminen

Sähköstaattisen potentiaalin laskeminen Sähköstaattisen potentiaalin laskeminen Potentiaalienegia on tuttu mekaniikan kussilta eikä se ole vieas akielämässäkään. Sen sijaan potentiaalin käsite koetaan usein vaikeaksi. On hyvä muistaa, että staattisissa

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 10 1 Sarjakehitelmiä Palautetaan mieliin, että potenssisarja on sarja joka on muotoa a n (x x 0 ) n = a 0 + a 1 (x x 0 ) + a 2 (x x 0 ) 2 + a 3 (x x 0 ) 3 +. n=0 Kyseinen

Lisätiedot

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Kyselykielet, s 2006, Harjoitus 5 (7.12.2006) Tietokannassa on tietoa tavaroista ja niiden toimittajista: Supplier(sid,sname,city,address,phone,etc);

Lisätiedot

KUNTIEN ROOLI MUUTOKSESSA Vaikuttamisiltapäivä ja EK-foorumi 3.2.

KUNTIEN ROOLI MUUTOKSESSA Vaikuttamisiltapäivä ja EK-foorumi 3.2. Päijät-Hämeen liitto The Regional Council of Päijät-Häme KUNTIEN ROOLI MUUTOKSESSA Vaikuttamisiltapäivä ja EK-foorumi 3.2. @Jari_Parkkonen #PHliitto Lähde: Tilastokeskus Kartta ja analyysi: Timo Aro Lähde:

Lisätiedot

Molemmille yhteistä asiaa tulee kerralla enemmän opeteltavaa on huomattavasti enemmän kuin englannissa

Molemmille yhteistä asiaa tulee kerralla enemmän opeteltavaa on huomattavasti enemmän kuin englannissa Molemmille yhteistä alkavat Espoossa 4. luokalta 2 oppituntia viikossa etenemisvauhti on kappaleittain laskettuna hitaampaa kuin englannissa, mutta asiaa tulee kerralla enemmän sanat taipuvat, joten opeteltavaa

Lisätiedot

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,

Lisätiedot

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi 17.5.2006 1/5 Oppimistavoitteet kurssilla Rinnakkaisohjelmointi Rinnakkaisuus ja rinnakkaisuuden soveltaminen tietojenkäsittelyjärjestelmissä Kurssin Tietokoneen toiminta perusteella ymmärtää, miten ohjelman

Lisätiedot

HE 226/2008 vp. Esityksessä ehdotetaan muutettavaksi työttömyysturvalakia

HE 226/2008 vp. Esityksessä ehdotetaan muutettavaksi työttömyysturvalakia Hallituksen esitys Eduskunnalle laiksi työttömyysturvalain 11 luvun :n muuttamisesta Esityksessä ehdotetaan muutettavaksi työttömyysturvalakia siten, että niitä perusteita, joilla soviteltua työttömyysetuutta

Lisätiedot

Sivu 1/5 Mitä CD- tai DVD-muotoa tulisi käyttää? Tässä artikkelissa Tarpeita vastaavan levyn ja muodon valinta Tietoja Live File Systemin ja masteroidun levymuodon eroista Miksi Live File System -muodosta

Lisätiedot

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden

Lisätiedot

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

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

Lisätiedot

Paikallissivuston kumppanin starttipaketti

Paikallissivuston kumppanin starttipaketti Paikallissivuston kumppanin starttipaketti Tervetuloa mukaan paikallissivustolle! Paikallissivusto on osoitteessa www.vantaansanomat.fi Paikallissivustolla on paikallisia uutisia, palveluita, tapahtumatietoja,

Lisätiedot

Antavatko Kelan standardit mahdollisuuden toteuttaa hyvää kuntoutusta työssä uupuneille ja mielenterveysongelmaisille?

Antavatko Kelan standardit mahdollisuuden toteuttaa hyvää kuntoutusta työssä uupuneille ja mielenterveysongelmaisille? Antavatko Kelan standardit mahdollisuuden toteuttaa hyvää kuntoutusta työssä uupuneille ja mielenterveysongelmaisille? Sari Kauranen, psykologi Verve Oulu Kokemuksia ja havaintoja kahdesta näkökulmasta

Lisätiedot

Veto-visualisointityökalu

Veto-visualisointityökalu Ohjelmoinnin suunnittelumallit (design patterns) käyttöliittymissä Vanhin ja keskeisin lähde Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns. Addison-Wesley, USA, 1994. Ajatus ohjelmoinnin

Lisätiedot