Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Studienarbeit: Filteralgorithmen für Benachrichtigungssysteme Sven Bittner, 16.Juli 2002.

Ähnliche Präsentationen


Präsentation zum Thema: "Studienarbeit: Filteralgorithmen für Benachrichtigungssysteme Sven Bittner, 16.Juli 2002."—  Präsentation transkript:

1 Studienarbeit: Filteralgorithmen für Benachrichtigungssysteme Sven Bittner, 16.Juli 2002

2 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme2/20 Zielstellung Implementierung eines baumbasierten FilteralgorithmusImplementierung eines baumbasierten Filteralgorithmus Bessere Filterperformance durch Umordnen der AttributreihenfolgeBessere Filterperformance durch Umordnen der Attributreihenfolge Vergleich mit anderen SystemenVergleich mit anderen Systemen

3 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme3/20 Baumalgorithmus (gough95) schnellster Filteralgorithmus (fabret00)schnellster Filteralgorithmus (fabret00) Aufbau DFA aus ProfilenAufbau DFA aus Profilen –Zustände: Attributtests –Übergänge: Testauswertungen – -Übergang: Nichtzutreffen aller regulären Kanten –Endzustände: Profilmengen der Pfade FilternFiltern –durchlaufen des Baumes –Benachrichtigen der Profile in Endzuständen b 40 a 10 bc P c c c P3,4,5 100 P4 100 P2 80 P4 100

4 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme4/20 Baumalgorithmus - Beispiel Profilmenge: P1: a=10, b=20, c=50 P2: a=40, b=10, c=80 P3: a=40, b=20, c=100 P4: a=40, c=100 P5: a=40, b=20, c=100 b 40 a 10 bc P c c c P3, 4,5 100 P4 100 P2 80 P4 100

5 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme5/20 Baumalgorithmus - Zustandsübergänge ElementaufzählungenElementaufzählungen - Speicherverbrauch: Wertebereich a: [0, 1000], 2 Dezimalstellen Prädikate: a>= 100, a>=500 Elemente: ungeordnete Wertebereiche Intervalle (Implementierung)Intervalle (Implementierung) - geordnete Wertebereiche + Speicherverbrauch: 1 Intervall pro Übergang bzw.1 Intervall pro Übergang bzw. 1 Wert pro Übergang - Halboffenes Intervall1 Wert pro Übergang - Halboffenes Intervall Leerintervalle (Gleichheitstests) a , , ,..., P1 P1, , , ,..., a P1 P1,

6 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme6/20 Baumalgorithmus - Intervalle Wertebereich: a: Profilmenge: P1: a=10 P2: a>20 P3: a<7 P4: a=40 Arrays: IntervallProfile 6P3 9 10P P2 40P2, 3 100P2 a P3 P1 P2 P2, 3 P2Knoten:

7 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme7/20 Systembeschreibung Datentypen: ganze Zahlen, Dezimalzahlen (mit Stellenzahl), AufzählungenDatentypen: ganze Zahlen, Dezimalzahlen (mit Stellenzahl), Aufzählungen Wertebereiche: aus Datentypen definierenWertebereiche: aus Datentypen definieren Operatoren: >,, <, =, Mengentest, Bereichstest Attribut: Name, WertebereichAttribut: Name, Wertebereich Ereignistyp: Name, AttributmengeEreignistyp: Name, Attributmenge Ereignis: Anbieter, Ereignistyp, Menge von Attribut-Wert-PaarenEreignis: Anbieter, Ereignistyp, Menge von Attribut-Wert-Paaren Profil: Ereignistyp, Prädikatmenge, Benachrichtigung(en)Profil: Ereignistyp, Prädikatmenge, Benachrichtigung(en) Prädikat: Attribut, Operator, Vergleichswert (z.B. a=10)Prädikat: Attribut, Operator, Vergleichswert (z.B. a=10)

8 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme8/20 Implementierung Sprache: JavaSprache: Java Standarddatentypen und Felder statt Containerklassen der BibliothekenStandarddatentypen und Felder statt Containerklassen der Bibliotheken Option: Native-Language-Code (C++) bei Performanceproblemen (JNI)Option: Native-Language-Code (C++) bei Performanceproblemen (JNI) relationale Datenbank für Speicherung persistenter Datenrelationale Datenbank für Speicherung persistenter Daten

