Docstoc

Verteilte Anfragebearbeitung

Document Sample
Verteilte Anfragebearbeitung Powered By Docstoc
					Informationsintegration
           Verteilte
 Anfragebearbeitung
                 1.12.2005
           Felix Naumann
10,000 feet
1.      Einführung in die Informationsintegration
2.
3.
4.
      Problemstellung
        Szenarien der Informationsintegration
        Verteilung und Autonomie
        Heterogenität
5.      Materialisierte und virtuelle Integration
6.


7.
8.
       Architekturen
        Klassifikation integrierter Informationssysteme und 5-Schichten
        Architektur
        Mediator/Wrapper-Architektur
        Global-as-View und Lokal-as-View Modellierung
9.
10.
11.
       Modellierung
        Global-as-View Anfragebearbeitung
        SchemaSQL
        Verteilte Anfragebearbeitung
12.
13.     Optimierung
        Dynamische Programmierung in verteilten Datenbanken
        Top-N Anfragen


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


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


    1.12.2005             Felix Naumann, VL Informationsintegration, WS 05/06   4
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!


    1.12.2005      Felix Naumann, VL Informationsintegration, WS 05/06   5
 Architektur zur zentralen
 Anfragebearbeitung
                       Logische Optimierung                    Wandelt Plan
                       (unabhängig von System                  (Baum) in
                       und Konfiguration):                     ausführbaren Plan
                                                                                            Anfrage-
Anfrage                Entschachtelung,                                                     ergebnis
                                                               (Code) um.
                       redundante Prädikate,...


                   Anfrage-          Anfrage-                      Code                 Anfragebearbeitung
Parser
                 umschreibung       optimierung                  Generierung                 (Engine)




                                                          Optimierung für System und
                  Katalog/                                Konfiguration:
                                                                                              Daten
                 Metadaten                                Indices, Joinreihenfolge,
                                                          Selektion der Datenquelle

Syntax und etwas
                                Schema, Statistik,
Semantik
                                Partitionierung,
Erzeugt
                                Lage der Daten,...
