Puuhakemistoista flash-levyllä

Samankaltaiset tiedostot
arvostelija OSDA ja UDDI palveluhakemistoina.

MEMS-muisti relaatiotietokannoissa

Selainpelien pelimoottorit

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Aika/Datum Month and year Kesäkuu 2012

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

! #! %! & #!!!!! ()) +

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

D B. Harvat hakemistot. Harvat hakemistot

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

Luento 2: Tiedostot ja tiedon varastointi

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Luonnontieteiden popularisointi ja sen ideologia

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

Algoritmit 2. Luento 6 Ke Timo Männikkö

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Algoritmit 1. Luento 6 Ke Timo Männikkö

Kuva 1: J+-puun rakenne [HXS09].

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 1. Luento 5 Ti Timo Männikkö

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

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

7. Tasapainoitetut hakupuut

Tietorakenteet, laskuharjoitus 7, ratkaisuja

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

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö

B + -puut. Kerttu Pollari-Malmi

D B. Tietokannan hallinta kertaus

Algoritmit 2. Luento 3 Ti Timo Männikkö

SSD-tietoiset hakemistorakenteet

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

Tietorakenteet ja algoritmit

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

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

Algoritmit 2. Luento 2 Ke Timo Männikkö

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

Algoritmit 2. Luento 2 To Timo Männikkö

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

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Oppimateriaalin kokoaminen ja paketointi

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

VÄLIMUISTITIETOISET PUSKURIT. Markus Montonen

!"#$%&'$("#)*+,!!,"*--.$*#,&--#"*/".,,%0

Algoritmit 2. Luento 6 To Timo Männikkö

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

Dell Fluid Data TM solutions

KANSILEHDEN MALLISIVU

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

D B. Harvat hakemistot

18. Abstraktit tietotyypit 18.1

Palvelutasosopimukset ja niiden asema IT-ulkoistuksissa

Fyysinen suunnittelu

Ebrary-palvelun e-kirjojen lukeminen selaimessa

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa

Algoritmit 2. Luento 4 Ke Timo Männikkö

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 D B. Harvat hakemistot. Harvat hakemistot

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

D B. Tiedostojen käsittely

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

Binäärihaun vertailujärjestys

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Laita tietokone testipenkkiin

Useaa tietolähdettä käyttävä klusterointi

Arkkitehtuurinen reflektio

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

FYYSINEN SUUNNITTELU

B-puu. 3.3 Dynaamiset hakemistorakenteet

Tieto- ja tallennusrakenteet

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

Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.

4 Tehokkuus ja algoritmien suunnittelu

Nettiposti. Nettiposti käyttöohje

MUISTIPIIRIT H. Honkanen

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen

Seminaari: HL7 versio 2

Tietokantarakenteet ja -algoritmit 3. harjoitus

Ohjelmoinnin perusteet Y Python

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi

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

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Transkriptio:

Puuhakemistoista flash-levyllä Antti Tikka Espoo 23.10.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Matemaattis-luonnontieteellinen tdk Tekijä Författare Author Antti Tikka Työn nimi Arbetets titel Title Puuhakemistoista flash-levyllä Laitos Institution Department Tietojenkäsittelytieteen laitos Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Seminaari Aika Datum Month and year 23.10.2009 Sivumäärä Sidoantal Number of pages 7 Tiivistelmä Referat Abstract Suuret flash-levyt ovat tulleet houkuttelevaksi vaihtoehdoksi magneettisille kovalevyille johtuen niiden nopeasta hajaluvusta, pienestä virrankulutuksesta ja muista ominaisuuksista. Kuitenkin kirjoitukset, erityisesti hajakirjoitukset ovat huomattavasti hitaampia johtuen siitä, että levyllä oleva vanha tieto on pyyhittävä pois ennen kuin sen tilalle voidaan kirjoittaa uutta tietoa. Tästä johtuen kovalevyillä käytettävät B+-puut eivät sovellu käytettäväksi flash-levyillä. Tässä kirjoituksessa esitellään FD-puu, hakemistorakenne, joka on suunniteltu erityisesti flashlevyä varten. Tämä tietorakenne sisältää pienen B+-puun ja useita järjestettyjä taulukoita. FDpuuta käyttämällä pystytään vähentämään hajakirjoitusten määrää hakemista kuitenkaan hidastamatta. Kirjoituksessa osoitetaan teoreettisesti ja kokeellisesti, että FD-puu voittaa flashlevyä käytettäessä muut puutietorakenteet sekä haku- että kirjoitusvaltaisilla kuormilla. ACM B.3, H.2.2, E.1 Avainsanat Nyckelord Keywords tietokanta, flash, puu, hakemisto, tietorakenne Säilytyspaikka Förvaringställe Where deposited Muita tietoja Övriga uppgifter Additional information

