Keskusmuistitietokantahakemistot Vilho Raatikka Solid Information Technology Tietokannat NYT! Helsinki, 15.11.2005.

Slides:



Advertisements
Samankaltaiset esitykset
18. Abstraktit tietotyypit
Advertisements

Kasvaako pääni, kun opin?
Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta
© Hannu Laine 1 Tietorakenteet ja algoritmit Funktio-osoittimet Funktio-osoittimen ja taulukko-osoittimen vertailu Funktio-osoittimen käyttötapoja.
JavaScript (c) Irja & Reino Aarinen, 2007
Ohjelman perusrakenteet
© 2010 IBM Corporation1 Etusivun muokkaaminen  Portaalisivut ja niihin määritetyt komponentit muodostavat varsinaiset internet-sivut.  Etusivu muodostuu.
Tietokone Koostuu keskusyksiköstä, näytöstä, näppäimistöstä, hiirestä sekä muista mahdollisista lisälaitteista. Pöytäkoneiden lisäksi löytyy myös kannettavia.
1756 Rinnakkaisalgoritmien suunnittelu Rinnakkaisuuden hyödyntämisen perustekniikat J. Porras.
CD-ROM-asema mikrossa
VMware workstation. VMware •Virtual Machine •Yhtiö perustettu vuonna 1998 •1999 julkaisi ensimmäisen tuotteen: VMware for workstations •2001 tuli VMware.
2.8.3 Abstraktit tietotyypit
Markku Siermala, IMT Bioinformatiikan koulutusohjelma
Rakenteinen ohjelmointi
Etusivun otsikko Alarivit tulevat näin lorem ipsum dolor Lorem ipsum dolor sed diam TK00507 Mikrotietokoneet I 3 opintopistettä Petri Nuutinen.
Etusivun otsikko Alarivit tulevat näin lorem ipsum dolor Lorem ipsum dolor sed diam TK00507 Mikrotietokoneet I 3 opintopistettä Petri Nuutinen.
Keskusmuistipohjaiset tietokannat
Antti Tiihala, Esa Tuuri, Matti Ali-Löytty, Janne Karhu
Tietokoneen rakenne Stallings, Luku 1
Käyttöjärjestelmät Johdanto. Kurssimateriaalista 15 lukua, jotka vastaavat enemmän tai vähemmän 15 kahden tunnin pakettia Perustuu Gary Nuttin Operating.
AS Automaation signaalinkäsittelymenetelmät
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
E-Commerce 2010: Business, Technology, Society 6e
Binäärinen hakupuu Jokaisessa solmussa on yksikäsitteinen avain
Muistinhallinta. 2 Teknisiä kehitysaskelia §Muisti- ja osoiteavaruuden erottaminen toisistaan l virtuaaliosoitteiden avulla muistin koko voi olla suurempi.
Tiedon esittäminen.
Näkökulmia tilastojen tulkitsemiseen Käytä oikeita käsitteitä.
Tiedostomuodot Jussi Talaskivi atk-suunnittelija Jyväskylän yliopisto.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
1 9. Muistinhallinta l Moniajojärjestelmässä keskusmuisti on jaettu usean prosessin kesken l => ohjelman paikka muistissa ei ole kiinteä, vaan koodi on.
Tietotekniikan peruskäsitteet
Larry the cow was a bit frustrated at the current state of linux distributions......until he tried Gentoo Linux. Gentoo Linux Petri Pesonen Mikko Ratilainen.
Tässä on kokoelma kaikista 8lk:lla tekemistäni töistä.
Tervetuloa!Tervetuloa!. Introducing LabQuest Vernierin uudella tiedonkeräimellä voit mitata  itsenäisesti tai…  liittämällä USB –johdolla tietokoneeseen.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Kymmenkantainen logaritmi
To start press the space bar. Tietojen päivittäminen PAF kantaan käyttäen Temple Ready ohjelmaa ja IGI CD- levyjä CD-ROM:lla on tiedot vuoteen 2000 saakka,
RAID Teemu Reisbacka.
Valintarakenne valintarakenne alkaa aina kysymyksellä eli ehdolla ehto tarkoittaa, että muuttujan sisältöä verrataan toisen muuttujan sisältöön tai vakioon.
Foreach-toistolausetMyn1 foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon.
Prioriteettijonot ja kekolajittelu (heapsort)
Kuplalajittelu (bubble sort)
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Puun määritelmä Puu on yhden tai useamman kytketyn solmun muodostama hierarkinen joukko Lehtisolmuista juurisolmuun on yksikäsitteinen polku Käytetään.
Ohjelma Mikro-ohjelmointi Symbolinen konekieli Osoitustavat.
Lajittelun sovelluksia Yksilöllisyyden testaaminen Kopioiden poistaminen Mediaani/n:ksi suurimman valinta frekvenssien laskenta/yleisin alkio, l.moodi.
Mikro-ohjelmoitava tietokone
Hajakoodaus Talletetaan alkiot avain-indeksoituun taulukkoon Hajakoodausfunktio Menetelmä avain-indeksin laskemiseen avaimesta Törmäyksen selvitysstrategia.
Symbolitaulut Joukko hakuavaimen omaavia tietueita LISÄÄ uusi tietue ETSI tietue hakuavaimen perusteella Sovelluksia: Spell checker etsii sanoja sanakirjasta.
Jenna Nyblom Katri Vanhatalo Oskari Anttalainen
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.
TIETOTURVA INTERNETISSÄ. MITÄ ON TIETOTURVA? Tietoturvalla pyritään suojaamaan yritykselle tärkeitä tietoja ulkopuolisilta. Tietoturvalle on asetettu.
Yhden bitin asettaminen Javalla
Tietokoneen toiminnasta ja rakenteesta
Millainen tietokone editointiin?
Foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon tapauksessa, jossa taulukon.
9. Järjestelmän ulkoinen muisti
10. Siirräntäjärjestelmät
Tietokoneen toiminta (2 ov)
Tietokoneen toiminta (2 ov)
Tietokannan hallinta, kevät 2006, Jan Lindström
Tietokannan hallinta, kevät 2006, Jan Lindström
10. Siirräntäjärjestelmät
Tietokoneen toiminta (2 ov = 4 op)
2. TTK-91 –tietokone 2.0 Mikä TTK-91? Ja mitä hyötyä siitä on?
9. Järjestelmän ulkoinen muisti
10. Siirräntäjärjestelmät
Ohjelman perusrakenteet
Tietokoneen toiminnasta ja rakenteesta
10. Siirräntäjärjestelmät
Esityksen transkriptio:

