Párhuzamosítás adatbáziskezelő rendszerekben

Hasonló dokumentumok
Marton József BME-TMIT. Adatbázisok VITMAB november 11.

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Marton József november BME TMIT

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Adatbázisműveletek és lekérdezésoptimalizálás

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Dr. Gajdos Sándor november BME TMIT

Lekérdezések feldolgozása és optimalizálása

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Informatikai alapismeretek Földtudományi BSC számára

SQLServer. Particionálás

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

Adatbázis rendszerek 2. előadás. Relációs algebra

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Adatbázisok gyakorlat

Adatbázisok elmélete

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Tipikus időbeli internetezői profilok nagyméretű webes naplóállományok alapján

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

ADATBÁZIS-KEZELÉS. Relációs modell

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

Genetikus algoritmusok

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

Adatbázis-kezelés. alapfogalmak

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Adatbázis rendszerek. dr. Siki Zoltán

Operációs rendszerek. Holtpont

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Relációs adatmodell. Adatbázisok használata

Adatbázismodellek. 1. ábra Hierarchikus modell

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

Fábián Zoltán Hálózatok elmélet

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Relációs algebra 1.rész alapok

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

Adatbázis, adatbázis-kezelő

Operációs rendszerek II. Folyamatok ütemezése

Rendszermodernizációs lehetőségek a HANA-val Poszeidon. Groma István PhD SDA DMS Zrt.

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Adatmodellezés. 1. Fogalmi modell

Adatbáziskezelés. Indexek, normalizálás NZS 1

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Programozás alapjai II. (7. ea) C++

Adatbázis rendszerek 2. előadás. Relációs algebra

Párhuzamos és Grid rendszerek

Indexek, tömörítés és más állatfajták

Virtuális Obszervatórium. Gombos Gergő

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

Dr. habil. Maróti György

ADATBÁZISOK ADATBÁZIS-KEZELŐ RENDSZEREK. Debrenti Attila

Programozás II. előadás

Adatbázis-kezelés Access XP-vel. Tanmenet

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

7. Gyakorlat A relációs adatmodell műveleti része

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Alternatív adatbázisok Gráfadatbázisok

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

























Átírás:

Párhuzamosítás adatbáziskezelő rendszerekben Erős Levente, 2018. 1

Párhuzamos műveletvégzés Miért? Nagy adatmennyiségek Nagyságrendileg nő a keletkező/feldolgozandó/tárolandó adat mennyisége Célhardver drágább, ugyanakkor: Háttértár, memória, CPU olcsó Össze is kellhet kapcsolni őket: Hálózat olcsóbb és gyorsabb, kevésbé szűk keresztmetszet Egy nagy vas helyett sok kicsi, olcsó Számtalan alkalmazás: rákkutatás, meteorológia, biológia, neutroncsillagok keresése Itt is nagy adatmennyiségek! 2

Párhuzamosítás adatbázisokban Többprocesszoros környezet Párhuzamosítás szintjei Adatok partícionáltan, szétszórva tárolódnak I/O Több lekérdezés szétszórva processzorokra Lekérdezésközi (Interquery) Lekérdezés műveletei szétszórva Lekérdezésen belüli (Intraquery) Művelet végrehajtása szétszórva Műveleten belüli (Intraoperation) Cél (a tárgyban): Relációs lekérdezések feldolgozása párhuzamosan, jobb válaszidőt elérve A bemutatott módszerek egy része jól adaptálható más adatmodell esetén is. 3

I/O párhuzamosítás Partícionáltan tárolt adathalmaz Felhasználó számára transzparens teljes relációkat lát Fajtái Vertikális Attribútumok mentén sémadekompozíció Lekérdezéshalmaztól függhet Horizontális Elemek (sorok) mentén Lehet lekérdezéshalmaztól függő Lehet attól független 4

I/O párhuzamosítás Horizontális partícionálás D[1],,D[n] partíciók, köztük szórjuk szét a reláció elemeit Round-robin partícionálás Hash partícionálás Tartomány alapú partícionálás (range partitioning) 5

I/O párhuzamosítás Round-robin partícionálás Elemek sorszámozása i. elem a D[i mod n+1] partícióra kerül Előny elemek egyenletes elosztása Hátrány véletlenszerűség Lekérdezés-végrehajtás hatékonysága bánja 6