Sisältö 1 Johdanto... 1 2 FD-puun rakenne... 2 3 Haku FD-puusta... 3 4 Lisäys FD-puuhun... 4 5 Poisto ja päivitys FD-puussa... 4 6 Testituloksia... 5 7 Yhteenveto... 7

1 1 Johdanto Flash-muistit tai SSD-levyt ovat tulleet uudeksi pysyvän tallennuksen vaihtoehdoksi perinteisen kovalevyn rinnalle. Flash-muistien etuja ovat tiedon nopea hajasaanti, alhainen virrankulutus ja erinomainen iskunkestävyys. Lisäksi flash-muistien kapasiteetti kaksinkertaistuu joka vuosi. Hiljattain on arveltu, että flash-muistit voivat syrjäyttää kovalevyt ja antaa paremman suorituskyvyn tietokantapalvelimissa. Puuhakemisto ovat yleisin tietokannoissa käytetty tiedonhakumenetelmä. Tässä kirjoituksessa tarkastellaan miten puuhakemisto tulisi toteuttaa flash-muisteja varten, jotta flash-muistin ominaisuuksista saataisiin mahdollisimman suuri hyöty [YBQ09]. Kovalevyillä tietosivun lukemiseen tai kirjoittamiseen kuluva aika koostuu pääasiassa hakuvarren siirrosta ja levyn pyörähdysviiveestä. Flash-muisteja käytettäessä aikaa ei kulu osien liikutteluun. Tämän vuoksi tiedon hajasaanti on noin 100 kertaa nopeampaa kuin kovalevyillä. Flash-muistit ovat kuitenkin EEPROM-tyyppisiä (electrically-erasable programmable read-only memory) mikä tarkoittaa, että flash-muisteja käytettäessä uutta tietoa ei voida kirjoittaa vanhan päälle vaan vanhat tiedot on ensin tyhjennettävä iso lohko kerrallaan. Näin ollen jokainen kirjoitusoperaatio voi vaatia ison lohkon tyhjentämistä. Lohkon tyhjentäminen flash-muistista on erityisen hidasta. Tästä johtuen tiedon kirjoittaminen hajanaisiin paikkoihin on noin 100 kertaa hitaampaa kuin lukeminen. Kuten taulukosta 1 näkyy Samsung 32 GB flash-muisti suorittaa sekunnissa 3100 hajalukua, mutta vain 25 hajakirjoitusta. Vaikka viime aikoina on valmistettu tehokkaampia flash-muisteja kuten Intel exreme, niiden hajakirjoitus on kuitenkin noin 10 kertaa hitaampaa hajalukuun nähden. Samsung 32 GB SSD Intel extreme 32/64 GB SSD Seagate 7200 RPM SATA kovalevy Hajaluku 3100 35000 100 Hajakirjoitus 25 3300 110 Taulukko 1. SSD- ja kovalevyjen luku- ja kirjoitusnopeudet (operaatiota/sekunti). Tässä kirjoituksessa esitellään FD-puu, jossa tietojen päivitystä on pyritty tehostamaan hakemista kuitenkaan hidastamatta. Tämä on puuhakemisto, jossa on otettu huomioon flash-muistien eritysominaisuudet. Tehostaminen saadaan aikaan tietorakenteella, jossa kirjoittaminen tapahtuu harvoin ja suurissa peräkkäisiä tietueita käsittävissä erissä. FD-puu koostuu pienestä B+-puusta, jota kutsutaan pääpuuksi (head tree) ja muutamasta tasosta järjestettyjä taulukoita (sorted run) pääpuun alla. Uudet tietueet lisätään pääpuuhun, josta ne ajoittain siirretään alempien tasojen järjestettyihin taulukoihin.

