Gegevensbanken 2010 Les11

Post on 25-May-2015

474 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Gegevensbanken 2010

Fundamenten van geheugen;Bestandsorganisatie;Hashing

Prof. Bettina Berendtwww.cs.kuleuven.be/~berendt

2

Fundamenten van geheugen;Bestandsorganisatie;Hashing:

Motivatie & Samenvatting

3

Waar zijn wij?LesNr. wie wat

1 ED intro, ER2 ED EER3 ED relational model4 ED mapping EER2relational5 KV relational algebra, relational calculus6 KV SQL7 KV vervolg SQL8 KV demo Access, QBE, JDBC

9 KV functional dependencies and normalisation

10 KV functional dependencies and normalisation11 BB file structures and hashing12 BB indexing I

13 BBindexing II and higher-dimensional structures

14 BB query processing15 BB transaction16 BB query security17 BB Data warehousing and mining18 ED XML, oodb, multimedia db

Conceptueel model

Relationeel model

Fysisch model / vragen

Nieuwe thema‘s / vooruitblik

4

Gegevens zijn als een lekkere maaltijd…

Is het wat ik wil?Was het goed klaargemaakt?Gaat het snel?

Conceptueel modelRelationeel modelFysisch model / vragen

5

A. Ruimtelijke organisatie is belangrijk,of: We kunnen niet aan de fysica ontsnappen

6

A. Ruimtelijke organisatie is belangrijk,of: We kunnen niet aan de fysica ontsnappen

7

B. Wat nodig is, is afhankelijk van wat je ermee wilt doen

genieten ?

afslanken ?

Elke keuze heeftvoor- en nadelen

8

B. Wat nodig is, is afhankelijk van wat je ermee wilt doen

veel veranderen ?

veel zoeken ?

Elke keuze heeftvoor- en nadelen

10

C. Wat doen als de keuken te klein is?

11

C. Wat doen als de keuken te klein is?

* Het brood ligt in de slaapkamer* De eieren liggen in de eetkamer

12

C. Wat doen als de keuken te klein is?Het brood ligt in de slaapkamer* De eieren liggen in de eetkamer

13

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

14

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

15

Geheugenhiërarchieën

ge-heugen niveau

kost

volati-liteit

snel-heid

capa-citeit

Wat gebeurt hier?

Primair Cache memory / static RAM

Verwerking

Hoofdgeheugen / dynamic RAM

Flash memory

Secun-dair

Magnetische schijven Opslag

Tertiair Optisch (CD, DVD)

Magnetische banden

ook

18

Schijf, cilinder, spoor

schijven-pakket

19

Blok : onderdeel van een spoor (“track“)gefixeerd tijdens initialisatie

Spoor :gefixeerd in de hardware

Spoor en blok

20

Hoe een gege-ven vinden?

1. Cilinder

3. Blok

2. Spoor

21

Verwerking & opslag: het knelpunt

Processorgeheugenknelpunt: Jaarlijks worden processoren gemiddeld 60% sneller, terwijl de toegangstijd tot het geheugen maar daalt met een 7% per jaar. Deze kloof wordt dus steeds groter en steeds knellender.

Hoofdknelpunt voor database toepassingen: gegevens op schijven localiseren !

lezen Hardware adres op schijf:Cilinder#, spoor#, blok#

Buffer adres in het hoofdgeheugen

Fysische locatie op de schijf

localiseren

schrijven

Cijfers uit: http://nl.wikipedia.org/wiki/Geheugenhi%C3%ABrarchie, 31 mars 2010

22

Parameters m.b.t. performantie

• Relevante tijden:– juiste cilinder zoeken : seek time (vb.: 5 msec)

• kop mechanisch bewegen : traag

– juiste blok zoeken: rotational delay ("latency") (vb.: 3 msec)• schijf moet doordraaien tot blok onder leeskop staat

– gegevenstransport : block transfer rate (vb.: 50 Mbytes/sec)• gegevens in blok lezen en naar buffer kopiëren

• Deze tijden >> verwerkingstijd van gegevens• Bestanden zo structureren dat deze tijden

geminimaliseerd worden!– bv. opeenvolgende blokken lezen : slechts één keer seek time

& latency

23

vul A

vul B vul A

vul B

verwerk A verwerk B verwerk A verwerk B

blok 1 blok 2 blok 3 blok 4

tijd

Buffering

• Bij lezen / schrijven van opeenvolgende blokken: gebruik van meerdere ("alternerende") buffers– bv. bij lezen: info in een buffer verwerken terwijl andere buffer

