Fakultät für Informatik TU München - Fakultät für Informatik
Lehrstuhl III: Datenbanksysteme
Technische Universität München
Home  |  Personen  |  Forschung  |  Lehre  |  Sonstiges  | 

SLA Enforcement

Beschreibung

Dieses Projekt ist Teilprojekt von AutoGlobe

In serivceorientierten Softwarearchitekturen von Unternehmen stellen Datenbanken eine kritische Komponente für das Quality of Service (QoS)-Management zwischen Kunden und Dienstanbietern dar. Meist greift eine Vielzahl von Diensten auf eine zentrale Datenbank zu. Die Wichtigkeit einzelner Anfragen ist abhängig von den Service Level Agreements (SLAs). Eine SLA ist ein Vertrag zwischen einem Kunden und einem Dienstanbieter. Die SLA enthält Anforderungen an die Dienstgüte eines Dienstes, den der Dienstanbieter zur Verfügung stellt. Wenn die Bedingungen nach Ablauf einer festgelegten Zeitspanne verletzt sind, wird dem Dienstanbieter eine Strafe auferlegt. Diese Strafe ist abhängig von der Schwere der SLA-Verletzung und wird ebenfalls im Vertrag festgehalten. Auch bei serviceorientierten Architekturen (SOAs), bei denen statt eines monolithischen Dienstes mehrere leichtgewichtige (Web) Services eingesetzt werden, werden SLAs im Allgemeinen nur für die Dienste ausgehandelt, die direkt vom Kunden aufgerufen werden. Der Einfachheit halber werden im Folgenden nur Dienste betrachtet, die auf eine Datenbank zugreifen.
Um eine prioritätsgesteuerte Abarbeitung auf der Datenbank zu ermöglichen, muss den Datenbankanfragen, die von einem Dienst abgesetzt werden, eine Priorität zugeteilt werden. Heute ist es üblich, dass Kunden statisch in Klassen eingeteilt werden (zum Beispiel Query Patroller for DB2 und Oracle Resource Manager). Die Anfragen zahlungskräftiger "Platin"-Kunden werden gegenüber Anfragen von "Gold"- oder "Silber"-Kunden bevorzugt bearbeitet, weswegen Anfragen von Platin-Kunden im Allgemeinen kürzere Antwortzeiten aufweisen als die der niedriger priorisierten Pendants.
Dieser Ansatz zielt darauf ab, zuerst die Anforderungen von sehr wichtigen Kunden zu erfüllen. Die statische Priorisierung erlaubt allerdings nicht das Management von SLAs, bei denen nicht alle, sondern nur ein gewisser Prozentsatz der Anfragen rechtzeitig bearbeitet werden muss. Als Beispiel soll eine (vereinfachte) SLA dienen, die fordert, dass 90% aller Anfragen in jeweils 5 Sekunden bearbeitet werden sollen. Priosiert man alle Anfragen statisch, so werden wahrscheinlich fast alle (nahezu 100%) der Anfragen aller Platin-Kunden innerhalb der Zeitanforderung beantwortet. Da Anfragen von Gold- und Silber-Kunden mit Anfragen höherer Priorität um Datenbankressourcen konkurrieren, ist die Gefahr, dass ihre SLAs verletzt werden, sehr hoch - obwohl Platin-Kunden ihre SLA "übererfüllen".
Deswegen wurde am Lehrstuhl für Datenbanksysteme ein Kostenmodell für die dynamische Priorisierung von Conformance}, das heißt dem Verhältnis zwischen der Anzahl rechtzeitig bearbeiteter Anfragen und der Gesamtzahl der Anfragen. Die Priorität einer Anfrage wird über eine Straffunktion repräsentiert. Diese Prioritätsinformation wird an die SQL-Statements angehängt und auf Datenbankseite ausgewertet.


Lehrstuhl für Datenbanksysteme
Letzte Änderung: 15.01.2007 um 18:50:47