2 Luvussa 2 esitellään FD-puun rakenne. Luvuissa 3, 4 ja 5 tarkastellaan tietojen hakua, lisäystä, poistoa ja päivitystä FD-puussa. Luvussa 6 esitellään testituloksia ja vertaillaan erityyppisten puiden tehokkuutta erilaisissa tilanteissa. Luvussa 7 esitetään yhteenveto kirjoituksesta. 2 FD-puun rakenne FD-puu koostuu useista tasoista, joista käytetään merkintöjä L 0, L 1, jne. Ylin taso L 0 on B+-puu, jota kutsutaan pääpuuksi. Muut tasot L 1 :stä alaspäin ovat järjestettyjä taulukoita, jotka on tallennettu fyysisesti peräkkäisille sivuille. Kuvassa 1 on esitetty esimerkki FD-puun rakenteesta. Kuvan puussa on kolme tasoa, pääpuu ja kaksi järjestettyä taulukkoa. Pääpuun lehtisivuilta viitataan alemman tason järjestetyn taulukon sivuille. Kultakin järjestetyn taulukon ei-lehtisivuilta viitataan alemmalla tasolla olevaan järjestettyyn taulukkoon. Kuva 1. Esimerkki FD-puun rakenteesta. Jokaisella FD-puun tasolla on kiinteä kapasiteetti, joka kasvaa eksponentiaalisesti puuta alaspäin edettäessä. Päivitykset tehdään ensin pääpuuhun ja myöhemmin siirretään alemmilla tasoilla oleviin järjestettyihin taulukoihin. Koska pääpuu mahtuu kokonaan keskusmuistiin, flash-levylle ei ole yleensä tarpeen kirjoittaa yksittäisten FD-puuhun tehtävien päivitysten yhteydessä. Pääpuun koko valitaan siten, että se mahtuu yhteen flash-levyltä kerralla tyhjennettävään lohkoon. FD-puuta voidaan päivittää keskusmuistista flash-levylle suurissa useita fyysisesti peräkkäisiä sivuja sisältävissä lohkoissa, mikä on tehokasta flash-levyn ominaisuuksista johtuen. FD-puussa on kahdenlaisia tietueita: hakemistotietueita (index entry) ja aitoja (fence). Hakemistotietue sisältää kolme kenttää avaimen, monikkotunnisteen ja tyypin, jota käytetään apuna tietueiden poistamisprosessissa. Aita on osoitin FD-puun alemman tason sivulle. Siinä on kolme kenttää: avain, sivutunniste ja tyyppi. Aidat jaetaan edelleen ulkoisiin ja sisäisiin aitoihin.

3 o Ulkoinen aita (external fence). Ulkoisen aidan avaimeksi otetaan suurimman tietueen avain viitattavalta alemman tason sivulta. Esimerkiksi kuvassa 1 näkyvän sivun f tietue 46 on ulkoinen aita. o Sisäinen aita (internal fence). Jos kahden vierekkäisen ulkoisen aidan väliin jää tietueita vähintään yhden sivun verran, sisäisiä aitoja lisätään kunkin väliin jäävän sivun viimeiseksi tietueeksi. Sisäisen aidan avaimen arvo otetaan viittaavan sivun viimeisestä hakemistotietueesta. Kuvan 1 sivun f tietue 53 on sisäinen aita, joka viittaa sivulle n. Tämän aidan avulla voidaan välttää sivun g lukeminen kun haetaan avaimia väliltä 47 53. Kullakin FD-puun tasolla aidat ja hakemistotietueet järjestetään avainten arvojen mukaan nousevaan järjestykseen. Ulkoisten aitojen määrä kullakin tasolla on yhtä suuri kuin sivujen määrä alemmalla tasolla. Sisäisiä aitoja on enintään yksi per sivu. 3 Haku FD-puusta Haettaessa yksittäistä arvoa tai arvoväliä FD-puusta, kaikki tasot käydään läpi ylhäältä alaspäin. Ensin haetaan pääpuusta samoin kuin mistä tahansa B+-puusta. Seuraavaksi edetään kaikki järjestettyjen taulukoiden tasot läpi yksi kerrallaan. Yksittäisen sivun sisällä käytetään binäärihakua ensimmäisen tietueen löytämiseksi. Tämän jälkeen sivua selataan tietue kerrallaan ja ehdot täyttävät tietueet lisätään tulosjoukkoon. Sitten siirrytään aidan sivutunnisteen perusteella alemman tason sivulle. Kuvassa 2 on esitetty esimerkki avaimen 48 hakemisesta FD-puusta. Kuva 2. Esimerkki avaimen 48 hausta FD-puusta.. Haku FD-puusta ei välttämättä ole hitaampi kuin B+-puusta. Vaikka FD-puu voikin olla korkeampi kuin samankokoinen B+-puu, FD-puussa on kaksi hakua tehostavaa ominaisuutta. Ensinnäkin FDpuun sivut ovat täynnä tietueita ja yhden tason tietueet sijaitsevat muistissa fyysisesti peräkkäin. Kun taas B+-puussa sivut ovat yleensä noin 70 % täynnä. Toiseksi FD-puussa ei ole