gevuld wordt– verwerking meestal klaar voor volgende buffer vol is

blok 1 blok 2 blok 3 blok 4

24

Gegevens & verwerking: organisatie vs. toegang

• Onderscheid:– Bestandsorganisatie file organization

• organisatie van bestand in – records, blokken, toegangsstructuren

• + verdeling van de records over het hulpgeheugen (= sec./tert. geheugen)

– Toegangsmethode access method• groep operaties / programma’s die toelaten om het bestand te bewerken

• Niet elke toegangsmethode mogelijk voor eender welke bestandsorganisatie

• Naargelang van organisatie ook verschil in efficiëntie

25

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

26

Formaat van records

• Record = bij elkaar horende groep gegevens– "eenheid" van informatie

• Recordlengte:– vast : alle records zelfde lengte– variabel : verschillende records kunnen verschillende lengtes

hebben• mogelijke redenen:

– veld(en) van variabele lengte– velden(en) met meerdere waarden ("repeating groups")– optionele velden– verschillende recordtypes (gemengd bestand)

• vereist:– scheidingstekens tussen velden– indicatie van type veld

27

Formaat: voor-beelden

28

Records in blokken plaatsen (1)

• Waarom? Blok:– blok is de entiteit voor

• plaatsgebruik op schijf• gegevenstransport tussen schijf en geheugen

• Hoe? Plaatsing van records:– "unspanned" : 1 record steeds volledig binnen 1 blok

• overschot aan einde van blok gaat verloren• vooral nuttig voor korte records met vaste lengte

– weinig verloren ruimte– records beginnen op vaste posities in blok

– "spanned" - overspannend: record kan over meerdere blokken uitgespreid zijn

• noodzakelijk indien een record langer dan een blok kan zijn• minder verloren ruimte• ingewikkelder organisatie

29

Records in blokken plaatsen (2)

31

-

-

Plaatsing van logisch opeenvolgende blokken (1)

+

+

• Aaneensluitend– Opeenvolgende blokken fysisch aaneensluitend

• = "contiguous allocation"

– bestand overlopen (bv. meerdere blokken lezen) gaat snel (met 2 buffers)

– tussenvoegen van blokken is moeilijk

• Geketend– "linked allocation"– elk blok bevat wijzer naar volgend blok– uitbreiden van bestand gaat gemakkelijker– gehele bestand overlopen gaat trager

32

Plaatsing van logisch opeenvolgende blokken (2)

• Combinatie:– Clusters van aaneensluitende blokken

• ook wel "file segments" genoemd

– Elke cluster bevat wijzer naar volgende cluster

• Indexering:– "indexed allocation"– een of meer indexblokken : bevatten enkel wijzers naar de

blokken met de echte gegevens

• Combinaties mogelijk

33

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

34

Bewerkingen op bestanden

• 2 groepen bewerkingen:– Opvragen van gegevens

(zonder aanpassing)• enkel lezen

– Aanpassen van gegevens• lezen + schrijven nodig

• Selectie van records– selectiecriterium aangeboden door besturingssysteem meestal

zeer eenvoudig

DBMS moet ingewikkeld criterium omzetten naar meerdere eenvoudige criteria

SELECT *FROM EMPWHERE (NAME LIKE “%BART%“ OR AGE > 30)

SELECT * UPDATE EMPFROM EMP SET SALARY = 100000WHERE (NAME LIKE “%BART%“ OR AGE > 30)

35

Typische operaties die een besturingssysteeem aanbiedt (1)

• OPEN: maakt bestand klaar voor verwerking– kent buffers toe, ...

• RESET: zet bestandswijzer naar begin bestand• FIND (LOCATE):

– zoek eerste record dat aan criterium voldoet– kopieer het blok dat dat record bevat naar de buffer– zet bestandswijzer naar dat record (= "huidig" record)

• READ (GET):– ken huidig record aan programmavariabele toe– (soms) verplaats bestandswijzer

• evt. nieuw blok inlezen

36

Typische operaties die een besturingssysteeem aanbiedt (2)

• FINDNEXT: zoek volgende record dat aan criterium voldoet, maak het het huidige record

• DELETE: wis huidig record (eerst in buffer, dan in bestand)

• MODIFY: wijzig huidig record (eerst in buffer, daarna naar bestand geschreven)

• INSERT: lees juiste blok in buffer in, voeg record aan dat blok toe (eerst in buffer, later in bestand)