Anfragegraph
     1.12.2005                    Felix Naumann, VL Informationsintegration, WS 05/06                    6
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)

    1.12.2005         Felix Naumann, VL Informationsintegration, WS 05/06   7
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


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




    1.12.2005       Felix Naumann, VL Informationsintegration, WS 05/06   9
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 =
        (TCPU * #insts) + (TI/O * #I/Os) + (TMSG * #msgs) + (TTR * #byte)


    1.12.2005           Felix Naumann, VL Informationsintegration, WS 05/06   10
Neue Ziele der
Anfragebearbeitung
                                                            Site 0
   In zentralisierten (mehr-                                                       ⋈
    Benutzer) DBMS
       Durchsatz (throughput) =                                       ⋈                    ⋈
        Anzahl der verarbeiteten
        Tupel                                                R                  S       T             U
       Minimierung des
        Ressourcenverbrauchs                                        Site 0
                                                                                ⋈
   In verteilten DBMS
       Gesamt-                                                      receive        receive
        Ressourcenverbrauch
        erhöhen um schnellere                    Site 1                                 Site 2
        Antworten zu erhalten                               send                                 send
       Minimierung der
        Antwortzeit                                            ⋈                                  ⋈

    1.12.2005
                                                      R
                      Felix Naumann, VL Informationsintegration, WS 05/06
                                                                            S               T              U
                                                                                                          11
Dimensionen der
Anfragebearbeitung
   Festlegung des Ausführungsknotens
   Festlegung der Auswertungsstrategie
     Ship whole
       Vollständige Relationen
       Wenig Nachrichten
                                            Site 0
       Viele Byte
                                                    ⋈
     Fetch rows as needed
       Bindings                             receive receive
       Viele Nachrichten
       Nur relevante Byte        Site 1              Site 2
       Semi Join                        send                send
     Fetch columns as needed
       Semi-Join                         ⋈                   ⋈

                                                      R                    S   T        U
    1.12.2005        Felix Naumann, VL Informationsintegration, WS 05/06           12
Schritt 4: Lokale Optimierung
   Entsprechend des
    jeweiligen Systems
       Lokale Katalogdaten
       Lokale Parameter
               TCPU und TI/O
       Etc.




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


    1.12.2005             Felix Naumann, VL Informationsintegration, WS 05/06   14
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.

    1.12.2005              Felix Naumann, VL Informationsintegration, WS 05/06   15
   Row Blocking
              Site 0
                              ⋈
                                                                     Erlaubt konstante(re)
                                                                        Ausführung des
                     Puffer       Puffer                                restlichen Plans


               receive            receive
                                                                     Netzwerkun-
                                                                   regelmäßigkeiten
Site 1                            Site 2
         send                              send
                                                                      Row blocking
         Puffer                            Puffer


          ⋈                                 ⋈

   R                  S              T                  U

         1.12.2005                    Felix Naumann, VL Informationsintegration, WS 05/06    16
  Multicasts
Site 0                                                            Site 0
                     ⋃                                                                   ⋃

           ⋈                                                                ⋈

  T          receive     receive                                      T          receive     receive

                                                                                         Site 2
                         Site 2
                                  send
                                                                                           send        send
                                   ⋈                        Optimierung
                                                                                                   ⋈
                         receive             S                                           receive         S

      Site 1                                                      Site 1
            send                                                          send
                R                                                            R
         1.12.2005                 Felix Naumann, VL Informationsintegration, WS 05/06                        17
Multicasts                                                             Site 0
                                                                                              ⋃
                                                                                 ⋈
   Einsparungen
     Netzverkehr                                                          T            receive    receive
     CPU (packing und unpacking)
   Optimierung                                                                               Site 2
     Viele Alternativen
               Physisch:                                                                         send       send
                   Welche Daten schicke ich wohin?
                   Welchen Operator führe ich wo aus?                                                   ⋈
               Logisch:
                   Outer joins statt inner joins                                             receive          S
                   Späte/Frühe Projektion
                   Usw.
                                                                       Site 1
       Kostenmodell
       Dynamische Entscheidungen                                              send
               noch während der Ausführung!
                                                                                  R
    1.12.2005                     Felix Naumann, VL Informationsintegration, WS 05/06                           18
Multi-Threading
   Single-threaded UNION:
       Sukzessive ein Datagram von einer
        Site
       „Round-robin“-Verfahren                                   Site 0
   Multi-threaded UNION:                                                                ∪
       Parallele Verarbeitung der send
        und receive Operationen                                    receive         receive   receive
   Vorteile
       Netzwerkverkehr parallel
       Send Operationen parallel
                                                        Site 1                  Site 2       Site 3
   Nachteile
       Zusätzliche Kosten durch                               send                 send         send
        Synchronisation (shared memory)
       Zusätzliche Kosten durch
        Konkurrenz um Ressourcen                                 R                   R                R
       Optimierer muss entscheiden
        welche Operatoren in wie vielen
        Threads ausgeführt wird.

    1.12.2005             Felix Naumann, VL Informationsintegration, WS 05/06                         19
Multi-Threading
   Multi-threading nicht immer vorteilhaft
       z.B. Speicherplatz                 Site 0
                                                       Sort-merge-join

                                                      sort                sort

                                            receive                        receive


                                 Site 1                                    Site 3

                                        send                                     send

                                          R                                         S

    1.12.2005       Felix Naumann, VL Informationsintegration, WS 05/06                 20
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


    1.12.2005                  Felix Naumann, VL Informationsintegration, WS 05/06   21
Joins über horizontale
Partitionen
   Sei R horizontal partitioniert
       R = R1 ∪ R2
   Alternativen
       R ⋈ S = (R1 ∪ R2) ⋈ S
       R ⋈ S = (R1 ⋈ S) ∪ (R2⋈ S)
   Komplikationen
       R noch weiter partitioniert
       S ebenfalls partitioniert
       Unterschiedliche Kosten
       Wer führt was wo aus?

    1.12.2005          Felix Naumann, VL Informationsintegration, WS 05/06   22
Selektion über horizontale
Partitionierung




                                                         Beispiel: Mitschang, VL „Verteilte DBMS“
 1.12.2005   Felix Naumann, VL Informationsintegration, WS 05/06                           23
Join über horizontale
Partitionierung




                                                         Beispiel: Mitschang, VL „Verteilte DBMS“
 1.12.2005   Felix Naumann, VL Informationsintegration, WS 05/06                           24
  Joins über horizontale
  Partitionen
 Frage: Wieviel wird                        |(R1 ⋃ R2) ⋈S|
 jeweils übertragen?                                                                            |R3 ⋈S|



                              ⋈
                     Site 0                                                           Site 0
                                                                                                  ∪
|R|
                                                       Optimierung
                     receive     receive                                                receive       receive

Site 1                           |S|                                 Site 1
           send                                                                   send
                               |R3|                                                                   Site 2
      ∪                                                                              ⋈                         send
                               Site 2
              receive           send           send                           ∪                                 ⋈

 R1      R2            S         R3                S                    R1          R2      S           R3                 S

         1.12.2005                    Felix Naumann, VL Informationsintegration, WS 05/06                             25
Joins über horizontale
Partitionen
   Optimierung
       Lage der Partitionen
       Kostenvergleiche
       Leere Teilergebnisse (Ri ⋈ Sj = )
         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
          = (R1⋈S1) ∪ (R1⋈S2) ∪ (R2⋈S1) ∪ (R2⋈S2)
          = (R1⋈S1) ∪ (R2⋈S2)
         D. h. Joins (Ri ⋈ Sj) nur ausführen falls i = j


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


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



       1.12.2005                 Felix Naumann, VL Informationsintegration, WS 05/06                        28
 Semi-Join
 Ergebnis (mit Attributen
 von S) in Site 1 verlangt
                                       Merge-join                                      |R ⋈ S| x tuple-length (S)
                                                               Site 1
               Site 1
                          ⋈                                          ⋈                      Site 0

                   receive       R
                                                                       receive                       send

Site 0                                                                                                ⋊
                     |S| x tuple-length(S)
  send                                                                                      receive         S
                                                                            send
   S                                                                      ID
                                                                 R                           |R| x ID-length(R)


       1.12.2005                 Felix Naumann, VL Informationsintegration, WS 05/06                            29
Semi-Join
   Formal
       R(A), S(B)
       R ⋉ S := A(R⋈FS)
                = 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

    1.12.2005      Felix Naumann, VL Informationsintegration, WS 05/06   30
                                                                            Site 1
 Semi-Join                                    |R ⋈ S| x tl(S)                             ⋈            |R ⋈ S| x tl(R)

Ergebnis (Attribute aus S                  |R ⋈ S|                           receive          receive
und R) in Site 1 verlangt                  x ID-length (R)

                                                                  Site 0                      Site 2
         Site 1
                        ⋈                                                      send                    send

           receive          receive                                     ⋉
                                                                                               send
Site 0                            Site 2                                  receive
                    |R| x tl(R)                                                                 ID
  send                              send
                                                                               send                          ⋊
                   |S| x tl(S)         R
   S                                                                         ID
                                                                                               receive           R
                                                                    S
    Frage: Welche 2 anderen
                                                                                                Frage: Welche
    Strategien sind möglich?
                                                                                                anderen Strategien
       1.12.2005                                              |S| x ID-length(S)
                                    Felix Naumann, VL Informationsintegration, WS 05/06
                                                                                                sind möglich? 31
Optimierung mit Semi-Join
   Transformationsregeln für Joins
   R⋈FS =
       (R ⋉F S) ⋈F S
                                                                                 Frage: Welche
               R verkleinern, dann Join mit S                                   beiden Varianten
       R⋈F (S ⋉F R)                                                             standen auf der
                                                                                 vorigen Folie?
               S verkleinern, dann Join mit R
       (R ⋉F S) ⋈F (S ⋉F R)
               R und S verkleinern dann Join.
   Problem: Wann welche Variante einsetzen?
    1.12.2005              Felix Naumann, VL Informationsintegration, WS 05/06                      32
Optimierung mit Semi-Join
   Kostenmodell
       |Instruktionen| + |Diskzugriffe| + |Nachrichten| +
        |übertragene Byte|
       Kosten = TCPU * #insts
                   + TI/O * #I/Os
                   + TMSG * #msgs
                   + TTR * #byte
       Hier nur: |übertragene Byte|
   Kostenvergleich (Annahme: |R| < |S|)
       K(R⋈FS)                           = byte(R)
       K((R ⋉F S) ⋈F S)                  = byte(F(S)) + byte((R ⋈F S))

    1.12.2005          Felix Naumann, VL Informationsintegration, WS 05/06   33
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


    1.12.2005          Felix Naumann, VL Informationsintegration, WS 05/06   34
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 1121.
   Problem: Join über verschiedene Datenbanken
       Passing Binding
       Semijoins
       Andere?

    1.12.2005        Felix Naumann, VL Informationsintegration, WS 05/06   35
  Eine Übung im letzten Jahr:
  Auswertung          Naive Lösung (vorgegeben):
                       Kosten = 8.296.344 Byte
       16000000


       14000000


       12000000


       10000000
Byte




       8000000


       6000000

                                                                                              Noch naiver: Große
       4000000
                                                                                              Tabelle außen.
       2000000


               0
                    1   2   3   4   5   6    7   8    9   10 11 12 13 14 15 16


                                    Gruppe

        1.12.2005                       Felix Naumann, VL Informationsintegration, WS 05/06                        36
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 
    1.12.2005         Felix Naumann, VL Informationsintegration, WS 05/06   37
Chipmunks
   CREATE TABLE firma06 (h INTEGER NOT NULL PRIMARY KEY)
   alle "hash" Werte für titel aus Firma2 holen
       SELECT DISTINCT ASCII(titel)*762534+LENGTH(RTRIM(titel))*464857
        +(ASCII(substr(rtrim(titel),length(rtrim(titel)))))*659386
        +(ASCII(SUBSTR(RTRIM(titel),(LENGTH(RTRIM(titel))/2)+1,1)))*121555
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.5573769496370024-
        0.5,0))+1,1)))*481517
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.5455918517007877-
        0.5,0))+1,1)))*418045
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.9390929989171091-
        0.5,0))+1,1)))*479165
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.3093312770038853-
        0.5,0))+1,1)))*151240
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.13964794618711818
        -0.5,0))+1,1)))*668683
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.7438338851875961-
        0.5,0))+1,1)))*208042
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.24890649793926223
        -0.5,0))+1,1)))*386682
        +(ASCII(SUBSTR(RTRIM(titel),integer(round(length(rtrim(titel))*0.7727779326492414-
        0.5,0))+1,1)))*49285
        FROM movie2.filme2



    1.12.2005               Felix Naumann, VL Informationsintegration, WS 05/06         38
