(WS10-01) Parallelisierung von Data-Stream-Mining-Abläufen

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche

DataStreamMining-Framework (DSMF)

Grundlagen

Architektur

Komponenten

  • Framework-Manager
  • Operatoren
    • Parametrisieren über Key/Value Paare
    • Ein/Ausgänge benamen
    • Beschreibung in Schemata
  • Scheduler
    • Workerthread-Erzeugung für Operatoren
    • Schnittstelle zum Festlegen bzw. Ändern der Thread-Priority
    • Verwendung von boost::threads, direktes Ändern der Priorität nicht möglich

Messages

Speicherverwaltung

  • Reference Counting

Format

  • selbstbeschreibendes Format
  • Key/Value Paare
  • Pflichtelemente
  • optionale Elemente
  • BSON
    • binäres JSON
    • verwendet c Datentypen (dadurch recht schnell, da die Daten nicht zwangsweise geparst werden müssen)
    • flexibel und selbstbeschreibend
  • google protocol buffers (protobuf)
    • selbstbeschreibend
    • erweiterbar (auf/abwärtskompatibel)

Aurora/Borealis

Lessons learned

Punkte aus Lessons learned Abschnitt aus Paper: The Aurora and Borealis Stream Processing Engines

  1. Support for historical data
 Unterstützung für Verarbeitungsmöglichkeit von historischen Daten sinnvoll.
 u. U. auch hybride Queries denkbar
 Laut Paper drei, in ihrem update-pattern verschiedene Formen:
   open windows, aggregate summaries, tables
     
  1. Synchronization
 Synchronisation notwendig, um Dateninkonsistenzen zu vermeiden
   DSMF: auf niedriger Ebene dadurch erreicht, das immer nur ein Operator auf eine Queue zugreifen kann, und Messages nach dem Erzeugen (bzw. erstem Einfügen in eine Queue) nicht mehr verändert werden dürfen.
  auf höherer Ebene: WaitFor Operator
   
  1. Resilience to unpredictable stream behavior
 Die Verarbeitungsnetzwerke sollten mit zeitlich ungeordneten Nachrichten umgehen können.
 Für Zeitfenster bedeutet dies zum Beispiel, dass ein Timeout implementiert werden sollte.
 
  1. XML and other feed formats adaptor required
 Es sollte möglich sein, Input-Daten mit verschiedenen Formaten in das interne Format zu konvertieren
 DSMF: vorgesehen durch zu implementierende Operatoren
 Dasselbe gilt auch für Output-Daten
  1. Programmatic interfaces and globally accessible catalogs are a good idea
  DSMF: vorgesehen durch Lua-Schnittstelle
  
  1. Performance critical
 Es gibt potentielle bottle-necks:
   - Nachrichtentransport
   - Scheduling overhead
   - Nachrichtenverarbeitung: Operatoren sollten Nachrichten in konstanter Zeit verarbeiten können
     - besonderes Augenmerk bei Stateful Operatoren
 im DSMF berücksichtigt:
   Queues halten nur Referenzen auf Messages, dadurch kein teures Kopieren
   Workerthreads-Scheduling durch OS-Scheduler, aber Schnittstelle für Änderung der Thread-Priority vorgesehen
   ggf. Memorypooling, um häufige Speicher(de-)allokation zu vermeiden

Literatur