I/O párhuzamosítás Tartomány szerinti partícionálás Partícionáló attribútum: A Partícionáló vektor: (v[0],v[1],,v[n-2]), szigorúan monoton növekvő elemek Partícionálás: D[1] partícióra kerülnek azon elemek, amelyekre A<v[0] D[2] partícióra kerülnek azon elemek, amelyekre v[0]<=a<v[1] D[3] partícióra kerülnek azon elemek, amelyekre v[1]<=a<v[2] D[n] partícióra kerülnek azon elemek, amelyekre v[n-2]<=a Előny: Lekérdezés-végrehajtás szempontjából a legjobb Hátrány: Egyenetlen lehet a partíciók elemszáma terheléselosztás Megj: Lehetséges több attribútum alapján is 7

I/O párhuzamosítás Hash partícionálás Hash-függvény: h(a1,,am) [0..n-1] partíció-sorszám Hátrány Csak jó hash-fv esetén egyenletes Előny bizonyos lekérdezések hatékonyabban hajthatók végre 8

I/O párhuzamosítás Partícionálási módszerek összehasonlítása 3 szempont: RR Hash Tartomány Teljes tábla olvasása OK OK OK Egy elem megtalálása (A=354, ahol A a partícionáló attribútum) Intervallumkeresés (355<A<=553, ahol A a partícionáló attr) Egyéb műveleteket is érinthet (pl. join lásd később) OK OK OK 9

Lekérdezésközi párhuzamosítás (Interquery parallelism) Több lekérdezés fut párhuzamosan Cél: Több lekérdezés végrehajtása időegységenként Megoldás: Eddig: Több lekérdezés egy processzoron Most: Lekérdezések szétszórva több processzorra Egy lekérdezés egy processzoron fut csak Egy lekérdezés önmagában nem gyorsabb, mintha izoláltan futna 10

Lekérdezésen belüli párhuzamosítás (Intraquery parallelism) Egy lekérdezés több processzoron és háttértáron futhat Egy lekérdezés végrehajtása lehet gyorsabb, mintha izoláltan futna 1. eset: Összetett relációalgebrai kifejezés végrehajtása Lekérdezési fa független műveletei párhuzamosan, külön processzoron futnak Pipeline-ba szervezhető műveletek párhuzamosan, külön processzoron futnak Műveletek közötti párhuzamosítás (Interoperation parallelism) 11

Lekérdezésen belüli párhuzamosítás (Intraquery parallelism) Egy lekérdezés több processzoron és háttértáron futhat Egy lekérdezés végrehajtása lehet gyorsabb, mintha izoláltan futna 2. eset: Feladat: Reláció rendezése Tábla (horizontálisan) elosztottan tárolódik Megoldás: Minden partíciót rendezünk külön, majd összefésüljük. Műveleten belüli párhuzamosítás (Intraoperation parallelism) Jobban skálázódik a processzorok számának növelésével 12

Műveletek közti párhuzamosítás (interoperation parallelism) Pipeline Egymásra épülő műveletek pipeline-ba szervezhetőek Független párhuzamosítás (independent parallelism) Egymástól független műveletek párhuzamosan végrehajthatók Nem skálázódik jól. 13

Műveleten belüli párhuzamosítás (Intraoperation parallelism) Rendezés Join Szelekció Ismétlődések szűrése Projekció 14

Rendezés Párhuzamos rendezés (Parallel sort) Tartomány szerinti D[1],,D[n] partíciók eleve P[1],,P[n] processzorok Menete Minden processzor rendezi a partícióját Összefűzés (nem összefésülés) triviális Feltétel! Példa1 Tartomány szerinti partícionálás+rendezés (Range partitioning sort) Újrapartícionálunk, más processzorokat (is) bevonhatunk, mint ahol az adat van Menete Rekordok elosztása, új tartományok szerint(, új processzorokra), ideiglenesen Cél: hasonló méretű partíciók Minden partíció rendezése függetlenül Összefűzés Példa2 15

Rendezés Párhuzamos, külső összefésüléses rendezés (Parallel external sort-merge) Mindegy, milyen módszerrel partícionált eleve az adathalmaz Adott: P[1],,P[n] processzorok; D[1],,D[n] partíciók Menete: Minden processzor rendezi a saját partícióját Összefésülés párhuzamosítható P[i] processzor rendezett részeredményét tartomány szerint partícionáljuk r[i1],,r[im] Minden P[i] processzor az r[ij] partícióját átküldi P[j] processzor Minden P[j] processzor összefésüli a többi processzortól bejövő (már rendezett) listákat Összefűzés triviális Példa3 16

