Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "X Filter …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen."—  Präsentation transkript:

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

2 2 Gliederung Was sind SDI Systeme? Was sind SDI Systeme? Was bringt die Kombination von XML und SDI Systemen für Vorteile und Probleme? Was bringt die Kombination von XML und SDI Systemen für Vorteile und Probleme? das XFilter System als effizienter Lösungsansatz das XFilter System als effizienter Lösungsansatz

3 3 SDI Systeme Selective Dissemination of Information (SDI) Selective Dissemination of Information (SDI) die richtigen Daten zu den richtigen Leuten zur richtigen Zeit die richtigen Daten zu den richtigen 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.)

4 4 SDI Systeme Quelldaten Format- Konversion Dokumenten- parsing Filter- Engine Gefilterte Daten Benutzerprofile Benutzer - keine Speicherung der Daten, dafür Speicherung der Anfragen

5 5 SDI 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 wichtig Effizienz besonders wichtig

6 6 XMl 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 mit Benutzerprofilenerhöhte Komplexität beim Vergleichen mit Benutzerprofilen

7 7 X Filter Filtermechanismus für SDI-Systeme Filtermechanismus für SDI-Systeme entwickelt von Mehmet Altinel (University of Maryland) und Michael J. Franklin (University of California at Berkeley) entwickelt von Mehmet Altinel (University of Maryland) und Michael J. Franklin (University of California at Berkeley) vorgestellt auf der VLDB Konferenz 2000 (Kairo) vorgestellt auf der VLDB Konferenz 2000 (Kairo) implementiert im DBIS Toolkit (Dissemination-Based Information Systems) implementiert im DBIS Toolkit (Dissemination-Based Information Systems)

8 8 Benutzerprofile System nimmt Benutzerprofile in Form von XPath Anfragen entgegen System nimmt Benutzerprofile in Form von XPath Anfragen entgegen relevant für XFilter sind nur /, //, *, [] relevant für XFilter sind nur /, //, *, [] Beispiel: Preisvergleichs-Service Beispiel: Preisvergleichs-Service Benachrichtigung bei Unterschreitung einer Preisschranke /katalog//dvdbrenner/*/details[preis/euro<200]/name Filter ([]) können eingebettete Pfadausdrücke enthalten Filter ([]) können eingebettete Pfadausdrücke enthalten

9 9 X Filter XPath Anfragen XPath Parser XML Parser Filter Engine Data Dissemination User Profile Base XML Dokument Path Nodes Element Events Profil Info Erfolgreiche Profile und gefilterte Daten Erfolgr. Anfragen Profil Info Path Nodes Element Events Erfolgreiche Profile und gefilterte Daten Query Index

10 10 Path Nodes Umwandlung jeder XPath Anfrage in eine Art endlichen Automaten Umwandlung jeder XPath Anfrage in eine Art endlichen Automaten Elementknoten beschreiben Zustände Elementknoten beschreiben Zustände /katalog//dvdbrenner/*/details[preis/euro<300]/name 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 ? P54800d … PN1 PN2PN4 PN3 Level=1 El.=katalog Level=3 El.=dvdbrenner Level=5 El.=details Level=6 El.=name OK * Lev.1 Lev.2 Lev.3 Lev.4 Lev.5 Lev.6

11 11 Query Index Q1 1 0 1Q12 1 0Q13 Query ID Position Relative Pos. Levelab c d e auf Element-Namen basierende Hash Tabelle mit wait und candidate ListenQ1-1 Q1-2 Q1-3 Q1 = / a / b // c Q21Q22 2 0Q23 1 0 Q2 = // b /*/ c / d Q2-2 Q2-3 Q2-1 Q31 0 2Q32 1 0Q33 Q3 = /*/ a / c // d Q3-1 Q3-2 Q3-3 Q41Q42 1 0Q43 1 0 Q4 = b / d / e Q4-2 Q4-3 Q4-1 Q51 0 1Q52 3 0Q53 Q5 = a /*/*/ c// e Q5-1 Q5-2 Q5-3 w.listc.list w.list c.list

