Folien

Werbung
Demaq Snakebite
Integration der IBM DB2 UDB 9.5 (Viper) als
Messagestore in das Demaq-Ausführungssystem
Vorstellung Diplomarbeit 30.05.2008
Dennis
Knochenwefel
CIICT
Proposal
Presentation 31.07.2007
Dennis Knochenwefel
1/20
Einleitung
„Ist die Demaq-Architektur robust gegenüber
einem Tausch von Natix durch DB2?“
robust (adj): “strong enough to withstand or
overcome intellectual challenges or adversity”
Referenzen:
CC
http://wordnet.princeton.edu/perl/webwn?s=robust
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
2/20
Übersicht
1. Warum Natix durch DB2 ersetzen?
2. Interessante Fragestellungen
3. Herangehensweise
4. Zukünftige Weiterentwicklungsmöglichkeiten
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
3/20
Demaq und XML
Referenzen:
Alex
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
4/20
Demaq und NATIX: Systemübersicht
Referenzen:
Alex
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
5/20
DB2 UDB und XML
pureXML in der IBM DB2 Datenbank:
• nativer XML datentyp
• Unterstützung von SQL/XML und XQuery
seit Version 9.5:
• Unterstützung der XQuery Update Facility:
• transform, insert, delete, replace, rename
• Komprimierung von XML Daten
• Schema validation
• XML Schema Repository
• Indizes auf einzelne Elemente / Attribute
was nicht geht:
• XML Daten nicht als plain String Abfragen (z.B. als DOMTree)
Referenzen:
http://www-306.ibm.com/software/data/db2/9/features.html
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0711sardana/index.html
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
6/20
Übersicht
1. Warum Natix durch DB2 ersetzen?
2. Interessante Fragestellungen
3. Herangehensweise
4. Zukünftige Weiterentwicklungsmöglichkeiten
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
7/20
Demaq und DB2 UDB:
Interessante Fragestellungen:
1. Wie lassen sich Warteschlangen auf ein relationales DBMS wie DB2
abbilden?
messages
id
message
+ simple
- min() teuer
1
2
…
dequeue:
„ Select message
from messages
where id=(select min(id) from messages) “
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
8/20
Demaq und DB2 UDB:
Interessante Fragestellungen:
1. Wie lassen sich Warteschlangen auf ein relationales DBMS wie DB2
abbilden?
Select message
from messages
where id=(select min(id)
+ view select
from messages)
günstig
messages
id
message
- update teuer
next_message_mview
id
message
1
2
…
1
dequeue:
„ Select id,message
from next_message_view “
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
9/20
Demaq und DB2 UDB:
Interessante Fragestellungen:
1. Wie lassen sich Warteschlangen auf ein relationales DBMS wie DB2
abbilden?
+ optimierte prepared statements
- unflexibel
messages
user-defined-function: dequeue()
id
Select message
from messages
where id=(select min(id)
from messages)
message
1
2
…
dequeue:
„ Select dequeue()
from SYSIBM.SYSDUMMY “
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
10/20
Demaq und DB2 UDB:
Interessante Fragestellungen:
1. Wie lassen sich Warteschlangen auf ein relationales DBMS wie DB2
abbilden?
messages
headpointer
id
message
head
+ select…
günstig
1
- update teuer
tailpointer
tail
1
2
…
2
dequeue:
„ Select message
from messages, headpointer
where id=head “
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
11/20
Demaq und DB2 UDB:
Regelauswertng
Queues
Interessante Fragestellungen:
1. Wie lassen sich Warteschlangen auf ein relationales DBMS wie DB2
abbilden?
2. Wie performant ist diese Abbildung im Vergleich zu einem nativen XMLDatenbanksystem wie NATIX?
3. Lässt sich die Regelauswertung mit der DB2 XQuery Engine umsetzen?
4. Lassen sich die Demaq spezifischen Funktionen (z.B. qs:queue())
als User Defined Functions in DB2 abbilden?
5. Wie performant ist die Regelausführung mit der DB2 XQuery Engine?
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
12/20
Übersicht
1. Warum Natix durch DB2 ersetzen?
2. Interessante Fragestellungen
3. Herangehensweise
4. Zukünftige Weiterentwicklungsmöglichkeiten
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
13/20
Demaq und DB2 UDB
Ziel:
Natix vollständig austauschbar machen und
durch DB2 ersetzen
Umsetzung:
Iterativ, d.h. in mehreren größeren Umstrukturierungsschritten
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
14/20
Demaq und DB2 UDB Schritt 1:
DB2
Schritt 1
DB2 Queues
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
15/20
Demaq und DB2 UDB Schritt 1:
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
16/20
Demaq und DB2 UDB Schritt 2:
DB2
Schritt 2
DB2 Queues
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
DB2 XQuery Engine
&
User Defined Functions
17/20
Übersicht
1. Warum Natix durch DB2 ersetzen?
2. Interessante Fragestellungen
3. Herangehensweise
4. Zukünftige Weiterentwicklungsmöglichkeiten
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
18/20
weitere Entwicklungsmöglichkeiten
Interessante Fragestellungen:
Kann man die Regelauswertung mit Triggern umsetzen?
Problem: Transaktionen,
Ausführung der resultierenden „Pending Action List“
Kann man vielleicht sogar die actions von db2 ausführen lassen
(enqueue als udf)?
Problem: Transaktionen,
synchrone anfragen mit demaq
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
19/20
_Fragen?
_Anregungen?
_Kritik?
Vorstellung Diplomarbeit 30.05.2008
Dennis Knochenwefel
20/20
Herunterladen