Suorituskykypatterneja

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

Esimerkki ohjemasuoritusmallien käytöstä

Muutamia peruskäsitteitä

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen suorituskyky, Kurssin tavoitteet

Ohjelmistojen suunnittelu

Järjestelmätason mallit III

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

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen,

Algoritmit 1. Luento 1 Ti Timo Männikkö

Uudelleenkäytön jako kahteen

Ohjelmasuoritusmalli ja sen käyttö

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

Optimoinnin sovellukset

Tietokanta (database)

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

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

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

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

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

REKISTERI- JA TIETOKANTA-AINEISTOJEN SIIRTÄMINEN VAPA-PALVELUUN

HELIA 1 (14) Outi Virkki Tiedonhallinta

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

ohjelman arkkitehtuurista.

Järjestelmäarkkitehtuuri (TK081702)

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

A TIETORAKENTEET JA ALGORITMIT

Ohjelmistojen mallintaminen. Luento 11, 7.12.

The OWL-S are not what they seem

Ohjelmoinnin perusteet Y Python

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

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke

Tuotannon jatkuva optimointi muutostilanteissa

Ohjelmistoarkkitehtuurin suunnittelu

Seuraavat tasot sisältävät alueita ja pisteitä samassa tasossa. o Asemakaavat o Kaavayksiköt o Kiinteistöt

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

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

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

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Lukkarikone Pikaohjeet v. 1.0

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Dynaaminen analyysi II

Tievalaistuksen palvelusopimuksen tietopalvelu Sähköinen omaisuuden hallinta

Elisa Kassa-taustajärjestelmän välilehdeltä raportit voidaan aukaista haluttuun tapahtumaan liittyvän raportin.

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Hyvinvointia työstä

Tietokantakurssit / TKTL

811312A Tietorakenteet ja algoritmit I Johdanto

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Analyysi on tulkkaamista

Tietorakenteet ja algoritmit - syksy

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Tieto- ja tallennusrakenteet

Luku 8. Aluekyselyt. 8.1 Summataulukko

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

D B. Tiedostojen käsittely

Suunnitteluvaihe prosessissa

TIETOVARASTOJEN SUUNNITTELU

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Ohjelmiston toteutussuunnitelma

Tulevaisuuden Internet. Sasu Tarkoma

Suunnittelumallien käyttö ja web-navimallit

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIETOKANNAN SUUNNITTELU

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

Koodimalli Code Model

HSMT J2EE & EJB & SOAP &...

Tietovarastojen suunnittelu

VAATIMUSMÄÄRITTELY. Polku Versio 1.2. Projektiryhmä

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

Omapalvelu. Omapalvelu - ohje Päivityspaketti 1/ Tieto Corporation

Liikkuva työ pilotin julkinen raportti

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Hyödyt irti XDW:stä. Kim Johnsson Projektipäällikkö/Cerion Solutions Oy

HOJ J2EE & EJB & SOAP &...

SEPA - Design Patterns

2 Konekieli, aliohjelmat, keskeytykset

Viestinvälitysarkkitehtuurit

Tehokasta palkanlaskentaa

Ohjelmistojen mallintaminen, sekvenssikaaviot

Transkriptio:

Suorituskykypatterneja Luento 12 58153003 Ohjelmistojen suorituskyky 1 Patterni Patterni (eli ratkaisumalli, pattern) kuvaa ohjelmistoratkaisun ytimen johonkin toistuvaan ongelmaan, joka esiintyy tietyssä kontekstissa Patternien vakiintunut esitysmuoto Nimi Ongelma Ratkaisu Ratkaisun hyödyt Muut seuraukset 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1