12 12 Q1 1 0 1Q12 1 0Q13 Q21Q21 2 ablaufab c d e Q1-1 Q1-2 Q1-3Q2-2 Q2-3 Q2-1 Q3-1 Q3-2 Q3-3 Q4-2 Q4-3 Q4-1 Q5-1 Q5-2 Q5-3 w.listc.list w.list c.list Q22 2 0Q23 1 0 Q31 0 2Q32 1 0Q33 Q41Q42 1 0Q43 1 0 Q51 0 1Q52 3 0Q53 … Lev.1 Lev.2 Lev.3 Lev.4 Lev.5 Lev.4 Beispiel: Lev.1Q1-2 Q5-2 Lev.2Q2-2 Q41 2Q42 1 0Q43 1 0 Q4-2 Q11 0 1Q12 1 2Q13 Q1-3 Q42 1 3 Lev.3Q4-3 Q51 0 1Q52 3 4Q53 Lev.4Q5-3 Q21 2Q22 2 4Q23 1 0 Q2-3 Q11 0 1Q12 1 2Q13 4 Q41 2Q43 1 4Q42 1 3 Q51 0 1Q52 3 4Q53 5 Lev.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

13 13 1. Verbesserung list balancing geringe Selektivität wurzelnaher tags geringe Selektivität wurzelnaher tags Unausgewogene candidate lists Unausgewogene candidate listsZiel: anfängliche Längen der candidate lists ausbalancieren anfängliche Längen der candidate lists ausbalancierenLösung: Pivot-Elemente und preconditions Pivot-Elemente und preconditions

14 14 list balancing Q1 1 0 1Q12 1 0Q13 Query ID Position Relative Pos. Levelab c d e Q1-1 Q1-2 Q1-3 Q1 = / a / b // c Q21Q22 2 0Q23 1 0 Q2 = // b /*/ c / d Q2-2 Q2-3 Q2-1 Q31 0 1 aQ32 Q3 = /*/ a / c // d Q3-1Q3-2 Q41 0 1 bQ42 1 0 Q4 = b / d / e Q4-2 Q4-1 Q51 a,c Q5 = a /*/*/ c// e Q5-1 w.listc.list w.list c.list erhöhter Aufwand durch Testen der preconditions Ersparnis durch Ausbalancierung

15 15 2. Verbesserung prefiltering fehlende Elemente im hinteren Bereich des Anfrage-Pfades fehlende Elemente im hinteren Bereich des Anfrage-Pfades Unnötiger Aufwand Unnötiger AufwandZiel: Ausschluß von Anfragen mit Elementen, die im Dokument gar nicht vorkommen Ausschluß von Anfragen mit Elementen, die im Dokument gar nicht vorkommenLösung: key based prefiltering Algorithmus key based prefiltering Algorithmus

16 16 Prefiltering a b c d e 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

17 17 Experimente ParameterBereich Beschreibung P1.000–100.000 Anzahl der Benutzerprofile D1-10 Maximale Tiefe des XML Dokuments und der XPath Anfragen W20%-80% Wahrscheinlichkeit für Wildcards (*) in den Anfrage-Knoten 0 und 1 Unausgewogenheit von Element- Namen in der Anfrage-Generierung Ist XFilter praxistauglich? Query-Generator und XML-Testfall-Generator (IBM) unter Verwendung der NITF DTD

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

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

20 20 3. Experiment Variation von W (*-Wahrscheinlichkeit) Variation von W (*-Wahrscheinlichkeit)

21 21 Zusammenfassend XFilter erweist sich als hoch skalierbares System XFilter erweist sich als hoch skalierbares System list balancing mit prefiltering ist Methode mit größtem Performance-Gewinn list balancing mit prefiltering ist Methode mit größtem Performance-Gewinn bei sehr unausgewogener Verteilung der Elemente in den Queries ist list balancing von sich aus schon sehr effektiv, evtl. der Methode mit prefiltering vorzuziehen (Ressourcen schonender) bei sehr unausgewogener Verteilung der Elemente in den Queries ist list balancing von sich aus schon sehr effektiv, evtl. der Methode mit prefiltering vorzuziehen (Ressourcen schonender) - o -


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

Ähnliche Präsentationen


Google-Anzeigen