• CLOSE: ruim buffers op, ...• Soms gecombineerde bewerkingen

– SCAN : FIND of FINDNEXT + READ

38

Belangrijke parameters m.b.t. bestandsverwerking

• Bestandsactiviteit (file activity)# records dat gebruikt wordt door een toepassing / totaal # records van het bestand

• Bestandsveranderingsgraad (file volatility)# records dat in een bepaalde periode een verandering ondergaat / totaal # records van het bestand

• Bestandsverloop of vervangingsgraad (file turnover)# records dat in een bepaalde periode vervangen wordt door nieuwe records / totaal # records van het bestand

• Bestandsgroei (file growth)toename van # records gedurende een bepaalde periode / het oorspronkelijk totaal # records

39

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

40

Ongeordende bestanden: idee

41

Ongeordende bestanden (seriële bestanden)

+

-

-

• Toevoegen: – achteraan in laatste blok

• Opzoeken: – volledig bestand lineair doorzoeken

• Weglaten: – record zoeken ( blok)– record weglaten in buffer (evt. markeren zonder te wissen),

buffer in blok terugschrijven– na veel weglatingen veel verloren ruimte reorganisatie

• Gebruik:– Meestal slechts als voorlopig bestand – op een gegeven moment : “extern sorteren”

geordend bestand

43

Geordende bestanden: idee

44

Geordende bestanden (sequentiële bestanden)

+++

• Geordend volgens sleutelveld• Voordelen:

– lezen van records in sleutelvolgorde : zeer efficiënt– binair zoeken mogelijk– aanpassen in sleutelvolgorde gaat snel

45

Geordende bestanden: voorbeeld

46

Geordende bestanden: binair zoeken

l := 1;u := b; {b = aantal blokken}verderzoeken := true;gevonden := false;zolang u >= l en verderzoeken :

i := (l+u) div 2;lees blok i in buffer;als k < sleutel van eerste record in buffer dan u := i-1anders als k > sleutel laatste record in buffer dan l := i+1anders als record met sleutel k in buffer dan

verderzoeken := false; gevonden := true;anders verderzoeken := false

Alfred, Bob ?

.

47

Zoeken

48

----

Geordende bestanden: nadelen

– zoeken op een ander veld dan sleutel blijft tijdrovend– toevoegen

• vereist verplaatsing van records

– weglaten • vereist ook verplaatsing van records, behalve met markering

– aanpassen van records • traag indien die niet in sleutelvolgorde worden aangeboden

49

Directe bestanden: idee

De rode?De rode!

50

Directe bestandsorganisatie

• Methode om uit recordsleutel meteen recordadres in bestand te vinden: hashing

• Principe van hashing:– hash-functie beeldt waarde k (getal, string, ...) af op adres f(k)– goede hashfunctie "spreidt" waarden zoveel mogelijk over

verschillende adressen• botsing ("collision") : f(k1) = f(k2) met k1 k2

• Interne hashing: – gegevens en hashfunctie zijn in centraal geheugen voorgesteld

• Externe hashing: – gegevens (evt. ook hashfunctie zelf) opgeslagen in een

bestand

51

Bestanden met gemengde records

• In relationeel model: – gewoonlijk 1 bestand per relatie

• verbanden tussen relaties impliciet aanwezig (verwijssleutels)• 1 record = 1 tupel

• Voor andere modellen (bv. netwerk, hierarchisch, OO) :– samenhorende objecten ook fysisch bij elkaar– een bestand bevat verschillende soorten records– voor elk record: record-type bijhouden

52

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

53

Hashing: idee

54

Interne hashing

• Voorbeeld van interne hashing:• tabel t als rij voorgesteld• elke plaats een cel (bucket, bin),

kan 1 of een aantal records bevatten

• celdiepte aantal records dat maximaal in 1 cel gaat• index van rij 0 .. m-1 • hash-functie f(k) = k modulo m• gegeven sleutel k adres: t [ f(k) ]

– sleutelruimte • = verzameling mogelijke sleutels

– adresruimte• = verzameling mogelijke adressen (grootte m)

– # sleutelruimte >> # adresruimte– f(k) moet sleutels bij voorkeur zo gelijkmatig en willekeurig

mogelijk spreiden, en moet efficiënt te berekenen zijn (snelheid!)

55

Interne hashing: gegevensorganisatie

56

Hashing functies: voorbeeld

