Upload
willerich-stieglitz
View
105
Download
1
Embed Size (px)
Citation preview
Interoperable Informationssysteme - 1Klemens Böhm
Systeme 4: Query Processing in
heterogenen Umgebungen
Interoperable Informationssysteme - 2Klemens Böhm
Einleitung
Gliederung: Implementierung, Infrastruktur.
Einleitung
Implement.
Infrastruktur
Interoperable Informationssysteme - 3Klemens Böhm
Adaptives Query Processing - Motivation
Queryoptimierung, wie bisher vorgestellt, erfordert genaue Kosteninformation.
Derartige Information ist, insbesondere in verteilten Systemen, oft nicht verfügbar, bzw. können die Werte sich im Laufe der Zeit ändern.
Noch genauere Kostenbetrachtung: schwierig,löst das zweite Problem nicht.
Alternatives Paradigma: Adaptivität, d.h. Queryplan passt sich zur Laufzeit an veränderte Gegebenheiten an.
Implementierung der Query-Operatoren muss erweitert werden.
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 4Klemens Böhm
First-Few Queries, Top-n Queries Top-n Query – man ist nur
an den ersten n Tupeln interessiert. Oft merkt man erst während Queryevaluierung,
nach Inspektion der ersten Tupel, dass man den Rest nicht sehen will.
Nicht nur Antwortzeit, auch Zeit bis zur Ausgabe der ersten Tupel – wichtiges Kriterium für Query Planning.
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 5Klemens Böhm
Eigenschaften des Join-Operators Tupel von zwei Streams
werden miteinander verknüpft, z.B. Equijoin. Varianten (auf Ebene der Implementierung):
Nested-Loop, Sort-Merge, Hash-basiert.
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 6Klemens Böhm
Illustration Nested-Loop Join, Equijoin
Relation A Relation B
Join-Attribute
2828
28
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 7Klemens Böhm
Beispiel Queryplan:
Ist unter den gegebenen Umständen möglicherweise nicht gut, besser wäre vielleicht
Ziel: ‘Umschalten’ auf besseren Plan, sobald klar, dass aktueller Plan nicht optimal.
Im folgenden zunächst: Vertauschung Operatorreihenfolge eines Joins.
A B
C
B C
A
Situation:„Alles wartet
auf A.“
„B C liefert vielleichtmit ähnlicher Rate wie A“
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 8Klemens Böhm
Vertauschen der Operatorreihenfolge beim (Nested Loop-)Join
Illustration:
“Moments of Symmetry” – Join-Operatoren können vertauscht werden.
Äusserer Loop beginnt an Position in der Relation.
2828
28
Relation A Relation B . . . . . . . . . . . . . . . . . . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Relation B
Rela-tion A
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 9Klemens Böhm
Vertauschung Operatorreihenfolge Man stellt fest, dass Lesen von B
teurer als erwartet. First-Few Queries.
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 10Klemens Böhm
Hash Join Standardvariante hat keine
“Moments of Symmetry”. Aufbauen der Hash-Tabelle nicht nur
für eine Relation, sondern für beide. Illustration:
Zwei Massnahmen bei neuem Tupel:1. Vergleich mit Hash-Tabelle
für andere Relation,2. Eintrag in Hash-Tabelle (für diese Relation).
Mögliches Problem: Speicherplatz reicht nicht für beide Hash-Tabellen.
2828
28
Relation A Relation B
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 11Klemens Böhm
‘Umschalten’ auf anderen Plan
Ist zu jedem ‘Moment of Symmetry’ möglich. Illustration für drei Relationen:
C B
A
Einleitung
Implement.
- Motivation
- Join- Implement.
Infrastruktur
Interoperable Informationssysteme - 12Klemens Böhm
Infrastruktur für Information Integration
Ziel: Implementierung unserer Referenzarchitektur unter Verwendung von Standard-Werkzeugen.
CORBA und die Common Object Services Specification, insbesondere der CORBA Object Query Service (OQS), bieten sich an.
Gliederung im folgenden: Alternativen für den Zugriff
auf persistente Daten mit CORBA (auch OQS) CORBA Performance-Flaschenhälse Harmony: Unsere Implementierung
des CORBA Object Query Service Evaluierung Schlussbemerkungen
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 13Klemens Böhm
Three-Tier Architektur: Client/Server/Middleware
Middleware: Software Layer zwischen Client und Server Versteckt Verteilung und Heterogenität:
Location und Implementation Transparency, Services auf Systemebene.
Wichtige Standards: CORBA DCOM
MiddlewareClient
Program
ServerProgram
ServerProgram
ServerProgram(s)Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 14Klemens Böhm
CORBA – Beispiel für Interface
interface Customer { readonly attribute long Key; readonly attribute string Name; readonly attribute string Address; readonly attribute nation Nation; readonly attribute string Phone; readonly attribute float AccountBalance; readonly attribute market MSegmnt; readonly attribute string Comment; sequence<Order> orders(); };interface CIS { Customer access(in string name); sequence<string> addrs (in string mseg); };
Schnittstellendefinition
enum nation { Algeria, Argentina, ... };enum market { Automobile,
Building, ... };struct Order {
long OrderId;string Date;float Price;string Priority;char Status;string Clerk; string Comment; };
Datentypdefinition
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 15Klemens Böhm
CORBA - Konzepte/Konstrukte/Primitive
Anwender spezifiziert Signatur der Objekte in sog. ‘Interface Definition Language’ (IDL);IDL ist CORBA-spezifische Sprache, keine Programmiersprache.
Compiler generiert Skeletons und Stubs: Skeletons: Methodensignatur
in der Programmiersprache, in der die Methoden implementiert werden,
Stubs: Proxies in Client-Programmiersprache.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 16Klemens Böhm
CORBA - Architektur
Server
Source
Client
Server
Source
Server
Source
ORB
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 17Klemens Böhm
Verwandte Arbeiten
Query Processing in heterogenen Umgebungen:
DISCO, Verso (INRIA) Garlic (IBM Almaden) TSIMMIS (Stanford) OLE/db (Redmond)
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 18Klemens Böhm
Zugriff auf persistente Daten in einer CORBA Umgebung
Wie greift man über CORBA auf persistente Daten zu?
1. Enkapsulierung als CORBA Objekt,Persistenz via Object-Oriented Database Adapter (OODA)
– Grundidee: OODB-Objekte über CORBA ansprechen,
– kompliziert, ineffizient (zuviele Aufrufe für ein Objekt),
Persistent Object Service (POS) oder ORB-spezifische Mechanismen.
2. Deklarativer Zugriff,Object Query Service (OQS)
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 19Klemens Böhm
CORBA Object Query Service
Objekttypen des OQS gemäss der CORBA Common Object Service SpecificationCORBA OQS spezifiziert im wesentlichen Interface und Struktur der Ergebnissesowie die Tatsache, dass Queryevaluierungmit Iteratorkonzept.Harmony hat diese Definitionen intern wiederverwendet, leichte Abweichungen von der OQS-Spezifikation.
QueryEvaluator
ql_type : QLType
evaluate()
Collection
cardinality : long
create_iterator()
Iterator
next() reset()
iteratesCollectionFactory
create()
creates
QueryableCollectionFactory
creates
creates
QueryManager
create()
Query
prepare() execute() get_result()
QueryableCollection
create()
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 20Klemens Böhm
CORBA Object Query Service
QueryEvaluator
ql_type : QLType
evaluate()
Collection
cardinality : long
create_iterator()
Iterator
next() reset()
iteratesCollectionFactory
create()
creates
QueryableCollectionFactory
creates
creates
QueryManager
create()
Query
prepare() execute() get_result()
QueryableCollection
create()
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
‚QueryFactory‘
z.B. Parsen der Query,
Queryverarb.
kein Query-Processing
Interoperable Informationssysteme - 21Klemens Böhm
CORBA Object Query Service Methode evaluate() ist zentral. Implizite vs. explizite Kollektionen
(implizite Kollektionen materialisieren ihre Elemente).
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 22Klemens Böhm
CORBA - Factories CORBA-Factories: Objekte, die
Konstruktor-Methode für eine Klasse implementieren.
Konvention bei Namensgebung:“<Klassenname>Factory”
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 23Klemens Böhm
Probleme beim Datenaustausch mit CORBA Methodenaufrufen
Synchrones Kommunikationsmodell– ist Standard mit CORBA,
Alternative wäre: Message-basiertes Interface.Aufwendig (Antwortschnittstelle publizieren).
Marshalling/Demarshalling mit jedem Methodenaufruf,
Hohe Latency, d.h. hohe Fixkosten unabhängig vom Datenvolumen;
Folgerung: Transport vieler Datenobjekte teuer.
Object Request Broker
Request
Answer
Client
CIS->get_customer(“Ebner”)
ProxyObject
Server
get_customer(char* n){ …}
CIS
ObjectSkeleton
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 24Klemens Böhm
Illustration des Problems
CORBA Client CORBA Server Storage System
get_customer(“Ebner”)
EXEC SQL FETCH … INTO …;
... ... ...
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 25Klemens Böhm
Harmony: Unsere Implementierung des CORBA OQS
Verteilte Query Engine basierend auf der CORBA OQS Spezifikation,d.h. Schnittstellen von OQS
Deklarativer Zugriff auf Datenmengen, Ermöglicht Queries über mehrere Kollektionen, Kann auf heterogene Repositories zugreifen, Ergänzt CORBA so,
dass o.g. Features möglich sind.
Im folgenden: Querypläne in verteilter, heterogener Umgebung
(weitgehend unabhängig von Harmony; vier Folien) Lösung der CORBA-Performance-Probleme
mit Harmony (eine Folie) Rolle der OQS-Schnittstellenspezifikation, Architektur (eine Folie), Nicht: Queryplanerzeugung.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 26Klemens Böhm
Beispiel-Query
Query über mehrere heterogene Repositories:
SELECT customer.NameFROM line IN OrderFile, customer IN Customers, order IN OrdersWHERE line.Num[0] = order.OrderKey AND customer.CustKey = order.CustKey
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 27Klemens Böhm
Möglicher Plan
OrdersCustomersOrderFile
Query Algebra
Projektion, Selektion, Sortierung, Join, Union, …
Ausführung:Pipelining zwischen den Operatoren
Dieser Plan legt nicht fest, wo (von welcher Komponente)welcher Operator ausgeführt wird. Diese Information muss inverteilter Umgebung Teil des Plans sein.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 28Klemens Böhm
Erweiterung der Query Algebra
Nicht speziell für Harmony/CORBA,andere Infrastrukturen funktionieren genauso, z.B. Garlic.
Meta-Operatoren: Modifizieren den Data Stream nicht, haben aber irgendeine Kontrollfunktion.
Zugriff auf heterogene Repositories:
wrap Meta-Operator () Abstrahiert von zugrundeliegenden Storage Systemen, stellt einfaches scan/iterator Interface zur Verfügung, übersetzt Subquery in lokale Querysprache (wenn
entsprechende Queryevaluierungskapazitäten vorhanden),
d.h. hat als Parameter ID einer Source, übersetzt das Resultat in das Typsystem von Harmony, heisst push-down in Garlic.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 29Klemens Böhm
Erweiterter Execution Plan
OrdersCustomersOrderFile
FileSys
RDBMS
OQS
RDBMS
File System
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 30Klemens Böhm
Harmony: Integration von Sourcen
Wrapper - Aufgaben: Verwalten der Verbindungen zum
Repository, Umwandlung
von OQS-Queries in lokale Querysprache, Konvertierung der Ergebnisse.
Drei Objekte müssen implementiert werden: WrapperFactory, QueryableCollection: implementiert wrap, Iterator: eigentlicher Datenzugriff.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 31Klemens Böhm
Send/Receive Meta-Operatoren
FileSys RDBMS
Client
receive
send
... ...
Lösung der Performance Probleme:send /receive Meta-Operatoren Bulk Transfer:
Daten werden in Chunks ausgetauscht, kein wirklicher Dataflow,Granularität frei definierbar,
Intra-Query Parallelism:send generiert nächste Menge von Resultaten, während receive parallel arbeitet.
Output von send/receive sind explizite Kollektion, sonst sind Kollektionen implizit.
OQSEinleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 32Klemens Böhm
Zusammenhang zwischen Query Operationen u. QueryableCollections
Oracle
OrderFile
CustomersOrders
Client
Realisierung: Baum von Queryable Collections
ProjectionQueryableCollection
Bind-JoinQueryableCollection
FileSysWrapperQueryableCollection
OracleWrapper
QueryableCollection
OQS
OrdersCustomersOrderFile
FileSys RDBMS
Logische Sicht: Execution Plan
Client
OQS
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 33Klemens Böhm
Erläuterungen Jedes Zwischenergebnis ist eine
QueryableCollection, jeder Operator steht für eine entsprechende Query.
Wrapper ist Teil der Implementierung, er bildet entsprechende Teilquery z.B. auf SQL ab.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 34Klemens Böhm
Systemarchitektur
Common Object Services
...
MetaDiction.
OQS...
Oracle
OQS
OQS
FileSys
OQS
Index
OQS
O2
OQS
Name
ORB
Andere Dienste,z.B. Name Service
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 35Klemens Böhm
Evaluierung Alternativen
Harmony (deklarative Anfragen) CIS – spezifisches,
mit CORBA implementiertes “Customer Information System”
ESQL/C Programm Kriterien
Runtime Performance für ein Repository
Ressourcenverbrauch Development Complexity Heterogene Queryevaluierung
(ob überhaupt möglich, und mit welcher Performance, da wir Joins i.a. selbst ausführen)
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 36Klemens Böhm
Klassifizierung des Datenzugriffs in Business Environments
Point Data Access (single data item)
Context Data Access (small set of items)
Bulk Data Access (large data set)
Horizontal Market (simple objects)
product data recent orders address list
Vertical Market (complex objects)
CAD multimedia information
series of X-ray images
medical information of all patients
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 37Klemens Böhm
Evaluierung - Runtime Performance
0%
50%
100%
150%
200%
ESQL/C CIS Harmony
0%
50%
100%
150%
200%
ESQL/C CIS Harmony
0%
50%
100%
150%
200%
ESQL/C CIS Harmony
Point Data Access ESQL/C am
schnellsten CIS besser als
Harmony Context Data Access
ESQL/C am schnellsten
Harmony schneller als CIS
Bulk Data Access ESQL/C am
schnellsten Harmony schneller
als CIS
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 38Klemens Böhm
Evaluation - Ressourcenverbrauch
Memory Consumption
0
1020
3040
50
6070
8090
100
100.000 1.000.000
CIS
ESQL/C
Harmony
#Values
MBytes
Konstante Memory-Auslastung mit ESQL/C und Harmony
CIS-spezifische CORBA Objekte: Memory-Auslastung steigt monoton mit der Ergebnisgrösse.
Folgerung: Marshalling verträgt sich nicht mit grossen Datenmengen.
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 39Klemens Böhm
Evaluation - Development Complexity
Point Data Access
Context Data Access
Bulk Data Access
Harmony Eine Query Eine Query Eine Query CIS 81 LOC 85 LOC 83 LOC ESQL/C 120 LOC 168 LOC 144 LOC
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss
Interoperable Informationssysteme - 40Klemens Böhm
Oracle
OrderFile
CustomersOrders
Client
ProjectionQueryableCollection
Bind-JoinQueryableCollection
FileSysWrapperQueryableCollection
OracleWrapper
QueryableCollection
OQS
Schlussbemerkungen: Verbesserungen made in Harmony
Erhöhte Flexibilität Queries über
mehrere Kollektionen Heterogene
Repositories
Vermeidung der LatencyBulk Data Transfer
Asynchrone Methodenaufrufe Intra-Query Parallelism
Niedriger Ressourcenverbrauch Dataflow-Query Evaluierung
Einleitung
Implement.
Infrastruktur
- Einleitung
- CORBA & Persistenz
- CORBA – Probleme
- Harmony
- Eval.
- Schluss