2 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 4 Data tsunami 1959 4GB of punched cards 5 6 A tudományos módszer fejlődése A tudományos módszer fejlődése Kísérlet Kísérlet Elmélet Szimuláció Elmélet 1
7 8 A tudományos módszer fejlődése Modern kísérletek Adatbányászat Kísérlet Szimuláció Elmélet 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 9 10 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) 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 Hajtóerő: Moore-törvény Exponenciális növekedés Elektronika Detektorok Adatok mérete 2
13 14 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) Használható algoritmusok 1TB-os diszk beolvasása Adatok mérete e t Szekvenciálisan: Random eléréssel: 4,5 óra 15-150 nap Számítási kapacitás e t Feltétel az algoritmusra: o(n) Legfeljebb o(n log N) A 1 18 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 3
19 20 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. 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 4
26 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 27 28 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) Kiegyensúlyozott rendszerek esetére 29 30 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 5
31 32 Gyorsulási törvény gyorsulás = 1 S+ P N Amdahl-szám A= 1bitIO/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 33 34 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 35 36 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 768 GB memória kezelése 1600-220 MHz mem busz 2-3 szintű memória (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 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 6
37 38 Cache változatok Cache algoritmusok 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 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 L1 L1 L1 L1 L2 L2 Snoop filter L3 RAM 39 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: 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 41 42 Párhuzamos végrehajtás NUMA 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 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--t koherensen kell tartani Kép: vmfootprints.org 7
43 44 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 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 45 46 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 47 48 Adattároló egységek Merevlemez 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 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 8
49 50 Merevlemezek paraméterei Diszk = szalag = 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 Speciális firmware 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 ADAT MEMÓRIA DISZK RANDOM IO SZEKVENCIÁLIS IO SSD? 51 52 Merevlemezek meghibásodása Merevlemezek meghibásodása 2. 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á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 53 54 SSD-k paraméterei Interfészek, protokollok 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 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 9