9
2014.12.11. 1 TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSE Dobos László ELTE Komplex Rendszerek Fizikája Tanszék Tematika 1. A negyedik paradigma 2. Amdahl-törvénye és az Amdahl-szám 3. x64 alapú nagyteljesítményű hardverek 4. Adattároló-rendszerek 5. Hálózatok 6. Relációs adatbázis-kezelők 7. Adatok tárolása adatbázis szerverekben 8. Indexek 9. Tranzakciók 10. Biztonsági mentés, replikáció 11. Alapvető fizikai operátorok 12. Lekérdezés-optimalizálás 13. Adatbetöltés 14. Metaadatok 15. Többdimenziós adatok kezelése 16. A gömbfelszín indexelése 17. Adatbázisok particionálása, adatbázis-klaszterek 18. Különböző adatmodellek relációs leképezése 19. Nem strukturált adatok kezelése 20. Oszlop alapú adatbázisok 21. Tömb alapú adatbázisok 2 Data tsunami 1959 4GB of punched cards 4 A tudományos módszer fejlődése Kísérlet Elmélet 5 A tudományos módszer fejlődése Kísérlet Elmélet Szimuláció 6

TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

1

TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEDobos László

ELTE Komplex Rendszerek Fizikája Tanszék

Tematika1. A negyedik paradigma2. Amdahl-törvénye és az

Amdahl-szám3. x64 alapú nagyteljesítményű

hardverek4. Adattároló-rendszerek5. Hálózatok6. Relációs adatbázis-kezelők7. Adatok tárolása adatbázis

szerverekben8. Indexek9. Tranzakciók10. Biztonsági mentés, replikáció11. Alapvető fizikai operátorok

12. Lekérdezés-optimalizálás13. Adatbetöltés14. Metaadatok15. Többdimenziós adatok

kezelése16. A gömbfelszín indexelése17. Adatbázisok particionálása,

adatbázis-klaszterek18. Különböző adatmodellek

relációs leképezése19. Nem strukturált adatok

kezelése20. Oszlop alapú adatbázisok21. Tömb alapú adatbázisok

2

Data tsunami 1959

4GB of punchedcards

4

A tudományos módszer fejlődése

Kísérlet Elmélet

5

A tudományos módszer fejlődése

Kísérlet

ElméletSzimuláció

6

Page 2: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

2

A tudományos módszer fejlődése

Kísérlet

Elmélet

Szimuláció

Adatbányászat

7

Modern kísérletek• Automatizált adatgyűjtő

rendszerek▫ Távcsövek, kamerák (CCD)▫ Részecskegyorsítók▫ Génszekvenálók▫ Műholdak▫ Szenzor hálózatok▫ Internetes mérőprogramok

• Nagy adatmennyiség▫ Ma tipikus: 10 TB▫ Nemsokára: 1 PB

• Adatok automatikus filterezése méréskor

• Adatokra on-line van szükség▫ diszken tárolva▫ bármikor elérhető

• Tipikus számítási problémák:▫ Nyers adatok feldolgozása▫ Statisztika nagy mintán▫ Idősor analízis▫ Kilógó adatpontok keresése

• Interaktív felhasználói interfész

8

Asztrofizika• Égtérképek:

▫ az égbolt szisztematikus térképe

▫ asztrostatisztikai célokra▫ Tejút szerkezete▫ galaxisok evolúciója▫ kozmológia

• Több hullámhossz tartomány:▫ rádió, infravörös, optikai, UV,

röntgen, gamma▫ Hullámhosszak összevetése

alapvető feladat• Gravitációs hullám mérések:

▫ LIGO, Virgo, LISA▫ idősor analízis

• Sötét anyag szimulációk▫ Millenium, Bolshoi, Indra

• Múlt:▫ Palomar Digitized Sky Survey▫ digitalizált üveglemezek

• Tegnap:▫ SDSS o(10 TB)

Sloan Digital Sky Survey

▫ SkyServer [Szalay et al.]▫ 350 millió detektált objektum▫ 1.5 millió spektrum▫ Kis része időtartományban is

• Ma:▫ PanSTARRS

o(100 TB)▫ Időtartomány:▫ Naprendszer, változócsillagok,

