430 likes | 610 Views
Lektion 13. Distribuerede databaser Begreber Design: fragmentering, allokering Arkitekturer Query Processing Transaktionshåndtering. Begreber.
E N D
Lektion 13 Distribuerede databaser Begreber Design: fragmentering, allokering Arkitekturer Query Processing Transaktionshåndtering NOEA/IT - Databaser/DDB
Begreber • En distribueret databaser er en samling af logisk forbundne databaser, som er fysisk fordelt ud over et netværk (og hver site deltager i mindst én global transaktion). • Et distribueret DBMS er et software-system, som håndterer en distribueret database, så distributionen er transparent for brugeren NOEA/IT - Databaser/DDB
Parallel versus Distribueret teknologi • Shared memory (tæt koblet arkitektur): • Flere processorer deler både internt og ekstern lager • Shared disk (løst koblet): • Flere processorer har egen RAM, men deler disk • Shared nothing: • Separate processorer med egen disk og RAM forbundet via en bus eller lign. Er det ikke distribueret? NOEA/IT - Databaser/DDB
Parallel DBMS a) shared memory b) shared disk c) shared nothing NOEA/IT - Databaser/DDB
Centraliseret DBMS med netværksadgang(klassisk Client/Server) NOEA/IT - Databaser/DDB
Distribueret DBMS NOEA/IT - Databaser/DDB
Fordele ved distribueret DBMS • Forskellige niveauer af transparens • Højere grad af pålidelighed (reliability) og tilgængelighed (availability) • Bedre performance • Bedre scalerbarhed NOEA/IT - Databaser/DDB
Transparens • Distributions- eller netværkstransparens: • Location transparens • Naming transparens • Replikeringstransparens • Fragmenteringstransparens: • Horisontal fragmentering • Veritikal fragmentering NOEA/IT - Databaser/DDB
Company-databasen NOEA/IT - Databaser/DDB
Fragmentering og replikering Replikering og horisontal fragmentering NOEA/IT - Databaser/DDB
Krav til distribueret DBMS • Udvidet katalog, så fragmenterings-, allokerings- og replikeringsinformation håndteres • Distribueret query-afvikling • Distribueret transaktionshåndtering • Konsistens ved replikering • Distribueret recovery • Security • Distribueret katalog NOEA/IT - Databaser/DDB
Disadvantages of DDBMSs (fra Connolly& Begg: Database Systems 3rd Ed. Addison-Wesley) • Complexity • Cost • Security • Integrity control more difficult • Lack of standards • Lack of experience • Database design more complex NOEA/IT - Databaser/DDB
Distribueret databasedesign • Først designes det globale skema som vanligt • Herefter designes fragmenterings- og allokeringsskemaerene • Fragmentering: • Relationer (tabeller) brydes op i subrelationer: • Horisontalt • Vertikalt • Mixed (hybrid) fragmentering NOEA/IT - Databaser/DDB
Horisontal fragmentering • En tabel opdeles ved rækkeudvælges: • Ex. Employee efter Dno. • Afledt horisontal fragmentering: • Ex. Project fragmenterings også efter Dno • Komplet fragmentering: • Foreningsmængden af alle fragmenter er lig den oprindelige tabel • Disjunkt fragmentering: • Ingen fragmenter har fælles tupler (fællesmængden er parvis tom – ingen redundans) NOEA/IT - Databaser/DDB
Vertikal fragmentering • Tabellen opdeles ved projektion (søjleudvælgelse): • Ex: Employee: personoplysninger i eet fragment og arbejdsrelaterede i et andet • Af hensyn til rekonstruktion ved join er det vigtigt, at primærnøglen (evt. en kandidatnøgle) findes i begge fragmenter • En komplet vertikal fragmentering opfylder: • Alle attributter findes i foreningsmængden af fragmenterne • Eneste fællesattribut mellem fragmenterne er primærnøglen • Den oprindelige relation kan genskabes ved OUTER JOIN NOEA/IT - Databaser/DDB
Hybrid fragmentering • En kombination af horisontal og vertikal fragmentering. • Opnås gennem en kombination af række- og søjleudvælgelser • Rekonstruktion via UNION og OUTER JOIN skal være muligt NOEA/IT - Databaser/DDB
Replikering og allokering • Ekstremerne: • Fuld replikering: alt ligger på alle sites: • Maksimal tilgængelighed • God performance på forespørgsler – elendig på opdateringer + kompleksitet ved transaktionshåndtering • Ingen replikering/ikke-redundant (disjunkt allokering): • Lige omvendt • Alle grader af partiel replikering her i mellem er mulige NOEA/IT - Databaser/DDB
Eksempel – Company-databasen • Tre sites: • Hovedkontor (site 1): • Tilgår Employee og Project for hele virksomheden, styrer Dependent • Afdeling 5 (site 2): • Tilgår hyppigt medarbejdere i afdelingen og projekter, som kontrolleres af afdelingen • Afdeling 4 (site 3): • Som afdeling 5, men for sine ansatte og projekter NOEA/IT - Databaser/DDB
Allokering • Site 1: • hele databasen • Site 2 og 3: • Horisontal fragmentering af Department på Dno • Afledt fragmentering af Employee, Project og ProjectLocations • Fragmenterne EMPD4 og EMPD5 fragmenteres vertikalt, så kun attributterne {Name, SSN, Salery, SuperSSN, Dno}medtages NOEA/IT - Databaser/DDB
Works_On{Pno, ESSN, hours} • Kan fragmenteres efter: • Den afdeling, som den ansatte tilhører • Den afdeling, der kontrollerer projektet NOEA/IT - Databaser/DDB
Efter den afdeling, som den ansatte tilhører NOEA/IT - Databaser/DDB
Der er intet enkelt svar på hvilken strategi, der skal vælges. • I dette tilfælde vælger vi at fragmentere og allokere, så alle JOIN ind over Works_On kan udføres lokalt, dette føre til replikering af dele af tabellen NOEA/IT - Databaser/DDB
G1, G2, G3, G4 og G7 NOEA/IT - Databaser/DDB
G2, G4, G5, G6 og G8 NOEA/IT - Databaser/DDB
Arkitekturer • Homogene: • Samme DBMS på hver site og hver klient • Heterogene • Lokal autonomi • Ingen lokal autonomi NOEA/IT - Databaser/DDB
Ekstremerne • Fuldstændigt transparent DDBMS(Date’s 12 regler) • Federalt DBMS eller Multidatabasesystem: • Hver site er en fuldstændig autonom DBMS • Der er en eller anden form globalt skema, som tillader globale transaktioner NOEA/IT - Databaser/DDB
Særlige problemer i FDBS • Forskellige datamodeller: • Legacy db, RDB, ODB, flade filer, mm. • Forskellige constraint-mekanismer • Forskellige forespørgselssprog • Semantisk forskelligheder: • Samme objekt (konto) kan have både ens og forskellige attributter i to DB’er • Mmm. • Behov en kanonisk form for datamodeller NOEA/IT - Databaser/DDB
Date’s 12 Rules for a DDBMS 0. Fundamental Principle To the user, a distributed system should look exactly like a nondistributed system. 1. Local Autonomy 2. No Reliance on a Central Site 3. Continuous Operation 4. Location Independence 5. Fragmentation Independence 6. Replication Independence NOEA/IT - Databaser/DDB
Date’s 12 Rules for a DDBMS 7. Distributed Query Processing 8. Distributed Transaction Processing 9. Hardware Independence 10. Operating System Independence 11. Network Independence 12. Database Independence • Last four rules are ideals. NOEA/IT - Databaser/DDB
Query processing i DDB • Mål: reduktion af netværkstrafik • Eksempel: • Employee på site 1 • Department på site 2 (ingen fragmentering) • Employee fylder 10000*100Bytes= 1 MB • Department fylder 100*35 Bytes = 3.5 KB NOEA/IT - Databaser/DDB
Eksempel fortsat • Query: πFNAME,LNAME,DNAME(Employee *DNO=DNUMBER Department) • Q fyres af fra site 3 • 3 strategier (antag at en resultattuple er 40 Bytes): • Overfør Employee og Department til site 3 og udfør JOIN-operationen der. Overførsel af 1,003.5 KB • Overfør Employee til site 2. Udfør JOIN-operation på site 2 og overfør resultatet til site 3. Overførsel af 40*10,000+1,000,000 = 1,400 KB • Overfør Department til site 1. Udfør JOIN der og overfør resultatet til site 3. Overførsel af 3.5 KB + 400 KB= 403.5 KB • Strategi 3 er at foretrække NOEA/IT - Databaser/DDB
Eksempel fortsat • Betragt nu query: πFNAME,LNAME,DNAME(Employee *SSN=MGRSSN Department) • Giver 100 tuples á 40 Bytes • Strategier: • JOIN på site 3: 1 MB + 3.5 KB = 1003.5 KB • JOIN på site 2: 1 MB + 40*100 Bytes = 1004 KB • JOIN på site 1: 3.5 KB + 4 KB = 7.5 KB • Igen vinder site 1 – denne gang stort • Antag, at initierende site er site 2: • Overfør Employee til site 2 (1MB) • Over Department til site 1 og returner resultatet (7.5KB) NOEA/IT - Databaser/DDB
Semi-join • Ofte er semi-join en god strategi (R*S): • Kun JOIN-attributten fra R overføres • JOIN udføres på S’s site og relevante attributter projiceres ud og returneres til R’s site • Reultatet JOIN’es med R • Anvendes semi-join i vores to eksempler: NOEA/IT - Databaser/DDB
πFNAME,LNAME,DNAME(Employee *DNO=DNUMBER Department) • Project DNUMBER fra Department på site 2 og overfør til site 1. Overførsel 100*4 Bytes= 0.4 KB • Join med Employee på site 1. Project og overfør resultatet til site 3: Overførsel 10,000*34Bytes= 340 KB πFNAME,LNAME,MGRSSN(Employee *SSN=MGRSSN Department) • Project MGRSSN fra Department på site 2 og overfør til site 1. Overførsel 100*9 Bytes= 0.9 KB • Join med Employee på site 1. Project og overfør resultatet til site 3: Overførsel 100*39Bytes= 3.9 KB NOEA/IT - Databaser/DDB
Transaktionshåndtering i DDB • Skal sikre konsistens mellem fragmenter i tilfælde af replikering • Fortsat drift ved udfald af enkelte sites. Ved recovery skal siten opdateres • Kommunikationsfejl • Distribueret commit (2PC) • Evt. håndtering af distribueret dead-lock • Distribueret recovery NOEA/IT - Databaser/DDB
2 Phase Commit Protokol (2PC) • For transaktionen udnævnes en koordinator • Fase 1: Preparing for commit: • Koordinatoren sender ”PREPARE” til alle sites, som skriver i loggen. Herefter svares ”OK” eller ”NOT OK” (intet svar inden time out == ”NOT OK”) • Fase 2: Commit: • Hvis alle har svaret ”OK”, så sender koordinatoren ”COMMIT” • Ellers sendes ”ROLLBACK” • Idet al information skrives i fase 1, så er rollback (fase 1) eller recovery (fase 2) mulig. NOEA/IT - Databaser/DDB
Distribueret låsning • Distinguished (udvalgt) kopi (DC): • En site udvælges til at have en særlig kopi af et dataelement og bliver ansvarlig for låsning på dette element • Alle forespørgsler om låse på dette element sendes til denne site • Forskellige metoder afhængig af hvordan DC udvælges NOEA/IT - Databaser/DDB
Primary site technique- evt. med backup site • En central site er DC for alle dataitems • Simpel udvidelse af centraliseret transaktionshåndtering (2PL er lige ud ad landevejen) • Denne DC bliver flaskehals og ”single point of failure” • Bemærk kun låsene er centraliseret. Når først en transaktion har en lås, så kan en vilkårlig kopi af dataelementet tilgås • For at imødegå ”Single point of failure” udpeges en backup-site: • Al låseinformation replikeres på backup-siten • Hvis DC’en fejler, så overtager backup-siten og en ny backup-site vælges • Forværrer flaskehals-problemet NOEA/IT - Databaser/DDB
Primary Copy technique – evt. med backup • Forskellige dataelementer får forskellige sites som værter for deres PC (Primary copy). • Spreder belastning ved låsehåndtering • Intet ”single point of failure” • Men alle kopier af et dataelement er utilgængeligt, hvis dets primary copy er nede NOEA/IT - Databaser/DDB
Transaktionshåndtering baseret på ”voting” • Alle sites, som har en kopi af et dataelement, har sin egen låsemekanisme • Når en transaktion ønsker en lås, så sendes request til alle sites, som har en kopi • Hvis et flertal af disse sites giver svaret ”ok”. Så sendes en meddelelse til alle om, at man har låsen • Ægte distribueret, men koster netværkstrafik, og er ekstremt kompliceret, når der skal tages højde for fejl undervejs. NOEA/IT - Databaser/DDB
Præsentationslag (browser) WEB-klienter Applikationslag WEB-server firewall Dedikeret klient Applikationsserver Traditionel WEB-adgang til DB • Præsentationslag: • WEB-serveren genererer HTML, som præsenteres i browseren hos klinten • Applikationslag • forretningslogik) er indlejeret i web-serveren i form af scripts, som bla. kalder databaselaget • Databaselag (centraliseret DBMS) • Interne applikationer på applikationsserveren: • forretningslogik er dubleret (WEB-server og appl.-server) Databaselag – (fx SQL-baserede DBMS på en databaseserver) NOEA/IT - Databaser/DDB
WEB Services tilgås Præsentationslag Dedikeret klient Dedikeret klient WEB-klienter Dedikeret klient WEB-server Applikationsserver firewall Databaselag – (fx SQL-baserede DBMS’er på flere databaseservere) I dag: n-tier Client/Server arkitektur: • Præsentationslag: • dedikerede klienter, inden for eller uden for fire-wallen • web-browser via en web-server. Bemærk, at web-serveren er klient i forhold til applikationsserveren • Dedikerede klienter, som til via web-services på web-serveren (web-serveren fungerer som proxy) • Applikationslag (forretningslogik)bør ikke ligge på web-serveren • Databaselag (centraliseret DBMS) • Der kan være flere database-servere i databaselaget, i så fald får applikationslaget rollen som koordinator ved globale transaktioner NOEA/IT - Databaser/DDB
Opgave • Web-adgang og Distribution af databasen for Nørhalne Bibliotek. ORDB-WEB-DDB.doc NOEA/IT - Databaser/DDB