Eine Übung im letzten Jahr:
Auswertung
3000000



2500000



2000000



1500000



1000000



 500000



        0
                1         2        3         4        5      6      7      8       9          10          11            12     13         14   15
             Chipmunks



                                  fmr
                                         Ghost Dogs
                         idefix




                                                      IFA
                                                            bib
                                                                  10099

                                                                          blub

                                                                                  camarilla
                                                                                              gruppe1
                                                                                                        Hedge Knights

                                                                                                                        0815
                                                                                                                               Die Drei

                                                                                                                                          ii
                                                                                                                                               Projekt Chaos
 1.12.2005                              Felix Naumann, VL Informationsintegration, WS 05/06                                                             39
Überblick
   Anfragebearbeitung im Überblick
   Techniken der Verteilten
    Anfragebearbeitung
       Row Blocking
       Multicasts
       Multithreading
       Partitionierung
   Joinbearbeitung
       Semi-Join
       Reduzierung
       Semi-Join mit Filter


    1.12.2005             Felix Naumann, VL Informationsintegration, WS 05/06   40
Optimierung mit Semi-Join
   Komplexeres Beispiel
       R              ⋈ FS         ⋈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.



    1.12.2005          Felix Naumann, VL Informationsintegration, WS 05/06   41
Optimierung mit Semi-Join
   Ketten-Anfragen
    SELECT EMP.name, DEPT.name
    FROM EMP, DEPT, PROJ                                Mitarbeiter mit ihren
    WHERE EMP.d_ID = DEPT.ID                            Abteilungen, die an
    AND   EMP.p_ID = PROJ.ID                               einem Projekt
                                                              arbeiten.

    PROJECTS        EMPLOYEES                     DEPARTMENTS

    Ermittlung der full reducer für jede Relation in 2 Phasen
    1. Vorwärts
    2. Rückwärts



    1.12.2005          Felix Naumann, VL Informationsintegration, WS 05/06      42
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                                                   Full reducer für Rn
               R(n-1)‘‘ = R(n-1)‘ ⋉ Rn‘
               R(n-2)‘‘ = R(n-2)‘ ⋉ R(n-1)‘
               ...                                              Full reducer für R(n-1)
               R1‘‘ = R1 ⋉ R2‘‘
                                                                     Full reducer für R1

    1.12.2005                  Felix Naumann, VL Informationsintegration, WS 05/06         43
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‘‘


    1.12.2005              Felix Naumann, VL Informationsintegration, WS 05/06   44
 Fully Reduce – Beispiel