kvazárok• Évtized végére:

▫ LSST o(1 PB)

9

Részecskefizika Biológia és orvostudomány

• Részecskegyorsítók▫ Tevatron, RHIC, LCH

• Több millió esemény / sec• Eseményeket szűrése

adatgyűjtéskor• Off-line analízis,

adatbányászat• Objektum-orientált

adatbázisok• Skimming

• DNS szekvenciák• Fehérje hálózatok• Szenzor hálózatok: ökológiai mérések• Rákkutatás: betegség lefolyási

mintázatok• CT, MR, PET képekből nyert

adatbázisok

Földtan, meteorológia és oceonográfia

• Térinformatikai adatbázisok, térképek• Műholdadatok feldolgozása• Szeizmológia• Villámlás térképek• Tengeri áramlások

Mechanika

• Turbulens áramlások

10

Hajtóerő: Moore-törvény Exponenciális növekedés

Elektronika DetektorokAdatok mérete

Page 3: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

3

Diszkek tárolókapacitása

For

rás:

Wik

iped

iaG

MR

: gia

nt

mag

net

ores

ista

nce

PM

R: p

erpe

nd

icu

lar

mag

net

icre

cord

ing

PMR technológia

GMR technológia

13

Adatbázisok exponenciális növekedése

1,E+00

1,E+01

1,E+02

1,E+03

1,E+04

1,E+05

1,E+06

1,E+07

SDSS - 2000 PanSTARRS - 2010 LSST - 2020

Camera pixels (Mpix)

Detected celestial objects (M)

DB Size (GB)

14

Használható algoritmusok

• Adatok mérete ∝ et

• Számítási kapacitás ∝ et

• Feltétel az algoritmusra: o(N)

• Legfeljebb o(N log N) A−1

1TB-os diszk beolvasása

• Szekvenciálisan: 4,5 óra

• Random eléréssel: 15-150 nap

Fő korlát: Diszk = szalag = ���� Jim Gray törvényei

• Scale-out:Az adatfeldolgozás csak masszív párhuzamosítással oldható meg

• Az számolást kell vinni az adathoz és nem az adatot a számoláshoz

18

Page 4: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

4

19

Big Data – A 3V• Volume (adatmennyiség)

▫ Tárolást optimalizálni a gyors elérés érdekében▫ Adatbázisok, adattárházak

• Velocity (sebesség)▫ Az adatok gyorsan jönnek▫ Folyamatában kell feldolgozni▫ Streaming algoritmusok

• Variability (változatosság)▫ Ha az adat sok adatforrásból származik▫ Rengeteg adatformátum, azonos alakra kell hozni

• További V-k:▫ Veracity (az adatok megbízhatósága) stb.

20

Relációs adatbázisok

• Optimalizált diszkelérés

• Deklaratív programozási model

• Ad-hoc lekérdezések támogatása

• Felhasználói függvények

• Gond: interpretált

RDBMS: scale-up RDBMS: scale-out

Page 5: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

5

RDBMS: scale-out Tudományos adatbázisok• Hardver teljesítményének

exponenciális növekedése �

adatgyűjtés exponenciális növekedése

• Adatok elférnek a diszken, de▫ Lassú diszk▫ Lassú hálózat▫ Lassú algoritmusok

• Tudományos célú adattárházak (szerverközpontok)

• Minden méretskálán▫ MB – PB

• Sokdimenziós• A világon szétszórva

▫ Hálózat lassú▫ Vigyük a számolást az

adathoz, ne az adatot a számoláshoz

• o(n)-nél lassabb algoritmusok idővel használhatatlanná válnak

• Párhuzamosítás

26

Tudományos adatbázisok az ELTÉ-n

• Asztrofizika:▫ Sloan Digital Sky Survey – SkyServer (7 TB)▫ SDSS képek (8TB)▫ SDSS spektroszkópiai adatok

• Internet tomográfia (Vattay G., Csabai I.)• Twitter• Biológia, génadatok (Csabai István)• Meteorológiai idősor adatok (Jánosi Imre)

27

Kiegyensúlyozott rendszerek esetére

28

Párhuzamosítás szükségessége

• o(n)-nél lassabb algoritmusok idővel használhatatlanná válnak