• f(k) = k mod 1000– # adresruimte = 1000– sleutel k = 8 321 472 f(k) = 472– 3 laatste cijfers zijn bepalend niet zo goed

• wat als sleutels bv. altijd op 000 eindigen? alle sleutels afgebeeld op zelfde adres!

– modulo priemgetal is betere keuze• alle cijfers van sleutel hebben invloed

• bv. f(k) = k mod 997 : # adresruimte = 997

57

Andere technieken voor hashing

• Nog: voor numerieke sleutels – vouwen

• bv. getal in stukken splitsen, opvouwen als blad papier en op elkaar liggende cijfers optellen

• 270 122 601 270, 122, 601 270 + 122 + 106 = 498

– kwadrateren + en middelste cijfers nemen• 375 213 2 = 140 784 795 369 479

• Niet-numerieke sleutels numeriek coderen – bv. strings : via ASCII-code (of Unicode)

• Steeds gericht op gelijkmatige en willekeurige spreiding van uitkomsten

58

Botsing

59

Botsingsafhandeling

• Botsing:– meerdere records met verschillende sleutel komen terecht in

zelfde cel

• Meestal: # sleutelruimte >> # adresruimte– botsingen zijn dan onvermijdelijk– moeten op een of andere manier opgevangen worden ("collision

resolution")

• Eenvoudige manier van botsingsafhandeling:– tabel van cellen, meerdere records in 1 cel toelaten– celdiepte = max # records in 1 cel (te groot: kan niet!)

• Indien teveel records aan 1 cel toegekend worden: overloop– meerdere technieken van overloopafhandeling

60

Overloopafhandeling (1) Open adressering: idee

Open addressing: Hash collision resolved by linear probing (interval=1).

Hash collision resolved by open addressing with linear probing (interval=1). Note that "Ted Baker" has a unique hash, but nevertheless collided with "Sandra Dee" which had previously collided with "John Smith".

151152153

254255

61

Overloopafhandeling (1): Open adressering

+--

• Open adressering– indien geen plaats in cel: loop volgende cellen af tot er een is

waar plaats is– zeer eenvoudig– lineair zoeken naar cel (traag)– weglaatalgoritme nogal ingewikkeld

63

-

Overloopafhandeling (2)

• Ketening– indien geen plaats in cel: verwijzing naar nieuwe cel

waar record (ofwel een nieuwe verwijzing) staat• opeenvolging van verwijzingen genereert "keten" van wijzers

(gelinkte lijst)

– meerdere varianten:• coalesced chaining: lijsten hebben gemeenschappelijke

delen• separate chaining : lijsten zijn volledig gescheiden• direct chaining: geen records in tabel, maar steeds meteen een

verwijzing naar het overloopgebied– nadeel: sequentiële toegang zeer langzaam

– apart "overloopgebied" voor dergelijke nieuwe cellen

64

Botsingafhandeling door ketening

65

Botsingafhandeling door ketening(direct chaining)

66

++--

Ketening: voordelen en nadelen

• record snel bereikbaar via sleutel• toevoegen en weglaten redelijk eenvoudig• opzoeken via ander dan sleutelveld is moeilijk• doorlopen van bestand in sleutelvolgorde kan traag zijn

67

Waarschuwing: terminologie!

• Open adressering = gesloten hashing– Botsing record gaat naar een ander slot in dezelfde tabel

• Gesloten adressering = open hashing = ketening– Botsing record(s) in een ander tabel opslaan

69

Performantie van hashingtechnieken

• Maatstaf : E: gemiddelde zoeklengte– aantal bezochte plaatsen tot element gevonden wordt

• Beïnvloed door vullingsgraad – aantal opgeslagen sleutels n / aantal beschikbare locaties m

– = n / m vuistregel: tussen 0,7 en 0,9

• Knuth’s formule: bij lineair proberen– E ½ ( 1 + 1 / (1- ) ) bij succes

– ½ ( 1 + 1 / (1- )2 ) bij falen

– formule is minder goed voor dicht bij 1

0,5 0,67 0,75 0,9succes 1,5 2 3 5,5falen 2,5 5 8,5 50,5

70

Externe hashing (gegevens in bestand): idee

71

Externe hashing (gegevens in bestand)

• cellen = "buckets"– 1 cel = 1 blok of meerdere aaneengesloten blokken

• hashingfunctie: – sleutel cel-nr

• tabel in bestandshoofding: – cel-nr blok-adres

• overloop: – in extra overloopcellen– via wijzers een keten van extra records bijhouden– wijzers wijzen naar recordadres : blokadres + relatieve positie