Site 0              Site 1                                Site 2                  Site 3

                    A                                      B

      ⋉                      ⋉                                     ⋉
                                                                                   C
                             B                                       C
                       ⋊                                      ⋊                     ⋊
      A
 R1                              R2                                  R3                    R4

Vorwärts          Rückwärts
R2‘ = R2 ⋉ R1     R3‘‘ = R3‘ ⋉ R4‘
R3‘ = R3 ⋉ R2‘    R2‘‘ = R2‘ ⋉ R3‘‘                                            Full reducer
R4‘ = R4 ⋉ R3‘    R1‘‘ = R1 ⋉ R2‘‘
      1.12.2005          Felix Naumann, VL Informationsintegration, WS 05/06                    45
 Fully Reduce – Beispiel
Site 0            Site 1                               Site 2            Site 3
    X     A        A B                                    B C             C Z
    1     7        9 3                                    3 1             2 1
    2     1        5 5                                    1 0             3 2
    3     6        7 7                                    7 2             4 5
    4     7        5 3                                    7 1             5 6
    5     5        0 7                                    5 3             6 7
    6     7        3 2                                    6 0             7 8

 R1                        R2                                  R3         R4



                  R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005    Felix Naumann, VL Informationsintegration, WS 05/06            46
 Fully Reduce – Beispiel