• Párhuzamosítás

29

Párhuzamosítható probléma

• P: párhuzamosítható rész▫ Akár nagyon sok szálon párhuzamosítható▫ Gyakorlatilag 0 idő alatt végrehajtható S-hez képest

• S: szekvenciális rész

1 = P + S

30

Page 6: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

6

Gyorsulási törvény

• N: szálak száma• Ha N→ ∞, akkor gyorsulás→ S–1

• A maximális gyorsulást a probléma kizárólag szekvenciálisan végrehajtható része határozza meg.

NPS

gyorsulás+

=1

31

Amdahl-szám

• Tipikus diszkrendszer:▫ 4 × 150 MB/s = 4,8 Gb/s

• Tipikus szerver:▫ 8 × 2,5 GHz = 20 GHz

• Tipikus Amdahl-szám:▫ A = 0,24

• Blue Gene: A = 0,013• Beowulf: A = 0,08• Cloud VM: A = 0,08• Desktop: A = 0,2

• Graywulf: A = 0,5• Atom+Ion+SSD: A = 1,25

sec/utasítás1

sec/IObit1=A

32

33

Nagyteljesítményű hardverek• x64 alapú architektúrák• Processzor(ok) – rendszerbusz

– memória▫ Gyorsítótár▫ Párhuzamosítás▫ Grafikus processzorok

felhasználása

• Tárolórendszerek▫ Diszk, SSD tárolók▫ RAID technológia▫ Gyorsítótár▫ Adatbuszok

• Hálózat▫ Lokális (ethernet, InfiniBand)▫ Dedikált kapcsolat▫ Internet

• Számítási klaszterek, felhők, adatbázis klaszterek

34

x64 szerver processzorok ma• Szerverprocesszorok:

▫ Intel Xeon E5▫ AMD Opteron

▫ 2-2.6 GHz mag órajel▫ 4-16 mag chipenként▫ 32 nm technológia▫ x64 utasításkészlet és címzés▫ 36MB cache▫ 768 GB memória kezelése▫ 1600 -220 MHz mem busz▫ 2-3 szintű memória cache

(L1 L2 L3)▫ Több processzor támogatása

(2-4-8- foglalat)▫ Virtualizáció▫ HyperThreading (Intel)▫ 50-80 GFLOP/sec/mag▫ 80-130W fogyasztás

35

Gyorsítótár (cache)

• Gyors processzor, lassú memória (háttértár) [latency]

• Starving: éhezés, a processzor tudna gyorsabban dolgozni, de nem jön az adat

• A processzor és a memória közé egy kis méretű, de gyors memóriát iktatunk: gyorsítótár[cache]

• A gyakran használt memóriaterületek bekerülnek a gyorsítótárba

36

Page 7: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

7

Cache változatok

• Processzor és memória között▫ Néhány MB, több szintű

• RAID kártyán▫ 512-2048 MB, RAID5-höz fontos

• Diszk meghajtóban▫ 16-64 MB▫ Random elérést gyorsítja

• IO alrendszer és processzor között▫ központi memória egy részéből leválasztva▫ szoftveres megoldással

37

Cache algoritmusok• Olvasáskor egy egész memória

blokk kerül be a cache-be• Mikor kell a cache-ben levő

dolgokat üríteni?• Főbb problémák:

▫ Több processzor esetén, ha nem közös a cache, íráskor szinkronizálni kell(snoop filter)

▫ A memória szétszórt részeiről olvasunk

▫ Háttértár cache-nél, ha áramkimaradás van

• Írási algoritmus (Write policy)▫ Write back: az írás csak a

cache-be történik, a cache vezérlő megjegyzi, hogy az adott blokk módosult, és csak akkor írja át a háttérmemóriába, ha a blokk kiöregszik a cache-ből

▫ Write through: az írás a cache-be és a háttérmemóriába is megtörténik, lassú az írás, de nincsen gond a több processzoros rendszerekkel, háttértárolókkal

38

CPU 1

Mai modern CPU cache vázlata

Core 1L1

cache L2 cache

Core 2L1

cache

CPU 2

Core 1L1

cache L2 cache

Core 2L1

cache

L3cache

