280 likes | 386 Views
Vortrag im Rahmen der Siegmundsburger Vortragsreihe 2006. zum Thema ASC und Self-Healing gehalten von Robert Fleischer. Inhalt des Vortrages. Self-optimization / ASC Motivation Beispiel für Notwendigkeit von ASC Die ASC Architektur Performance Beispiel Self-healing
E N D
Vortrag im Rahmen der Siegmundsburger Vortragsreihe 2006 zum Thema ASC und Self-Healing gehalten von Robert Fleischer
Inhalt des Vortrages • Self-optimization / ASC Motivation Beispiel für Notwendigkeit von ASC Die ASC Architektur Performance Beispiel • Self-healing Kurzüberblick Health Monitor Kurzüberblick Health Center
Self-management 1.Self-configuration 3.Self-healing 4.Self-protection Motivation und Aspekte des Self-management ??? 2.Self-optimization • LEO+POP • ASC
Was ist ASC? • Automated Statistics Collection • Komponente in IBM DB2 UDB ver.8.2 im Rahmen des Self-management Konzeptes • Automatisierung des in DB2 integrierten Runstats Tools • Kein tiefgehendes eingreifen des DBA‘s • Hält Statistiken des Systemkataloges aktuell, wenn kostenmäßig sinnvoll
Motivation für ASC? • Manuelles pflegen der Statistiken zeitaufwändig und kompliziert • Ziel jedes DBMS: Anfragen möglichst schnell und kostengünstig abzuarbeiten • Nicht vorhandene bzw. aktuelle Statistiken resultieren in Fehleinschätzungen des Optimizers Schlechte Gesamtperformance und hohe Systembelastung
Beispiel für Fehleinschätzungen Gegeben: • Relativ umfangreiche Tabelle (~14.000.000 Datensätze) • Nicht indiziert • einfache Anfragen und dazugehörige Anfragepläne
Möglich durch Automatic Statistics Collection Lösung des Problems? • Sicherstellen das relevante Statistiken existieren • Überwachung der Aktualität Dieser • Ohne übermäßigen Anstieg des Rechenaufwands
Die ASC-Architektur • Basiert auf zwei autonomen Prozessen • Diese münden in Scheduler UDI-Prozess Scheduler Query-Feedback-Prozess
Tabellenmenge G -X1 -X2 Der Update-Delete-Insert-Prozess D = G – X1 – X2
Die ASC-Architektur UDI-Prozess Scheduler Query-Feedback-Prozess
Der Query-Feedback-Prozess • Besteht aus zwei Monitoren • Ablage aller generierten Daten im QFW • Dem QFA als Analysekomponente
Aufbau des Query-Feedback-Warehouse • Besteht aus 5 Tabellen • Gegliedert in Feedback- und Empfehlungsteil • Unabhängige Komponente in DB2
Der QF-Prozess im Detail QF-Analyzer
Rückgabe einer Teilmenge Aufruf AA mit einer Tabellenmenge Aufruf Aufruf des QFA Rückgabe einer P-Liste ggf. Aktualisierung Datenfluss zum Scheduler UDI-Prozess Runstats Scheduler Runstats Profile QF-Prozess
Erstellen der Aufrufliste durch den Scheduler • Einteilung in fünf Klassen: • Useful: 10-50% der Werte der Zeilen verändert • Needed: Empfehlung durch QFA • Pressing: >50% der Zeilenwerte verändert • Urgent: needed + >10% veränderte Zeilenwerte • Critical: stark vernachlässigte Tabellen
Der Scheduling Algorithmus // G, P, D, Q, C Listen mit Tabellen, T sei eine Tabelle G := Durch ASC abzuhandelnde Tabellen in erster Iterration P, D, Q, C := {} while(true) { D := AA(G); // Aufruf AA für Tabellen in G Q := QFA(); // Starten QFA P := prioritizeMerge(D, Q, C); while (Zeit in aktuellem Wartungsintervall) { T := Pop(P); // T ist top priority TabelleRunstats+dcr } (G, C) := constructDueTables() //Listen für nächstes //Intervall erstellen warte bis zum nächsten Intervall; }
Was bleibt manuell zu tun? • Einstellung der zu überwachenden Tabellen • Zeitfenster für das Wartungsintervall angeben (siehe nächste Folie) • Festlegen der Menge G für die erste Iteration • Angabe der Maximalgröße für das QFW • Konfigurieren des Schedulers hinsichtlich Einbindung von AA, QFA oder beidem
Einstellung des Wartungsintervalls / Dialog • Festlegen des Zeitpunktes und der Länge • Einstellung der Wiederholungsintervalle
Entlastung beim verwalten eines DBS Probleme gelöst? • Sicherstellen das relevante Statistiken existieren • Überwachung der Aktualität Dieser • Ohne übermäßigen Anstieg des Rechenaufwands
Beispiel zur Performance Gegeben: • Datenbank mit fünf Tabellen (Car, Owner, Demographics, Accident) • 11 Select-Anfragen, nach verschiedenen Schritten (A-E) ausgeführt • Schritt C führt neue Datensätze ein • Anfrage 10 enthält abhängige Attribute der Tabellen Car und Owner ( Make, Model und City, Country3)
Self-management 1.Self-configuration 2.Self-optimization 4.Self-protection Motivation und Aspekte des Self-management ??? 3.Self-healing • Health Monitor • Health Center
Der Health-monitor • Serverseitiges Tool • Läuft im Hintergrund • Überwacht den Zustand von an verschieden Komponenten gemessenen Indikatoren • Drei mögliche Meldungen / Indikatoren zustände: • Warnung • Achtung • Alarm • Je nach Einstellung Ausführung vordefinierter Aktionen
Das Health-Center • Ein grafische Oberfläche zum Health-Monitor • Einstellung des Health-Monitor möglich