40
Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

Embed Size (px)

Citation preview

Page 1: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

Interoperable Informationssysteme - 1Klemens Böhm

Systeme 4: Query Processing in

heterogenen Umgebungen

Page 2: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

Interoperable Informationssysteme - 2Klemens Böhm

Einleitung

Gliederung: Implementierung, Infrastruktur.

Einleitung

Implement.

Infrastruktur

Page 3: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 4: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 5: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 6: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

Interoperable Informationssysteme - 6Klemens Böhm

Illustration Nested-Loop Join, Equijoin

Relation A Relation B

Join-Attribute

2828

28

Einleitung

Implement.

- Motivation

- Join- Implement.

Infrastruktur

Page 7: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 8: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 9: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 10: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 11: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 12: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 13: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 14: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 15: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 16: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 17: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 18: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 19: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 20: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 21: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 22: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 23: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 24: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 25: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 26: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 27: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 28: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 29: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 30: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 31: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 32: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 33: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 34: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 35: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 36: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 37: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 38: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 39: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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

Page 40: Interoperable Informationssysteme - 1 Klemens Böhm Systeme 4: Query Processing in heterogenen Umgebungen

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