TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSE Dobos László
ELTE Komplex Rendszerek Fizikája Tanszék
2
Tematika 1. 2.
A negyedik paradigma 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. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Lekérdezés-optimalizálás Adatbetöltés Metaadatok Többdimenziós adatok kezelése A gömbfelszín indexelése Adatbázisok particionálása, adatbázis-klaszterek Különböző adatmodellek relációs leképezése Nem strukturált adatok kezelése Oszlop alapú adatbázisok Tömb alapú adatbázisok
3
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
Szimuláció
Elmélet
6
A tudományos módszer fejlıdése Kísérlet
Adatbányászat
Elmélet
Szimuláció
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
• DNS szekvenciák • Részecskegyorsítók • Fehérje hálózatok ▫ Tevatron, RHIC, LCH • Szenzor hálózatok: ökológiai mérések • Több millió esemény / sec • Rákkutatás: betegség lefolyási • Eseményeket szűrése mintázatok adatgyűjtéskor • CT, MR, PET képekből nyert • Off-line analízis, adatbányászat adatbázisok • Objektum-orientált adatbázisok Földtan, meteorológia és oceonográfia • Skimming • Térinformatikai adatbázisok, térképek • Műholdadatok feldolgozása Mechanika • Szeizmológia • Turbulens áramlások • Villámlás térképek • Tengeri áramlások
10
Forrás: Wikipedia
Processzorok teljesítménye
PMR technológia
GMR technológia Forrás: Wikipedia GMR: giant magnetoresistance PMR: perpendicular magnetic recording
11
Diszkek tárolókapacitása
12
Adatbázisok exponenciális növekedése 1,E+07
1,E+06
1,E+05
1,E+04
1,E+03
1,E+02
1,E+01
1,E+00 SDSS - 2000
PanSTARRS - 2010
Camera pixels (Mpix) Detected celestial objects (M) DB Size (GB)
LSST - 2020
13
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
14
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)
15
16
Kiegyensúlyozott rendszerek esetére
17
Párhuzamosítás szükségessége
• o(n)-nél lassabb algoritmusok idővel használhatatlanná válnak • Párhuzamosítás
18
Párhuzamosítható probléma
1=P+S • 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
19
Gyorsulási törvény
gyorsulás
1 = S +
P N
• 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.
20
Amdahl-szám 1 bit IO / sec A = 1 utasítás / sec • 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: Beowulf: Cloud VM: Desktop:
• Graywulf: • Atom+Ion+SSD:
A = 0,013 A = 0,08 A = 0,08 A = 0,2 A = 0,5 A = 1,25
21
22
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
23
x64 szerver processzorok ma • Szerverprocesszorok: ▫ Intel Xeon E7, 5000, E3 ▫ 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 192 GB memória kezelése 1066 -1866 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
24
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
25
Cache változatok • Processzor és memória között ▫ Néhány MB, több szintű
• RAID kártyán ▫ 256-512 MB, RAID5-höz fontos
• Diszk meghajtóban ▫ 16-32 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
26
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
27
Mai modern CPU cache vázlata Core 1 Core 2 CPU 1 Core 1 Core 2 CPU 2
L1 cache L1 cache L1 cache L1 cache
L2 cache L3 cache L2 cache
Snoop filter
RAM
28
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 igény: ▫ Linux kernel 2.6: 64 core ▫ Windows 2008 Server R2, Windows 7: 256 core
• Párhuzamosan megírt program ▫ SQL Server 2008 R2: 256 core
• Scale-up: mennyivel fut gyorsabban erősebb vason • Scale-out: mennyivel fut gyorsabban több processzoron
29
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
30
NUMA ▫ 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
Kép: vmfootprints.org
• Non-Uniform memory access
31
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
32
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
33
34
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
35
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
36
Merevlemez • Adatrögzítés módja:
• Felépítése: ▫ Egy vagy több lemez közös tengelyen ▫ Motor ▫ Olvasófejek közös tengelyen ▫ Elektronika
Forrás: Wikipedia
▫ Az információt ferromágneses réteg tárolja ▫ Kiolvasás a GMR elv szerint
37
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
38
Diszk = szalag = • Memória: gyors, drága
ADAT ≫ MEMÓRIA DISZK RANDOM IO
• 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
SZEKVENCIÁLIS IO
SSD ?
39
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)
40
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
41
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
42
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