RAM

Snoopfilter

39

Többprocesszoros architektúrák

• Multi-core:▫ egy chip-en több processzor mag▫ Közös L2 (L3) cache

• Multi-processor:▫ Külön tokban (egyenként lehet multi-core)▫ Lehet közös L3 cache (alaplapon)

• Modern OS:▫ 256 core

• Párhuzamosan megírt program▫ 256 core

• Scale-up: mennyivel fut gyorsabban erősebb vason• Scale-out: mennyivel fut gyorsabban több processzoron

40

Párhuzamos végrehajtás

• Párhuzamos futtatás egységei:▫ Process = folyamat: � Folyamatonként önálló memória terület� process-ek között kommunikáció kontrollált

▫ Thread = szál:� Egy processen belül több szál

• OS kernel egyik feladata: szálak ütemezése:� Processzor magok között� Időszeletekben

• Processek automatikusan konkurensen futnak, a threadeket a programozónak kell létre hoznia

41

NUMA• Non-Uniform memory access

▫ A memóriabankok külön processzorfoglalatokhoz tartoznak

▫ A keresztben olvasás lassabb� Intel QPI (Quick Path

Interconnect)� AMD HyperTransport

▫ A processzor-cache-t koherensen kell tartani

42

Kép

: vm

foot

prin

ts.o

rg

Page 8: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

8

Grafikus processzorok

• Sok, o(1000) , párhuzamos aritmetikai egység• Elsődleges célterület: 3D vizualizáció• GPGPU: általános célú GP felhasználás

▫ Cuda, stb.• Még mindig speciális programot igényelnek• Tudományos könyvtárak léteznek• Konvergálnak a CPU-val:

▫ GPU-k: egyre komplexebb utasítások▫ CPU-k: egyre több mag

• Egyedül az x64 architektúrával kompatibilisek• Az adatfeldolgozási rendszerbe könnyen

integrálhatóak

43

Buszrendszer

• Mai szerverekben: PCI-E (express)• Soros busz, ×1, ×2, ×4, ×8, ×16 sebességgel• Maximum 16 GB/s adatátvitel• Szerverekben használt bővítőkártyák:

▫ RAID vagy egyéb diszkvezérlő▫ Hálózati adapter▫ Videokártya

(GPGPU céllal, sokszor videó kiment nélkül –Tesla, Fermi)Ez az opció csak x64 architektúrákban elérhető!

▫ DSP kártyák

44

45

Adattároló rendszerek fogalmai

• On-line: bármikor elérhető• Off-line: humán beavatkozás igényel (pl. szalag)

• Szekvenciális: bájtfolytonosan írható/olvasható• Random elérésű: bárhonnan írhatunk/olvashatunk

• DAS: directly attached storage▫ Közvetlenül a rendszerbuszra kapcsolva▫ Gyors, kis távolságra vihető el, drága

• NAS: network attached storage▫ Hálózaton érhető el (lassú)▫ Nagy távolságra vihető el, drága

46

Adattároló egységek• Merevlemez

▫ Tömeggyártás, olcsó▫ Gyors szekvenciális

adatelérés▫ Random adatelérés,

de az lassú▫ Érzékeny mechanika▫ Nagy fogyasztás

• Félvezető tárolók (SSD)▫ Ma még drága▫ Nagyon gyors random▫ Írási problémák▫ Alacsonyabb fogyasztás

• Memória:▫ Drága, de már TB elérhető▫ Nagyon gyors, random

• Szalagos egységek▫ Jó ár/kapacitás arány▫ A meghajtók ma már nagyon

drágák▫ Soros adatelérés▫ Archiválásra, biztonsági

mentésre, adattovábbításra

• Optikai tárolók▫ Kis kapacitás, reménytelen

47

Merevlemez• Adatrögzítés módja:

▫ Az információt ferromágneses réteg tárolja

▫ Kiolvasás a GMR elv szerint

• Felépítése:▫ Egy vagy több lemez közös

tengelyen▫ Motor▫ Olvasófejek közös tengelyen▫ Elektronika

48

For

rás:

Wik

iped

ia

Page 9: TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSEdobos/teaching/scidb2016/01.pdf · • Merevlemez Tömeggyártás, olcsó Gyors szekvenciális adatelérés Random adatelérés,