Keskusmuistitietokantahakemistot Vilho Raatikka Solid Information Technology Tietokannat NYT! Helsinki,

2 Tietokoneen muisti on hierarkinen Prosessorin ulkoinen välimuisti (L2 cache) Keskusmuisti Kovalevy Prosessorin sisäinen välimuisti (L1 cache) 16kB data 16kB instructions 512kB unified x 32 1GB x GB x 320

3 Tiedon siirtyminen muistihierarkiassa Saantiaika 10 ms Saantiaika 100 ns Saantiaika 10 ns L2 cache rivin koko: B Keskusmuisti lohko B Kovalevysivu 2-64KB Pahin pullonkaula L1 cache rivin koko: B Saantiaika 1 ns x 10 x

4 Keskusmuistitietokannan tiedonsiirto Saantiaika 10 ms Saantiaika 100 ns Saantiaika 10 ns L2 cache rivin koko: B Tietokanta, indeksit, lokipuskuri Lokitietueet Pahin pullonkaula L1 cache rivin koko: B Saantiaika 1 ns x 10 x

5 Yhteenveto Operaatioiden muistinoudot kannattaa minimoida. Lokitietueiden tallennus on hitain MMDB-operaatio. Muistinoutoihin kuluva aika voi hallita MMDB:n suorituskykyä. CPU:n suorituskyky tuplaantuu joka 3. vuosi. Muisti nopeutuu ~15% vuodessa.

