X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

21
X Filter X Filter als Beispiel effizienter als Beispiel effizienter Filterung Filterung von XML-Dokumenten in SDI-Systemen von XML-Dokumenten in SDI-Systemen Michael Koth, 29.1.2002 Michael Koth, 29.1.2002

Transcript of X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

Page 1: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

X FilterX Filter……als Beispiel effizienter Filterungals Beispiel effizienter Filterung

von XML-Dokumenten in SDI-Systemenvon XML-Dokumenten in SDI-Systemen

Michael Koth, 29.1.2002Michael Koth, 29.1.2002

Page 2: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

22

GliederungGliederung

Was sind SDI Systeme?Was sind SDI Systeme?

Was bringt die Kombination von XML Was bringt die Kombination von XML und SDI Systemen für Vorteile und und SDI Systemen für Vorteile und Probleme?Probleme?

das XFilter System als effizienter das XFilter System als effizienter LösungsansatzLösungsansatz

Page 3: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

33

SDI SystemeSDI Systeme

Selective Dissemination of Information Selective Dissemination of Information (SDI)(SDI)

„„die richtigen Daten zu den richtigen die richtigen Daten zu den richtigen Leuten zur richtigen Zeit“Leuten zur richtigen Zeit“

Anwendungsbereiche:Anwendungsbereiche:• Spezialisierte Newsticker (z.B. Sport)Spezialisierte Newsticker (z.B. Sport)• Personalisierte NachrichtenPersonalisierte Nachrichten• VerkehrsinformationssystemeVerkehrsinformationssysteme• Echtzeit-business (Börse, e-commerce etc.)Echtzeit-business (Börse, e-commerce etc.)

Page 4: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

44

SDI SystemeSDI Systeme

Quelldaten

Format-Konversion

Dokumenten-parsing

Filter-Engine

Gefilterte Daten

Benutzerprofile

Benutzer

- keine Speicherung der Daten, dafür Speicherung der Anfragen

Page 5: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

55

SDI SystemeSDI Systeme

Anforderungen:Anforderungen:

• möglichst akurate Anfragen(Profile)möglichst akurate Anfragen(Profile)• Skalierbarkeit (große Benutzerzahl)Skalierbarkeit (große Benutzerzahl)• hoher Datendurchsatzhoher Datendurchsatz• VerlässlichkeitVerlässlichkeit• evtl. Echtzeit-Garantieevtl. Echtzeit-Garantie

Effizienz besonders wichtigEffizienz besonders wichtig

Page 6: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

66

XMXMl und SDIl und SDI

Vorteile:Vorteile:

• künftiger Standard (vorhandene Tools)künftiger Standard (vorhandene Tools)• strukturierte Quelldatenstrukturierte Quelldaten• sehr akurate Benutzerprofilesehr akurate Benutzerprofile

Nachteile:Nachteile:

• erhöhte Komplexität beim Vergleichen erhöhte Komplexität beim Vergleichen mit Benutzerprofilenmit Benutzerprofilen

Page 7: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

77

X FilterX Filter

Filtermechanismus für SDI-SystemeFiltermechanismus für SDI-Systeme entwickelt von Mehmet Altinel (University entwickelt von Mehmet Altinel (University

of Maryland) und Michael J. Franklin of Maryland) und Michael J. Franklin (University of California at Berkeley)(University of California at Berkeley)

vorgestellt auf der VLDB Konferenz 2000 vorgestellt auf der VLDB Konferenz 2000 (Kairo)(Kairo)

implementiert im DBIS Toolkit implementiert im DBIS Toolkit (Dissemination-Based Information (Dissemination-Based Information Systems)Systems)

Page 8: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

88

BenutzerprofileBenutzerprofile System nimmt Benutzerprofile in Form von System nimmt Benutzerprofile in Form von

XPathXPath Anfragen entgegen Anfragen entgegen relevant für XFilter sind nur relevant für XFilter sind nur //, , ////, , **, , [][] Beispiel: Preisvergleichs-Service Beispiel: Preisvergleichs-Service

Benachrichtigung bei Unterschreitung Benachrichtigung bei Unterschreitung einer Preisschrankeeiner Preisschranke

//katalogkatalog////dvdbrennerdvdbrenner/*//*/detailsdetails[[preispreis//euro<200euro<200]/]/namename

Filter (Filter ([][]) können eingebettete ) können eingebettete Pfadausdrücke enthaltenPfadausdrücke enthalten

Page 9: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

99

X FilterX FilterXPath Anfragen

XPath ParserXML Parser

FilterEngine

DataDissemination

User

ProfileBase

XML Dokument

Path Nodes

Element

Events

Profil Info

Erfolgreiche Profile und gefilterte Daten

Erfolgr.

Anfragen

Profi

l Inf

o

Path

Nod

es

ElementEvents

Erfolgreiche Profile und gefilterte Daten

Query Index

Page 10: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1010

Path NodesPath Nodes Umwandlung jeder XPath Anfrage in eine Art Umwandlung jeder XPath Anfrage in eine Art

