Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Verteilte Anfragebearbeitung 1.12.2005 Felix Naumann.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Verteilte Anfragebearbeitung 1.12.2005 Felix Naumann."—  Präsentation transkript:

1 Informationsintegration Verteilte Anfragebearbeitung Felix Naumann

2 Felix Naumann, VL Informationsintegration, WS 05/062 Problemstellung Architekturen Modellierung Optimierung 10,000 feet 1. Einführung in die Informationsintegration 2. Szenarien der Informationsintegration 3. Verteilung und Autonomie 4. Heterogenität 5. Materialisierte und virtuelle Integration 6. Klassifikation integrierter Informationssysteme und 5-Schichten Architektur 7. Mediator/Wrapper-Architektur 8. Global-as-View und Lokal-as-View Modellierung 9. Global-as-View Anfragebearbeitung 10. SchemaSQL 11. Verteilte Anfragebearbeitung 12. Dynamische Programmierung in verteilten Datenbanken 13. Top-N Anfragen

3 Felix Naumann, VL Informationsintegration, WS 05/063 Konflikte Anfragen Systeme Mapping 10,000 feet 1. Informationsqualität 2. Duplikaterkennung 3. ETL & Data Lineage 4. Datenfusion - Union & Co. 5. Containment & Local-as-View Anfragebearbeitung 6. Bucket Algorithmus 7. Peer-Data-Management Systeme (PDMS) 8. Schema Mapping 9. Schema Matching 10. Hidden Web 11. Semantic Web 12. Forschungsprojekte - TSIMMIS, Garlic, Revere, etc 13. Data Streams

4 Felix Naumann, VL Informationsintegration, WS 05/064 Überblick Anfragebearbeitung im Überblick Techniken der Verteilten Anfragebearbeitung Row Blocking Multicasts Multithreading Partitionierung Joinbearbeitung Semi-Join Reduzierung Semi-Join mit Filter

5 Felix Naumann, VL Informationsintegration, WS 05/065 Parallelität vs. Verteilung Parallele DBMS Shared memory Shared disk Shared nothing Fokus auf Transaktionen und Anfragebearbeitung Verteilte DBMS Shared nothing Fokus auf Heterogenität und Anfragebearbeitung Unser Fokus!

6 Felix Naumann, VL Informationsintegration, WS 05/066 Architektur zur zentralen Anfragebearbeitung Parser Anfrage- umschreibung Anfrage- optimierung Code Generierung Anfragebearbeitung (Engine) Katalog/ Metadaten Anfrage Daten Anfrage- ergebnis Syntax und etwas Semantik Erzeugt Anfragegraph Logische Optimierung (unabhängig von System und Konfiguration): Entschachtelung, redundante Prädikate,... Optimierung für System und Konfiguration: Indices, Joinreihenfolge, Selektion der Datenquelle Wandelt Plan (Baum) in ausführbaren Plan (Code) um. Schema, Statistik, Partitionierung, Lage der Daten,...

7 Felix Naumann, VL Informationsintegration, WS 05/067 Anfragebearbeitung in verteilten Systemen Anfragen sind deklarativ. Anfragen müssen in ausführbare (prozedurale) Form transformiert werden. Ziele QEP – prozeduraler Query Execution Plan Effizienz Schnell Wenig Ressourcenverbrauch (CPU, I/O, RAM, Bandbreite)

8 Felix Naumann, VL Informationsintegration, WS 05/068 Schritt 1: Anfragetransformation 1. Parsen der Anfrage (Syntax) 2. Namensauflösung 3. Überprüfen der Elemente (Semantik) 4. Normalisierung – Konjunktive Normalform in WHERE Klausel 5. Algebraische Vereinfachung – Eliminierung redundanter Teilausdrücke 6. Transformation zum Operatorbaum

9 Felix Naumann, VL Informationsintegration, WS 05/069 Schritt 2: Daten-Lokalisierung Globale Relationen werden abgebildet auf lokale Relationen GaV / LaV Algebraische Vereinfachungen