6 B-puun nerokkuus Levypohjainen B-puu Oletukset: – ryvästetty indeksi (clustered index) – tietokantasivun koko vastaa levylohkoa, esim. 8 KB – avaimen ja osoittimen koko on 32bit järjestelmässä 4B Lehtitason solmu … Solmun koko: 8 KB vähintään 512 avain-osoitin -paria (50% täyttöaste) 8K data- sivu 8K data- sivu 8K data- sivu 8K data- sivu … tuhat sivua = 8 MB tietokanta Montako hipaisua? Entä jos tietokannan koko kasvaa tuhatkertaiseksi? 8K data- sivu h= log 512 n Puun korkeus: arvo osoitin (avaimet  arvo)

7 Miksi B-puu käyttäytyy huonosti keskusmuistissa? Avaimen löytäminen kahdeksan kilotavun solmusta voi vaatia 8192/32=256:n välimuistirivin siirtämisen ensin keskusmuistista L2:een, L1:een ja lopulta rekistereihin. Peräkkäin tapahtuvan siirron kustannukset ovat 256*111ns=28416ns. Solmun koko vastaa kovalevyn lohkoa jotta kovalevyllä olevan tiedon käsittelykustannukset saataisiin minimoitua. Tavoite on että alkion haku solmusta maksaa saman verran paikasta riippumatta.

8 B-puuhaun muistinoudot ja kesto Levyoptimoitu B-puu: 1023 arvoa, 1024 osoitinta h= log 1024 n esim. log 512 1M = 3 Avaimen luku vaatii siten enintään 3*256=768:n välimuistirivin lukemisen. Niiden siirto läpi muistihierarkian kestää enintään 768*111=85248ns.

9 Binääripuut keskusmuistitietokannoissa AVL-puun huono puoli on sen tuhlaileva muistinkäyttö: se käyttää vain muutaman tavun välimuistirivistä. 22 AVL-puun solmu arvo yläosoitin oikea osoitin vasen osoitin Puun korkeus: h= log 2 n 80-luvulla havaittiin että AVL-puu on tehokas keskusmuistissa. Päivitykset vaativat usein vain muutaman osoittimen uudelleen kirjoituksen ja lukeminen rasitti CPU:ta hyvin vähän. Tiedonsaannin ajateltiin olevan yhtä kallista muistipaikasta riippumatta.

10 T-puu on taloudellisempi AVL-puu T-puun solmu sisältää joukon solmuja mutta on rakenteeltaan kuten binääripuu [LeCa86]. Sen maksimikorkeus on silti kaksikantainen logaritmi avainten lukumäärästä == paljon suurempi kuin B-puussa. Solmun koko esim. 128B, johon mahtuu 116/4=29 avainta … oikea osoitin vasen osoitin (osoittimet riveihin puuttuvat kuvasta) Puun korkeus: h<< log 2 n Muistioptimoitu T-puu: 29 arvoa, 2 osoitinta. Solmun luku binäärihaulla vaatii enintään 3 välimuistirivin kopioimisen. h= log1024n esim. log 2 1M = 20 Avaimen luku vaatii siten enintään 20*3=60:n välimuistirivin lukemisen. Niiden siirto läpi muistihierarkian kestää enintään 60*111=6660ns.

11 Ovatko kaikki muistiviittaukset saman hintaisia? Tietoa siirretään muistista välimuistiin välimuistirivin verran kerrallaan 32 B muistilohkot (rivit) keskusmuisti L2-välimuisti Direct-mapped cache (jokaiselle muistirivillä on välimuistissa vakiopaikka) Päätelmät: Samalle välimuistiriville kuvautuvien alkioiden lukeminen on nopeampaa jolloin tiedon paikallisuuden (data locality) merkitys korostuu Taulukot ovat tiiviimpiä ja siten tehokkampia kuin osoitinrakenteet. Tiiviys tehostaa lukemista. Taulukot mahdollistavat ennakoivat luvut (prefetching). konflikti

