Studienarbeit: Filteralgorithmen für Benachrichtigungssysteme

Slides:



Advertisements
Ähnliche Präsentationen
Zulassung Qualifikationsphase
Advertisements

Partitionierungstechniken in Datenbanksystemen
Wo bitte geht‘s zum Abitur?
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
TelegraphCQ Manuel Hertlein.
Gymnasium Hankensbüttel
Anwendungsbeispiele Vertrieb durch:
Telefonnummer.
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
Folie 1 Lösungsvorschläge für die Aufgaben der  Realschulabschlussprüfung Mathematik in Baden-Württemberg 2001 In dieser Powerpoint-Präsentation findet.
Mehrebenenanalyse mit Paneldaten und dem Programm HLM6
Herzlich Willkommen zur Information des Gymnasiums am Silberkamp
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2007 Dietmar Schumacher Die Wertetabelle.
Klicke Dich mit der linken Maustaste durch das Übungsprogramm!
Kapitel 3 5 Rechnerorganisation
Fehlererkennende Codes
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Gymnasium Süd Buxtehude
Wo bitte geht‘s zum Abitur?
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
TEILCHENPHYSIK FÜR FORTGESCHRITTENE Vorlesung am 21. April 2006
Theoretische Informatik 2
Gymnasium Meinersen i.E. Gymnasiale Oberstufe (Einführungsphase) Informationsveranstaltung zur Gymnasialen Oberstufe am Gymnasium Meinersen.
ANALYSE UND KONZEPTION VON TUPLE SPACES IM HINBLICK AUF SKALIERBARKEIT Philipp Obreiter Telecooperation Office (TecO) Universitaet Karlsruhe Betreuer:
3. Sitzung: Güterangebot und Güternachfrage
Diskrete Mathe 9 Vorlesung 9 SS 2001
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
2. Die rekursive Datenstruktur Baum 2
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 5 WS 2000/2001 Topologie, Landkarten, Datenstrukturen.
Datenstrukturen für Landkarten
Technische Informatik II (INF 1211) Aufgabenteil (mit Unterlagen)
Geoinformation II Vorlesung 3 SS 2001 Polygon Overlay.
er GRAI/GIM GRAI/GIM GERAM GERAM CIMOSA 1984 CIMOSA 1999 TEAF TEAF
DEMOKRATIEQUALITÄT IM VERGLEICH – LIECHTENSTEIN UND ÖSTERREICH von Dominik Oswald, Matr.Nr
Das ABITUR – zeitlicher Ablauf
Info-Abend für die Eltern der Abiturientinnen 2014
Herzlich willkommen zum Informationsabend für den Jahrgang 12 am Gymnasium Groß Ilsede
Die Profiloberstufe. Qualifikationsphase (11. und 12. Jg.) Unterricht in Schwerpunktklassen und in klassenübergreifenden Lerngruppen 6 mögliche Prüfungsfächer.
Abtragen von Strecken P Q O H t 1-t und Daraus folgt:
1.Jeder Schüler muss 5 Prüfungsfächer wählen. 2.Mit der Wahl seiner Prüfungsfächer bestimmt er auch seinen Schwerpunkt: Naturwissenschaftlich Sprachlich.
1. Grundkörper: Verschmelzung Zylinder mit Pyramide
1. Grundkörper: Verschmelzung Vierkantpyramide und Vierkantpyramide Vierkantpyramide stehend xyz G1G G2G2 0 0 G3G G4G4 0 0 S1S Vierkantpyramide.
1.Grundkörper: Verschmelzung Zylinder mit Quader
1.Grundkörper: Steckung Zylinder mit Pyramidenstumpf
Grundkörper: Verschmelzung 6-Kantprisma / 6-Kantprisma
1. Grundkörper Verschmelzung Unregelmäßiges Dreikant- und Vierkantprisma x y z 0/ Dreikantprisma x y z /
1. Grundkörper Verschmelzung Vierkantpyramide und Dreikantprisma
Ein Benachrichtigungsdienst für zusammengesetzte Ereignisse Projektgruppe MediAS Sven Bittner, 25. Februar 2003 (Steven König, Doris Jung, Annika Hinze)
Vortrag zur Diplomarbeit in der Arbeitsgruppe Datenbanken und Informationssysteme Entwurf und Analyse eines effizienten verteilten Benachrichtigungssystems.
Effiziente Filterung in zentralisierten und verteilten Benachrichtigungssystemen Sven Bittner, 7. November 2003 Arbeitsgruppe Datenbanken und Informationssysteme,
Informationsveranstaltung
Beispiel 1.4 Ein Kreditinstitut bietet folgende Varianten für die vertragliche Gestaltung eines Kontokorrentkredits an: Nettozinssatz 10 % p.a Zinssatz.
Rems-Murr-Kliniken NEUBAU
Seite 1 IDA, Technische Universität BraunschweigTechnische Informatik II (INF 1211) Quellen: Zum Teil aus den Unterlagen Digitale Systeme, Prof. Schimmler,
Wilhelm-Busch-Gymnasium Stadthagen
Das h,x-Diagramm nach Mollier
Rems-Murr-Kliniken NEUBAU
Anwendungsbeispiele Vertrieb durch:
Standort LeoBurg Informationen zur Qualifikationsphase Einbringungsverpflichtungen ABITUR.
Landkarten Landkarten sind Tesselationen mit folgenden Eigenschaften:
Die Qualifikationsphase in Niedersachsen
Mikrocomputertechnik Port-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „Port-Quickie“ 8051-Port Eingabe - Ausgabe.
Diskrete Mathe II Übung
Gummiecke Wandschoner DIMENSION : Breite: 80 MM Länge : 900 MM Stärke : 10 MM Befestigungslöcher : 6 Gewicht: KG.
1 Äußere Verbindung (Outer Join) (3) Beispiel: Der Right Natural(!) Outer Join zwischen Lagerhilfsmittel und LagerhilfsmittelArt kann aufzeigen, für welche.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

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

