Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Fizikai tárolás szervezése
2
Fizikai tárolás szervezése
Vázlat Hol és hogyan tároljuk az adatokat? fizikai szint logikai szint Haladó adatbázisok Fizikai tárolás szervezése
3
Adatbázis megalkotása: Magas szint
Tervezzük meg a fogalmi sémát valamilyen adatmodellel, pl. ER, UML, stb. Egy hallgató milyen tárgyakat vesz fel: student takes course name cid 1:N 0:N Haladó adatbázisok Fizikai tárolás szervezése
4
Adatbázis megalkotása: Logikai szint
Tervezzük meg a logikai sémát, pl. relációs, hálózatos, hierarchikus, objektum-relációs, XML stb. sémákat Adatdefiníciós nyelv (DDL) CREATE TABLE student (cid char(8) primary key,name varchar(32)) show example in psql \d \d student student cid name Haladó adatbázisok Fizikai tárolás szervezése
5
Adatbázis feltöltése INSERT INTO student VALUES (‘00112233’, ‘Paul’)
Adatmanipulációs nyelv (DML) INSERT INTO student VALUES (‘ ’, ‘Paul’) student cid name Paul Haladó adatbázisok Fizikai tárolás szervezése
6
Fizikai tárolás szervezése
Tranzakció műveletek Tranzakció: olyan műveletek gyűjteménye, amelyek egy logikai műveletet végeznek el Tranzakció közben bekövetkező hiba inkonzisztens állapotban hagyhatja a rendszert, pl. bankszámlák közti átutaláskor BEGIN TRANSACTION transfer UPDATE bank-account SET balance = balance WHERE account=1 UPDATE bank-account SET balance = balance WHERE account=2 COMMIT TRANSACTION transfer Haladó adatbázisok Fizikai tárolás szervezése
7
Hol és Hogyan tároljuk ezeket az adatokat?
Metaadatok: táblák, mezők, adattípusok, megszorítások stb. Adatok: rekordok Tranzakciónaplók, indexek stb. Haladó adatbázisok Fizikai tárolás szervezése
8
Hol: központi memóriában?
Gyors! De: Túl kicsi Túl drága Felejtő Haladó adatbázisok Fizikai tárolás szervezése
9
Fizikai tárolóegységek
Elsődleges tárak Gyorsítótár Központi memória Másodlagos tárak Flash memória Mágneslemez Külső tárak Optikai lemez Mágnesszalag gyorsítótár központi memória flash memória mágneslemez optikai lemez mágnesszalag - the higher the faster and more expensive Haladó adatbázisok Fizikai tárolás szervezése
10
Fizikai tárolás szervezése
Mágneslemezek Tetszőleges elérés Olcsó Nem felejtő sáv szektor cilinder korong forgás kar tengely vezérlő író-olvasó fej Haladó adatbázisok Fizikai tárolás szervezése
11
Hogyan működnek a lemezek?
Korong: mágneses tároló réteggel borított Sáv: a korongfelület logikai felosztása Szektor: sáv hardver általi felosztása Blokk: sáv OS általi felosztása Tipikus blokkméretek: 512 B, 2kB, 4kB Író/olvasó fej sáv szektor cilinder korong forgás kar tengely vezérlő író-olvasó fej Haladó adatbázisok Fizikai tárolás szervezése
12
Fizikai tárolás szervezése
Lemez I/O Lemez I/O := blokk I/O A hardvercím átalakítása cilinder, felület és szektor számmá Modern lemezek: Logikai Szektor Cím 0...n Elérési idő: az olvasási/írási kérelem és az adatátvitel kezdete között eltelt idő Keresési idő: a fej eléri a megfelelő sávot Átlagos keresési idő: 5-10 ms Forgási késés: befordul a megfelelő blokk a fej alá 5400 f/p, 15k f/p Átlagosan 4-11 ms Blokkátviteli idő sáv szektor cilinder korong forgás kar tengely vezérlő író-olvasó fej Haladó adatbázisok Fizikai tárolás szervezése
13
Fizikai tárolás szervezése
I/O optimalizálása Adatbázisrendszer teljesítménye az I/O-hoz kötött Javítsunk a lemezelérési sebességen: Ütemező algoritmusok Fájlszervezés Vezessünk be lemez redundanciát Olcsó lemezek redundáns tömbje (RAID) Csökkentsük az I/O-k számát Lekérdezés optimalizálása, indexek elevator scheduling algorithm Keep logical close blocks physically close Haladó adatbázisok Fizikai tárolás szervezése
14
Fizikai tárolás szervezése
Egy rövid gyakorlat Vegyünk egy lemezt az alábbi jellemzőkkel: 10 korong 20k sáv felületenként 400 szektor/sáv (átlagosan) 512 B szektorméret forgási sebesség f/p átlagos keresési idő: 7 ms Mi a lemez mérete? Mi a lemezelérés ideje mindkét esetben? nagy 32kB olvasás 4 véletlenszerű olvasás, egyenként 8kB Hogyan ütemezzük az olvasásokat, hogy csökkentsük az elérési időt? a fej a 15k. sávon, olvasások sorrendje: 10k., 5k., 15k., 20k. feltéve: átlagos keresési idő = a fej 10k sávnyit mozdul example of random accesses example of scheduling head Haladó adatbázisok Fizikai tárolás szervezése
15
Hol és Hogyan tároljuk ezeket az adatokat?
Metaadatok: táblák, mezők, adattípusok, megszorítások stb. Adatok: rekordok Tranzakciónaplók, indexek stb. Fájlok gyűjteménye Fizikailag partícionálva lapokra Logikailag partícionálva rekordokra Example in postgres in iBook Haladó adatbázisok Fizikai tárolás szervezése
16
Fizikai tárolás szervezése
Tároló elérése Fájlok gyűjteménye Fizikailag lapokra partícionálva Tipikus adatbázis lapméretek: 2kB, 4kB, 8kB Csökkentsük a blokk I/O-k számát := csökkentsük a lap I/O-k számát Hogyan? Pufferkezelő Before we introduce buffer management, an exercise Haladó adatbázisok Fizikai tárolás szervezése
17
Fizikai tárolás szervezése
Rövid gyakorlat Hogyan válasszuk a lapméretet? lapméret < blokkméret lapméret = blokkméret lapméret > blokkméret Will have to do with different page and block sizes: what if page size < block size = block size > block size (1) multiple of block size (2) irregular Haladó adatbázisok Fizikai tárolás szervezése
18
Fizikai tárolás szervezése
Pufferkezelés (1/2) Puffer: egy lap másolatát tárolja Pufferkezelő: egy készletnyi puffert kezel A kért lap benne van a készletben: találat! A kért lap a lemezen van: Lefoglalunk egy lapkeretet Beolvassuk a lapot és rögzítjük Problémák? Lapkérés Lapkérés pufferkészlet lemez Haladó adatbázisok Fizikai tárolás szervezése
19
Fizikai tárolás szervezése
Pufferkezelés (2/2) Mi van, ha nincs üres lapkeret? Kiválasztjuk a feláldozandó lapot Minden laphoz van egy piszkos (dirty) jelző Ha a kiválasztott lap piszkos, visszaírjuk a lemezre Melyik lapot válasszuk? Cserélési szabályok (LRU, MRU) Lapkérés pufferkészlet Replacement policies similar to OS page replacement policies, eg: Least Recently Used pages Most Recently Used Could have a short exercise lemez Haladó adatbázisok Fizikai tárolás szervezése
20
Fizikai tárolás szervezése
Gyakorlat puffer 10 keret A tábla 15 lap B tábla 9 lap A x B hány olvasás? legrégebben használt (LRU) legújabban használt (MRU) Replacement policies Haladó adatbázisok Fizikai tárolás szervezése
21
Fizikai tárolás szervezése
Lemeztömbök Egyetlen lemez torlódást okoz Lemeztömbök egyetlen nagy lemez helyett sok kicsi párhuzamos lemez N blokkot olvasunk egy elérési idő alatt párhuzamos lekérdezések több lemezt elfoglaló táblák Olcsó lemezek redundáns tömbje (RAID) 7 szint megbízhatóság redundancia párhuzamosság Haladó adatbázisok Fizikai tárolás szervezése
22
Fizikai tárolás szervezése
RAID 0. szint Blokkszintű csíkozás Nincs redundancia Maximális sávszélesség automatikus terheléselosztás legjobb írási teljesítmény viszont nem megbízható 1 2 3 4 5 1.lemez 2. lemez 3. lemez 4. lemez Haladó adatbázisok Fizikai tárolás szervezése
23
Fizikai tárolás szervezése
RAID 1. szint Tükrözés Két megegyező példány tárolása két különböző lemezen Párhuzamos olvasások Szekvenciális írás átviteli sebesség hasonló egyetlen lemezéhez legdrágább megoldás 2 2 1 1 1. lemez 2. lemez 1. lemez tükrözése 3. lemez 4. lemez 3. lemez tükrözése Haladó adatbázisok Fizikai tárolás szervezése
24
Fizikai tárolás szervezése
RAID 2. és 3. szint bitcsíkozás hibafelismerés és -javítás RAID 2 hibajavító kód (ECC) kicsit olcsóbb, mint az 1. szint RAID 3 RAID 2 továbbfejlesztése blokkonként 1 paritásbittel hibafelismerés a lemezvezérlőben RAID 4 magába foglalja a RAID 3-at Haladó adatbázisok Fizikai tárolás szervezése
25
Fizikai tárolás szervezése
RAID 4. szint blokkszintű csíkozás paritásblokk az adatlemezek minden blokkjához P1 = B0 XOR B1 XOR B2 B2 = B0 XOR B1 XOR P1 egy frissítés: P1’ = B0’ XOR B0 XOR P1 B0 B1 B2 P1 1. lemez 2. lemez 3. lemez 4. lemez Haladó adatbázisok Fizikai tárolás szervezése
26
Fizikai tárolás szervezése
RAID 5. és 6. szint magába foglalja a RAID 4-et a paritáslemez nem torlódási pont a paritásblokkok szétosztva a lemezek között RAID 6 két lemezhibát eltűr P+Q redundanciaséma 2 bit redundáns adat minden 4 bit adathoz drágább írások BM B1 B0 PX’ B2 P1 PN BY’ PX BY 1. lemez 2. lemez 3. lemez 4. lemez Haladó adatbázisok Fizikai tárolás szervezése
27
Fizikai tárolás szervezése
RAID Összefoglalás A 2. és 3. szintet nem használják magába foglalja a blokkszintű csíkozásos változat A 4. szintet magába foglalja az 5. szint A 6. szint nagyon gyakran felesleges megalkuvás a teljesítmény és a tárolás között a kívánt alkalmazástól függ Haladó adatbázisok Fizikai tárolás szervezése
28
Mit tartalmaznak logikailag a lapok?
Fájlok: Fizikailag lapokra partícionálva Logikailag rekordokra partícionálva Minden fájl rekordok sorozata Minden rekord mezők sorozata student cid name Paul Paul hallgató rekord: 8 + 4 = 12 bájt Haladó adatbázisok Fizikai tárolás szervezése
29
Fizikai tárolás szervezése
Fájlszervezés Kupac (heap) fájlok: rendezetlen rekordok Rendezett fájlok: rendezett rekordok Hasított fájlok: a rekordok edényekbe (bucket) partícionálva Haladó adatbázisok Fizikai tárolás szervezése
30
Fizikai tárolás szervezése
Kupac fájlok Legegyszerűbb fájlszerkezet Hatékony beszúrás Lassú keresés és törlés Egyenlőségi keresés: átlagosan a lapok felét kell beolvasni Intervallum keresés: minden lapot be kell olvasni fájl fejléc Haladó adatbázisok Fizikai tárolás szervezése
31
Fizikai tárolás szervezése
Rendezett fájlok A rekordok a rendező mező szerint rendezettek Ha a rendező mező ugyanaz, mint a kulcs: rendező kulcsmező Lassú beszúrás és törlés Gyors logaritmikus keresés 1. lap 2. lap fájl eleje beszúrás 1. lap 2. lap fájl eleje Haladó adatbázisok Fizikai tárolás szervezése
32
Fizikai tárolás szervezése
Hasított fájlok A h hasítómezőn értemezett függvény edényekre osztja a rekordokat 80% foglaltság Hatékony egyenlőségi keresés, beszúrás és törlés Nem támogatja az intervallumos keresést null hasítómező h … Túlcsordulási lap Haladó adatbázisok Fizikai tárolás szervezése
33
Költség-összehasonlítás
Keresési idő Egyenlőségi keresés Intervallumos keresés Beszúrás Törlés Költség-összehasonlítás B lap D egy lap olvasási/írási ideje kupac fájlok rendezett fájlok hasított fájlok feltéve, hogy 80%-os a telítettség, nincs túlcsordulási lap Haladó adatbázisok Fizikai tárolás szervezése
34
Fizikai tárolás szervezése
Lapszervezés Hallgató rekord mérete: 12 bájt Tipikus lapméret: 2 kB Rekordazonosítók: <Lapazonosító, eltolás> Hogyan osszuk el a rekordokat lapokra: Átnyúlás nélküli szervezés Blokkolási tényező = Átnyúlásos szervezés q1: what if large records (over a single page)? Q2: what if large records, BLOBs (over multiple pages)? i. lap i+1. lap i. lap i+1. lap átnyúlás nélküli átnyúlásos Haladó adatbázisok Fizikai tárolás szervezése
35
Mi van, ha törlünk egy rekordot?
A rekordok típusától függően: Fix hosszú rekordok Változó hosszú rekordok Which is the easiest one and why? Haladó adatbázisok Fizikai tárolás szervezése
36
Fix hosszú rekord fájlok
Rekord törlésekor: Laptömörítési séma Bittérkép 1. hely 2. hely N. hely Lapfejléc ... N Szabad hely ... N-1 N ... M. hely N. hely 2. hely 1. hely Bittérkép 1 2 M Problem with packed scheme, RID do not change But you can’t store a sorted file on bitmap 1 Tömörítés Haladó adatbázisok Fizikai tárolás szervezése
37
Változó hosszú rekord fájlok
Mikor van változó hosszú rekord fájlunk? egy fájl több tábla rekordjait tartalmazza create table t (field1 int, field2 text[]) Problémák: A törlés után maradó lyukak mérete változó Elég nagy helyet kell keresni rekord beszúrásakor Az előző megoldások használhatóak: maximális rekordméret sok helyet pazarol Réses (slot) lapszerkezet Résjegyzék (Slot directory) Minden rés kezdőcíme, rekordmérete Rekord ID: lapszám, résszám N ... 38 2 1 16 32 So in this case record IDs are still valid when record’s moved Slots are not removed, but scanned Haladó adatbázisok Fizikai tárolás szervezése
38
Fizikai tárolás szervezése
Rekordszervezés Fix hosszú rekordformátumok Mezők tárolása folytonosan Változó hosszú rekordformátumok Eltolások tömbje NULL értékek, ha kezdő eltolás = vég eltolás f1 f2 f3 f4 Kezdőcím (B) L1 L2 L3 L4 f3 címe = B+L1+L2 Where are the number of fields and data types stored? Record that grows moves subsequent fields f1 f2 f3 f4 Kezdőcím (B) Haladó adatbázisok Fizikai tárolás szervezése
39
Fizikai tárolás szervezése
Összefoglalás (1/2) Minek a fizikai tárolás szervezése? értsük meg az alacsony szintű részleteket, amelyek hatással vannak az adatelérésre tegyük hatékonyabbá az adatelérést Elsődleges tárak, másodlagos tárak a memória gyors a lemez lassú, de nem felejtő Az adatokat fájlban tároljuk fizikailag lapokra partícionálva logikailag rekordokra partícionálva I/O optimalizálása ütemező algoritmusok RAID lapcserélési stratégiák Haladó adatbázisok Fizikai tárolás szervezése
40
Fizikai tárolás szervezése
Összefoglalás (2/2) Fájlszervezés mennyire hatékonyak az egyes fájltípusok Lapszervezés stratégiák a rekordtörlésre Rekordszervezés Haladó adatbázisok Fizikai tárolás szervezése
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.