2 Tematika TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSE Dobos László, Csabai István ELTE Komplex Rendszerek Fizikája Tanszék 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 3 4 A tudományos módszer fejlıdése Kísérlet Elmélet 5 6 A tudományos módszer fejlıdése A tudományos módszer fejlıdése Kísérlet Kísérlet Adatbányászat Elmélet Szimuláció Elmélet Szimuláció 1
7 8 Modern kísérletek Asztrofizika Automatizált adatgyűjtő rendszerek Távcsövek, kamerák (CCD) Részecskegyorsítók Génszekvencerek Műholdak Szenzor hálózatok Internetes mérőprogramok Nagy adatmennyiség Ma tipikus: 10 TB Nemsokára: 100 TB 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 É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 10 Részecskefizika 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 Mechanika Turbulens áramlások Biológia és orvostudomány 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 Processzorok teljesítménye Forrás: Wikipedia 11 12 Diszkek tárolókapacitása Adatbázisok exponenciális növekedése GMR technológia PMR technológia Forrás: Wikipedia GMR: giant magnetoresistance PMR: perpendicular magnetic recording 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 LSST - 2020 Camera pixels (Mpix) Detected celestial objects (M) DB Size (GB) 2
13 14 Tudományos adatbázisok Tudományos adatbázisok az ELTÉ-n 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 Asztrofizika: Sloan Digital Sky Survey SkyServer (7 TB) SDSS képek (8TB) SDSS spektroszkópiai adatok Internet tomográfia (Vattay G., Csabai I.) Biológia, génadatok (Csabai István) Meteorológiai idősor adatok (Jánosi Imre) 15 16 Kiegyensúlyozott rendszerek esetére 17 18 Párhuzamosítás szükségessége o(n)-nél lassabb algoritmusok idővel használhatatlanná válnak Párhuzamosítás 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 3
19 20 Gyorsulási törvény gyorsulás = 1 S+ P N Amdahl-szám A= 1bit IO/sec 1utasítás/sec 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. 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 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 24 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 ( 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 Gyorsítótár () 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 [] A gyakran használt memóriaterületek bekerülnek a gyorsítótárba 4
25 26 Cache változatok Cache algoritmusok 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 Olvasáskor egy egész memória blokk kerül be a -be Mikor kell a -ben levő dolgokat üríteni? Főbb problémák: Több processzor esetén, ha nem közös a, íráskor szinkronizálni kell (snoop filter) A memória szétszórt részeiről olvasunk Háttértár -nél, ha áramkimaradás van Írási algoritmus (Write policy) Write back: az írás csak a -be történik, a 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 -ből Write through: az írás a -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 Mai modern CPU vázlata CPU 1 CPU 2 Core 1 Core 2 Core 1 Core 2 L2 L2 Snoop filter L3 RAM 27 Többprocesszoros architektúrák Multi-core: egy chip-en több processzor mag Közös L2 (L3) Multi-processor: Külön tokban (egyenként lehet multi-core) Lehet közös L3 (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 28 29 30 Párhuzamos végrehajtás Grafikus processzorok 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 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 5
31 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 Adattároló egységek 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 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 35 36 Merevlemez Merevlemezek paraméterei 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 Forrás: Wikipedia Fizikai méret: Szerverekben 2.5, 3.5 Lemezek száma tipikusan 1-2-3 Kapacitás: 500 GB 2000 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 MB Raid Edition: speciálisan szervergépekbe szánt változat Jobb mechanikai kialakítás Nagyobb Speciális firmware 6
37 38 Diszk = szalag = Merevlemezek meghibásodása Memória: gyors, drága Diszk: olcsó, de lassú 100-150 MB/s ADAT MEMÓRIA DISZK RANDOM IO SZEKVENCIÁLIS IO 1 TB-os diszk beolvasása: szekvenciális olvasáskor: 4,5 óra random olvasáskor: 15-150 nap SSD? 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) Mechanikai meghibá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 39 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 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 7