Site 0                        Site 1                               Site 2            Site 3
    X     A                    A B                                    B C             C Z
    1     7                    9 3                                    3 1             2 1
    2     1                    5 5                                    1 0             3 2
    3     6                    7 7                                    7 2             4 5
    4     7                    5 3                                    7 1             5 6
    5     5       (1,5,6,7)    0 7                                    5 3             6 7
    6     7                    3 2                                    6 0             7 8

 R1                                    R2                                  R3         R4



                              R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005                Felix Naumann, VL Informationsintegration, WS 05/06            47
 Fully Reduce – Beispiel
Site 0                        Site 1                               Site 2            Site 3
    X     A                    A B                                    B C             C Z
    1     7                    9 3                                    3 1             2 1
    2     1                    5 5                                    1 0             3 2
    3     6                    7 7                                    7 2             4 5
    4     7                    5 3                                    7 1             5 6
    5     5       (1,5,6,7)    0 7                 (3,5,7)            5 3             6 7
    6     7                    3 2                                    6 0             7 8

 R1                                    R2                                  R3         R4



                              R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005                Felix Naumann, VL Informationsintegration, WS 05/06            48
 Fully Reduce – Beispiel
Site 0                        Site 1                               Site 2                      Site 3
    X     A                    A B                                    B C                       C Z
    1     7                    9 3                                    3 1                       2 1
    2     1                    5 5                                    1 0                       3 2
    3     6                    7 7                                    7 2                       4 5
    4     7                    5 3                                    7 1                       5 6
    5     5       (1,5,6,7)    0 7                 (3,5,7)            5 3            (1,2,3)    6 7
    6     7                    3 2                                    6 0                       7 8

 R1                                    R2                                  R3                   R4



                              R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005                Felix Naumann, VL Informationsintegration, WS 05/06                      49
 Fully Reduce – Beispiel