Zielstellung Implementierung eines baumbasierten Filteralgorithmus Bessere Filterperformance durch Umordnen der Attributreihenfolge Vergleich mit anderen Systemen Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

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

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 a 10 b c P1 20 50 P2 80 P4 100 c 10 20  b 40 P3,4,5 100 P4 100 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Baumalgorithmus - Zustandsübergänge 100.00, 100.01, 100.02, ..., 499.99 P1 P1,2 500.00, 500.01, 500.02, ..., 1000.00 Elementaufzählungen - Speicherverbrauch: Wertebereich a: [0, 1000], 2 Dezimalstellen Prädikate: a>= 100, a>=500 Elemente: 90000 + ungeordnete Wertebereiche Intervalle (Implementierung) - geordnete Wertebereiche + Speicherverbrauch: 1 Intervall pro Übergang bzw. 1 Wert pro Übergang - Halboffenes Intervall Leerintervalle (Gleichheitstests) 100.00 .. 499.99 a P1 P1,2 500.00 .. 1000.00 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Baumalgorithmus - Intervalle Wertebereich: a: -100 .. 100 Profilmenge: P1: a=10 P2: a>20 P3: a<7 P4: a=40 a ..6 7..9 10..10 11..20 21..39 40..40 41.. P3  P1 P2 P2,3 Knoten: Arrays: Intervall Profile 6 P3 9  10 P1 20  39 P2 40 P2, 3 100 P2 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

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

Implementierung Sprache: Java Standarddatentypen und Felder statt Containerklassen der Bibliotheken Option: Native-Language-Code (C++) bei Performanceproblemen (JNI) relationale Datenbank für Speicherung persistenter Daten persitent: Abonnenten, Profile, Wertebereiche, Anbieter Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Implementierung - Teilbäume Speicherverbrauch bei 10 Attributen,1 Ereignistyp Problem Speicherverbrauch des Baumes Lösung identifizieren identischer Teilbäume gleiche Profilmengen  gleiche Teilbäume Verbesserung  Faktor 7000 (bei 40 Profilen) 35 30 25 20 Speicher in kB 15 10 5 10 15 20 25 30 35 40 250 200 150 Speicher in MB Zacken: zufällige Profilauswahl, Speicher je nach Überlappung der Profildefinitionen 100 50 10 15 20 25 30 35 40 Profilanzahl Teilbäume als Verweise Teilbäume als Kopien Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Implementierung - Knotenzahl 0,1 0,2 0,3 0,4 0,5 0,6 0,7 100 125 150 175 200 225 250 275 300 Profilanzahl Zeit pro Ereignis in ms 1 Knoten je Attribut Baum Abw.: 1-2% Matchingzeit bei 10 Attributen, 1 Ereignistyp 0,002 0,004 0,006 0,008 0,01 0,012 0,014 Speicherverbrauch bei 10 Attributen, 1 Ereignistyp Problem Knotenzahl des Baumes Lösung kein Baum, nur 1 Knoten pro Attribut Schneiden der Profilmengen Verbesserung (Speicher)  Faktor 42 (bei 300 Profilen) 2500 2000 1500 Speicher in kB 1000 500 100 125 150 175 200 225 250 275 300 100000 90000 80000 70000 60000 eine Ebene des DFA in 1 Knoten packen Speicher in kB 50000 40000 30000 20000 10000 100 125 150 175 200 225 250 275 300 Profilanzahl 1 Knoten je Attribut Baum Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

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