endlichen Automatenendlichen Automaten Elementknoten beschreiben ZuständeElementknoten beschreiben Zustände

//katalogkatalog////dvdbrennerdvdbrenner/*//*/detailsdetails[[preispreis//euro<300euro<300]/]/namename

Path Node 1 Rel.Dist. ? Level 1

Path Node 2 Rel.Dist. ? Level ?

Path Node 3 Rel.Dist. 2 Level ? Filter Expr.

Path Node 4 Rel.Dist. 1 Level ?

<katalog><produkte><dvdbrenner><plextor><details><name>P54800d</name>…

PN1

PN2 PN4

PN3

Level=1 El.=katalog

Level=3 El.=dvdbrenner

Level=5 El.=details

Level=6 El.=name

OK

*

Lev.1Lev.2Lev.3Lev.4Lev.5Lev.6

Page 11: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1111

Query IndexQuery IndexQ1Q1

11

00

11

Q1Q1

22

11

00

Q1Q1

33

-1-1

-1-1

Query ID

Position

Relative Pos.

Level

aa

bb

cc

dd

ee

auf Element-Namen basierende Hash Tabelle mit wait und candidate Listen

Q1-1Q1-1

Q1-2Q1-2

Q1-3Q1-3

Q1 = / a / b // c

Q2Q2

11

-1-1

-1-1

Q2Q2

22

22

00

Q2Q2

33

11

00

Q2 = // b /*/ c / d

Q2-2Q2-2

Q2-3Q2-3

Q2-1Q2-1

Q3Q3

11

00

22

Q3Q3

22

11

00

Q3Q3

33

-1-1

-1-1

Q3 = /*/ a / c // d

Q3-1Q3-1

Q3-2Q3-2

Q3-3Q3-3

Q4Q4

11

-1-1

-1-1

Q4Q4

22

11

00

Q4Q4

33

11

00

Q4 = b / d / e

Q4-2Q4-2

Q4-3Q4-3

Q4-1Q4-1

Q5Q5

11

00

11

Q5Q5

22

33

00

Q5Q5

33

-1-1

-1-1

Q5 = a /*/*/ c// e

Q5-1Q5-1

Q5-2Q5-2

Q5-3Q5-3

w.list c.list

w.list

w.list

w.list

w.list

c.list

c.list

c.list

c.list

Page 12: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1212

Q1Q1

11

00

11

Q1Q1

22

11

00

Q1Q1

33

-1-1

-1-1

Q2Q2

11

-1-1

-1-1

Q2Q2

11

-1-1

22

ablaufablauf

aa

bb

cc

dd

ee

Q1-1Q1-1

Q1-2Q1-2

Q1-3Q1-3Q2-2Q2-2

Q2-3Q2-3

Q2-1Q2-1

Q3-1Q3-1

Q3-2Q3-2

Q3-3Q3-3Q4-2Q4-2

Q4-3Q4-3

Q4-1Q4-1

Q5-1Q5-1

Q5-2Q5-2

Q5-3Q5-3

w.list c.list

w.list

w.list

w.list

w.list

c.list

c.list

c.list

c.list

Q2Q2

22

22

00

Q2Q2

33

11

00

Q3Q3

11

00

22

Q3Q3

22

11

00

Q3Q3

33

-1-1

-1-1

Q4Q4

11

-1-1

-1-1

Q4Q4

22

11

00

Q4Q4

33

11

00

Q5Q5

11

00

11

Q5Q5

22

33

00

Q5Q5

33

-1-1

-1-1

<a><b><d><c><e></e>…

Lev.1Lev.2Lev.3Lev.4Lev.5Lev.4

Beispiel:

Lev.1

Q1-2Q1-2

Lev.1

Q5-2Q5-2

Lev.2

Q2-2Q2-2

Q4Q4

11

-1-1

22

Q4Q4

22

11

00

Q4Q4

33

11

00Lev.2

Q4-2Q4-2

Q1Q1

11

00

11

Q1Q1

22

11

22

Q1Q1

33

-1-1

-1-1Lev.2

Q1-3Q1-3

Q4Q4

22

11

33Lev.3

Q4-3Q4-3

Q5Q5

11

00

11

Q5Q5

22

33

44

Q5Q5

33

-1-1

-1-1Lev.4

Q5-3Q5-3

Q2Q2

11

-1-1

22

Q2Q2

22

22

44

Q2Q2

33

11

00Lev.4

Q2-3Q2-3

Q1Q1

11

00

11

Q1Q1

22

11

22

Q1Q1

33

-1-1

44

Q4Q4

11

-1-1

22

Q4Q4

33

11

44

Q4Q4

22

11

33

Q5Q5

11

00

11

Q5Q5

22

33

44

Q5Q5

33

-1-1

55Lev.5

Lev.4 Q1 = / a / b // cQ3 = /*/ a / c // dQ5 = a /*/*/ c// eQ2 = // b /*/ c / dQ4 = b / d / eQ1 = / a / b // cQ4 = b / d / eQ5 = a /*/*/ c// eQ2 = // b /*/ c / dQ1 = / a / b // cQ4 = b / d / eQ5 = a /*/*/ c// e