Site 0                        Site 1                               Site 2                      Site 3
    X     A                    A B                                    B C                       C Z
    1     7                    9 3                                    3 1             (2,3)     2 1
    2     1                    5 5                                    1 0                       3 2
    3     6                    7 7                                    7 2                       4 5
    4     7                    5 3                                    7 1                       5 6
    5     5       (1,5,6,7)    0 7                 (3,5,7)            5 3            (1,2,3)    6 7
    6     7                    3 2                                    6 0                       7 8

 R1                                    R2                                  R3                   R4



                              R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005                Felix Naumann, VL Informationsintegration, WS 05/06                      50
 Fully Reduce – Beispiel
Site 0                        Site 1                               Site 2                      Site 3
    X     A                    A B                                    B C                       C Z
    1     7                    9 3                   (5,7)            3 1             (2,3)     2 1
    2     1                    5 5                                    1 0                       3 2
    3     6                    7 7                                    7 2                       4 5
    4     7                    5 3                                    7 1                       5 6
    5     5       (1,5,6,7)    0 7                 (3,5,7)            5 3            (1,2,3)    6 7
    6     7                    3 2                                    6 0                       7 8

 R1                                    R2                                  R3                   R4



                              R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005                Felix Naumann, VL Informationsintegration, WS 05/06                      51
 Fully Reduce – Beispiel
Site 0                        Site 1                               Site 2                      Site 3
    X     A                    A B                                    B C                       C Z
    1     7       (5,7)        9 3                   (5,7)            3 1             (2,3)     2 1
    2     1                    5 5                                    1 0                       3 2
    3     6                    7 7                                    7 2                       4 5
    4     7                    5 3                                    7 1                       5 6
    5     5       (1,5,6,7)    0 7                 (3,5,7)            5 3            (1,2,3)    6 7
    6     7                    3 2                                    6 0                       7 8

 R1                                    R2                                  R3                   R4



                              R1 ⋈A R2 ⋈B R3 ⋈C R4
      1.12.2005                Felix Naumann, VL Informationsintegration, WS 05/06                      52
Fully Reduce
   Gegeben Baum-Anfrage Q
       (R4 ⋈C (R3 ⋈D R5)) ⋈B (R1 ⋈A R2)
                                                                           Auswahl der Wurzel beliebig


                                                                           R1
                ⋈         ⋈                                       ⋈                ⋈
          R1        R3            R5
         ⋈          ⋈                                          R2                  R3

          R2        R4                                                         ⋈        ⋈

                                                                           R4           R5

                                                                         Baumdarstellung rein graphisch!


    1.12.2005            Felix Naumann, VL Informationsintegration, WS 05/06                        53
Fully Reduce
   Phase 1
       Von unten nach oben
       Ziel: Full reducer für Wurzel                                           R1
       Einführung von Semi-Joins von Knoten                                ⋈        ⋈

        zu ihren Eltern                                                    R2        R3
   Phase 2                                                                     ⋈         ⋈
       Von oben nach unten                                                     R4        R5
       Ziel: Full reducer für alle anderen
        Knoten
       Einführung von Semi-Joins von Knoten
        zu ihren Kindern

    1.12.2005        Felix Naumann, VL Informationsintegration, WS 05/06                   54
