Logische Optimierung verteilter Anfragen

Transcription

Logische Optimierung verteilter Anfragen
Informationsintegration
Logische Optimierung verteilter
Anfragen
Ulf Leser
Wissensmanagement in der
Bioinformatik
Gestern - Heute
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
2
Minicon
[PL01]
• Idee
• Probleme beim BA machen vor allem Joins in der Benutzeranfrage
• Sind die in einem Plan?
• Kann man sie in einem Plan erzwingen?
• Werden die notwendigen Variablen exportiert?
• Diese Beobachtung nutzt MiniCon, um
• Kleinere Buckets zu bauen – manche Views kann man früh
auszuschließen
• Weniger Pläne aufzuzählen – die „Building Blocks“ werden größer
• Grundaufbau wie BA
• Buckets pro Literal der Query, partielle CM, UNION, …
• Aber im Grunde werden dann problematische Joins der Reihe nach
behandelt, nicht Literale
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
3
Kleinere Buckets
• Sei v ein View für Literal l mit partiellem CM h: l→k
• Wenn l in q einen Join über Variable X mit Literal l‘ macht,
und X in k nicht exportiert wird (also auch nicht in l)
•
Wenn !∃k‘∈v: Füge v nicht in Bl ein
• Der BA würde den einfügen
• Aber wir können den Join über X niemals herstellen
• „Vorausschau“
•
Wenn ∃k‘∈v und der Join über X ist nicht in v: Füge v nicht in Bl ein
• Der BA würde den einfügen
• Aber wieder – der Join kann in keinem Plan mit v hergestellt werden
•
Sonst: Füge v in Bucket Bl ein
• Merke außerdem das Literal k‘, das mit k über X gejoined wird
• Wenn v X nicht exportiert, müssen k und k‘ in jedem Plan mit v von v abgedeckt
werden
• Das muss beim Aufzählen berücksichtigt werden
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
4
Bewertung
• Wenn alle Variable exportiert werden, macht
Minicon das gleiche wie der BA
• Minicon gilt als derzeit schnellster AQUV
Algorithmus
• Problem: Welche Anfragen soll man zum Messen
benutzen?
•
•
•
•
Was ist ein Average Case für Anfragen?
Chain queries: r1(X…), r2(X…Y…), r3( Y…Z…), …
Star queries: r1(X…), r2(X…), r3(X…), …
Complete queries: r1(X,Y,Z…), r2(X,Y,Z…), r3(X,Y,Z…), …
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
5
Inverse Rules
• Gänzlich andere Herangehensweise
• Beobachtung
• Jeder View auf das globale Schema „liefert“ Informationen für jede
Relation im View
• Wir fassen diese Informationen in einer Regel pro Literal jedes
Views zusammen
• Kopf der Regel ist das Literal
• Rumpf der Regel ist der Kopf des Views
• Inverse Rules –Views werden zu Regeln umgedreht
• Beispiel:
V3(F,H) :- cites(F,G),cites(G,H),sametopic(F,G)
• cites(F,?) :- V3(F,H)
• cites(?,H) :- V3(F,H)
• sametopic(F,?) :- V3(F,H)
• Problem: Nicht-exportierte Variable und Joins
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
6
Planung mit Inverse Rules
• Wir interpretieren die Regeln als „externe“
Datalog-Regeln
• Die Instantiierungen (Ground-Fakten) liegen in den Quellen
• Durch Ausführen einer Regel können wir sie berechnen
• Die Anfrage q können wir einfach als Programm
auf diesen Regeln laufen lassen
• Der Rest ist PROLOG / DATALOG
• Unifikation der Variablen und Konstanten
• Gleiche Skolemterme dürfen unifiziert werden
• Skolemterme dürfen nicht als Ergebnis zurückgegeben werden
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
7
Bewertung
• Erzeugt in polynomialer Zeit ein DatalogProgramm mit polynomial vielen Regeln
• Wo ist unsere exponentielle Komplexität?
• Der Ableitungsbaum ist exponentiell groß
• Jedes Blatt im Ausführungsbaum entspricht einem Plan
• Das Programm ist eine kompakte Repräsentation exponentiell vieler
Anfragepläne
• Ausführung und Planung sind verschränkt
• Man führt erst schon Anfragen aus, obwohl man die Tupel am
Ende unter Umständen nicht braucht (z.B. V4)
• Regeln werden in verschiedenen Ästen des Ableitungsbaums
mehrmals ausgeführt - Caching
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
8
Problems with the BA
• Expensive
• Planning: Exponential number of potential plans
• Execution: Potentially exponential number of queries
Who needs all plans?
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
9
Our solution: 1. Preparation
Annotate correspondences with information quality:
Mediator
(90,0.5...)
(46,0.7...)
(60,0.3...)
(99,0.5...)
(12,0.1...)
(23,0...)
Wrapper
Wrapper
Wrapper
Data source
Data source
Data source
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
10
2. Source selection
Use IQ scores to remove the worst sources:
Mediator
(90,0.1...)
(46,0.2...)
(60,0.3...)
(99,0.5...)
(12,0.1...)
(23,0...)
Wrapper
Wrapper
Wrapper
Data source
Data source
Data source
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
11
3. Query planning
Compute all plans:
User
query q
p1 := q1,q2,q3,q4,...
Mediator
p2 := q3,q5,q6,q7,...
p3 := q1,q3,q5,q9,...
etc.
Wrapper
Wrapper
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
12
4. Plan selection
Use IQ scores to find the best plans:
Mediator
(90,0.1...)
(46,0.2...)
Wrapper
(60,0.3...)
(99,0.5...)
p1 := q1,q2,q3,q4,...
3
p2 := q3,q5,q6,q7,...
1
p3 := q1,q3,q5,q9,...
2
etc.
Wrapper
IQ(p1) = (60,0.3...)
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
(46,0.2...)
...
13
IQ criteria can be ...
• Source-specific • Corresp.-specific • Attribute-specific
•
•
•
•
Understandability
Reputation
Reliability
Timeliness
Phase 1
Source
selection
•
•
•
•
•
•
Availability
Price
Repr. consistency
Response time
Accuracy
Relevancy
Phase 2
Query
planning
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
- Completeness
- Amount
Phase 3
Plan
selection
14
Phase 3: Plan selection
• Goal: Find best N plans
• Three steps for each plan
1. Determine attribute-specific IQ scores
⇒ Complete IQ vector per view
2. Aggregate the IQ scores along the plan
⇒ Complete IQ vector per plan
3. Find overall IQ score
⇒ IQ scalar per plan
Query
planning
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
Output
Quality-ranked
plans
Phase 3
Plan
selection
15
Step 2: Aggregate IQ scores
Merge functions:
•
•
•
•
•
Availability:
Price:
Response time:
Completeness:
...
*
+
max
Sylvester
Plan P3
(89.35,0,1,1,99.8,28.8,76.06,3)
merge
(94.05,0,1,1,99.85,48,54.86,0)
merge
v6
(95,0,0.7,1,99.95,60,48.2,0)
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
v7
(95,0,0.7,1,99.95,60,38,3)
v2
(99,0,1,0.2,99.9,80,52.8,0)
16
Discussion
• Fine-grained IQ score assignments
• per source, per query and per attribute
• selection and classification of criteria
• Quality as “cost”
• different levels
• merge functions
• Improvements
• Branch & bound algorithm: Prune growing plans when they become
too bad (compared to the current top N plans)
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
17
LaV – Anwendungen
• Datenintegration
• Datenquellen als Sichten auf globales (Mediator) Schema
• Anfrageoptimierung
• Materialisierte Sichten auf Datenbankschema
• Datawarehouse Design
• Materialisierte Sichten auf Warehouse-Schema
• Semantisches Caching
• Materialisierte Daten beim Client
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
18
Inhalt dieser Vorlesung
• Optimierungsziele in der Informationsintegration
• Logische Optimierung
• Plan Minimierung
• Multiple Query Optimization
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
19
Klassische Anfrageoptimierung
• Zentrale relationale Datenbanken
•
•
•
Eine Anfrage – viele Anfragepläne
Alle Anfragepläne berechnen dasselbe Ergebnis
Optimierung: Berechne dieses Ergebnis in möglichst kurzer Zeit
• Methoden
•
•
•
•
•
Algebraische Umformungen
Pushen von Selektionen und Projektionen
Access path selection (Indexe)
Join-Methoden, Sortierung
Join-Order durch dynamische Programmierung
• Heuristiken
•
•
•
•
Zeit hängt im wesentlichen vom IO Zugriff ab
IO-Zugriffskosten hängen von der Datenmenge ab
Also: Minimiere die insgesamt zu bewegende Datenmenge
(Was ignorieren wir dabei alles?)
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
20
Optimierung in der Informationsintegration
• Unterschiede zu zentralen RDBMS
1. Viele heterogene Quellen – wollen wir immer alle benutzen?
2. Netzwerkzugriff – Daten kommen nicht von der Platte, sondern
über das Netz
3. Beschränkte, technisch heterogene Quellen
4. Zwei Stufen: Optimierung in der Integrationsschicht, Optimierung
in jeder Quelle
• Unterschiede zu verteilten Datenbanken
•
•
•
•
Verteilte DB können Verteilung optimieren (Data Placement)
Hier: Verteilung und Redundanz ist unkontrolliert
Hier: Oftmals keine (guten) Statistiken verfügbar
Hier: Datenbestände und Quellen ändern sich häufig
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
21
Viele Quellen
• Viele Quellen
• Lange Wartezeiten
• Quellen fallen aus – Time-Outs & Replanning
• Hohe Kosten, viele Verbindungen
• Quellen überlappen extensional und intensional
• Für Unions: Eine Quelle fragen reicht
• Für Joins: Ohne Überlappung ist das Ergebnis leer
• Ergebnisumfang und –güte wächst i.A. nicht linear
mit der Menge der benutzen Quellen
• Umfang: Menge Tupel / Menge Attribute / Menge nicht-null Werte
• Güte: Wenig Fehler, vollständige Ergebnisse
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
22
Trade-Off
• Abwägung
Ergebniskosten / Wartezeit
• Kosteneinsatz pro
• Ergebnisverbesserung
• Problem
Ergebnisgüte
• Man kann meistens beides
nur schätzen
• Alternative Optimierungsziele
Anzahl Quellen
• Berechne alles in minimaler Zeit
• Berechne alles mit der minimalen Anzahl an Anfragen
• Berechne alles mit der minimalen Menge an zu übertragenden Daten
• Finde die besten k Pläne
• Finde die k Pläne, die zusammen das beste Ergebnis liefern
• Benötigt Abschätzungen über die ext. Überlappung zwischen Plänen
• Finde die Pläne, die das beste Ergebnis liefern zu max. Kosten c
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
23
Netzwerkzugriff
• Kostenmodelle müssen beinhalten
• Kosten für den Aufbau der Verbindung (Latenzzeit)
• Finden der Quellen im Netz (DNS etc.)
• Quelle erzeugt Prozess, reserviert Puffer etc.
• Kosten für den Datentransport (möglicher versus realer Durchsatz)
• Daten kommen bursty – schwierig für Pipelineing
• Kosten für die Berechnung der Daten in der Quelle
• Kosten für die Nachbearbeitung der Daten im Mediator
• Eventuell Koordinationskosten zwischen Quellen
• Konkrete Kosten hängen vom Typ der Quelle ab
• Datenbankserver: Prozess aufbauen
• Webdatenquelle: HTTP Verarbeitung, CGI Skript, …
• Legacy Datenquelle: Programm starten, Report generieren, aus
Datei lesen
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
24
Beschränkte Quellen
• Quellen können (oder wollen) nicht alles, was sich der
Mediator wünscht
•
•
•
•
Ausführungsautonomie
Pushen von Operationen nicht möglich
Pipelining nicht möglich (Webseiten, Webservices)
…
• Muss bei der Optimierung beachtet werden
•
Sind erzeugte Ausführungspläne überhaupt ausführbar?
• Zum Teil steckt das in den Korrespondenzen
•
•
•
Die lokale Anfrage muss laut Definition ausführbar sein
Das ist immer eine Fall-Back Position
Aber Potential geht verloren (z.B: Pushen eines Joins zu einer Quelle)
• Spezielles Problem: Binding Pattern (später)
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
25
Zwei-stufige Optimierung
• Mediator braucht Kenntnisse
über Quellen
•
•
Globale Statistiken
Datenbestand
• Insb. für den Vergleich von Quellen
•
•
Selektivität, Verteilung
Funktionalität
• Lokale Anfragen werden noch
mal optimiert
•
•
•
•
Quelle führt lokale Statistiken
Bei Abweichungen werden die globalen
Schätzungen nicht erreicht
Neuplanung während der Ausführung
Inline-Anpassung globaler Statistiken
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
26
Inhalt dieser Vorlesung
• Optimierungsziele in der Informationsintegration
• Logische Optimierung
• Plan Minimierung
• Multiple Query Optimization
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
27
Globale Anfrageoptimierung
• Zur Erinnerung
• result(q) = ∪ result(p)
= p1 ∪ p2 ∪ … ∪ pn
(v11 ⋈ v12 ⋈ … ⋈ v1n) ∪
(v21 ⋈ v22 ⋈ … ⋈ v2n) ∪
… ∪
(vm1 ⋈ vm2 ⋈ … ⋈ vmn)
• Die vij sind idR nicht unterschiedlich, sondern Views
kommen öfters vor
• Globale Optimierung
•
•
•
Finde die minimale Menge von Ausführungen von v‘s, die result(q)
berechnet
Optimiert alle Anfragepläne auf einmal
Optimiert die disjunktive Normalform von result(q)
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
28
Techniken
• Redundante Views in Anfragepläne finden
• Anfrageminimierung
• Klassisches DB Problem
• Versuche, Views aus dem Plan zu entfernen und beweise
Containment/ Äquivalenz der Pläne
• Redundante Pläne entfernen
• Pläne, die nichts neues zum Ergebnis beitragen können
• Gesamtzahl von Viewausführungen minimieren
• Betrachte Teilpläne
• Finde und entferne doppelte Teilpläne
• Multiple Query Optimization
• Caching
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
29
Redundante Anfragepläne
• Definition
Sei q eine Benutzeranfrage und P die Menge aller
semantisch korrekten Anfragepläne für q. Ein Plan
p∈P ist redundant, wenn
U result (k ) ⊆ U result (k )
k∈P
k∈P \ p
• Bemerkung
• Offensichtlich tragen redundante Pläne nicht zum Ergebnis bei
• Die können wir also ignorieren
• Erste Idee: p ist redundant, wenn ∃p‘∈P: p⊆p‘
• Was heißt denn überhaupt: p⊆p‘ ?
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
30
Wrapperanfragen analysieren
• Beispiel
•
•
•
v1: film(T,R) :- doku(T,R)
v2: film(T,R) :- spielfilm(T,R)
q: film(T,R)
•
p1≡p2, aber beide sollten zur Beantwortung von q benutzt werden
• Die lokalen Anfragen der Korrespondenzen sind gefragt
• Lemma
Sei q eine Benutzeranfrage und p1, p2 zwei Anfragepläne
für q. Sei loc(p1) bzw. loc(p2) die Expansion von p1, p2 mit
den jeweiligen Wrapperqueries. Dann gilt
p1 ⊆ p2
gdw. loc ( p1 ) ⊆ loc ( p2 )
• Bemerkung
•
•
Relationen in loc() sollten mit der Quelle gepräfixed werden (name space)
Beweis: einfach
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
31
Beispiel
• Beispiel
•
•
•
•
•
v1: film(T,R) :- doku(T,R)
v2: film(T,R), reg(R,N) :- doku(T,R), reg(R,N)
q: film(T,R)
loc(v1) = film(T,R) :- doku(T,R)
loc(v2) = film(T,R) :- doku(T,R), reg(R,N)
• Damit ist p2⊆p1, p2 ist redundant
• Ursachen für das Auftreten redundanter Pläne
• Überlappende bzw. enthaltene oder redundante Korrespondenzen
• Durch Anfrageplanung erzeugt
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
32
Redundante Pläne entfernen
• Lemma
Sei q eine Benutzeranfrage und p1, p2 zwei
Anfragepläne für q. Wenn p1⊆p2, dann ist p1
redundant.
• Bemerkung
• Das ist nur eine hinreichende, aber keine notwendige Bedingung
• I.A. können wir aber keine Aussagen über die tatsächliche
Extension von Wrapperanfragen machen
• Korrespondenzen beschreiben ja nur ihre Intension
• Damit können wir redundante Pläne entfernen
• Paarweise Containment testen
• Wie finden wir dabei am schnellsten überflüssige Pläne?
• Offene Frage
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
33
Inhalt dieser Vorlesung
• Optimierungsziele in der Informationsintegration
• Logische Optimierung
• Plan Minimierung
• Multiple Query Optimization
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
34
Multiple Query Optimization
• Redundant von Plänen entfernt nur ganze Pläne
• Aber verschiedene Pläne können durchaus auch dieselben
Views benutzen
• In dem Fall kann man sich manchmal die Ausführung von
Teilplänen sparen
• Multiple Query Optimization MQO (allgemein)
•
•
•
•
Gegeben eine Menge von Queries Q
MQO sucht nach common subexpressions (gleichen Teilanfragen)
Diese werden nur einmal ausgeführt
Queries in Q werden umgeschrieben, um dieses Ergebnis zu benutzen
• MQO ist nicht Standard in RDBMS
• In unserem Fall: „common subexpr.“ = gleiche Views
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
35
Der einfache Fall
• Wenn wir weder Projektionen noch Selektionen noch Joins
pushen wollen, ist das Problem einfach
•
•
•
•
Jeder View, der mehrmals vorkommt, muss nur einmal ausgeführt werden
Alle weiteren Ausführungen benutzen dieses Ergebnis
Das kann man in der Optimierungsphase feststellen oder …
Als Cache betrachten (konzeptionell einfacher)
• Beispiel
•
•
•
•
•
•
v1: film1(T,R) :- doku(T,R)
v2: film1(T,R) :- spielfilm(T,R)
v3: reg(R,N) :- reg(R,N)
q: film(T,R), reg(R,N)
p1: v1 ⋈ v3 = film1(T,R),reg(R,N)
p2: v2 ⋈ v3 = film2(T,R),reg(R,N)
•
•
Kein Plan ist redundant
v3 ist doppelt und muss nur einmal ausgeführt werden
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
36
Kompliziertere Fälle
• Beispiel – aber wir können den Join pushen
•
•
•
•
•
•
v1: film1(T,R) :- doku(T,R)
v2: film1(T,R) :- spielfilm(T,R)
v3: reg(R,N) :- reg(R,N)
q: film(T,R), reg(R,N)
p1: v1 ⋈ v3 = film1(T,R),reg(R,N)
p2: v2 ⋈ v3 = film2(T,R),reg(R,N)
• Wenn wir v3 nur einmal ausführen wollen, müssen wir alle Tupel zum
Mediator bewegen
• Alternative
•
•
•
Erst v1 ausführen und Werte für R an v3 pushen
Da v1 und v2 unterschiedliche Wertemengen berechnen werden, muss v3 auch
mehrmals aufgerufen werden
Dabei kann man R(v1) \ R(v2) Aufrufe sparen
• Was ist schneller? Hängt davon ab …
• Im allgemeinen heißt „gleicher View“ also nicht, dass wir uns eine
Ausführung komplett sparen können
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
37
Vorberechnung
• Einige Arbeit können wir vorab leisten
• Lemma
Eine Korrespondenz k: v⊆w ist redundant, wenn es eine
andere Korrespondenz k‘: v‘⊆w‘ gibt, für die gilt
v ≡v‘ ∧ w⊆w‘ ∧ exp(v)⊆exp(w)
• Bemerkung
•
•
Redundante Korrespondenzen kann man von vorneherein wegwerfen
Nur Containment reicht nicht
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
38
Blüten
• Das Streichen von redundanten Teilplänen kann
auch kontraproduktiv sein
• Beispiel
• v1: parentOf(P,C) :- hasChild(P, C)
• q: opaPeter(G) :- parentOf(G,P),parentOf(P, „peter‘)
• p1: v1 ⋈ v1 = hasChild(G,P),hasChild(P,‘peter‘)
• Die zweite Anfrage ist in der ersten enthalten
• Also nur die Allgemeinere ausführen: hasChild(G,P), ohne Bindung
• Das ist sicher viel teurer als beide ausführen
• Weil das zweite Literal die höhere Selektivität hat, dieses zuerst
• Dann die Bindung für P in die zweite Ausführung von v pushen
• MQO muss Teil einer kostenbasierten Opt. sein
Ulf Leser: Informationsintegration, Wintersemester 2006/2007
39