Page 13: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1313

1. Verbesserung1. Verbesserung„„list balancing“list balancing“

geringe Selektivität wurzelnaher tagsgeringe Selektivität wurzelnaher tags UnausgewogeneUnausgewogene candidate lists candidate lists

Ziel:Ziel: anfängliche Längen der anfängliche Längen der candidate lists candidate lists

ausbalancierenausbalancieren

Lösung:Lösung: Pivot-ElementePivot-Elemente und und preconditionspreconditions

Page 14: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1414

list balancing list balancing Q1Q1

11

00

11

Q1Q1

22

11

00

Q1Q1

33

-1-1

-1-1

Query ID

Position

Relative Pos.

Level

aa

bb

cc

dd

ee

Q1-1Q1-1

Q1-2Q1-2

Q1-3Q1-3

Q1 = / a / b // c

Q2Q2

11

-1-1

-1-1

Q2Q2

22

22

00

Q2Q2

33

11

00

Q2 = // b /*/ c / d

Q2-2Q2-2

Q2-3Q2-3

Q2-1Q2-1

Q3Q3

11

00

11

aa

Q3Q3

22

-1-1

-1-1

Q3 = /*/ a / c // d

Q3-1Q3-1Q3-2Q3-2

Q4Q4

11

00

11

bb

Q4Q4

22

11

00

Q4 = b / d / e

Q4-2Q4-2

Q4-1Q4-1

Q5Q5

11

-1-1

-1-1

a,ca,c

Q5 = a /*/*/ c// e

Q5-1Q5-1

w.list c.list

w.list

w.list

w.list

w.list

c.list

c.list

c.list

c.list

erhöhter Aufwand durch Testen der preconditions

Ersparnis durch Ausbalancierung

Page 15: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1515

2. Verbesserung2. Verbesserung„„prefiltering“prefiltering“

fehlende Elemente im hinteren Bereich fehlende Elemente im hinteren Bereich des Anfrage-Pfadesdes Anfrage-Pfades

Unnötiger AufwandUnnötiger Aufwand

Ziel:Ziel: Ausschluß von Anfragen mit Elementen, Ausschluß von Anfragen mit Elementen,

die im Dokument gar nicht vorkommendie im Dokument gar nicht vorkommen

Lösung:Lösung: key based prefilteringkey based prefiltering Algorithmus Algorithmus

Page 16: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1616

PrefilteringPrefilteringaa

bb

cc

dd

ee

Jedes Dokument muss zweimal durch den Parser

Ersparnis hängt von der Selektivität des ersten Schrittes ab

Q1 = / a / b // c

Q2 = // b /*/ c / d

Q3 = /*/ a / c // d

Q4 = b / d / e

Q5 = a /*/*/ c / e

Q1

Q2

Q3

Q4

Q5

Occurrence table

Ermittlung der keys wie Pivot-Elemente

Sukzessives Abarbeiten der Queries nach occurence table

Page 17: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1717

ExperimenteExperimente

ParameterParameter BereichBereich BeschreibungBeschreibung

PP 1.000–100.0001.000–100.000 Anzahl der BenutzerprofileAnzahl der Benutzerprofile

DD 1-101-10 Maximale Tiefe des XML Dokuments Maximale Tiefe des XML Dokuments und der XPath Anfragenund der XPath Anfragen

WW 20%-80%20%-80%Wahrscheinlichkeit für Wildcards Wahrscheinlichkeit für Wildcards („*“) in den Anfrage-Knoten(„*“) in den Anfrage-Knoten

0 und 10 und 1 Unausgewogenheit von Element-Unausgewogenheit von Element-Namen in der Anfrage-GenerierungNamen in der Anfrage-Generierung

Ist XFilter praxistauglich? Query-Generator und XML-Testfall-Generator (IBM) unter Verwendung der NITF DTD

Page 18: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1818

1. Experiment1. Experiment Variation von P (Profile)Variation von P (Profile)

Page 19: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

1919

2. Experiment2. Experiment Variation von D (max. Tiefe)Variation von D (max. Tiefe)

Page 20: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

2020

3. Experiment3. Experiment Variation von W („*“-Wahrscheinlichkeit)Variation von W („*“-Wahrscheinlichkeit)

Page 21: X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen.

2121

ZusammenfassendZusammenfassend

XFilter erweist sich als hoch skalierbares XFilter erweist sich als hoch skalierbares SystemSystem

list balancinglist balancing mit mit prefilteringprefiltering ist Methode ist Methode mit größtem Performance-Gewinnmit größtem Performance-Gewinn

bei sehr unausgewogener Verteilung der bei sehr unausgewogener Verteilung der Elemente in den Queries ist Elemente in den Queries ist list balancinglist balancing von sich aus schon sehr effektiv, evtl. der von sich aus schon sehr effektiv, evtl. der Methode mit Methode mit prefilteringprefiltering vorzuziehen vorzuziehen (Ressourcen schonender)(Ressourcen schonender)

- o -