1 / 21

X Filter

X Filter. …als Beispiel effizienter Filterung von XML-Dokumenten in SDI-Systemen. Michael Koth, 29.1.2002. Gliederung. Was sind SDI Systeme? Was bringt die Kombination von XML und SDI Systemen für Vorteile und Probleme? das XFilter System als effizienter Lösungsansatz. SDI Systeme.

Download Presentation

X Filter

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. SDI Systeme • Selective Dissemination of Information (SDI) • „die richtigen Daten zu den richtigen Leuten zur richtigen Zeit“ • Anwendungsbereiche: • Spezialisierte Newsticker (z.B. Sport) • Personalisierte Nachrichten • Verkehrsinformationssysteme • Echtzeit-business (Börse, e-commerce etc.)

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

  5. SDI Systeme • Anforderungen: • möglichst akurate Anfragen(Profile) • Skalierbarkeit (große Benutzerzahl) • hoher Datendurchsatz • Verlässlichkeit • evtl. Echtzeit-Garantie • Effizienz besonders wichtig

  6. XMl und SDI • Vorteile: • künftiger Standard (vorhandene Tools) • strukturierte Quelldaten • sehr akurate Benutzerprofile • Nachteile: • erhöhte Komplexität beim Vergleichen mit Benutzerprofilen

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

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

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

  10. Path Nodes • Umwandlung jeder XPath Anfrage in eine Art endlichen Automaten • 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 ? <katalog> <produkte> <dvdbrenner> <plextor> <details> <name> P54800d </name> … Lev.1 OK Lev.2 PN2 PN4 Lev.3 Lev.4 Level=3 El.=dvdbrenner Level=6 El.=name * Lev.5 PN1 PN3 Lev.6 Level=1 El.=katalog Level=5 El.=details

  11. Query Index Query ID auf Element-Namen basierende Hash Tabelle mit wait und candidate Listen Position Relative Pos. Level w.list c.list w.list c.list w.list c.list w.list c.list c.list w.list

  12. ablauf Beispiel: Lev.1 Lev.4 Lev.5 Lev.2 Lev.3 <a> <b> <d> <c> <e> </e> … Lev.1 Lev.2 Lev.4 Lev.2 Lev.1 Lev.2 Lev.4 Lev.3 Lev.4 w.list c.list Lev.5 Lev.4 w.list c.list w.list c.list w.list c.list c.list w.list

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

  14. list balancing Query ID Position • erhöhter Aufwand durch Testen der preconditions • Ersparnis durch Ausbalancierung Relative Pos. Level w.list c.list w.list c.list w.list c.list w.list c.list c.list w.list

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

  16. Prefiltering • Jedes Dokument muss zweimal durch den Parser • Ersparnis hängt von der Selektivität des ersten Schrittes ab Occurrence table • Ermittlung der keys wie Pivot-Elemente • Sukzessives Abarbeiten der Queries nach occurence table

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

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

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

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

  21. Zusammenfassend • XFilter erweist sich als hoch skalierbares System • 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) - o -

More Related