4 vanhenemisongelmaa kuten B+-puussa, jossa lehtisivujen sijainnit hajaantuvat fyysisesti suurelle alueelle kun päivityksiä on tehty suuri määrä. 4 Lisäys FD-puuhun Uutta tietuetta lisättäessä tietue lisätään ensin pääpuuhun L 0. Jos tietueiden määrä pääpuussa ylittää sen kapasiteetin, siirretään L 0 tason tietueet L 1 tasolle lomittamalla tasot keskenään. Yleisesti ottaen lomitusoperaatio suoritetaan kahdelle vierekkäiselle tasolle aina kun niistä pienempi ylittää kapasiteettinsa. Operaatiossa selataan molempien tasojen tietueet järjestyksessä ja yhdistetään ne yhdeksi järjestetyksi taulukoksi peräkkäisille sivuille. Uusi järjestetty taulukko L i sisältää kaikki alemman tason hakemistotietueet sekä kaikki ylemmän tason L i-1 hakemistotietueet ja ulkoiset aidat. Uusia sisäisiä aitoja lisätään uuteen järjestettyyn taulukkoon tarpeen mukaan. Lomitusoperaation yhteydessä lomitusta ylemmät tasot päivitetään ulkoisten aitojen osalta. Näin ollen tasojen L i -1 ja L i lomittamisessa on päivitettävä tasot L 0 :sta L i :hin. eli i + 1 tasoa. Jos kahden tason lomituksessa syntyvä uusi taso L i ylittää kapasiteettinsa, tasot L i ja L i+1 lomitetaan myös. Lomittamista jatketaan kunnes lomituksen tuloksena saatava taso ei ylitä kapasiteettiaan. 5 Poisto ja päivitys FD-puussa Tietueen poistaminen FD-puusta tehdään lisäämällä puuhun erityinen suodintietue. Tällöin poistettavasta tietueesta tulee ns. haamutietue ja se jätetään puuhun sellaisenaan. Tarkastellaan nyt poistamisprosessia. Ensin FD-puusta haetaan poistettavat tietueet. Seuraavaksi puuhun lisätään suodintietueet, joiden avaimet ja monikkotunnisteet vastaavat poistettavia tietueita. Uusien tietueiden lisäyksellä yksinkertaisen poistamisen sijaan pystytään vähentämään pienten hajakirjoitusten määrää. Koska poistamisessa lisättävät suodintietueet tekevät poistettavista tietueista haamutietueita, hauissa saataviin hakutuloksiin tulee näitä molempia tyyppejä. Näin ollen hakutuloksista on poistettava suodintietueet ja näiden avainten ja monikkotunnisteiden arvoja vastaavat haamutietueet. Lomitusoperaatiossa suodintietueet ja haamutietueet siirretään muiden tietueiden mukana alemmille tasoille. Kun suodintietueet ja niitä vastaavat haamutietueet lomituksen yhteydessä kohtaavat toisensa samalla tasolla, ne jätetään tallentamatta uuteen järjestettyyn taulukkoon. Näin ollen suodin- ja haamutietueet lopulta poistetaan kokonaan. Kuvassa 3 on esitys poistamisprosessin eri vaiheista. Suodintietueet on merkitty siinä yhtenäisellä alleviivauksella ja haamutietueet katkonaisella alleviivauksella. Kuvassa 2(a) poistetaan

