240 likes | 411 Views
Integriertes Seminar Datenbanken und Informationssysteme im Sommersemester 2005. Scheduling und Speicherverwaltung. Bearbeiter: Jörg von Blon. 08.07.2005. Inhalt des Seminars. Vorstellung des Problembereichs Lösungsansätze verschiedener Systeme STREAM PIPES AURORA
E N D
Integriertes Seminar Datenbanken und Informationssysteme im Sommersemester 2005 Scheduling und Speicherverwaltung Bearbeiter: Jörg von Blon 08.07.2005
Inhalt des Seminars • Vorstellung des Problembereichs • Lösungsansätze verschiedener Systeme • STREAM • PIPES • AURORA • Bewertung und Ausblick Scheduling und Speicherverwaltung
Charakteristische Merkmale der Datenstromverarbeitung • kontinuierliche Anfragen • aktive Datenbestände • Online-Verarbeitung • potentiell unbegrenzte Größe der DS • sequentieller Zugriff • blockierende Operatoren Scheduling und Speicherverwaltung
Problembereich: Speicher • Fenstersemantik erforderlich • Ad-hoc-Anfragen • Approximation häufig erforderlich • Load Shedding • Reduktion der Fenstergröße • Sampling • .... • Adaptive Systeme erforderlich Scheduling und Speicherverwaltung
Problembereich: Scheduling • Was versteht man unter Scheduling ? • Scheduling nach zwei Aspekten: • Lastreduktion • Qualität • Zusatz bei DSMS : Dienstgüte beachten • naheliegende Scheduling-Konzepte: • Graph Threaded Scheduling (GTS) • Operator Threaded Scheduling (OTS) • Problem: Strategie arbeitet niemals speicheroptimalNP-Vollständigkeit Scheduling und Speicherverwaltung
Beispiel: FIFO vs. GREEDY • einfacher Anfrageplan mit zwei Operatoren • Welche Ziele verfolgen FIFO/GREEDY ? • Welche Vor-, bzw. Nachteile besitzen die Strategien ? • Ankunft von n Tupeln pro Zeiteinheit • Reduktion um 80% an Operator 1 • Reduktion um 20% an Operator 2 Scheduling und Speicherverwaltung
Beispiel: FIFO vs. GREEDY FIFO Op 1 Op2 n-Tupel Ausgabe 0,2n Tupel Greedy Op 1 Op 2 n-Tupel 0,2n Tupel Ausgabe Scheduling und Speicherverwaltung
Beispiel: FIFO vs. GREEDY FIFO Op 1 Op2 n-Tupel n-Tupel Ausgabe Greedy Op 1 Op 2 n-Tupel Ausgabe 0,4n Tupel Scheduling und Speicherverwaltung
STREAM-Architektur STREAM • Interaktive Benutzerschnittstelle • Datenstromdarstellung: (Tupel,Zeitstempel) • Registrierung von Anfragen über CQL • mögliche Überlappungen identifizieren • Komponenten: • Anfrageoperatoren • Zwischenwarteschlangen • Synopsen • Scheduler Scheduling und Speicherverwaltung
Chain Scheduling STREAM • annährend speicheroptimale Strategie • verbraucht selbst wenige Ressourcen • Progress Charts als Grundlage • Darstellung der Tupelverarbeitung in Progress Charts • Aufstellen des Verarbeitungsgraphen anhand n+1 Operatorpunkte Scheduling und Speicherverwaltung
Generierung der Progress Charts STREAM • Punkte repräsentieren Verarbeitungszeit und Selektivität • Erstellung der inneren Hülle • Strategie: Die Operatoren mit der betragsmäßig größten Steigung bezüglich der inneren Hülle werden ausgeführt. • Auswahl der steilsten SegmenteGreedy • Innerhalb der SegmenteFIFO Scheduling und Speicherverwaltung
Ausweitung auf mehrere parallele Anfragen STREAM • Überlappende Anfragen bilden einen DAG • Aufspaltung in Operatorketten • Problem: Bei Joins sind Ketten abhängig von anderen Ketten • Blockade der korrespondierenden Kette Scheduling und Speicherverwaltung
Modifikation des Chain-Verfahrens STREAM • Notwendigkeit wegen Aushungerns von Operatoren in flachen Segmenten • Einführung des Mixed-Algorithmus • Benutzer definiert Schwellenwert für Steigung • Segmente unterhalb dieses Wertes werden zusammengefasst • Neues Segment ist ausgeglichener Experimentelle Auswertung der Strategien Chain, FIFO, Mixed mit verschiedenen Schwellenwerten Scheduling und Speicherverwaltung
Modifikation des Chain-Verfahrens STREAM Schwellenwert für Steigung CHAIN MIXED Scheduling und Speicherverwaltung
PIPES PIPES-Architektur • Typen von Knoten: Quellen, Operatoren, Senken • zentrale Komponenten: Ablaufsteuerung, Optimierer, Speichermanager Scheduling und Speicherverwaltung
Kombination der Techniken GTS/OTS dreischichtiges Verfahren DI Thread-Zusammensetzung TS implizites Scheduling: direct interoperability(DI) PIPES-Scheduling-Konzept aufbauend auf Thread-Verwaltung in Java PIPES Hybrid Multi Threaded Scheduling (HMTS) Scheduling und Speicherverwaltung
suboptimales Ergebnis von GTS minimaler Speicherverbrauch und kürzere Latenzzeit bei HMTS PIPES HMTS vs. GTS • Vor- und Nachteile • von HMTS ? • Was ist nun • problematisch • an HMTS ? Anzahl Resultate Puffer Größe Zeit in Sekunden Scheduling und Speicherverwaltung
AURORA-Architektur AURORA • Anfrageverarbeitung mit Hilfe des boxes-and-arrows-Prinzips • Scheduling anhand definierter Werte für die Dienstgüte • Architektur begrenzt auf Stromverarbeitung • Connection Points machen Arbeit auf historischen Daten möglich Scheduling und Speicherverwaltung
Zwei-Phasen-Scheduling AURORA • Scheduling wird in zwei Phasen durchgeführt • Phase 1: Entscheidung, welche Anfrage bearbeitet wird • Phase 2: Abarbeitungsreihenfolge der Operatoren • Kombination von Techniken, wie Operator Batching und Tupel Batching Scheduling und Speicherverwaltung
Operator Batching AURORA • entspricht in PIPES vorgestellter Technik DI • Nutzen: geringer Scheduling Overhead durch implizites Scheduling • Zusammenschluss an Operatoren = Superbox • Definition der Superboxes statisch • Durchlauf der Superboxes (Traversierung) anhand spezieller Kriterien: • Min-Cost • Min-Latency • Min-Memory Scheduling und Speicherverwaltung
Min-Cost Traversierung AURORA • Annahme: • An jedem Operator wartet ein Tupel • Jeder Operator besitzt eine Selektivität Eins • Umordnung in Post-Ordnung innerhalb der Superbox • Minimierung der Bearbeitungskosten pro Tupel durch Minimierung der Operatoraufrufe • Traversierung : b4b5b3b2b6b1 • Kosten: • 6 Operatoraufrufe • 15 Zeiteinheiten zum Abarbeiten aller Tupel Scheduling und Speicherverwaltung
QoS-gesteuertes Scheduling AURORA • Ermittlung von Prioritäten für Operatoren durch ein 2-Tupel (Nutzen, Dringlichkeit) • Wie sind die Werte des 2-Tupels definiert ? • Aufteilung der beiden Werte in sogenannte Buckets schon vor Anlauf des Programms Scheduling und Speicherverwaltung
Bucket-Einteilung AURORA • Für die Zuteilung von Operatoren zu Buckets sind zwei Hilfstabellen notwendig: • Gradient-Latency-Graph • Slack-Latency-Graph • Benutzer bestimmt • Schwellenwerte für Zuordnung • Buckets sind Maß • für Abstraktionsgrad • Komplexität: O(n) Scheduling und Speicherverwaltung
Fazit und Ausblick • Versuchsbedingungen sind in der Realität oftmals nicht gegeben • Es existieren noch keine Systeme, welche optimale Ergebnisse für die verschiedensten Anwendungen und Lastsituationen liefern • Approximationstechniken sind unbedingt notwendig, um in Zeiten hoher Last die Beantwortung zu ermöglichen • Momentane Forschungsarbeiten befassen sich mit der Entwicklung möglichst intelligenter Scheduler und Speichermanager Scheduling und Speicherverwaltung