Suorituskykypatternit Ovat abstraktimpeja kuin (olio-)suunnittelumallit (design patterns) ja koskevat yleensä suurempaa osaa implementaatiosta Patterneissa sovelletaan yleisiä suunnitteluperiaatteita Yksi patterni voi perustua useampaan periatteeseen Ovat usein suoraan arkijärjellä helposti ymmärrettävissä (mutta helpommin sanottu kuin tehty ) Hyvien ratkaisumallien lisäksi on myös tärkeää tunnistaa usein toistuvia suorituskyvyn kannalta huonoja ratkaisuja Näitä on dokumentoitu anti-patterneina Seuraavassa käydään läpi joitakin suorituskyvyn kannalta oleellisia patterneja ja anti-patterneja 58153003 Ohjelmistojen suorituskyky 3 PATTERNEJA 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2

Fast Path (Oikopolku) Tavoitteena on vähentää dominoivien työnkuormien vaatimaa prosessointia Suhteellisen pientä osaa sovelluksen toiminnallisuudesta käytetään yleensä huomattavasti useammin kuin muita toimintoja Näiden työkuormat dominoivat sovelluksen resurssien käyttöä Sovelluksen suoritustehoa halutaan kasvattaa 58153003 Ohjelmistojen suorituskyky 5 Fast Path (Oikopolku) Keskitysperiaate (centering principle) neuvoo minimoimaan dominoivien työnkulkujen prosessointiin kuluvan ajan Yksi tapa minimoida suoritusaika on tarjota useimmin käytetyille toiminnoille vaihtoehtoinen, turhat väliaskeleet ohittava oikopolku (fast path) Heti toimintopolun alussa tiedetään, mitä asiakas haluaa, joten sitä ei tarvitse joka välissä erikseen kysyä 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3

Fast Path (Oikopolku) Esimerkiksi pankkiautomaatti tarjoaa heti PIN-koodin kyselyn jälkeen mahdollisuuden nostaa tietty summa tililtä (ylivoimaisesti yleisin toiminto) tai tehdä jotain muuta (muun nostettavan summan syöttö, saldokysely) Myös monet web-sivustot tarjoavat pikalinkkejä suosituimpiin sisältöihin tai toimintoihin heti lataussivulta Oikopolkuja voi tarjota myös dataan, eli pitämällä useimmin tarvittavat tietoalkiot käteismuistissa, jolloin niitä ei aina tarvitse hakea tietovarastosta asti Oikopolku voidaan myös luoda dynaamisesti ja adaptiivisesti käyttöhistoria huomioon ottaen 58153003 Ohjelmistojen suorituskyky 7 Fast Path (Oikopolku) Oikopolku perustuu keskitysperiaatteen soveltamiseen, mutta muutkin periaatteet sopivat itse oikopolun lyhentämiseen, esimerkiksi Paikallisuusperiaate (esim. ajallisesti lähekkäin tarvittava data samassa paikassa) Kysynnän minimointi Hyödyt Dominoivien töiden vastausaikojen lyhentäminen parantaa järjestelmän responsiivisuutta käyttäjän näkökulmasta Dom. töiden resurssien käytön vähentäminen voi lievittää resurssikilpailun negatiivisia vaikutuksia, mikä lyhentää muidenkin töiden vastausaikoja 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4

Muut seuraukset Fast Path (Oikopolku) Tarjottujen oikopolkujen on oltava relevantteja käyttäjien näkökulmasta, eli on tunnettava käyttäjien oikeat tarpeet ja tavat Käyttötavat voivat muuttua ajan myötä Sovellus on syytä instrumentoida niin, että tarjottujen oikopolkujen käyttöä voidaan seurata ja havaita käyttötapojen muutokset 58153003 Ohjelmistojen suorituskyky 9 First Things First (Tärkeimmät ensin) Ajan ollessa tiukalla, asiat pitää priorisoida ja varmistaa, että ainakin tärkeimmät tulevat hoidetuksi Ohimenevä ylikuormitustilanne voi aiheuttaa järjestelmän käsittelykapasiteetin ylittymisen Järjestelmä ei joko pysty käsittelemään kaikkia syötteitään (vaan hukkaa osan) tai pyyntöjen vastausajat venyvät kohtuuttoman pitkiksi Voi aiheutua vaaratilanteita tai taloudellisia menetyksiä 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5