Join Partícionált join (Partitioned join) Equijoin (ahol a join-feltétel egyenlőség) esetén működik Pl. r r.a=s.b s Adott: r és s relációk Menete: Relációk tartomány alapú (újra)partícionálása join attribútumok szerint r[1],,r[n]; s[1],,s[n] r[i] és s[i] P[i] processzor: Lokálisan illesztjük a partíciókat 17

Join Partícionált join (Partitioned join) Equijoin (ahol a join-feltétel egyenlőség) esetén működik Pl. r r.a=s.b s Adott: r és s relációk Menete: Milyen módon érdemes partícionálni? Tartomány Hash!! Partícionálás követelményei Ugyanazon vektor Ugyanazon hashfüggvény 18

Join Partícionált join (Partitioned join) Equijoin (ahol a join-feltétel egyenlőség) esetén működik Pl. r r.a=s.b s Adott: r és s relációk Menete: Processzoron belül bármilyen join-algoritmussal r[i] és s[i] illesztése Merge (hash esetén szükséges csak) Hash vagy tartomány szerint? Hash: egyenletesebb a partíciók mérete, ha jó Rossz, ha a join attribútumon belül nem egyenletes az értékek eloszlása Tartomány szerint: Egyenetlenebb, de nem kell merge, csak összefűzés. 19

Join Partícionált join (Partitioned join) Equijoin (ahol a join-feltétel egyenlőség) esetén működik Pl. r r.a=s.b s Adott: r és s relációk Könnyítés: Ha egyik reláció már partícionált (és elég annyi partíción párhuzamosítani) Példa4 CSAK EQUIJOIN!!! és ha nem? 20

Join Felosztás, replikáció, join (fragment-and-replicate join) Nem equijoin esetére is Pl. r r.a<s.b s Két módszer Asszimmetrikus Egyik reláció felosztása és replikációja: r[1],,r[n] P[1],,P[n] Másik reláció replikációja: s P[1],,P[n] Elosztott join; merge Példa5 Szimmetrikus Mindkét reláció felosztása és replikációja: r[0] s[0],r[0] s[1],,r[n] s[n] P[0,0],P[0,1],,P[n,n] Elosztott join; merge Példa6 Minden r-elem összehasonlítható minden s-beli elemmel Mikor melyik? Ha egyik reláció kicsi Érdemesebb szétszórni aszimmetrikusan 21

Join Join az eredeti partíciókon Tartomány szerinti partícionálás kell Join attribútum = partíciós attribútum mindkét relációban Megoldás: Minden partíció illesztése minden partícióval lokalizált lekérdezés Join-ok süllyesztése Redukció értelmetlen partíciópárok kiejtése redukált lekérdezés Példa7 22

Join Partíciók illesztése Adott: Előző módszerek bármelyikével (újra)partícionált relációk r[i] P[g] csomópontban r partíció 1. csomópontban s[j] P[h] csomópontban s partíció 2. csomópontban Hogyan illesszük őket? Két módszer: 1. r átvitele 2. csomópontba, vagy s átvitele 1. csomópontba, majd join 2. igény szerinti átvitel csak a szükséges adatok átvitele Példa6 Mikor melyik módszer? Kis partíciók 1. módszer Nagy partíciók 2. módszer 23

Egyéb műveletek Szelekció 1. eset: Szelekciós attribútum =/= felosztási attribútum, vagy nem tartomány szerinti felosztás Minden processzoron párhuzamosan történik a szelekció 2. eset: Szelekciós attribútum = felosztási attribútum és tartomány szerinti felosztás Lekérdezés átírása Redukció fölösleges partíciók eltávolítása a lekérdezésből Példa8 24

Egyéb műveletek Ismétlődések kiszűrése 1. módszer: Tetszőleges rendezési algoritmus használatával rendezés partíción belül Ismétlődések kiszűrése, amint előkerülnek (csomóponton belül vagy összefésüléskor) Hash, tartomány szerinti partícionálásnál csomóponton belül kerülnek elő 2. módszer Hash vagy tartomány szerinti partícionálás Rendezés és szűrés lokálisan MINDEN ismétlődés processzoron belül kerül elő. Nagyobb egyenetlenség jelenhet meg a keletkező partíciók elemszámában. 25

Egyéb műveletek Projekció Triviális Bármilyen módszerrel való felosztás után, lokálisan végezhető Ha ismétlődésszűrés is kell, ld. az előző diát. 26