J. Pokorný Zpracování dat v distribuovaných DBS speciální přednáška pro NSWI035 - Principy distribuovaných systémů
J. Pokorný 2 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 3 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 4 Definice problému centralizovaná DB: Hradec Králové Plzeň Praha
J. Pokorný 5 Definice problému Distribuovaná DB: DB je umístěna na více místech Místa jsou propojena Hradec Králové Plzeň
J. Pokorný 6 Definice problému Hradec Králové connect k HK; exec sql select * from ZAM;... connect k Pl; exec sql select * from ZAMĚSTNANEC;... nyní: SŘBD1 Plzeň ZAMĚSTNANEC SŘBD2 ZAM
J. Pokorný 7 Definice problému Hradec Králové Plzeň ZAM ZAMĚSTNANEC connect k distr-HK; exec sql select * from DZAM; lépe: SŘBD1 SŘBD2 DSŘBD
J. Pokorný 8 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 9 Distribuce Distribuovaný výpočetní systém (DVS) –rozložen do uzlů (míst) sítě svázaných komunikačními kanály, –v uzlech je umožněno autonomní uložení a zpracování dat, – prostředky v uzlech mohou být nehomogenní, avšak rovnocenné – uživatel nic neví o existenci ostatních uzlů sítě (transparence ) DSŘBD je speciálním případem DVS
J. Pokorný 10 Výhody DDBS data tam, kde se nejvíce používají rozdělení zátěže snižuje se cena komunikace větší spolehlivost systému lepší škálovatelnost lepší dostupnost, možnost sdílení, integrace zachování autonomního zpracování
J. Pokorný 11 Nevýhody DDBS složitější návrh složitější optimalizace složitější slovník dat složitější globální transakční zpracování složitější uváznutí redundance implikuje složitější zotavení z chyb heterogennost v uzlech implikuje složitější integraci
J. Pokorný 12 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 13 Typy DDBS shora dolů (společně organizovaná data, globální schéma) zdola nahoru (integrace heterogenních dat, globální schéma) federativní integrace (schémata importu a exportu) škálovatelné NoSQL databáze pro webové aplikace a cloud computing Pz.: speciální případy – klient/server, replikační přístup,
J. Pokorný 14 Fragmentace tabulky R R1R1 R2R2 R3R3 R4R4 R 11 R 21 R 31 R 22 R 41 fragmenty alokace místo 1 místo 2
J. Pokorný 15 Obecná architektura schémat Místo 1 Místo n globální ext. sch. globální konceptuální schéma globální schéma distribuce schéma lokální reprezentace lokální konceptuální schéma lokální interní schéma
J. Pokorný 16 Příklad konstrukce schémat 1. UZEL: DÍL(Č_DÍLU, Č_DODAVATELE,CENA) ADRESÁŘ (Č_DODAVATELE, MĚSTO) DODAVATEL(Č_DODAVATELE, JM_DODAVATELE) 2. UZEL: KUS(Č_KUSU, CENA, FIRMA_DODAVATELE) DODAVATEL(Č_DODAVATELE, FIRMA_DODAVATELE, PSČ, MĚSTO) IO: v 1. uzlu díly od dodavatelů , v 2. uzlu od dodavatelů DÍL je ve 3NF.
J. Pokorný 17 Příklad Schémata relačních DB představují LKS v uzlech Strategie integrace (SLR): –do globálního světa „ co nejvíce “ (použité NULL) –do globálního světa „spíše průnik dílčích světů“ 1.uzel LR_DÍL(ČÍS_DÍLU, ČÍS_DODAVATELE, CENA), LR_ADRESÁŘ(ČÍS_DODAVATELE, MĚSTO) 2.uzel LR_DÍL (KUS * DODAVATEL)[Č_KUSU, Č_DODAVATELE, CENA] LR_ADRESÁŘ DODAVATEL[Č_DODAVATELE, MĚSTO]
J. Pokorný 18 Příklad GSD bude obsahovat SLR 1 SLR 2. Rozdělení dat v GSD bude dáno tabulkou: LR_DÍL1 ČÍS_DÍLU < 650 LR_DÍL1,2 650 ČÍS_DÍLU 700 LR_DÍL2 ČÍS_DÍLU > 700 GKS obsahuje relace GK_DÍL a GK_ADRESÁŘ se stejnými atributy jako LR_DÍL a LR_ADRESÁŘ. Může však být def. pomocí RA z GSD. Pz.: RA je vhodná, ale nestačí, např. pro ADRESA a atributů (PSČ, MĚSTO, ULICE, Č_DOMU) je třeba speciální funkci (konkatenace) nebo: barva (číslo vs. název)
J. Pokorný 19 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 20 Distribuované zpracování dotazu problémy (přídavné k centralizovanému případu) –cena přenosů cpu, disk, #přenášených Byte, #přenášených zpráv –paralelismus / překrývání prodlev Jak minimalizovat uběhnutý čas? Nebo jak minimalizovat spotřebu zdrojů?
J. Pokorný 21 Optimalizace distribuovaného dotazu – polospojení Č_D... d1 d2 d5 d11 M1 DODAVATEL Č_DČ_ZBOŽÍ d1z1 d2z1 d3z5 d2z9 DODÁVKA M2 M3 DODAVATEL * DODÁVKA = ?
J. Pokorný 22 Polospojení volba plánů: P1: přesuň DODÁVKA -> M1; *; přesuň výsledek -> M3 P2: přesuň DODÁVKA->M3; přesuň DODAVATEL->M3; *... další?
J. Pokorný 23 Polospojení Idea: před přesuny redukovat tabulky Č_D... d1 d2 d5 d11 M1 DODAVATEL Č_DČ_ZBOŽÍ d1z1 d2z1 d3z5 d2z9 DODÁVKA M3 DODAVATEL * DODÁVKA = ? M2
J. Pokorný 24 Polospojení Idea: před přesuny redukovat tabulky, např DODÁVKA Č_D... d1 d2 d5 d11 M1 DODAVATEL Č_DČ_ZBOŽÍ d1z1 d2z1 d3z5 d2z9 DODÁVKA M3 DODAVATEL * DODÁVKA = ? (d1,d2,d5,d11) M2
J. Pokorný 25 Polospojení Formálně: DODÁVKA’ = DODÁVKA <* DODAVATEL Pz: vyjádření polospojení pomocí RA: R <* S (R * S)[R]
J. Pokorný 26 Polospojení – příklad Velikost hodnoty každého atributu je 4 Byte Q: cena přenosu (#Byte) pro polospojení DODÁVKA’ = DODÁVKA <* DODAVATEL
J. Pokorný 27 Polospojení Idea: před přesuny redukovat tabulky Č_D... d1 d2 d5 d11 M1 DODAVATEL Č_DČ_ZBOŽÍ d1z1 d2z1 d3z5 d2z9 DODÁVKA M3 DODAVATEL * DODÁVKA = ? (d1,d2,d5,d11) 4 Byte M2
J. Pokorný 28 Polospojení – příklad Předpoklad: hodnota každého atributu 4 Byte Q: cena přenosu (#Byte) pro polospojení DODÁVKA’ = DODÁVKA <* DODAVATEL Zde: Q = 4*4 Byte
J. Pokorný 29 Strategie krok1: navrhni plán s polospojením(i) krok2: odhadni jeho cenu (# přenesených Byte)
J. Pokorný 30 Polospojení – příklad P3: –redukuj DODÁVKA na DODÁVKA’ –DODÁVKA’ -> M3 –DODAVATEL -> M3 –proveď * v M3 Cena? Předpoklad: hodnota každého atributu 4 Byte
J. Pokorný 31 Polospojení Č_D... d1 d2 d5 d11 M1 DODAVATEL Č_DČ_ZBOŽÍ d1z1 d2z1 d3z5 d2z9 DODÁVKA M3 (d1,d2,d5,d11) 4 Byte M2
J. Pokorný 32 Polospojení – příklad Q pro P3: –4*4 Byte - redukuj DODÁVKA na DODÁVKA’ –3*8 Byte - DODÁVKA’ -> M3 –4*8 Byte - DODAVATEL -> M3 72 Byte celkem
J. Pokorný 33 Další plány? P4: redukuj DODÁVKA na DODÁVKA’ redukuj DODAVATEL na DODAVATEL’ DODÁVKA’ -> M3 DODAVATEL’ -> M3
J. Pokorný 34 Další plány? P5: redukuj DODAVATEL na DODAVATEL’ DODAVATEL’ -> M2 proveď * v M2 přesuň výsledek -> M3
J. Pokorný 35 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 36 Transakce v DSŘBD Problém: transakce provádí převod 1000 Kč z HK -> 500 do Pl, 500 do ČB 3 dílčí transakce na 3 systémech Jak garantovat atomicitu (všechno nebo nic)? Např. pomocí 2PC. Pozorování: další typy chyb (připojení servery, prodlevy, time-outs....)
J. Pokorný 37 Distribuované zotavení z chyb HK Plzeň ČB HK T1,1: Kč T1,2: +500 Kč T1,3: +500 Kč jak?
J. Pokorný 38 Transakční monitor Transakční monitor (monitor globálního volání, koordinátor transakcí) –analyzuje požadavky T, –rozděluje ji na dílčí transakce (DT), –provádí syntézu výsledků, –Implementace: jeden ve vybraném místě distribuovaný: je v každém uzlu sítě
J. Pokorný 39 Transakční monitor Role: Zajišťuje přidělení privátního prostoru B pro T, kterou řídí: Zajišťuje promítnutí hodnot do DB Zajišťuje řízení kopií objektu v DB Zajišťuje konzistenci DB
J. Pokorný 40 Distribuované zotavení z chyb Základní technika: zámky (podobně jako v 2PL protokolu u centralizovaných SŘBD) Další problémy: –uváznutí, –problémy s 2PC (co když nastane chyba u koordinátora, co když není spojení atd.) Různá řešení (např. 3-phase commit)
J. Pokorný 41 Obsah Definice problému Pojem distribuovaného SŘBD Přístupy k DSŘBD Distribuované zpracování dotazu Transakce – zotavení z chyb Praxe: replikační zpracování
J. Pokorný 42 Replikace dat fragment relace je replikovaný, je-li uložen současně na více místech. úplná replikace relace: případ, kdy je relace umístěna ve všech místech plně redundantní databáze: případ, kdy je databáze umístěna ve všech místech
J. Pokorný 43 Replikace dat výhody –dostupnost: chyba v místě s relací R nevede k nedostupnosti R, –paralelismus: dotazy nad R mohou být zpracovávány paralelně na více místech, –redukce přenosů dat. nevýhody –složitější aktualizace: každá replika R musí být aktualizována, –zvýšená složitost řízení souběžného zpracování: možnost vzniku nekonzistence dat,
J. Pokorný 44 Strategie aktualizací v závislosti - KDY: –synchronní (rychlejší) –asynchronní (pomalejší) v závislosti - KDE: –primární kopie (master) –aktualizace kdekoliv master kdekoliv synch asynch
J. Pokorný 45 Replikační strategie master kdekoliv synch asynch + změny nemusí být koordinovány + žádné nekonzistence - dlouhá odezva - v hodné pro málo změn - lokální kopie mohou být pouze čteny + žádné nekonzistence + elegantní (symetrické) řešení - dlouhá odezva - změny musí být koordinovány + koordinace není nutná + krátký čas odezvy - lokální kopie nejsou up-do-date - nekonzistence + žádná centrální koordinace + nejkratší čas odezvy - změny mohou být ztraceny (urovnávání rozdílů) - nekonzistence
J. Pokorný 46 Distribuovaný transakční monitor Řešení protokolů: primární kopie většinový protokol –konsensus kvórem … slabá konsistence
J. Pokorný 47 Protokol primární kopie zvol repliku prvku dat jako jeho primární kopii. –její místo je primární místo pro daný prvek dat –různé prvky dat mohou mít různá primární místa požaduje-li transakce zamknout prvek P, požaduje to na primárním místě pro P. –odtud se provádějí propagace změn na kopie výhody: –souběžné zpracování jako na nereplikovaných datech – jednoduchá implementace. nevýhody –v případě chyby v primárním místě, je P nedostupný, dokonce i když jiná místa s replikou P jsou dostupná
J. Pokorný 48 Slabě konsistentní replikace negarantuje uspořádatelnost rozvrhu Př.: replikace master-slave – aktualizace jsou prováděny v jednom “master” místě a jsou propagovány do “slave” míst. –Propagace není součástí transakce !: Může nastat bezprostředně po potvrzení transakce, Může být periodická –Data v podřízených místech mohou být pouze čtena, nikoliv aktualizována Netřeba používat zámky na vzdálených místech –Využitelné při distribuci informací (např. centrální úřad a jeho pobočky)
J. Pokorný 49 Mobilní databáze mobilní databáze je rozšíření distribuovaného DBS. mobilní databáze může obsahovat databáze spojené sítí pevných linek a databáze zabudované na mobilní stanice. charakteristiky: –bezdrátová síť má omezenou šířku pásma, –energie použitá v mobilních stanicích má omezenou dobu života, –kvůli energetickým omezením nejsou mobilní stanice vždy dostupné, –mobilní stanice se pohybují různou rychlostí a v různých oblastech.
J. Pokorný 50 Mobilní databáze Maje uvedené charakteristiky, problém souběžného zpracování v mobilních databázích je těžší než v distribuovaných databázích. Odpojení stanice je dlouhé, takže uzamykací protokoly a časová razítka nejsou vhodné. 2PC je nevhodný také, protože dostupnost je redukována. Pro prostředí s mobilními databázemi byly navrženy různé transakční modely založené na uvolnění vlastností ACID a uvolnění uspořádatelnosti.
J. Pokorný 51 Mobilní databáze je mnohem těžší navrhovat mobilní databáze systemy pracující v reálném čase kvůli nepredikovatelnosti prostředí,
J. Pokorný 52 Závěry Klasické distribuované SŘBD nejsou příliš rozšířené, spíše jejich varianty s replikacemi, nověji mobilní databáze, NoSQL databáze základ: polospojení, distribuované zotavení z chyb a souběžné zpracování nové postupy v distribuci: –horizontální distribuce s neomezenou škálovateností, uvolnění vlastnoctí ACID –Ale: i inovace směrem ke škálovatelnosti relačních SŘBD aplikace: –podnikové databáze –cloud databáze, webové aplikace