First Things First (Tärkeimmät ensin) Asetetaan suoritettavat työt/tehtävät tärkeysjärjestykseen, ja tehdään tärkeimmät aina ennen vähemmän tärkeitä Jaa loogiset tehtävät, kuten syötetapahtuman käsittely, omiksi fyysisiksi tehtävikseen (säikeiksi tai prosesseiksi) Aseta fyysisten tehtävien prioriteetit vastaamaan loogisten tehtävien tärkeyttä 58153003 Ohjelmistojen suorituskyky 11 First Things First (Tärkeimmät ensin) Esimerkiksi reaaliaikajärjestelmissä säikeiden ja prosessien prioriteettien sekä säikeiden skedulointialgoritmien säätäminen on tärkeää tapahtumien käsittelyn kovien aikarajojen saavuttamiseksi Prioriteetit asetetaan yleensä staattisesti, mutta niihin voi liittyä dynaamisiakin piirteitä ( priority inheritance ) Skedulointialgoritmeilta ja tietorakenteilta voidaan vaatia tiettyjä ominaisuuksia, jotka mahdollistavat haluttujen aikarajojen saavuttamisen formaalin (matemaattisen) todistamisen Soveltaa keskitysperiaatetta kiinnittäessään huomion tärkeimpiin töihin 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6

First Things First (Tärkeimmät ensin) Hyödyt Varmistaa tärkeimpien töiden tulevan suoritetuiksi Ylikuormituksen sattuessa järjestelmän suoritus-kyky heikkenee hallitusti ja paranee vastaavasti tilanteen mentyä ohi Muut seuraukset Jos ylikuormitustilanne ei ole ohimenevä vaan jatkuva ilmiö, matalamman prioriteetin tehtävät voivat nälkiintyä tai jäädä jopa kokonaan suorittamatta Tässä tapauksessa suoritusympäristön tehoa täytyy lisätä tai töiden vaatimaan prosessoinnin määrää täytyy vähentää 58153003 Ohjelmistojen suorituskyky 13 Coupling (Rajapinta tehtävän mukaan) Kootaan loogisesti yhteen kuuluvat, usein yhdessä tarvittavat asiat yhden rajapinnan/apin kautta saatavaksi Huom- eri asia kuin kytkentä (coupling) modulaarisuuden indikaattorina! Monikerroksinen (esitys-logiikka-data) web-sovellus käyttää relaatiotietokantaa datan pysyvään säilytykseen Jos tietokannan taulujen rivit esitetään sovelluslogiikkakerrokselle sellaisenaan olioina, joiden attribuutit vastaavat taulun sarakkeita, olioiden attribuuttien käsittely (esimerkiksi oliorakenteen navigointi linkkien kautta) aiheuttaa helposti suuren määrän yksittäisiä tietokantakyselyitä Hajautetussa arkkitehtuurissa tietokantakutsut voivat olla pullonkaula Tietokannan sisäinen rakenne paljastuu myös suoraan logiikkakerrokselle, mikä luo voimakkaan riippuvuuden logiikkakerroksesta datakerrokseen ja sen toteutukseen 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7