12 Johtopäätökset Samalle välimuistiriville kuvautuvien alkioiden lukeminen on nopeampaa jolloin tiedon paikallisuuden (data locality) merkitys korostuu Taulukot tarjoavat paremman tiedon paikallisuuden. Taulukot mahdollistavat ennakoivat luvut (prefetching).

13 Onko B-puu sittenkin hyvä keskusmuistissa? B-puun solmut voidaan ryhmitellä fyysisesti: isäsolmut tiivistyvät kun lapsiosoittimet voidaan yhtä lukuunottamatta poistaa. Esimerkki: CSB-puu (Cache-Sensitive B-tree) [RR00] Asetetaan solmun koko vastaamaan välimuistiriviä, esim. 32B CSB-puu: 7 arvoa, 1 osoitin h= log 4 n (50% täyttöaste) esim log 4 1M = CC-node node group (solmujen taulukko) solmun vakio koko = 32 B positio = solmutaulukon indeksi Myös muita tähän soveltuvia tiivistyskeinoja on olemassa

14 Muisti- ja välimuistioptimoinnin ero Muistioptimoitu B-puu: 3 arvoa, 4 osoitinta. Solmun luku vaatii 1 välimuistirivin kopioimisen. h= log 4 n esim. Log 2 1M = 20 Avaimen luku vaatii siten enintään 20*1=20:n välimuistirivin lukemisen. Niiden siirto läpi muistihierarkian kestää enintään 20*111=2220ns. Välimuistioptimoitu B-puu: 7 arvoa, 1 osoitin. Solmun luku vaatii 1 välimuistirivin kopioimisen. h= log 4 n esim. Log 4 1M = 10 Avaimen luku vaatii siten enintään 10*1=10:n välimuistirivin lukemisen. Niiden siirto läpi muistihierarkian kestää enintään 10*111=1110ns.

15 Trie-muisti (Trie Memory) Tree: jako perustuu avainarvoihin Trie: jako perustuu kirjoitusmerkkeihin (esim. numerot) [Fre60] Esim. 4-haarautuva trie, avaimen pituus = 32B Jaetaan 16 osaan - f (fan-out) = 4 L (pituus) = 32 Trie:n maksimikorkeus: h = L/ (log 2 f) = Path compression (solmu ohitetaan, ellei ole valintaa) Width compression (vain tarpeelliset osoittimet) 01 tietue (row) 01 Fast termination (ei ole muita arvoja, joissa etuliite ’0101’)

16 Trie pitää pitää matalana Kasvatetaan solmun haarautuvuus 256:een. Hillitään solmun kasvua aggressiivisella leveyspakkauksella (”W”). Malli yksinkertainen: 256 bitin kartta jossa n:nnen osoittimen olemassaoloa merkitään asettamalla n:s bitti pystyyn. Rakenteen korkeus on enintään (vain) pisimmän avaimen pituu tavuina, solmun koko voi kasvaa 1056 tavuun ja alkion haku vaatii käytännössä kahden välimuistirivin lukemisen. 1000…11…1 Trie:n mielekkyys perustuu tiivistyvyyteen ja tehokkaaseen alkion paikantamiseen Pakattu trie: L (avaimen pituus bitteinä) = 32 ja f (haarautumisaste) = 256. Solmun luku vaatii enintään 2 välimuistirivin kopioimisen. Rakenteeseen mahtuu 2 32 avainta. h= L/ (log 2 f) = 4 Avaimen luku vaatii siten enintään 4*2=8:n välimuistirivin lukemisen. Niiden siirto läpi muistihierarkian kestää enintään 8*111=888ns.

17 Eri hakemistojen hakutehokkuusvertailu

Hakemiston tehokkuus riippuu luku- ja kirjoitusoperaatioiden koskemien välimuistirivien määrästä. Matala rakenne ja pienet solmut takaavat tehokkaat operaatiot. Iso solmu on pienempi paha kuin lapsisolmu. Yhteenveto