520 likes | 748 Views
Zpracování dat v distribuovaných DBS speciální přednáška pro NSWI035 - Principy distribuovaných systémů. 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í. Obsah.
E N D
Zpracování datv distribuovaných DBSspeciální přednáška pro NSWI035 - Principy distribuovaných systémů
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í
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í
Definice problému centralizovaná DB: Praha Hradec Králové Plzeň
Definice problému Distribuovaná DB: DB je umístěna na více místech Místa jsou propojena Plzeň Hradec Králové
Definice problému ZAMĚSTNANEC SŘBD2 SŘBD1 Plzeň nyní: connect k HK; exec sql select * from ZAM; ... connect k Pl; exec sql select * from ZAMĚSTNANEC; ... Hradec Králové ZAM
Definice problému lépe: connect k distr-HK; exec sql select * from DZAM; Hradec Králové ZAMĚSTNANEC DSŘBD DSŘBD ZAM SŘBD2 SŘBD1 Plzeň
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í
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
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í
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
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í
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,
místo 1 Fragmentace tabulky R11 R1 R21 místo 2 R2 R22 R4 R31 R3 R R41 alokace fragmenty
globální ext. sch. globální ext. sch. Místo n globální konceptuální schéma globální schéma distribuce schéma lokální reprezentace schéma lokální reprezentace lokální konceptuální schéma lokální konceptuální schéma lokální interní schéma lokální interní schéma Obecná architektura schémat Místo 1
Příklad konstrukce schémat • UZEL: DÍL(Č_DÍLU, Č_DODAVATELE,CENA) ADRESÁŘ (Č_DODAVATELE, MĚSTO) DODAVATEL(Č_DODAVATELE, JM_DODAVATELE) • UZEL: KUS(Č_KUSU, CENA, FIRMA_DODAVATELE) DODAVATEL(Č_DODAVATELE, FIRMA_DODAVATELE, PSČ, MĚSTO) IO: v 1. uzlu díly od dodavatelů 000-700, v 2. uzlu od dodavatelů 650-999. DÍL je ve 3NF.
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ů“ • uzel LR_DÍL(ČÍS_DÍLU, ČÍS_DODAVATELE, CENA), LR_ADRESÁŘ(ČÍS_DODAVATELE, MĚSTO) • uzel LR_DÍL(KUS * DODAVATEL)[Č_KUSU, Č_DODAVATELE, CENA] LR_ADRESÁŘ DODAVATEL[Č_DODAVATELE, MĚSTO]
Příklad • GSD bude obsahovat SLR1 SLR2. • Rozdělení dat v GSD bude dáno tabulkou: LR_DÍL 1 ČÍS_DÍLU < 650 LR_DÍL 1,2 650 ČÍS_DÍLU 700 LR_DÍL 2 ČÍ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)
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í
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ů?
Optimalizace distribuovaného dotazu – polospojení M2 DODAVATEL DODÁVKA M1 M3 DODAVATEL * DODÁVKA = ?
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ší?
Polospojení Idea: před přesuny redukovat tabulky DODAVATEL DODÁVKA M1 M3 M2 DODAVATEL * DODÁVKA = ?
Polospojení Idea: před přesuny redukovat tabulky, např DODÁVKA DODAVATEL DODÁVKA (d1,d2,d5,d11) M1 M3 M2 DODAVATEL * DODÁVKA = ?
Polospojení Formálně: DODÁVKA’ = DODÁVKA <* DODAVATEL Pz: vyjádření polospojení pomocí RA: R <* S (R * S)[R]
Polospojení – příklad Velikost hodnoty každého atributu je 4 Byte Q: cena přenosu (#Byte) pro polospojení DODÁVKA’ = DODÁVKA <* DODAVATEL
Polospojení Idea: před přesuny redukovat tabulky DODAVATEL DODÁVKA (d1,d2,d5,d11) M1 M2 M3 4 Byte DODAVATEL * DODÁVKA = ?
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
Strategie krok1: navrhni plán s polospojením(i) krok2: odhadni jeho cenu (# přenesených Byte)
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
4 Byte 4 Byte 4 Byte 4 Byte Polospojení DODAVATEL DODÁVKA (d1,d2,d5,d11) M1 M3 M2
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
Další plány? P4: • redukuj DODÁVKA na DODÁVKA’ • redukuj DODAVATEL na DODAVATEL’ • DODÁVKA’ -> M3 • DODAVATEL’ -> M3
Další plány? P5: • redukuj DODAVATEL na DODAVATEL’ • DODAVATEL’ -> M2 • proveď * v M2 • přesuň výsledek -> M3
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í
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 ....)
Distribuované zotavení z chyb Plzeň jak? T1,2: +500 Kč HK ČB HK T1,3: +500 Kč T1,1: -1000 Kč
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ě
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
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)
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í
Replikace dat • fragment relacejereplikovaný, je-li uložen současně na více místech. • úplnáreplikacerelace: 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
Replikace dat • výhody • dostupnost: chyba v místě s relací R nevede k nedostupnosti R, • paralelismus: dotazy nadRmohou být zpracovávány paralelně na více místech, • redukce přenosů dat. • nevýhody • složitější aktualizace: každá replika Rmusí býtaktualizována, • zvýšená složitost řízení souběžného zpracování: možnost vzniku nekonzistence dat,
master kdekoliv synch asynch Strategie aktualizací • v závislosti - KDY: • synchronní (rychlejší) • asynchronní (pomalejší) • v závislosti - KDE: • primární kopie (master) • aktualizace kdekoliv
Replikační strategie master kdekoliv • + 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 synch asynch • + 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
Distribuovaný transakční monitor Řešení protokolů: • primárníkopie • většinový protokol • konsensus kvórem • … • slabá konsistence
Protokol primární kopie • zvol repliku prvku dat jako jeho primární kopii. • její místo je primární místopro 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á
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)
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ímnejsou mobilní stanice vždy dostupné, • mobilní stanice se pohybují různou rychlostí a v různých oblastech.
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.