Implementierungsansatz - Verweise (2) Speicherverbrauch Objektverweise(Standardmethode) # Kanten * # Profile je Kante * Speicher Verweis * # Knoten = 700 * 700 * 4 * 10 = 18.69 MB Bitliste Feld aller Profile + # Intervalle * Speicher Bitliste * # Knoten = 1000 * 4 + 700 * (1000/8) * 10 = 858,4 KB Verbesserung  Faktor 22 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Implem. - Verteilungsabhängigkeit (1) Umordnung der Attribute im Baum 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 Filterstruktur Erweiterung: Historie + Umordnung bei Bedarf Umordnung hier == Änderung der Auswertungsreihenfolge A2 heisst, das die Ereignisse zu den Profilen nicht passen Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Implem. - Verteilungsabhängigkeit (2) sukzessives Schneiden nach jedem Attribut Abbruch (kein Profil passend) bei Erreichen der leeren Menge u.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 Matchingzeit bei 10 Attributen, 1 Eventtyp 2 4 6 8 10 12 500 750 1000 1250 1500 1750 2000 2250 2500 2750 3000 Profilanzahl Zeit pro Event in ms einmaliges Schneiden sukzessives Schneiden Matchingzeit bei 20 Attributen, 1 Eventtyp 14 16 18 20 Zeit per Event in ms Abw.: 1-2% 20 nicht so große Verbesserung: da nicht soviele Ereignisse passen und auch zufällige Reihenfolge große Wahrscheinlichkeit zu Ergebnis leere Menge Ende Auslagerung Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Vergleichssysteme 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 Elvin4 Implementierung in C, Ansprechen in Java verteilte Client-/Serverarchitektur keine getypten Ereignisse Simulation durch zusätzliches Attribut Abonnent: Typ als Prädikat ; Anbieter: zusätzl. Attribut-Wert-Paar OpenOrb - Java : Performance später sehen Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Performance - steigende Profilzahl Matchingzeit bei 10 Attributen, 10 Ereignistypen Anstieg etwa linear Elvin4 ca. 18-22 mal langsamer CORBA ca. 1800-2800 mal langsamer 12 10 8 Zeit pro Ereignis in ms 6 4 2 250 500 750 1000 1250 1500 1750 2000 1200 1000 800 Zeit pro Ereignis in ms 600 400 200 250 500 750 1000 1250 1500 1750 2000 Profilanzahl Abw.: 1-2% Filteralgorithmus CORBA Elvin4 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Performance - steigende Attributzahl Matchingzeit bei 1 Ereignistyp, 500 Profilen Anstieg etwa linear Elvin 10-20 mal langsamer CORBA 1300-1800 mal langsamer Filteralgorithmus: Abweichung wegen sukzes. Schneiden 40 35 30 25 Zeit pro Ereignis in ms 20 15 10 5 1 3 5 7 9 11 13 15 17 19 2500 2000 1500 sukz. Schneiden: nicht alle Attribute müssen ausgewertet werden; je von zufälliger Event-/Profilverteilung abhängig Zeit pro Ereignis in ms 1000 500 1 3 5 7 9 11 13 15 17 19 Attributanzahl Abw.: 1-2% Filteralgorithmus CORBA Elvin4 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Performance - steigende Typanzahl Matchingzeit bei 10 Attributen, 500 Profilen Elvin 14-19 mal langsamer CORBA 1200-3000 mal langsamer keine Typunterstützung kein Hindernis (zuerst Typtest) 20 18 16 14 12 Zeit pro Ereignis in ms 10 8 6 4 2 1 3 5 7 9 1800 1600 1400 1200 1000 Zeit pro Ereignis in ms 800 600 400 200 1 3 5 7 9 Ereignistypanzahl Abw.: 1-2% Filteralgorithmus CORBA Elvin4 Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

Systemvergleich - Zusammenfassung Geschwindigkeit: Elvin  10 - 25 mal langsamer CORBA  1200 - 3000 mal langsamer Vergleichbarkeit: Filteralgorithmus: Ansprechen im gleichen Adressraum Elvin/CORBA: Kommunikation via TCP/IP (Sockets) COBEA zeigt ähnliche Geschwindigkeiten[Ma98] Verteilungstransparenz, interne Abläufe nicht bekannt/hier übertrieben Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

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) Sven Bittner - Filteralgorithmen für Benachrichtigungssysteme

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