gegevensbanken 2010 les11
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!