in blok

72

Botsingsafhandeling

73

-

--++

Externe “static” hashing: voor- en nadelen

• record snel bereikbaar via sleutel )

• toevoegen en weglaten redelijk eenvoudig ) Ketening

• opzoeken via ander dan sleutelveld is moeilijk )

• doorlopen van bestand in sleutelvolgorde kan traag zijn )

• En:– vaste ruimte gereserveerd voor bestand (“static

hashing”)• indien te groot: veel verloren ruimte

• indien te klein: veel overloop snelheidsverlies

– na een tijdje eventueel reorganisatie nodig

74

Dynamische bestandsuitbreiding

• Sommige hashing technieken laten dynamische expansie van bestanden toe– aantal voorziene cellen groeit en krimpt met bestand

• We behandelen 2 methoden:– uitbreidbare (extendible) hashing– lineaire hashing– 3rde methode “dynamische hashing” in slides

79

Uitbreidbare hashing: idee

* als bruin: bucket 1* als groen: bucket 2

* als bruin EN eieren: bucket 1* als bruin EN brood: bucket 2* als groen: bucket 3

81

Uitbreidbare hashing: voorbeeld (1)

Bron: Hakan (2009). File Organization. http://www.powershow.com/view/27b55-YzBlN/File_Organization

82

Uitbreidbare hashing: voorbeeld (2)

83

Uitbreidbare hashing: voorbeeld (3)

84

Uitbreidbare hashing: voorbeeld (4)

85

Uitbreidbare hashing: voorbeeld (5)

86

Uitbreidbare hashing: voorbeeld (6)

87

Uitbreidbare hashing: voorbeeld (7)

88

Uitbreidbare hashing: voorbeeld (8)

89

Uitbreidbare hashing: voorbeeld (9)

90

Uitbreidbare hashing: voorbeeld (10)

91

Uitbreidbare hashing: voorbeeld (11)

92

Uitbreidbare hashing: voorbeeld (12)

93

Uitbreidbare hashing: beschrijving

• Index = tabel met 2d elementen– d = globale diepte van de index

• eerste d bits van hashwaarde bepalen plaats in index

– d' = lokale diepte van een cel• voor deze cel wordt enkel naar de eerste d' bits van de hashwaarde

gekeken

– d' ≤ d

• Waarde van d kan met 1 verhogen of verminderen– grootte van tabel verdubbelt of halveert hierdoor

• Tabel vergelijkbaar met "vervolledigde" trie (waarbij alle bladeren op hetzelfde niveau zitten)

94

-

Uitbreidbare hashing: Voor- en nadelen

+

+

-

• extra ruimte voor tabel is klein– max grootte is 2k met k # bits in hashwaarden

• uitbreiding van bestand relatief goedkoop– bij overloop slechts 1 cel te splitsen– enkel verdubbeling van tabel

vraagt redelijk veel werk

• 1 extra indirectie– eerst blok met index lezen, dan pas juiste cel, en daarna

gegevensblok zelf• relatief klein nadeel

groeidt exponentieel

95

Lineaire hashing: idee

• Gebruikt geen index– Beginsituatie:

• M cellen genummerd 0 .. M-1

• Hashfunctie h0(k) = k mod M

– Bij eerste overloop:• keten nieuw record vast aan zijn cel

• splits cel 0 (dus niet noodzakelijk de overgelopen cel!)

– records naar cel 0 en cel M volgens h1(k) = k mod 2M

– Bij elke volgende overloop:• ketening

• splits cel i-1 naar i-1 en M+i-1 volgens h1(k)

96

Lineaire hashing: eigenschappen

• geen index, enkel aantal reeds gesplitste cellen n bijhouden– gebruik h1 voor eerste n cellen, h0 voor de andere

• Zolang n < M : zelfde hashfuncties blijven toepassen• Wanneer n = M:

– M := 2M; h0 := h1; n := 0

• laadfactor l = r / (d*N)– r = aantal aanwezige records, d = celdiepte, N = aantal cellen– wanneer l klein wordt, cellen weer samensmelten

97

Lineaire hashing: voorbeeld (1)

• bucket capacity = 2• collision resolution strategy: chaining• split rule: load factor > 0.7

– Load factor = r (bfr * N)• r : current number of file records• bfr: max. number of records that can fit into a bucket• N: current number of file buckets

• initially M = 4 (M: size of the primary area)• hash functions: hi(key) = key mod 2i M (i = 0, 1, 2, …)