9 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme9/20 Implementierung - Teilbäume ProblemProblem Speicherverbrauch des Baumes LösungLösung –identifizieren identischer Teilbäume –gleiche Profilmengen gleiche Teilbäume VerbesserungVerbesserung Faktor 7000 (bei 40 Profilen) Faktor 7000 (bei 40 Profilen) Profilanzahl Speicher in MB Teilbäume als VerweiseTeilbäume als Kopien Speicherverbrauch bei 10 Attributen,1 Ereignistyp Speicher in kB

10 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme10/20 Implementierung - Knotenzahl ProblemProblem Knotenzahl des Baumes LösungLösung –kein Baum, nur 1 Knoten pro Attribut –Schneiden der Profilmengen Verbesserung (Speicher)Verbesserung (Speicher) Faktor 42 (bei 300 Profilen) Faktor 42 (bei 300 Profilen) Profilanzahl Speicher in kB 1 Knoten je AttributBaum Speicherverbrauch bei 10 Attributen, 1 Ereignistyp Speicher in kB

11 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme11/20 Implementierungsansatz - Verweise (1) ProblemProblem Speicherverbrauch der Profilverweise LösungLösung –Verweise als Bitliste –Verweise als Zwischenraumliste (feste/variable Breite) Beispiel (1000 Profile, 1 Ereignistyp, 10 Attribute)Beispiel (1000 Profile, 1 Ereignistyp, 10 Attribute) –700 Kanten pro Knoten –700 Verweise pro Ausgangskante

12 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme12/20 Implementierungsansatz - Verweise (2) SpeicherverbrauchSpeicherverbrauch –Objektverweise(Standardmethode) # Kanten * # Profile je Kante * Speicher Verweis * # Knoten = 700 * 700 * 4 * 10 = MB –Bitliste Feld aller Profile + # Intervalle * Speicher Bitliste * # Knoten = 1000 * * (1000/8) * 10 = 858,4 KB VerbesserungVerbesserung Faktor 22 Faktor 22

13 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme13/20 Implem. - Verteilungsabhängigkeit (1) Umordnung der Attribute im BaumUmordnung der Attribute im Baum zwei Ansätze (hinze02)zwei Ansätze (hinze02) –A1: Anteil unbedeckter Wertebereich in Profilen –A2: Anteil unbedeckter Wertebereich in Profilen unter Berücksichtigung der Wahrscheinlichkeit bei Ereignissen Nutzung: Übergabe der Profile / Ereignisse beim Aufbau der FilterstrukturNutzung: Übergabe der Profile / Ereignisse beim Aufbau der Filterstruktur Erweiterung: Historie + Umordnung bei BedarfErweiterung: Historie + Umordnung bei Bedarf

14 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme14/20 Implem. - Verteilungsabhängigkeit (2) sukzessives Schneiden nach jedem Attributsukzessives Schneiden nach jedem Attribut Abbruch (kein Profil passend) bei Erreichen der leeren MengeAbbruch (kein Profil passend) bei Erreichen der leeren Menge u.U. Probleme - Bsp: 10 Knotenu.U. Probleme - Bsp: 10 Knoten –sukzessives Schneiden: max. 18 Mengen schneiden –1 Schnitt: 10 Mengen schneiden Profile für jeden Event/kleine Attributanzahl 1 Schnitt aller Attribute schneller Profile für jeden Event/kleine Attributanzahl 1 Schnitt aller Attribute schneller

15 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme15/20 Vergleichssysteme CORBA-Notification-Service (Common Object Request Broker Architecture)CORBA-Notification-Service (Common Object Request Broker Architecture) –Schnittstellenbeschreibung der OMG –Implementierung: OpenORB - Java –NS baut auf CORBA-Standard auf –Erweiterung des Event-Service (kein Filtern) –getypte, strukturierte Ereignisse Elvin4Elvin4 –Implementierung in C, Ansprechen in Java –verteilte Client-/Serverarchitektur –keine getypten Ereignisse Simulation durch zusätzliches AttributSimulation durch zusätzliches Attribut Abonnent: Typ als Prädikat ; Anbieter: zusätzl. Attribut-Wert-PaarAbonnent: Typ als Prädikat ; Anbieter: zusätzl. Attribut-Wert-Paar