Coupling (Rajapinta tehtävän mukaan) Koostetaan ja piilotetaan hienojakoinen toteutusrakenne rajapinnan/oliomallin taakse, joka tarjoaa käyttäjän tarpeisiin sopivan data-abstraktion Yhdessä käytettävät dataelementit kootaan samaan koosteeseen Koosteen välittävä toteutus huolehtii datan hausta ja päivityksestä tietovarastoon minimoiden hakujen määrän ja maksimoiden siirrettävän datan määrän Sovelletut periaatteet: kysynnän miminointi, paikallisuus, keskitys Esimerkki modernista ORM-ratkaisusta: Hibernate ORM (http://hibernate.org/orm/) 58153003 Ohjelmistojen suorituskyky 15 Coupling (Rajapinta tehtävän mukaan) Hyödyt Sovittaa tarjotun palvelun muodon sovellukseen semantiikkaan ja rajoittaa datakerroksen muutosten heijastusvaikutuksia logiikkakerrokseen Muut seuraukset Hyöty saadaan vasta, kun sovelluksen logiikka on vakiintunut (ei muutu), koska oikean rajapinnan määrittely vaatii jonkin verran työtä 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8

Flex Time (Aikajoustot) Joustavilla työajoilla pyritään Helpottamaan työntekijöiden yksityiselämän ja liiketoiminnan tarpeiden yhteensovittamista Tasaamaan inhimillisen ja yhteiskunnan (esim liikenne) kapasiteetin käyttöä ylikuormituksen välttämiseksi Monet toistuvat ja tietyin väliajoin tehtävät työt ajoittuvat suoritettavaksi samaan aikaan aiheuttaen kysyntäpiikin ja töiden ruuhkautumisen 58153003 Ohjelmistojen suorituskyky 17 Flex Time (Aikajoustot) Ajoitetaan ennakoitavat työt tapahtumaan eri aikoihin Jos jonkin toistuvan työn suoritushetkellä ei sinänsä ole merkitystä, pyritään ajoittamaan se hiljaiseen ajankohtaan (esim käyttäjän kotihakemiston varmuuskopiointi) tai tekemään se osittain ennakkoon (yhteenvetoraporttien jatkuva koostaminen) Jos työn ajankohdalla on merkitystä käyttäjälle (esim ajantasaisen raportin tuottaminen tuotantotietokannasta), mutta toimitusajassa on silti jonkin verran joustoa, järjestetään eri käyttäjille ja eri raporteille omat aikaikkunansa, jossa työ toteutetaan Raskaan periodisen työn suorituskykyimpaktia voidaan myös vähentää jakamalla iso työ pienempiin useammin suoritettaviin osatehtäviin 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9

Flex Time (Aikajoustot) Hyödyt Töiden tasainen ajallinen jakautuminen vähentää ruuhkaa rajallisilla resursseilla ja lyhentää siten odotusaikoja Isojen töiden jakaminen pienempiin osiin vähentää myös yksittäisen työn resurssien käyttöä, mikä edelleen lyhentää samanaikaisten töiden kokemia viiveitä Muut seuraukset Vaikutus perustuu töiden odotusaikojen lyhenemiseen; töiden skedulointi, niiden ennakoiva suorittaminen ja töiden pilkkominen saattavat kasvattaa resurssien kokonaiskäyttöä Töiden ajallisen hajautuksen onnistuminen on kriittinen tekijä Sovelletut periaatteet Taakan jakaminen, jaetut resurssit, kysynnän minimointi 58153003 Ohjelmistojen suorituskyky 19 ANTI-PATTERNEJA 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10

The god Class (jumalolio) Ohjelmassa on yksi olio, joka käytännössä vastaa suuresta osasta toiminnallisuutta ja joka delegoi vain vähäpätöisiä tukitehtäviä muille Olio on kontrollerin roolissa ohjaten merkittäviä tilamuutoksia ja suorituspolkujen valintaa ( kontrollifriikki ) Muut oliot ovat lähinnä tyhmiä dataobjekteja Toisenlainen jumalolio taas haluaa omistaa kaiken ohjelman datan ( dataholisti ) Suorituskykyä heikentävä vaikutus tulee siitä, että jumalolio on mukana kaikessa toiminnassa, jolloin olioiden välistä viestintää on tarpeettoman paljon Vaikutus korostuu hajautetussa arkkitehtuurissa viestiviiveen takia 58153003 Ohjelmistojen suorituskyky 21 The god Class (jumalolio) Refaktoroidaan rakenne siten, että päätösvalta ja data jakautuu tasaisemmin ja roolinmukaisesti ohjelman keskeisten olioiden välillä, hyviä oliosuunnittelun periaatteita noudattaen (esimerkiksi Responsibilitydriven Design http://en.wikipedia.org/wiki/responsibilitydriven_design) Sovelletaan paikallisuusperiaatetta kapseloimalla data, päätökset, operaatiot ja niiden tila asianmukaisiin olioihin 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11

Circuitous Treasure Hunt (vihjepeli) Löytääkseen jonkin tietyn datan, asiakas tekee ensin tietokantahaun yhteen tauluun ja käyttää sitten saamaansa vastausta muodostaakseen uuden kyselyn johonkin toiseen tauluun; tätä jatkuu, kunnes asiakas lopulta löytää hakemansa datan Vaikutus suorituskykyyn on suuri varsinkin jos tietokantapalvelin sijaitsee eri verkkosolmussa kuin asiakas Sama ilmiö voi esiintyä myös muistissa olevien oliorakenteiden käsittelyssä, jos jonkin tiedon hakeminen vaatii ensin pitkän linkkiketjun (assosiaatioiden) seuraamista oliosta toiseen halutun datan löytämiseksi ja sitten paluuta samaa polkua vastauksen palauttamiseksi hakijalle (metodikutsut, muistin hallinnan operaatiot) 58153003 Ohjelmistojen suorituskyky 23 Circuitous Treasure Hunt (vihjepeli) Esimerkiksi 4. luennolla käsitellyssä ICADesimerkissä (Arkkitehtuuri 1, diat 12-13), jokainen kulmapiste oli tallennettu omana kolmesta kokonaisluvusta ja tunnisteesta koostuvana tietueenaan Jokaista tietokannasta haettua palkkia kohden joudutaan siis tekemään 2 muuta kyselyä sen kulmapisteiden hakemiseksi toisesta taulusta Koko mallin hakemiseksi tietokannasta joudutaan tyypillisessä 2000 palkin tapauksessa tekemään 1 + 2000 + (2 * 2000) = 6001 kyselyä 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12

Circuitous Treasure Hunt (vihjepeli) Valitaan datan tallennusrakenne siten, että tilaa koskeva paikallisuus paranee Esimerkiksi ICAD-tapauksessa, kulmapisteiden paikkakoordinaatit voitaisiin tallentaa suoraan sarakkeina (kenttinä) palkkitauluun Tämä vähentää datan hakuun tarvittavien kyselyjen määrää 4000:lla (66%) Tai järjestetään vaihtoehtoisia, suorempia saantipolkuja dataan Huomaa, että tällaisella tallennusrakenteen optimoinnilla voi olla negatiivista vaikutusta muihin järjestelmän ominaisuuksiin ja toimintoihin Esimerkin tapauksessa muun muassa talletettavan datan määrä voi kasvaa, koska päistään yhteen liitetyt palkit eivät voi jakaa samaa kulmapistettä 58153003 Ohjelmistojen suorituskyky 25 The One-Lane Bridge (yksikaistainen silta) Vain yksi tai muutama prosessi kerrallaan voi käyttää jotakin kriittistä resurssia (exclusive access, yksinkäyttöoikeus), mikä aiheuttaa muiden sillalle pyrkivien prosessien jonoutumista ja sens vapautumisen odottelua Järjestä vaihtoehtoisia reittejä vähentämään eksklusiivisen resurssin kysyntää Esimerkiksi Pyri hajauttamaan kriittisen tietokantataulun päivitykset eri osiin taulua rivien lukitsemista aiheutuvien viiveiden lyhentämiseksi Kerää samanaikaiset muutokset erillisiin väliaikaisiin tauluihin, jotka konsolidoidaan myöhemmin master dataan 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13