• Trace the insertion process of the following keys into a linear hashing file:

3, 2, 4, 1, 8, 14, 5, 10, 7, 24

Bron: Chen, Y. (2009). File Organization.http://ion.uwinnipeg.ca/~ychen2/databaseNotes/hashing.ppt (minimaal veranderd)

98

The first phase – phase0

•when inserting the sixth record we would have

•but the load factor 6/8= 0.75 > 0.70 and so bucket 0 must be split (using h1 = Key mod 2M):

48

12

14

0 1 2 3

3

0 1 2 3 4

8 12

143 4

n=0 before the split

(n is the point to the bucket to be split.)

n=1 after the split

load factor: 6/10=0.6

no split

Lineaire hashing: voorbeeld (2)

99

0 1 2 3 4

8 12

143 4

n=1load factor: 7/10=0.7no split

insert(5)

815

214

3 4

0 1 2 3 4

Lineaire hashing: voorbeeld (3)

100

0 1 2 3 4

815

214

3 4

n=1load factor: 8/10=0.8split using h1.

insert(10)

815

214

3 4

10

overflow

Lineaire hashing: voorbeeld (4)

101

0 1 2 3 4 5

8 12

143 4

n=2load factor: 8/12=0.66no split

10

overflow

5

Lineaire hashing: voorbeeld (5)

102

n=2load factor: 9/12=0.75split using h1.

8 12

143 4

10

overflow

5

0 1 2 3 4 5

8 12

1437

4

10

overflow

5

insert(7)

Lineaire hashing: voorbeeld (6)

103

n=3load factor: 9/14=0.642no split.

8 12

1037

4 5 14

8 12

1037

4 5 14

insert(24)

Lineaire hashing: voorbeeld (7)

104

n=3load factor: 10/14=0.71split using h1.

824

12

1037

4 5 14

824

12

103 4 5 14 7

Lineaire hashing: voorbeeld (8)

105

als n=0dan m := h0(k)anders

m := h0(k);als m<n dan m := h1(k);

zoek in de cel met hashwaarde m (en evt. in de overloop ervan)

Lineaire hashing: zoeken

106

Agenda

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

107

RAID architectuur

• Redundant Arrays of Independent Disks• Bedoeling: performantie en betrouwbaarheid van extern

geheugen verhogen• Data verdeeld over meerdere schijven

– bit-level data striping• 1 byte verdelen over 8 schijven (elk 1 bit)

– block-level data striping• 1 blok verdelen over meerdere schijven

• Redundante schijven voor foutcorrectie• Meerdere niveaus van RAID (0-6)

108

RAID: Data striping

109

Geen duplicatie

Volledige duplicatie

Gebruik van Hamming codes, vermindertplaats vereist voor redundante schijven

Gebruik van een pariteitsschijf om uit tezoeken welke schijf faalde

Data striping op blok niveau

Data striping op blok niveau, met verdeling van de pariteitsinformatie over alle schijven

Gebruik van speciaal redundantiesche-ma dat twee falingen kan detecteren

RAID: niveaus

110

Trends in disk technology

111

Disk specifications: example

112

Disk specifications: example (contd. 1)

113

Disk specifications: example (contd. 2)

114

Actuele oplossingen voor het archiveren: combinaties van banden en schijven

• Project Système de Préservation et d'Archivage Réparti (Bibliothèque Nationale de France):

• http://www.bnf.fr/en/professionals/preservation_spar.html

• Verwacht: 200 Terabyte (toegangsgeheugen), 8 Petabyte (hoofd-archief-geheugen)

• De banden-robots:

• Internet Archive: http://www.archive.org/about/about.php#storage

115

Vooruitblijk

Geheugens

Bestandsorganisatie: blokken en records

Toegang tot en bewerkingen op bestanden

Soorten bestanden

Hashing

Slotbemerkingen: nieuwe ontwikkelingen, …

Indexstructuren

116

Bronnen

• Deze slides zijn gebaseerd op Henk Olivié‘s slides voor Gegevensbanken 2009 en op Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley / Pearson, 5e editie 2007.

• De voorbeelden voor hashing komen uit andere presentaties, zie notities op slides

• Alle kopieën zonder bronspecificatie: Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley / Pearson, 5e editie 2007.

• Verdere figuren: bronnen zie “Powerpoint comments field”

• Alle keuken-dingen en overige fouten zijn de mijne ;-) • Bedankt iedereen!

top related