10 Felix Naumann, VL Informationsintegration, WS 05/0610 Schritt 3: Globale Optimierung Bestimmung eines Ausführungsplanes mit minimalen globalen Kosten Bestimmung der Ausführungsknoten Festlegung der Ausführungsreihenfolge (sequentiell, parallel) Alternative Strategien zur Join-Berechnung bewerten (z.B. mit Semi-Join) Aber: Trennung zwischen globaler und lokaler Optimierung kann zur Auswahl suboptimaler Pläne führen Kostenmodell |Instruktionen| + |Diskzugriffe| + |Nachrichten| + |übertragene Byte| Kosten = (T CPU * #insts) + (T I/O * #I/Os) + (T MSG * #msgs) + (T TR * #byte)

11 Felix Naumann, VL Informationsintegration, WS 05/0611 Site 0 Site 1 Neue Ziele der Anfragebearbeitung In zentralisierten (mehr- Benutzer) DBMS Durchsatz (throughput) = Anzahl der verarbeiteten Tupel Minimierung des Ressourcenverbrauchs In verteilten DBMS Gesamt- Ressourcenverbrauch erhöhen um schnellere Antworten zu erhalten Minimierung der Antwortzeit RS TU RS send Site 2 TU send Site 0 receive

12 Felix Naumann, VL Informationsintegration, WS 05/0612 Dimensionen der Anfragebearbeitung Festlegung des Ausführungsknotens Festlegung der Auswertungsstrategie Ship whole Vollständige Relationen Wenig Nachrichten Viele Byte Fetch rows as needed Bindings Viele Nachrichten Nur relevante Byte Semi Join Fetch columns as needed Semi-Join Site 1 RS send Site 2 TU send Site 0 receive

13 Felix Naumann, VL Informationsintegration, WS 05/0613 Schritt 4: Lokale Optimierung Entsprechend des jeweiligen Systems Lokale Katalogdaten Lokale Parameter T CPU und T I/O Etc.

14 Felix Naumann, VL Informationsintegration, WS 05/0614 Überblick Anfragebearbeitung im Überblick Techniken der Verteilten Anfragebearbeitung Row Blocking Multicasts Multithreading Partitionierung Joinbearbeitung Semi-Join Reduzierung Semi-Join mit Filter

15 Felix Naumann, VL Informationsintegration, WS 05/0615 Row Blocking Anfragebearbeitung in verteilten DBMS mittels send und receive Operatoren Naiv: Für jedes Tupel eine send und eine receive Operation Besser: Row blocking Tupel werden gesammelt und en block versendet. Blockgröße abhängig von datagram-Größe im Netzwerk (z.B. 64kB) Queues puffern unregelmäßige Pipelines Wichtig in Netzwerken; Stillstand wird vermieden.

16 Felix Naumann, VL Informationsintegration, WS 05/0616 Row Blocking Site 1 RS send Site 2 TU send Site 0 receive Puffer Netzwerkun- regelmäßigkeiten Row blocking Erlaubt konstante(re) Ausführung des restlichen Plans

17 Felix Naumann, VL Informationsintegration, WS 05/0617 Multicasts Site 1 R send Site 2 S send Site 0 receive Site 1 R send Site 2 S send Site 0 receive send Optimierung T T

18 Felix Naumann, VL Informationsintegration, WS 05/0618 Multicasts Einsparungen Netzverkehr CPU (packing und unpacking) Optimierung Viele Alternativen Physisch: Welche Daten schicke ich wohin? Welchen Operator führe ich wo aus? Logisch: Outer joins statt inner joins Späte/Frühe Projektion Usw. Kostenmodell Dynamische Entscheidungen noch während der Ausführung! Site 1 R send Site 2 S send Site 0 receive send T

19 Felix Naumann, VL Informationsintegration, WS 05/0619 Multi-Threading Single-threaded UNION: Sukzessive ein Datagram von einer Site Round-robin-Verfahren Multi-threaded UNION: Parallele Verarbeitung der send und receive Operationen Vorteile Netzwerkverkehr parallel Send Operationen parallel Nachteile Zusätzliche Kosten durch Synchronisation (shared memory) Zusätzliche Kosten durch Konkurrenz um Ressourcen Optimierer muss entscheiden welche Operatoren in wie vielen Threads ausgeführt wird. Site 0 receive Site 1 R send Site 2 R send Site 3 R send receive

20 Felix Naumann, VL Informationsintegration, WS 05/0620 Multi-Threading Multi-threading nicht immer vorteilhaft z.B. Speicherplatz Site 0 Sort-merge-join receive Site 1 R send Site 3 S send receive sort

21 Felix Naumann, VL Informationsintegration, WS 05/0621 Partitionierung Grundlagen von DBMS Vertikal Verschiedene Projektionen einer Relation Jedes Attribut in mindestens einer Partition Erhalt eines Schlüssels! Auch: Normalisierung Horizontal Verschiedene (disjunkte) Selektionen einer Relation Beispiel Partition A: SELECT * FROM R WHERE area=`Nord´ Partition B: SELECT * FROM R WHERE area=`Süd´ (bzw. `Nord´) Jedes Tupel in mindestens einer Partition Optimierung Wie partitionieren? Wie die Partitionen verteilen? Abhängig von Anwendungen und query workload

22 Felix Naumann, VL Informationsintegration, WS 05/0622 Joins über horizontale Partitionen Sei R horizontal partitioniert R = R 1 R 2 Alternativen R S = (R 1 R 2 ) S R S = (R 1 S) (R 2 S) Komplikationen R noch weiter partitioniert S ebenfalls partitioniert Unterschiedliche Kosten Wer führt was wo aus?

23 Felix Naumann, VL Informationsintegration, WS 05/0623 Selektion über horizontale Partitionierung Beispiel: Mitschang, VL Verteilte DBMS

24 Felix Naumann, VL Informationsintegration, WS 05/0624 Join über horizontale Partitionierung Beispiel: Mitschang, VL Verteilte DBMS

25 Felix Naumann, VL Informationsintegration, WS 05/0625 Joins über horizontale Partitionen Site 1 R1R1 S send Site 2 R3R3 S send Site 0 receive R2R2 Site 1 R1R1 S send Site 2 R3R3 S send Site 0 receive R2R2 sendreceive Optimierung |R| |S| |R 3 | |(R 1 R 2 ) S| |R 3 S| Frage: Wieviel wird jeweils übertragen?

26 Felix Naumann, VL Informationsintegration, WS 05/0626 Joins über horizontale Partitionen Optimierung Lage der Partitionen Kostenvergleiche Leere Teilergebnisse (R i S j = ) Vorhersagen & Vermeiden Häufig: Zwei Relationen nach gleichem Prädikat partitioniert Abteilungen nach Standort partitioniert (Nord, Süd) Mitarbeiter nach Abteilung (also auch nach Standort) partitioniert Dann: R S = (R 1 S 1 ) (R 1 S 2 ) (R 2 S 1 ) (R 2 S 2 ) = (R 1 S 1 ) (R 2 S 2 ) D. h. Joins (R i S j ) nur ausführen falls i = j

27 Felix Naumann, VL Informationsintegration, WS 05/0627 Überblick Anfragebearbeitung im Überblick Techniken der Verteilten Anfragebearbeitung Row Blocking Multicasts Multithreading Partitionierung Joinbearbeitung Semi-Join Reduzierung Semi-Join mit Filter

28 Felix Naumann, VL Informationsintegration, WS 05/0628 Semi-Join Site 0 S send Site 1 receive R |S| x tuple-length(S) Ergebnis (ohne Attribute von S) in Site 1 verlangt Site 0 S send Site 1 receive R |S| x ID-length(S) ID

29 Felix Naumann, VL Informationsintegration, WS 05/0629 Semi-Join Site 0 S send Site 1 receive R Site 1 R send Site 0 receive S send ID receive |S| x tuple-length(S) |R| x ID-length(R) |R S| x tuple-length (S) Merge-join Ergebnis (mit Attributen von S) in Site 1 verlangt

30 Felix Naumann, VL Informationsintegration, WS 05/0630 Semi-Join Formal R(A), S(B) R S := A (R F S) = A (R) F A B (S) = R F A B (S) i.d.R. = R F F (S) Nicht symmetrisch! Literatur: [BC81] in jedem DB Lehrbuch

31 Felix Naumann, VL Informationsintegration, WS 05/0631 Semi-Join Site 0 S send Site 1 receive Site 0 S send Site 2 receive R send ID receive |S| x tl(S) |S| x ID-length(S) |R S| x ID-length (R) Site 2 R send receive |R| x tl(R) Site 1 receive ID send Ergebnis (Attribute aus S und R) in Site 1 verlangt Frage: Welche 2 anderen Strategien sind möglich? |R S| x tl(S) |R S| x tl(R) Frage: Welche anderen Strategien sind möglich?

32 Felix Naumann, VL Informationsintegration, WS 05/0632 Optimierung mit Semi-Join Transformationsregeln für Joins R F S = (R F S) F S R verkleinern, dann Join mit S R F (S F R) S verkleinern, dann Join mit R (R F S) F (S F R) R und S verkleinern dann Join. Problem: Wann welche Variante einsetzen? Frage: Welche beiden Varianten standen auf der vorigen Folie?

33 Felix Naumann, VL Informationsintegration, WS 05/0633 Optimierung mit Semi-Join Kostenmodell |Instruktionen| + |Diskzugriffe| + |Nachrichten| + |übertragene Byte| Kosten = T CPU * #insts + T I/O * #I/Os + T MSG * #msgs + T TR * #byte Hier nur: |übertragene Byte| Kostenvergleich (Annahme: |R| < |S|) K(R F S) = byte(R) K((R F S) F S) = byte( F (S)) + byte((R F S))

34 Felix Naumann, VL Informationsintegration, WS 05/0634 Eine Übung im letzten Jahr: Die Daten Zwei Datenbanken in DB2 FilmDB1 Schema: Movie1 Tabelle: Movie1.Filme1(Titel Character(100), Jahr Integer) FilmDB2 Schema: Movie2 Tabelle: Movie2.Filme2(Titel Character(100), Regie Character(50)) Zugriffsberechtigungen: Lesend auf die Tabellen CREATE TABLE auf die Datenbanken INSERT auf neue Tabellen

35 Felix Naumann, VL Informationsintegration, WS 05/0635 Eine Übung im letzten Jahr: Die Aufgabe Titel und Regisseur aller Filme, die jünger als 1980 sind. SELECT F1.Titel, F2.Regie FROM Movie1.Filme1 F1, Movie2.Filme2 F2 WHERE F1.Titel = F2.Titel AND F1.Jahr > 1980 Zur Kontrolle: Ergebniskardinalität ist Problem: Join über verschiedene Datenbanken Passing Binding Semijoins Andere?

36 Felix Naumann, VL Informationsintegration, WS 05/0636 Eine Übung im letzten Jahr: Auswertung Noch naiver: Große Tabelle außen. Gruppe Byte Naive Lösung (vorgegeben): Kosten = Byte

37 Felix Naumann, VL Informationsintegration, WS 05/0637 Eine Übung im letzten Jahr: Die gesammelten Tricks Prepared Statement Rtrim() Filme2 ist wesentlich kleiner Gezielte Projektionen Jahr muss nie übertragen werden Jeder Titel höchstens einmal Hashfunktionen als UDF In SPJ Anfrage Auf Kollisionen getestet Optimiert auf Länge Rollback statt drop table

38 Felix Naumann, VL Informationsintegration, WS 05/0638 Chipmunks CREATE TABLE firma06 (h INTEGER NOT NULL PRIMARY KEY) alle "hash" Werte für titel aus Firma2 holen SELECT DISTINCT ASCII(titel)* LENGTH(RTRIM(titel))* (ASCII(substr(rtrim(titel),length(rtrim(titel)))))* (ASCII(SUBSTR(RTRIM(titel),(LENGTH(RTRIM(titel))/2)+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))* (ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))* ,0))+1,1)))*49285 FROM movie2.filme2

39 Felix Naumann, VL Informationsintegration, WS 05/0639 Eine Übung im letzten Jahr: Auswertung idefix Ghost Dogs camarillabibgruppe1 IFA blub10099Die DreiiiProjekt Chaos0815Hedge Knights Chipmunks fmr

40 Felix Naumann, VL Informationsintegration, WS 05/0640 Überblick Anfragebearbeitung im Überblick Techniken der Verteilten Anfragebearbeitung Row Blocking Multicasts Multithreading Partitionierung Joinbearbeitung Semi-Join Reduzierung Semi-Join mit Filter

41 Felix Naumann, VL Informationsintegration, WS 05/0641 Optimierung mit Semi-Join Komplexeres Beispiel R F S G T = (R F S) F (S G T) G T = (R F (S G T)) F (S G T) G T Allgemein: Man suche für jede Relation das beste Semi-Join Programm, den vollständigen Reduzierer (full reducer). Eine fully reduced Relation enthält keine Tupel, die nicht zur Anfragebearbeitung benötigt werden. Für jede Relation in einer Anfrage existieren exponentiell viele Semi-Join Programme. Zyklische Anfragen: i.A. existiert kein full reducer. Baum-Anfragen: Finden des full reducer NP-schwer. Ketten-Anfragen: Finden des full reducer polynomial.

42 Felix Naumann, VL Informationsintegration, WS 05/0642 Optimierung mit Semi-Join Ketten-Anfragen SELECT EMP.name, DEPT.name FROM EMP, DEPT, PROJ WHERE EMP.d_ID = DEPT.ID AND EMP.p_ID = PROJ.ID EMPLOYEESPROJECTSDEPARTMENTS Mitarbeiter mit ihren Abteilungen, die an einem Projekt arbeiten. Ermittlung der full reducer für jede Relation in 2 Phasen 1.Vorwärts 2.Rückwärts

43 Felix Naumann, VL Informationsintegration, WS 05/0643 Fully Reduce Ermittlung der full reducer für jede Relation in 2 Phasen 1. Vorwärts 2. Rückwärts Allgemein für Kettenanfragen R1 A R2 B... Y R(n-1) Z Rn Vorwärts R2 = R2 R1 R3 = R3 R2 = R3 (R2 R1)... Rn = Rn R(n-1) =... Rückwärts R(n-1) = R(n-1) Rn R(n-2) = R(n-2) R(n-1)... R1 = R1 R2 Full reducer für Rn Full reducer für R(n-1) Full reducer für R1

44 Felix Naumann, VL Informationsintegration, WS 05/0644 Fully Reduce Beispiel für Kettenanfragen R1 A R2 B R3 C R4 Vorwärts R2 = R2 R1 R3 = R3 R2 [= R3 (R2 R1)] R4 = R4 R3 [= R4 ( R3 (R2 R1))] Rückwärts R3 = R3 R4 R2 = R2 R3 R1 = R1 R2

45 Felix Naumann, VL Informationsintegration, WS 05/0645 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 A B C C B A Full reducer Vorwärts R2 = R2 R1 R3 = R3 R2 R4 = R4 R3 Rückwärts R3 = R3 R4 R2 = R2 R3 R1 = R1 R2

46 Felix Naumann, VL Informationsintegration, WS 05/0646 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4

47 Felix Naumann, VL Informationsintegration, WS 05/0647 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4 (1,5,6,7)

48 Felix Naumann, VL Informationsintegration, WS 05/0648 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4 (1,5,6,7) (3,5,7)

49 Felix Naumann, VL Informationsintegration, WS 05/0649 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4 (1,5,6,7) (3,5,7)(1,2,3)

50 Felix Naumann, VL Informationsintegration, WS 05/0650 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4 (1,5,6,7) (3,5,7)(1,2,3) (2,3)

51 Felix Naumann, VL Informationsintegration, WS 05/0651 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4 (1,5,6,7) (3,5,7)(1,2,3) (2,3)(5,7)

52 Felix Naumann, VL Informationsintegration, WS 05/0652 Fully Reduce – Beispiel Site 0 Site 1 Site 2 Site 3 R1R2 R3R4 XA AB BC CZ R1 A R2 B R3 C R4 (1,5,6,7) (3,5,7)(1,2,3) (2,3)(5,7)

53 Felix Naumann, VL Informationsintegration, WS 05/0653 Fully Reduce Gegeben Baum-Anfrage Q (R4 C (R3 D R5)) B (R1 A R2) R1 R2 R3 R4 R5 R1 R2 R3 R4 R5 Auswahl der Wurzel beliebig Baumdarstellung rein graphisch!

54 Felix Naumann, VL Informationsintegration, WS 05/0654 Fully Reduce Phase 1 Von unten nach oben Ziel: Full reducer für Wurzel Einführung von Semi-Joins von Knoten zu ihren Eltern Phase 2 Von oben nach unten Ziel: Full reducer für alle anderen Knoten Einführung von Semi-Joins von Knoten zu ihren Kindern R1 R2 R3 R4 R5

55 Felix Naumann, VL Informationsintegration, WS 05/0655 Fully Reduce – Phase 1 R1 R2 R3 R4 R5 R1 R2 R3 R4 R5 R1 R2 R3 R4 R5 Erfüllte Bedingungen: - R3.C = R4.C - R3.D = R5.D Erfüllte Bedingungen: - R3.C = R4.C - R3.D = R5.D - R1.A = R2.A - R1.B = R3.B Ergebnis in R1 erfüllt alle Beding- ungen, ist also fully reduced.

56 Felix Naumann, VL Informationsintegration, WS 05/0656 Optimierung mit Semi-Join Zyklische Anfragen DEPT DNameID a1 b2 SELECT EMP.name, DEPT.name FROM EMP, DEPT, PROJ WHERE EMP.d_ID = DEPT.ID AND EMP.p_ID = PROJ.ID ANDPROJ.d_ID = DEPT.ID EMPLOYEES PROJECTS DEPARTMENTS Mitarbeiter, die an Projekten der eigenen Abteilung arbeiten PROJ d_IDIDPName 16Clio 27HumMer EMP ENamed_IDp_ID X17 y26 Problem: Semi-Join betrachtet immer nur eine Kante im Anfragebaum und blickt nicht voraus. Ergebnis ist nie die leere Menge.

57 Felix Naumann, VL Informationsintegration, WS 05/0657 Überblick Anfragebearbeitung im Überblick Techniken der Verteilten Anfragebearbeitung Row Blocking Multicasts Multithreading Partitionierung Joinbearbeitung Semi-Join Reduzierung Semi-Join mit Filter

58 Felix Naumann, VL Informationsintegration, WS 05/0658 Optimierung mit Semi-Join Verbesserung durch Hashfilter Idee: Statt A (R) sende man nur eine Signatur (Bloom-Filter). Weniger Netzwerkverkehr.

59 Felix Naumann, VL Informationsintegration, WS 05/0659 Join mit Hashfilter (Bloom-Filter) False drops 6 Bit 12 Werte (4 Tupel, inkl. 2 False Drops) 15 Werte Quelle: VL-Folien, Alfons Kemper, Uni Passau C

60 Felix Naumann, VL Informationsintegration, WS 05/0660 Rückblick Techniken der verteilten Anfragebearbeitung Row Blocking Multicasts Multithreading Partitionierung Semi-Join Basics Reduzierung Mit Filter Site 1 R send Site 0 receive S send ID receive

61 Felix Naumann, VL Informationsintegration, WS 05/0661 Literatur Überblick Fast jedes deutsche DBMS Lehrbuch Englisch: [GMUW00] Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Database System Implementation Prentice-Hall 2000 Spezielles [Ko00] The State of the Art in Distributed Query Processing, Donald Kossmann, ACM Computing Surveys 32(4), pages (Link auf WWW) [Graefe93] Goetz Graefe: Query Evaluation Techniques for Large Databases. ACM Comput. Surv. 25(2): (1993) Semijoin [BC81] Philip A. Bernstein, Dah-Ming W. Chiu: Using Semi-Joins to Solve Relational Queries. Journal of the ACM 28(1): (1981)

62 Felix Naumann, VL Informationsintegration, WS 05/0662 Verteilter Hash-Join – Build Phase Send R Send S receive Puffer Hashtabelle Quelle: VL-Folien, Alfons Kemper, Uni Passau

63 Felix Naumann, VL Informationsintegration, WS 05/0663 Verteilter Hash-Join – Probe Phase Send R Send S receive Puffer h(...) Hashtabelle Quelle: VL-Folien, Alfons Kemper, Uni Passau

64 Felix Naumann, VL Informationsintegration, WS 05/0664 Double-Pipelined Hash Join Hash Join 1. Phase: Build-Input (mit kleinerer Relation) Build muß vollständig vorhanden sein. 2. Phase: Probe-Input Erlaubt Bearbeitung noch während Empfang (pipeline) Double-Pipelined Build und Probe zugleich: Hash-Tabelle für beide Inputströme Günstig für integrierte Systeme wg. verzögerter pipelines (s.a. Row Blocking)

65 Felix Naumann, VL Informationsintegration, WS 05/0665 Double-Pipelined Hash Join Send R Send S receive Hashtabelle probe einfügen Hashtabelle Ergebnis-Tupel Quelle: VL-Folien, Alfons Kemper, Uni Passau


Herunterladen ppt "Informationsintegration Verteilte Anfragebearbeitung 1.12.2005 Felix Naumann."

Ähnliche Präsentationen


Google-Anzeigen