dobos lászló elte komplex rendszerek fizikája tanszékdobos/teaching/scidb2013/01.pdf · •...
TRANSCRIPT
TUDOMÁNYOS ADATBÁZISOK TERVEZÉSE ÉS ÉPÍTÉSETERVEZÉ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ű
hardverek
12. Lekérdezés-optimalizálás13. Adatbetöltés14. Metaadatok15. Többdimenziós adatok
kezelése
2
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
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
3
A tudományos módszer fejlıdése
4
Kísérlet Elmélet
A tudományos módszer fejlıdése
Kísérlet
5
ElméletSzimuláció
A tudományos módszer fejlıdése
Kísérlet
6
Elmélet
Szimuláció
Adatbányászat
Modern kísérletek• Automatizált adatgyűjtő
rendszerek▫ Távcsövek, kamerák (CCD)▫ Részecskegyorsítók▫ Génszekvenálók
• Adatok automatikus filterezése méréskor
• Adatokra on-line van szükség▫ diszken tárolva▫ bármikor elérhető
7
▫ 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
▫ 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
Asztrofizika• Égtérképek:
▫ az égbolt szisztematikus térképe▫ asztrostatisztikai célokra▫ Tejút szerkezete▫ galaxisok evolúciója▫ kozmológia
• Múlt:▫ Palomar Digitized Sky Survey▫ digitalizált üveglemezek
• Tegnap:▫ SDSS o(10 TB)
Sloan Digital Sky Survey
8
▫ 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
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 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
• 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
9
adatgyűjtéskor• Off-line analízis, adatbányászat• Objektum-orientált adatbázisok• Skimming
• 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
Processzorok teljesítménye
For
rás:
W
ikip
edia
10
For
rás:
W
ikip
edia
Diszkek tárolókapacitása
mag
net
ores
ista
nce
per
pen
dic
ula
rm
agn
etic
11
For
rás:
Wik
iped
iaG
MR
: gia
nt
mag
net
ores
ista
nce
PM
R: p
erp
end
icu
lar
reco
rdin
g
PMR technológia
GMR technológia
Adatbázisok exponenciális növekedése
1,E+04
1,E+05
1,E+06
1,E+07
12
1,E+00
1,E+01
1,E+02
1,E+03
1,E+04
SDSS - 2000 PanSTARRS - 2010 LSST - 2020
Camera pixels (Mpix)
Detected celestial objects (M)
DB Size (GB)
Tudományos adatbázisok• Hardver teljesítményének
exponenciális növekedése �
adatgyűjtés exponenciális növekedése
• Minden méretskálán▫ MB – PB
• Sokdimenziós• A világon szétszórva
▫ Hálózat lassú
13
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)
▫ 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
Tudományos adatbázisok az ELTÉ-n• Asztrofizika:
▫ Sloan Digital Sky Survey – SkyServer (7 TB)▫ SDSS képek (8TB)▫ SDSS spektroszkópiai adatok
14
▫ 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
Párhuzamosítás szükségessége
17
• o(n)-nél lassabb algoritmusok idővel használhatatlanná válnak
• Párhuzamosítás
Párhuzamosítható probléma
1 = P + S
18
• 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
Gyorsulási törvény
NPS
gyorsulás+
=1
19
• 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.
NS +
Amdahl-szám
sec/utasítás1
sec/IObit1=A
20
• 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
21
Nagyteljesítményő hardverek• x64 alapú architektúrák• Processzor(ok) – rendszerbusz
– memória▫ Gyorsítótár▫ Párhuzamosítás
• Hálózat▫ Lokális (ethernet, InfiniBand)▫ Dedikált kapcsolat▫ Internet
• Számítási klaszterek, felhők,
22
▫ 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
• Számítási klaszterek, felhők, adatbázis klaszterek
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
23
▫ 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
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
24
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
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
25
▫ 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
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:
• Í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
26
• 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
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
CPU 1
Mai modern CPU cache vázlataCore 1
cacheL1
cache L2 cache
Core 2cache
L1 cache
L3cache
RAM
27
CPU 2
Core 1cache
L1 cache L2
cacheCore 2
cacheL1
cache
cacheRAM
Snoopfilter
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)
28
▫ 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
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:
29
▫ 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
NUMA• Non-Uniform memory access
▫ A memóriabankok külön processzorfoglalatokhoz tartoznak
30
vmfo
otp
rin
ts.o
rg
tartoznak▫ A keresztben olvasás lassabb
� Intel QPI (Quick PathInterconnect)
� AMD HyperTransport
▫ A processzor-cache-t koherensen kell tartani
Kép
: vm
foot
pri
nts
.org
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
31
• 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:
32
• 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
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
34
• 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
Adattároló egységek• Merevlemez
▫ Tömeggyártás, olcsó▫ Gyors szekvenciális adatelérés▫ Random adatelérés,
de az lassú
• Memória:▫ Drága, de már TB elérhető▫ Nagyon gyors, random
• Szalagos egységek
35
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
• 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
Merevlemez• Adatrögzítés módja:
▫ Az információt ferromágneses réteg tárolja
▫ Kiolvasás a GMR elv szerint
36
▫ 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
For
rás:
W
ikip
edia
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
• 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,
37
▫ A mai technológia 30 TB-igkiterjeszthető
• 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
▫ 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
Diszk = szalag = �
• Memória: gyors, drága
• Diszk: olcsó, de lassú
ADAT ≫≫≫≫ MEMÓRIA
DISZK RANDOM IO ����
38
• 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 ?
≫≫≫≫
SZEKVENCIÁLIS IO
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ő
• Lemez fizikai meghibásodása▫ Általában ponthibák▫ A vezérlő logika legtöbbször
automatikusan képes javítani,
39
még talán olvashatóvá tehető (egyszerűbb)
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)
Merevlemezek meghibásodása 2.• Mechanikai meghibásodás
▫ Motor, csapágy, fejmozgató mechanika
▫ Az adatok mechanikai javítás
• S.M.A.R.T.▫ Self-Monitoring, Analysis,
and Reporting Technology▫ Információt nyújt a meghajtó
40
▫ Az adatok mechanikai javítás után még olvashatóvá tehetők (bonyolult)
▫ 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
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
41
• 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
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
• 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
42
▫ 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
▫ 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