Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fizikai tárolás szervezése. Haladó adatbázisokFizikai tárolás szervezése2 Vázlat Hol és hogyan tároljuk az adatokat? –fizikai szint –logikai szint.

Hasonló előadás


Az előadások a következő témára: "Fizikai tárolás szervezése. Haladó adatbázisokFizikai tárolás szervezése2 Vázlat Hol és hogyan tároljuk az adatokat? –fizikai szint –logikai szint."— Előadás másolata:

1 Fizikai tárolás szervezése

2 Haladó adatbázisokFizikai tárolás szervezése2 Vázlat Hol és hogyan tároljuk az adatokat? –fizikai szint –logikai szint

3 Haladó adatbázisokFizikai tárolás szervezése3 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:N0:N

4 Haladó adatbázisokFizikai tárolás szervezése4 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) student cidname CREATE TABLE student (cid char(8) primary key,name varchar(32))

5 Haladó adatbázisokFizikai tárolás szervezése5 Adatbázis feltöltése Adatmanipulációs nyelv (DML) student cidname Paul INSERT INTO student VALUES (‘ ’, ‘Paul’)

6 Haladó adatbázisokFizikai tárolás szervezése6 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 Tranzakció műveletek BEGIN TRANSACTION transfer UPDATE bank-account SET balance = balance WHERE account=1 UPDATE bank-account SET balance = balance WHERE account=2 COMMIT TRANSACTION transfer

7 Haladó adatbázisokFizikai tárolás szervezése7 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.

8 Haladó adatbázisokFizikai tárolás szervezése8 Hol: központi memóriában? Gyors! De: –Túl kicsi –Túl drága –Felejtő

9 Haladó adatbázisokFizikai tárolás szervezése9 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

10 Haladó adatbázisokFizikai tárolás szervezése10 Mágneslemezek Tetszőleges elérés Olcsó Nem felejtő sáv szektor cilinder korong forgás kar tengely kar vezérlő író-olvasó fej

11 Haladó adatbázisokFizikai tárolás szervezése11 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 kar vezérlő író-olvasó fej

12 Haladó adatbázisokFizikai tárolás szervezése12 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ő Lemez I/O sáv szektor cilinder korong forgás kar tengely kar vezérlő író-olvasó fej

13 Haladó adatbázisokFizikai tárolás szervezése13 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

14 Haladó adatbázisokFizikai tárolás szervezése14 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

15 Haladó adatbázisokFizikai tárolás szervezése15 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

16 Haladó adatbázisokFizikai tárolás szervezése16 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ő

17 Haladó adatbázisokFizikai tárolás szervezése17 Rövid gyakorlat Hogyan válasszuk a lapméretet? –lapméret < blokkméret –lapméret = blokkméret –lapméret > blokkméret

18 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? Haladó adatbázisokFizikai tárolás szervezése18 lemez pufferkészlet Lapkérés Pufferkezelés (1/2)

19 Haladó adatbázisokFizikai tárolás szervezése19 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) lemez Lapkérés pufferkészlet

20 Haladó adatbázisokFizikai tárolás szervezése20 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)

21 Haladó adatbázisokFizikai tárolás szervezése21 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

22 Haladó adatbázisokFizikai tárolás szervezése22 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ó lemez 2. lemez3. lemez 4. lemez

23 Haladó adatbázisokFizikai tárolás szervezése23 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 lemez 2. lemez 1. lemez tükrözése 3. lemez4. lemez 3. lemez tükrözése

24 Haladó adatbázisokFizikai tárolás szervezése24 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

25 Haladó adatbázisokFizikai tárolás szervezése25 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 1. lemez 2. lemez3. lemez 4. lemez B0B1B2P1

26 Haladó adatbázisokFizikai tárolás szervezése26 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 1. lemez 2. lemez3. lemez 4. lemez B0PX’B2P1 PXBYBY’ B1 PN BM

27 Haladó adatbázisokFizikai tárolás szervezése27 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

28 Haladó adatbázisokFizikai tárolás szervezése28 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 cidname Paul Paul hallgató rekord: = 12 bájt

29 Haladó adatbázisokFizikai tárolás szervezése29 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

30 Haladó adatbázisokFizikai tárolás szervezése30 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

31 Haladó adatbázisokFizikai tárolás szervezése31 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. lap2. lap fájl eleje 1. lap2. lap fájl eleje beszúrás

32 Haladó adatbázisokFizikai tárolás szervezése32 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 … null Túlcsordulási lap

33 Haladó adatbázisokFizikai tárolás szervezése33 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

34 Hallgató rekord mérete: 12 bájt Tipikus lapméret: 2 kB Rekordazonosítók: Hogyan osszuk el a rekordokat lapokra: –Átnyúlás nélküli szervezés Blokkolási tényező = –Átnyúlásos szervezés Haladó adatbázisokFizikai tárolás szervezése34 i. lapi+1. lapi. lapi+1. lap Lapszervezés átnyúlás nélküliátnyúlásos

35 Haladó adatbázisokFizikai tárolás szervezése35 Mi van, ha törlünk egy rekordot? A rekordok típusától függően: –Fix hosszú rekordok –Változó hosszú rekordok

36 Rekord törlésekor: –Laptömörítési séma –Bittérkép Haladó adatbázisokFizikai tárolás szervezése36 1. hely 2. hely N. hely Lapfejléc... N Szabad hely Fix hosszú rekord fájlok... N-1 Tömörítés N... M. hely N. hely 2. hely 1. hely Bittérkép NM

37 Haladó adatbázisokFizikai tárolás szervezése37 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 Változó hosszú rekord fájlok N N 1632

38 Haladó adatbázisokFizikai tárolás szervezése38 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 f1f2f3f4 Kezdőcím (B) L1L2 L3 L4 f3 címe = B+L1+L2 f1f2f3f4 Kezdőcím (B)

39 Haladó adatbázisokFizikai tárolás szervezése39 Ö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

40 Haladó adatbázisokFizikai tárolás szervezése40 Ö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


Letölteni ppt "Fizikai tárolás szervezése. Haladó adatbázisokFizikai tárolás szervezése2 Vázlat Hol és hogyan tároljuk az adatokat? –fizikai szint –logikai szint."

Hasonló előadás


Google Hirdetések