Fully Reduce – Phase 1                                                            Erfüllte Bedingungen:
                                                                                  - R3.C = R4.C
                                                                                  - R3.D = R5.D
                                                                                  - R1.A = R2.A
                                                                                  - R1.B = R3.B


         R1                            R1                                         R1


R2               R3         R2                    R3                       R2            R3



         R4           R5               R4                   R5                    R4            R5


                           Erfüllte Bedingungen:                       Ergebnis in R1 erfüllt alle Beding-
                           - R3.C = R4.C                               ungen, ist also fully reduced.
                           - R3.D = R5.D


     1.12.2005              Felix Naumann, VL Informationsintegration, WS 05/06                        55
Optimierung mit Semi-Join
                                                 Mitarbeiter, die an
                                                   Projekten der
   Zyklische Anfragen                           eigenen Abteilung
    SELECT EMP.name, DEPT.name                        arbeiten
    FROM EMP, DEPT, PROJ                        DEPT                     PROJ
    WHERE EMP.d_ID = DEPT.ID
    AND   EMP.p_ID = PROJ.ID                    DName ID                 d_ID ID PName
    AND   PROJ.d_ID = DEPT.ID                   a            1           1       6   Clio
                                                b            2           2       7   HumMer
                PROJECTS
                                                         EMP
                                                         EName d_ID p_ID
EMPLOYEES            DEPARTMENTS                         X           1       7
                                                         y           2       6
                                               Problem: Semi-Join betrachtet immer nur eine Kante
                                               im Anfragebaum und blickt nicht voraus.
    1.12.2005
                                               Ergebnis ist nie die leere Menge.
                           Felix Naumann, VL Informationsintegration, WS 05/06              56
Überblick
   Anfragebearbeitung im
    Überblick
   Techniken der Verteilten
    Anfragebearbeitung
       Row Blocking
       Multicasts
       Multithreading
       Partitionierung
   Joinbearbeitung
       Semi-Join
       Reduzierung
       Semi-Join mit Filter
    1.12.2005             Felix Naumann, VL Informationsintegration, WS 05/06   57
Optimierung mit Semi-Join
   Verbesserung durch Hashfilter
       Idee: Statt A(R) sende man nur eine „Signatur“
        (Bloom-Filter).
       Weniger Netzwerkverkehr.




    1.12.2005       Felix Naumann, VL Informationsintegration, WS 05/06   58
Join mit Hashfilter
(Bloom-Filter)

    ⋈C




                        1                                   1
                        1                                   1
                        1         6 Bit                     1
                        1                                   1
                        0                                   0
                        0                                   0                 False
                                                                              drops
 1.12.2005              Felix Naumann, VL Informationsintegration, WS 05/06
             Quelle: VL-Folien, Alfons Kemper, Uni Passau                     59
Rückblick
                                                              Site 1
   Techniken der verteilten                                        ⋈             Site 0
    Anfragebearbeitung
       Row Blocking                                                  receive              send
       Multicasts                                                                          ⋈
       Multithreading
                                                                           send   receive              S
       Partitionierung
   Semi-Join                                                            ID
       Basics                                                  R
       Reduzierung
       Mit Filter


    1.12.2005             Felix Naumann, VL Informationsintegration, WS 05/06                     60
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 422-
      469. (Link auf WWW)
     [Graefe93] Goetz Graefe: Query Evaluation Techniques for Large
      Databases. ACM Comput. Surv. 25(2): 73-170 (1993)
   Semijoin
     [BC81] Philip A. Bernstein, Dah-Ming W. Chiu: Using Semi-Joins
      to Solve Relational Queries. Journal of the ACM 28(1): 25-40
      (1981)


    1.12.2005         Felix Naumann, VL Informationsintegration, WS 05/06   61

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:3
posted:8/19/2011
language:German
pages:61