2014.12.11.

9

Merevlemezek paraméterei• Fizikai méret:

▫ Szerverekben 2.5”, 3.5”▫ Lemezek száma tipikusan 1-

2-3

• Kapacitás: 500 GB – 4000 GB▫ Limitáló tényező: bitsűrűség▫ A mai technológia 30 TB-ig

kiterjeszthető

• Sebesség▫ 60-150 MB/s szekvenciális

olvasás (a lemez szélén)▫ 4.5-15 ms random elérési idő▫ Limitáló tényező:

fordulatszám:max. 5400 – 15000 rpm

• Interfész▫ SATA II – 3 Gb/s

rövid kábel, gépen belül▫ SAS – 6 Gb/s – közepes

távolság, szekrényen belül▫ FibreChannel – gigabit,

optikai, drága, nagy távolság

• Cache méret: 16-32-128 MB

• Raid Edition: speciálisan szervergépekbe szánt változat▫ Jobb mechanikai kialakítás▫ Nagyobb cache▫ Speciális firmware

49

Diszk = szalag = �

• Memória: gyors, drága

• Diszk: olcsó, de lassú100-150 MB/s

• 1 TB-os diszk beolvasása:▫ szekvenciális olvasáskor: 4,5 óra▫ random olvasáskor: 15-150 nap

SSD ?

ADAT ≫≫≫≫ MEMÓRIA

DISZK RANDOM IO ����

SZEKVENCIÁLIS IO

50

Merevlemezek meghibásodása• Vezérlő áramkör

▫ Teljes lemezt elérhetetlen▫ Áramkör cserével a meghajtó

még talán olvashatóvá tehető (egyszerűbb)

• Lemez fizikai meghibásodása▫ Általában ponthibák▫ A vezérlő logika legtöbbször

automatikusan képes javítani, ha a hiba lokális

▫ A javítás időbe telik (másodpercek – át kell másolni mindent egy hibátlan helyre)

▫ Bit rotting▫ Ellenőrzőösszeg (checksum)

51

Merevlemezek meghibásodása 2.• Mechanikai meghibásodás

▫ Motor, csapágy, fejmozgató mechanika

▫ Az adatok mechanikai javítás után még olvashatóvá tehetők (bonyolult)

• S.M.A.R.T.▫ Self-Monitoring, Analysis,

and Reporting Technology▫ Információt nyújt a meghajtó

fizikai állapotáról▫ Működési statisztika,

hőmérséklet, hibás szektor arány stb.

▫ Az előre várható hibákból eredő adatvesztések elkerülését segíti

52

SSD-k paraméterei• Flash memória• Félvezetőből kialakított háttértároló,

nincsen mozgó alkatrész• Alacsony fogyasztás• Nagy sebesség

▫ Tipikusan 150-200 MB/s, de nem konzisztens▫ 0 ms random elérési idő

• Egyelőre nem túl nagy méret: 250-500 GB / egység• Problémák az írással:

▫ A flash memória íráskor öregszik▫ Egyszerre csak komplett blokkok írhatók

• Nagyon drága• Strapabírásuk nem igazán ismert

53

Interfészek, protokollok• SATA: serial advanced

technology attachement▫ Asztali és laptop gépekhez

fejlesztve▫ 1.5-6 Gb/s soros adatátvitel▫ 1 m hosszú kábel▫ diszkenként egy kábel

• SCSI: Small Computer System Interface▫ Munkaállomásokhoz és

szerverekhez▫ 1.2-5 Gb/s párhuzamos

adatátvitel▫ 12 m hosszú kábel▫ több eszköz sorban felfűzve▫ drága

• SAS: Serial Attached SCSI▫ SATA hardver + SCSI protokoll▫ 3-6 Gb/s soros adatátvitel▫ 10 m hosszú kábelek▫ Multiplexer, backplane

támogatás▫ SATA lemezekkel kompatibilis

(olcsó)

• Fiber Channel▫ Optikai link, főleg NAS

(network attached storage) megoldásokhoz, drága

• iSCSI▫ SCSI protokoll hálózaton

keresztül▫ NAS

54