5 hakemistotietueet 37 tasolta L 0, 45 tasolta L 2 ja toinen 16 tasolta L 2. Koska tietue 37 on pääpuussa L 0, se poistetaan suoraan tasolta L 0. Suodintietueet 45 ja 16 lisätään pääpuuhun. Kun tasot L 0 ja L 1 lomitetaan kuten kuvassa 2(b) näytetään, suodintietue 45 kohtaa haamutietueensa ja molemmat tietueet jätetään tallentamatta. Kun tasot L 1 ja L 2 lomitetaan kuten kuvassa 2(c) on esitetty, suodintietue 16 ja sitä vastaava haamutietue jätetään pois. Huomattakoon, että ensimmäinen 16 tietue jää indeksiin lomituksen jälkeen. Kuva 3. Esimerkki tietueiden poistamisesta FD-puusta. Päivitysoperaatio eli olemassa olevan tietueen arvon muuttaminen toteutetaan FD-puussa poistamalla vanhaa arvoa vastaava tietue ja lisäämällä uusi tietue uudella arvolla. 6 Testituloksia Tarkastellaan nyt testaustuloksia, ja verrataan FD-puun suorituskykyä B+-puuhun, LSM-puuhun, BFTL:ään, joka on flash-muistia varten kehitetty B+-puun variaatio. Testit on ajettu PC:llä, jossa on Intel QuadCore CPU 2,4 GHz, Windows XP, 2 GB keskusmuistia ja 32 GB Samsung NAND flashlevy. Hakemistotietueet sisältävät 4-tavuisen avaimen ja toisen 4-tavuisen kentän, jossa on tyyppi ja monikkotunniste. Avainten arvot ovat tasaisesti jakautuneet. Sivun kooksi on asetettu 2 KB, joka on fyysinen sivun koko flash-muistissa. Käytössä on LRU-puskurinhallitsin, jotta viimeisimpinä käytetyt sivut saataisiin välimuistiin. Puskurin kooksi on asetettu 8 MB. Käyttöjärjestelmän puskurointi on kytketty pois päältä häiriöiden minimoimiseksi. Kuvassa 3 on esitetty haun tehokkuus neljälle erityyppiselle puuhakemistolle, kun hakemiston kokoa on muunneltu. Neljästä eri puutyypistä BFTL on hitain, koska se vaatii useiden hajanaisten sivujen lukemista puusolmun käsittelemiseksi. B+-puu ja FD-puu ovat parhaita ja ne suoriutuvat melko samalla tavalla hakemiston koosta riippumatta. FD-puu on hiukan nopeampi kuin B+-puu, koska järjestettyjen taulukoiden sivut ovat täysiä ja tallennettuna fyysisesti peräkkäin. LSM-puu on hitaampi kuin B+-puu tai FD-puu, koska yksittäinen haku LSM-puusta vaatii hakemista useasta eri B+-puusta.

6 Kuva 3. Haun tehokkuus hakemiston koon funktiona. Kuvassa 4 on esitetty lisäysoperaation tehokkuus neljälle erityyppiselle puuhakemistolle kun hakemiston kokoa on muunneltu. Neljästä erityyppisestä hakemistosta lisäysoperaatio on hitain B+puussa ja nopein LSM-puussa. Lisäysoperaation tehokkuus FD-puussa on hiukan hitaampi kuin LSM-puussa. Tämä johtuu siitä, että FD-puussa on enemmän aputietueita (esim. aitoja) kuin LSMpuussa. Kuitenkin LSM-puu ja FD-puu ovat kertaluokkaa nopeampia kuin B+-puu ja BFTL. Kuva 4. Lisäysoperaation tehokkuus hakemiston koon funktiona. Kuvassa 5 on esitetty neljän erityyppisen puuhakemiston kokonaistehokkuus kahdella eri työkuormalla. Kaikki neljä indeksiä sisältävät 10 9 tietuetta. Niiden koot ovat noin 8 GB. Pystyakselilla on keskimääräinen operaation suoritukseen kuluva aika. Kuvassa vaaka-akselilla näkyvä W-search simuloi hakuvaltaista työkuormaa. Se sisältää 80 % hakuja, 10 % lisäyksiä, 5 % päivityksiä ja 5 % poistoja. Kuvassa vaaka-akselilla oleva W-update simuloi päivitysvaltaista työkuormaa. Se sisältää 20 % hakuja, 40 % lisäyksiä, 20 % poistoja ja 20 % päivityksiä. W-search-

7 kuormalla flash-levyä käytettäessä FD-puu on 15.8X, 2.3X, 5.2X nopeampi kuin B+-puu, LSM-puu ja BFTL. W-update-kuormalla flash-levyä käytettäessä FD-puu on 61.4X, 1.7X, 4.9X nopeampi kuin B+-puu, LSM-puu ja BFTL. Kuva 5. Kahden eri kuormitustavan kokonaissuorituskyky. 7 Yhteenveto B+-puut on suunniteltu kovalevyä varten eivätkä näin ollen sovellu käytettäväksi flash-levyllä. FDpuu on suunniteltu erityisesti flash-levyä varten. Tämä puutietorakenne hyödyntää flash-muistin erityispiirteitä nopeita hajalukuja ja vähentämällä hitaiden hajakirjoitusten määrää. Kirjoituksessa esitellyt teoreettiset ja kokeelliset tutkimukset osoittavat, että FD-puussa yhdistyvät haun ja lisäysten kannalta parhaat piirteet muista puuhakemistoista ja, että se voittaa nämä puuhakemistorakenteet suorituskyvyltään sekä haku- että päivityspainotteisilla kuormilla. Lähteet YBQ09 Yinan, L., Bingsheng, H., Qiong, L., Ke, Y., Tree indexing on flash disks. ICDE 2009