xpath-awarechunking of...
TRANSCRIPT
5. März 2003Uni Erlangen
BTW 2003 - Leipzig
Technische Universität DresdenFakultät InformatikInstitut für Systemarchitektur (Datenbanken)
Universität Erlangen-NürnbergInstitut für InformatikLehrstuhl für Datenbanksysteme
Florian Irmert
XPath-Aware Chunkingof XML-Documents
Wolfgang Lehner
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
2Konsumenten
PDA
SMS
Web
Beispielszenario
Produzenten
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
3
Nachfragegetriebene Informationsversorgung
KonsumentenProduzenten
Daten
AnfrageInformation
Ergebnis
PDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
4
Angebotsgetriebene Informationsversorgung
KonsumentenProduzenten
Anfragen
Anfragen
PDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
5
Angebotsgetriebene Informationsversorgung
KonsumentenProduzenten
Anfragen
Ergebnisse
Information
PDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
6
Angebotsgetriebene Informationsversorgung
KonsumentenProduzenten
Anfragen
Information
Ergebnisse
PDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
8
Angebotsgetriebene Informationsversorgung
KonsumentenProduzenten
Anfragen
Publish/SubscribePDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
9
Publish/Subscribe: Dienstprimitive
PUBLISH NOTIFY
REGISTER
KonsumentenProduzenten
SUBSCRIBE
PDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
10
PubScribe: Dienstprimitive
SUBSCRIBE
PUBLISH NOTIFY
REGISTER
KonsumentenProduzenten
XML
XML XML
XPath
PDA
SMS
Web
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
11
/buch/titel
XPath-Ausdrücke auf XML-Dokumenten
<buch><titel>
Harry Potter</titel><kapitel nummer=’1’>
<ueberschrift>Vier Freunde
</ueberschrift><absatz/>
</kapitel><kapitel nummer=’2’>
<ueberschrift>Eulenpost
</ueberschrift></kapitel>
</buch>
<buch>
<titel> <kapitel nummer=`1´> <kapitel nummer=`2´>
<ueberschrift> <ueberschrift><absatz>
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
12
XPath-Ausdrücke auf XML-Dokumenten
<buch><titel>
Harry Potter</titel><kapitel nummer=’1’>
<ueberschrift>Vier Freunde
</ueberschrift><absatz/>
</kapitel><kapitel nummer=’2’>
<ueberschrift>Eulenpost
</ueberschrift></kapitel>
</buch>
<buch>
<titel> <kapitel nummer=`1´> <kapitel nummer=`2´>
<ueberschrift> <ueberschrift><absatz>
//kapitel
<kapitel nummer=`1´> <kapitel nummer=`2´>
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
13
XPath-Ausdrücke auf XML-Dokumenten
<buch><titel>
Harry Potter</titel><kapitel nummer=’1’>
<ueberschrift>Vier Freunde
</ueberschrift><absatz/>
</kapitel><kapitel nummer=’2’>
<ueberschrift>Eulenpost
</ueberschrift></kapitel>
</buch>
<buch>
<titel> <kapitel nummer=`1´> <kapitel nummer=`2´>
<ueberschrift> <ueberschrift><absatz>
/buch/*/absatz
<absatz>
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
14
XPath-Ausdrücke auf XML-Dokumenten
<buch><titel>
Harry Potter</titel><kapitel nummer=’1’>
<ueberschrift>Vier Freunde
</ueberschrift><absatz/>
</kapitel><kapitel nummer=’2’>
<ueberschrift>Eulenpost
</ueberschrift></kapitel>
</buch>
<buch>
<titel> <kapitel nummer=`1´> <kapitel nummer=`2´>
<ueberschrift> <ueberschrift><absatz>
/buch/kapitel/absatz/../ueberschrift
= /buch/kapitel[absatz]/ueberschrift
<ueberschrift>
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
15
XPath-Ausdrücke auf XML-Dokumenten
<buch><titel>
Harry Potter</titel><kapitel nummer=’1’>
<ueberschrift>Vier Freunde
</ueberschrift><absatz/>
</kapitel><kapitel nummer=’2’>
<ueberschrift>Eulenpost
</ueberschrift></kapitel>
</buch>
<buch>
<titel> <kapitel nummer=`1´> <kapitel nummer=`2´>
<ueberschrift> <ueberschrift><absatz>
/buch/kapitel[@nummer=“2”]/ueberschrift
<ueberschrift>
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
16
PDA
SMS
Web
XPath-Verarbeitung im PubScribe-System
XPath-Ausdrücke
XML-Schema
parsing execute dispatch
Schemaanfrage
Publikation mitXML-Dokumenten
Notifikation
Subskription
Registrierung des Schemas
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
17
Beschleunigung der XPath-Auswertung
Vorhandene AnsätzeXFilter, XTrie, ...Gültigkeitsprüfung von XPath-Ausdrücken auf gesamtem XML-Dokument
Ziel: Schnelle Auswertung der XPath-Ausdrücke
Eigener AnsatzProblem: Auswertung erfordert XML-Dokument im HauptspeicherIdee: Effiziente Reduktion des XML-Dokuments
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
18
Beispiel zur Reduktion
<buch>
<titel> <kapitel nummer=`1´> <kapitel nummer=`2´>
<ueberschrift> <ueberschrift><absatz><ueberschrift>
/buch/kapitel/absatz/../ueberschrift = /buch/kapitel[absatz]/ueberschrift
/buch/*/absatz
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
19
Beispiel zur Reduktion
<buch>
<kapitel nummer=`1´>
<ueberschrift> <absatz><ueberschrift>
/buch/kapitel/absatz/../ueberschrift = /buch/kapitel[absatz]/ueberschrift
/buch/*/absatz
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
20
Beschleunigung der XPath-Auswertung durchChunking
Aufteilen der XPath-Anfragen (Präfix-Partitionen)
Erzeugen von XML-Chunks
Auswerten der XPath-Partitionen auf den Chunks
XML-Dokument
Ergebnis
XPath-Anfragen
Rest-Partition
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
21
XPath-Anfragen
1. clean
2. transform
4. chunk
3. prepare
Dokument mit Präfixen
XPath-Anfragenverteilt nach Präfixen
Publikation(XML Dokument)
5. evaluate
Ergebnis
Prototyp “eXtract” im PubScribe-System
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
22
Betrachtung der einzelnen Schritte
Clean-Schritt (Beseitigung der „parent“ - Ausdrücke)Beispiel a/b/../c a[b]/c
Prepare-SchrittEinfügen der XPath-Anfragen in Präfixbaum Keine Berücksichtigung der PrädikateBeispiel…
Transform-Schritt (Auflösen von Wildcards (*) und //-Ausdrücken)Beispiel //c /a/b//c und /a/d/e//c
/a/*/b /a/c/b, /a/e/b und /a/f/b
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
23
a 1
b 1
d 1
Beispiel: Einfügen in den Präfixbaum
/a/b/d/a/c/a[c]/b/da 2
b 1
d 1
c 1
a 3
b 2
d 2
c 1
a 4
b 2
d 2
c 2
e 1
a 5
b 2
d 2
c 3
e 1
/a/c/e/a/c
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
24
Phase der Präfixfindung
Naive PräfixfindungSortierung der Knoten nach ihren GewichtenWahl der TOP(n)-Knoten als Chunk-KriteriumBeispiel: /a und /a/c
1. Ermittle Knoten mit größtem Gewicht = Kandidatfalls mehrere Knoten gleich schwer sind wähle Knoten mit größter Tiefe
2. Subtraktion des Gewichts von allen Knoten auf dem Weg zur Wurzel
3. Entfernung bereits selektierter – jetzt leichterer - Kandidaten
4. Wiederholung, bis „Anzahl Kandidaten = Anzahl Chunks“
a 5
b 2
d 2
c 3
e 1Alternative Präfixfindung
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
25
Phase der Präfixfindung am Beispiel
Präfix: <a> <c> <d>
Gesucht: 2 Präfixe (2 Chunks)
a 5
b 2
d 2
c 3
e 1
a 5
b 2
d 2
c 3
e 1
a 2
b 2
d 2
c 3
e 1
a 0
b 0
d 2
c 3
e 1
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
26
Zuordnung der XPath-Anfragen
/a/b/d/a/c/a[c]/b/d/a/c/e/a/c
/a/b/d/a/cPräfixe:
Anfragen:
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
27
Zuordnung der XPath-Anfragen
/a/b/d/a/c
/a[c]/b/d/a/c/e
/a/c
/a/b/d/a/cPräfixe:
Anfragen:
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
28
Chunk-Bildung
<a>
<e> <b> <b>
<d>
<e><d>
<a><e/><b>
<d><d/><e/>
</d></b><b>
<e/></b><c>
<e/></c>
</a>
<c>
<e>
<e>
Anfragen: /a/b/d, /a[c]/b/dPräfix: /a/b/d
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
29
Chunk-Bildung
<a>
<e> <b> <b>
<d>
<e><d>
<a><e/><b>
<d><d/><e/>
</d></b><b>
<e/></b><c>
<e/></c>
</a>
<c>
<e>
<e>
Anfragen: /a/b/d, /a[c]/b/dPräfix: /a/b/d
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
30
XPath-Anfragen
1. clean
2. transform
4. chunk
3. prepare
Dokument mit Präfixen
XPath-Anfragenverteilt nach Präfixen
Publikation(XML Dokument)
5. evaluate
Ergebnis
Prototyp “eXtract” im PubScribe-System
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
31
XPath-Anfragen
1. clean
2. transform
4. chunk
3. prepare
Chunk-Schema
XPath-Anfragenverteilt nach Präfixen
Publikation(XML Dokument)
5. evaluate
Ergebnis
Prototyp “eXtract” im PubScribe-System
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
32
Chunk-Bildung
<a>
<e> <b> <b>
<d>
<e><d>
<a><e/><b>
<d><d/><e/>
</d></b><b>
<e/></b><c>
<e/></c>
</a>
<c>
<e>
<e>
Anfragen: /a/b/d, /a[c]/b/dPräfix: /a/b/d
Prädikatkompensation
Präfix /a/b/d + Prädikatkompensation /a/c
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
33
Chunk-Bildung
<a>
<b>
<d>
<d>
<a>
<b><d>
<d/><e/>
</d></b>
<c>
</c></a>
<c>
<e>
Anfragen: /a/b/d, /a[c]/b/dPräfix: /a/b/d
Prädikatkompensation
Präfix /a/b/d + Prädikatkompensation /a/c
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
34
Chunk-Bildung
Präfix /a/b/d, Prädikatkompensation /a/c
<a><e/><b>
<d><d/><e/>
</d></b><b>
<e/></b><c>
<e/></c>
</a>
<a>
<b><d>
<d/><e/>
</d></b><b>
</b><c>
</c></a>
/a/a/b
/a/b/dNachfolgervon /a/b/d
unnötig !/a/b
/a/c ohneNachfolger
XML-Dokument XML-Chunk
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
35
Realisierung der eXtract-Chunking-Strategie
XPath
Ausdrücke
XPath
Ausdrückeclean undtransformclean undtransform
XPath
Ausdrücke
XPath
Ausdrücke
TRANSTOOL
Erzeugen des Chunk-SchemasErzeugen des
Chunk-Schemas
PREPTOOL
Vorbereitungsphase
Chunk-Definitionenund zugehörige XPath-Ausdrücke
Filterphase
Erzeugen der Chunks gemäß
des Chunk-Schemas
Erzeugen der Chunks gemäß
des Chunk-Schemas
XML-Dokument
XML-Dokument
XML-Chunks
Anwenden von Filterausdrücken und Erzeugen der
Ausgabe
Anwenden von Filterausdrücken und Erzeugen der
Ausgabe
Anwenden von Filterausdrücken und Erzeugen der
Ausgabe
Anwenden von Filterausdrücken und Erzeugen der
Ausgabe
Resultierende XML-Dokumente, die zu den Subskribenten ausgeliefert werden
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
36
Performanzmessungen
<!ELEMENT db (student+,professor+,assistant+,secretary+,lecturer+) >
<!ELEMENT student (name,email?,url?,link?)><!ELEMENT professor (name,email?,url?,link?)><!ELEMENT assistant (name,email?,url?,link?)><!ELEMENT secretary (name,email?,url?,link?)><!ELEMENT lecturer (name,email?,url?,link?)>
<!ELEMENT name (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT url (#PCDATA)><!ELEMENT link (#PCDATA)>
Struktur des Beispieldokuments:
Kardinalität der Chunks:
Unterbaum Größestudentprofessorassistantsecretarylecturer
1500KB1110KB
206KB1200KB
170KB
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
37
Performanzmessungen
05000
100001500020000250003000035000400004500050000
Chunk
Tool
Chunk
1Chu
nk 2
Chunk
3Chu
nk 4
Chunk
5Rest
Summe
Origina
l
Zeit
in m
s 3 Chunks
4 Chunks
5 Chunks
100 Anfragen
+34 %
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
38
Performanzmessungen
0
20000
40000
60000
80000
100000
120000
140000
Chunk
Tool
Chunk
1Chu
nk 2
Chunk
3Chu
nk 4
Chunk
5Rest
Summe
Origina
l
Zeit
in m
s 3 Chunks
4 Chunks
5 Chunks
500 Anfragen
+62 %
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
39
Performanzmessungen
0
50000
100000
150000
200000
250000
300000
350000
Chunk
Tool
Chunk
1Chu
nk 2
Chunk
3Chu
nk 4
Chunk
5Res
tSum
me
Origina
l
Zeit
in m
s 3 Chunks
4 Chunks
5 Chunks
2000 Anfragen
+71 %
30 %
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
40
Weiteres Szenario: EJB Deployment Deskriptor
0
10000
20000
30000
40000
50000
60000
70000
chun
k too
l
chun
k 1
chun
k 2
chun
k 3
chun
k 4
chun
k 5
chun
k 6 sum
origin
al
2 chunks3 chunks4 chunks5 chunks6 chunksno chunking
33 %
100 Anfragen
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
41
Zusammenfassung
Ausgangssituation: PubScribe-System Publikation von XML-DokumentenSubskription mittels XPath-Ausdrücken
Ziel: Schnelle Auswertung vieler XPath-Anfragen
Lösung: Chunk-BildungGruppierung der XPath-Ausdrücke nach Präfixen (= Partitionen)Auswertung der Partitionen auf den Chunks
PerformanzgewinnSequenziell: >30%Parallel: >50 %
5. März 2003Uni Erlangen XPath-Aware Chunking of XML-Documents Florian Irmert
42
Danke für Ihre Aufmerksamkeit
Fragen ?
Weitere Informationen unter http://www.irmert.de/extract