16 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme16/20 Performance - steigende Profilzahl Anstieg etwa linearAnstieg etwa linear Elvin4 ca mal langsamerElvin4 ca mal langsamer CORBA ca mal langsamerCORBA ca mal langsamer Profilanzahl Zeit pro Ereignis in ms FilteralgorithmusCORBAElvin4 Abw.: 1-2% Matchingzeit bei 10 Attributen, 10 Ereignistypen Zeit pro Ereignis in ms

17 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme17/20 Performance - steigende Attributzahl Anstieg etwa linearAnstieg etwa linear Elvin mal langsamerElvin mal langsamer CORBA mal langsamerCORBA mal langsamer Filteralgorithmus:Filteralgorithmus: Abweichung wegen sukzes. Schneiden Attributanzahl Zeit pro Ereignis in ms FilteralgorithmusCORBAElvin4 Abw.: 1-2% Matchingzeit bei 1 Ereignistyp, 500 Profilen Zeit pro Ereignis in ms

18 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme18/20 Performance - steigende Typanzahl Elvin mal langsamerElvin mal langsamer CORBA mal langsamerCORBA mal langsamer keine Typunterstützung kein Hindernis (zuerst Typtest)keine Typunterstützung kein Hindernis (zuerst Typtest) Ereignistypanzahl Zeit pro Ereignis in ms FilteralgorithmusCORBAElvin4 Abw.: 1-2% Matchingzeit bei 10 Attributen, 500 Profilen Zeit pro Ereignis in ms

19 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme19/20 Systemvergleich - Zusammenfassung Geschwindigkeit:Geschwindigkeit: –Elvin mal langsamer –CORBA mal langsamer Vergleichbarkeit:Vergleichbarkeit: –Filteralgorithmus: Ansprechen im gleichen Adressraum –Elvin/CORBA: Kommunikation via TCP/IP (Sockets) COBEA zeigt ähnliche Geschwindigkeiten[Ma98]COBEA zeigt ähnliche Geschwindigkeiten[Ma98]

20 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme20/20 Ausblick (Diplomarbeit) –bessere Speichernutzung durch Bitlisten –Umordnen (Auswertungsreihenfolge) nach Aufbau der Struktur Historie aller Ereignisse bzw. deren Verteilung –Verteilung des Systems –event. Einarbeitung anderer Filteransätze –Composite Events (Diplomarbeit Steven)

21 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme21/20 Literatur [fabret00] - F. Fabret, F. Llirbat, J.Pereira, and D. Shasha. Efficient matching for content-based publish/subscribe systems. Technical report, INRIA, 2000.[fabret00] - F. Fabret, F. Llirbat, J.Pereira, and D. Shasha. Efficient matching for content-based publish/subscribe systems. Technical report, INRIA, [gough95] - John Gough, Glenn Smith. Efficient Recognition of Events in a Distributed System. In Proceedings of the ACSC-18, 1995.[gough95] - John Gough, Glenn Smith. Efficient Recognition of Events in a Distributed System. In Proceedings of the ACSC-18, [hinze02] - Annika Hinze, Sven Bittner. Efficient Distribution- Based Event Filtering. Proceedings of DEBS at ICDCS, 2002.[hinze02] - Annika Hinze, Sven Bittner. Efficient Distribution- Based Event Filtering. Proceedings of DEBS at ICDCS, [ma98] - Chaoying Ma, Jean Bacon. COBEA: A CORBA-Based Event Architecture. Cambridge, 1998.[ma98] - Chaoying Ma, Jean Bacon. COBEA: A CORBA-Based Event Architecture. Cambridge, 1998.


Herunterladen ppt "Studienarbeit: Filteralgorithmen für Benachrichtigungssysteme Sven Bittner, 16.Juli 2002."

Ähnliche Präsentationen


Google-Anzeigen