-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft allgemein das Gebiet von Datenbanksystemen, insbesondere von Datenbanksystemen mit einem Server für einen Zugriff auf die Datenbank. Insbesondere betrifft die vorliegende Erfindung ein Verfahren und ein System zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem und damit das Verringern von Sperrvorkommen in Server/Datenbank-Systemen.
-
Hintergrund
-
In herkömmlichen Client-Server-Architekturen sind einer oder mehrere Knoten mit einem oder mehreren Servern über ein Netzwerk verbunden, das eine bidirektionale Datenübertragung zwischen einem Client und einem Server gestattet. Normalerweise empfängt ein Server Anforderungen von mehreren Quellen und bearbeitet sie nach einem definierten Verarbeitungsschema. Am häufigsten wird eine First-In-First-Out-(FIFO-)Vorgehensweise verwendet, die ermöglicht, dass die erste empfangene Anforderung als erste von dem Server bearbeitet wird, die zweite Anforderung als zweite behandelt wird und so weiter. In Datenbanksystemen werden eingehende Anforderungen der Clients unter Verwendung von Warteschlangen bearbeitet, um die fortlaufende Anordnung der Anforderungen zu organisieren.
-
Die Servicequalität in einer vorgegebenen Client-Server-Architektur wird erzielt auf der Grundlage der Latenzzeit zwischen einer Anforderung, die an einen Server gesendet wird, und der Zeit, nach der der anfordernde Client eine Antwort von dem Server empfängt. Je höher die Auslastung auf einem Server ist, desto höher ist die Wahrscheinlichkeit, dass sich die Latenzzeit für den Empfang einer Antwort erhöht. In vielen Fällen besitzen die Clients integrierte Mechanismen, die „Timeout”-(Zeitlimitüberschreitung)Einrichtungen verwenden, um lange Wartezeiträume bis zur Beantwortung für eine Anforderung zu vermeiden. In solchen Fällen wird die Anforderung abgebrochen, und selbst wenn Ergebnisse von dem Server an den anfordernden Client weitergeleitet werden, ignoriert der anfordernde Client die Ergebnisse oder kann sie nicht empfangen, weil die Verbindung bereits von einem Client beendet worden ist. In einigen Anwendungen erzeugt der Client eine weitere Anforderung in der Erwartung, dass diese Anforderung innerhalb des zugewiesenen Zeitrahmens beantwortet wird. Dieses Schema kann zu einem zusätzlichen Belasten der Warteschlange des Servers führen, wodurch weitere Verzögerungen in der Antwortzeit des Servers verursacht werden.
-
In einer großen Datenbankumgebung mit vielen Clients, die mit dem Server verbunden sind, um Anforderungen zu senden, die verarbeitet und per Push-Operation an die Datenbank übertragen werden sollen, können Datenbank-Operationen zu einem Engpass führen und die gesamte Systemleistung beeinträchtigen. Wenn die Systemleistung abnimmt, können Clients keine Verbindung mehr zum Server herstellen. Normalerweise versuchen sie zu einem späteren Zeitpunkt, eine Verbindung zu bekommen, d. h., die Anzahl der Serververbindungen nimmt zu. Dies führt zu einer Abwärtsspirale, weil der Server so viele eingehende Verbindungen hat, dass die Datenbankleistung durch den Ressourcenverbrauch für das Bearbeiten von Sperren verringert wird. Die schlechte Datenbankleistung führt zu Verzögerungen bei der Anforderungsverarbeitung, was wiederum die Anzahl von gleichzeitigen Anforderungen erhöht, die verarbeitet werden sollen.
-
Außerdem kann eine Anforderung, die zu lange auf einem Server wartet, für einen Fehler gehalten werden, selbst wenn sie schließlich durch den Server verarbeitet wurde, weil eine Zeitlimitüberschreitung ausgelöst wurde.
-
Daher wäre es von Vorteil, einen Mechanismus für den Umgang mit Überlastsituationen in einer Client-Server-Umgebung zu haben. Insbesondere wäre es von Vorteil, einen Mechanismus zu haben, der Situationen einer Zeitlimitüberschreitung aktiv vermeidet und dem System das Erreichen eines maximalen Durchsatzes ermöglicht.
-
Kurzdarstellung der Erfindung
-
Es ist ein Ziel von Ausführungsformen der Erfindung, ein verbessertes, durch einen Computer umgesetztes Verfahren, ein computerlesbares Medium und ein Computersystem zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem bereitzustellen. Dieses Ziel wird durch die Merkmale der unabhängigen Ansprüche erreicht. Bevorzugte Ausführungsformen werden in den Unteransprüchen aufgeführt. Wenn nicht explizit anders angegeben, können Ausführungsformen der Erfindung frei miteinander kombiniert werden.
-
In einem Aspekt betrifft die Erfindung ein durch einen Computer umgesetztes Verfahren zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem, das die folgenden Schritte aufweist:
- – Anordnen von Anforderungen, die durch das Datenbanksystem zu bearbeiten sind, in mindestens einer Warteschlange:
- – Definieren eines maximalen Werts für gleichzeitige Anforderungen, die der mindestens einen Warteschlange entsprechen;
- – Überwachen von mindestens einem Warteschlangen-Nutzungsparameter, der der mindestens einen Warteschlange entspricht, und Berechnen eines Leistungswerts auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters,
- – dynamisches Anpassen des maximalen Werts von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des Leistungswerts, um die Systemleistung zu verbessern, und
- – dynamisches Begrenzen der Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des dynamisch angepassten maximalen Werts.
-
Zum Beispiel ist der mindestens eine Warteschlangen-Nutzungsparameter die durchschnittliche Verarbeitungszeit von Anforderungen, die Anzahl von bedienten Anforderungen, die Anzahl von zurückgewiesenen Anforderungen, das Verhältnis von zurückgewiesenen Anforderungen zu der Gesamtanzahl von Anforderungen in einem bestimmten Zeitraum oder ein Parameter auf der Grundlage einer Berechnung, der mindestens zwei der oben genannten Parameter kombiniert usw. Ferner kann der mindestens eine Warteschlangen-Nutzungsparameter von einer Information über die statistische Verteilung von Zeit abgeleitet werden, die zum Verarbeiten einer Anforderung benötigt wird, z. B. kürzeste Verarbeitungszeit, längste Verarbeitungszeit, Verarbeitungszeitbereich, Abweichung von Verarbeitungszeit, Variante der Verarbeitungszeit usw.
-
Diese Merkmale können von Vorteil sein, da es möglich ist, das Datenbanksystem abhängig von der Auslastung des Datenbankservers mit Spitzenleistung zu betreiben. Wenn nur eine marginale Auslastung vorliegt, d. h., der Leistungsfaktor ist niedrig, wird die Anzahl von gleichzeitigen Anforderungen in der Warteschlange dynamisch erhöht. Wenn umgekehrt die Systemleistung abnimmt, wird die Anzahl von gleichzeitigen Anforderungen in der Warteschlange verringert, um dem System das Bearbeiten der Anforderungen ohne Zeitlimitüberschreitung von Anforderungen zu ermöglichen.
-
Gemäß bevorzugten Ausführungsformen werden die Anforderungen in mindestens zwei Gruppen gruppiert, wobei jeder Gruppe eine zugeordnete Warteschlange und ein warteschlangenspezifischer maximaler Wert für gleichzeitige Anforderungen zugehörig ist. Insbesondere in Umgebungen mit einer enormen Anzahl von eingehenden Anforderungen wird die Datenbankleistung durch die Bearbeitung von Sperren in Anspruch genommen. Vorzugsweise werden Anforderungen in Gruppen gemäß der Wahrscheinlichkeit angeordnet, dass sie sich gegenseitig blockieren. Anforderungen, die sich mit größerer Wahrscheinlichkeit gegenseitig blockieren, werden derselben Gruppe zugewiesen. Umgekehrt werden Anforderungen mit einer geringen Wahrscheinlichkeit, dass sie sich gegenseitig blockieren, zu verschiedenen Gruppen zugewiesen. Zum Beispiel kann eine Gruppierung auch nach der Service-ID des Service, der die Anforderung ausgelöst hat, gemäß einem Lernmechanismus vorgenommen werden, der den Ausnahmenstapel analysiert, um die sich beeinträchtigenden Services zu identifizieren usw.
-
Gemäß bevorzugten Ausführungsformen wird die Anzahl von gleichzeitigen Anforderungen durch Zurückweisen von eingehenden Anforderungen begrenzt, bevor sie in die Warteschlange eingefügt werden, und/oder durch Entfernen von Anforderungen aus der Warteschlange. Vorzugsweise wird die Anzahl von gleichzeitigen Anforderungen nur in kleinen Schritten geändert, um sie sanft an die aktuelle Systemleistung anzupassen. Dies erfolgt durch Zurückweisen von eingehenden Anforderungen, bevor sie in die Warteschlange eingefügt werden. Wenn ein Sperr-Zeitlimitüberschreitungsereignis eingetreten ist, sollte die Systemleistung schnell erhöht werden. Daher wird die Anzahl von gleichzeitigen und bereits in der Warteschlange befindlichen Anforderungen verringert, um ein schnelles Hochfahren der Systemleistung zu ermöglichen.
-
Gemäß bevorzugten Ausführungsformen wird der Leistungswert für einen ersten Zeitraum berechnet, wobei der Leistungswert des ersten Zeitraums zum Anpassen des maximalen Werts von gleichzeitigen Anforderungen in einem zweiten Zeitraum verwendet wird, der unmittelbar nach dem ersten Zeitraum folgt. Vorzugsweise wird der Leistungswert des ersten Zeitraums mit dem Leistungswert des zweiten Zeitraums verglichen, um die Veränderung des Leistungswerts zu ermitteln. Zum dynamischen Verbessern der Systemleistung wird die Veränderung des Leistungswerts zum Anpassen der Anzahl von gleichzeitigen Anforderungen verwendet.
-
Gemäß bevorzugten Ausführungsformen wird der maximale Wert von gleichzeitigen Anforderungen durch ein Zähl-Semaphor bearbeitet. Der Vorteil bei der Verwendung eines Zähl-Semaphors besteht darin, dass der Zustand der jeweiligen Warteschlange (offen/geschlossen) und die Anzahl von gleichzeitigen Anforderungen gleichzeitig bearbeitet werden können. Dadurch ist es möglich zu ermitteln, ob eine eingehende Anforderung, die einer Gruppe zugewiesen wurde, in die Warteschlange eingefügt werden kann oder zurückgewiesen werden muss (offen/geschlossen). Außerdem kann der maximale Wert von gleichzeitigen Anforderungen aus dem Semaphor abgerufen werden.
-
Gemäß bevorzugten Ausführungsformen wird der maximale Wert von gleichzeitigen Anforderungen so gewählt, dass das Produkt aus der Anzahl von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit einer Anforderung maximiert wird. Die grafische Darstellung des Produkts aus der Anzahl von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit im Vergleich zur Anzahl von gleichzeitigen Anforderungen zeigt einen Spitzenwert. An diesem Spitzenwert wird die beste Systemleistung erzielt. Daher wird der maximale Wert von gleichzeitigen Anforderungen gemäß diesem Spitzenwert gewählt.
-
Gemäß bevorzugten Ausführungsformen wird die maximale Länge der mindestens einen Warteschlange auf der Grundlage des maximalen Werts von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit von Anforderungen dynamisch angepasst. Dadurch wird nicht nur die Anzahl von Anforderungen, die in die Warteschlange eingefügt werden, sondern auch die Gesamtlänge der Warteschlange geändert, um die warteschlangenspezifischen Parameter an die aktuelle Systemleistung anzupassen.
-
Gemäß bevorzugten Ausführungsformen wird nach dem Empfangen einer Sperr-Zeitlimitüberschreitung der Datenbank der maximale Wert von gleichzeitigen Anforderungen und die maximale Länge der mindestens einer Warteschlange verringert, um weitere Sperr-Zeitlimitüberschreitungen zu vermeiden. Im Allgemeinen ist es beim Verwenden des erfindungsgemäßen Verfahrens ziemlich unwahrscheinlich, dass Sperr-Zeitlimitüberschreitungen auftreten. Dennoch ermöglicht das Verringern der Anzahl von gleichzeitigen Anforderungen und der Länge der mindestens einen Warteschlange nach dem Auftreten einer Sperr-Zeitlimitüberschreitung dem System, die Leistung schnell hochzufahren und deshalb weitere Sperr-Zeitlimitüberschreitungen zu vermeiden.
-
In einem weiteren Aspekt betrifft die Erfindung ein computerlesbares Medium, das einen darin verkörperten computerlesbaren Programmcode aufweist, der, wenn er durch einen Prozessor ausgeführt wird, den Prozessor veranlasst, ein Verfahren gemäß irgendeiner der vorher genannten Ausführungsformen auszuführen.
-
In einem weiteren Aspekt betrifft die Erfindung ein Datenbanksystem auf der Grundlage eines Computers, das mindestens einen Server aufweist, der als Datenbank-Client arbeitet und aufweist
- – eine Dispatcher-Einheit, die so ausgelegt ist, dass sie Anforderungen, die von der Datenbank bearbeitet werden sollen, in mindestens einer Warteschlange anordnet;
- – eine Überwachungseinheit, die so ausgelegt ist, dass sie
- • einen maximalen Wert für Anforderungen definiert, die der mindestens einen Warteschlange entsprechen und gleichzeitig verarbeitet werden sollen;
- • mindestens einen Warteschlangen-Nutzungsparameter überwacht, welcher der mindestens einen Warteschlange entspricht, und einen Leistungswert auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters berechnet,
- • den maximalen Wert von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des Leistungswerts dynamisch anpasst, um die Systemleistung zu verbessern, und
- – eine Begrenzungseinheit, die so ausgelegt ist, dass sie die Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des dynamisch angepassten maximalen Werts begrenzt.
-
Gemäß bevorzugten Ausführungsformen ist die Dispatcher-Einheit so ausgelegt, dass sie die Anforderungen in mindestens zwei Gruppen gruppiert, wobei jeder Gruppe eine zugeordnete Warteschlange und ein warteschlangenspezifischer maximaler Wert für gleichzeitige Anforderungen zugehörig ist.
-
Gemäß bevorzugten Ausführungsformen ist die Dispatcher-Einheit so ausgelegt, dass sie eine Anforderung zu einer Gruppe auf der Grundlage der Wahrscheinlichkeit zuweist, dass die Anforderung andere Anforderungen blockiert, die in der Gruppe auf der Grundlage des Ursprungs der Anforderung oder auf der Grundlage des Servicetyps der Anforderung enthalten sind.
-
Gemäß bevorzugten Ausführungsformen ist das System so ausgelegt, dass die Anzahl von gleichzeitigen Anforderungen durch Zurückweisen von eingehenden Anforderungen begrenzt wird, bevor sie in die Warteschlange eingefügt werden, und/oder durch Entfernen von Anforderungen aus der Warteschlange.
-
Kurzbeschreibung der Zeichnungen
-
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung ausführlich zu Beispielzwecken beschrieben, wobei nur auf die Zeichnungen Bezug genommen wird, wobei:
-
1 ein Datenbanksystem auf der Grundlage einer Client-Server-Umgebung zeigt;
-
2 ein Beispiel einer Warteschlange mit eingefügten Anforderungen zeigt, die von dem Server verarbeitet werden sollen;
-
3 eine schematische Darstellung des erfindungsgemäßen Servers zeigt;
-
4 einen Ablaufplan für ein dynamisches Begrenzen der Gleichzeitigkeit von Anforderungen in Abhängigkeit von der aktuellen Systemleistung zeigt;
-
5 einen Ablaufplan für ein dynamisches Anpassen der Warteschlangeneigenschaften auf der Grundlage der Systemleistung zeigt.
-
Ausführliche Beschreibung
-
Dem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Aspekte der vorliegenden Erfindung in der Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung”, „Modul” oder „System” Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist. Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
-
Unter Bezugnahme auf 1 wird eine herkömmliche Architektur einer Client-Server-Umgebung 1 für das Senden von Anforderungen an eine Datenbank 5 veranschaulicht. Eine Vielzahl von Clients 2a bis 2e ist mit dem Netzwerk 3 verbunden. Außerdem ist ein Server 4 ebenfalls mit dem Netzwerk 3 verbunden. Das Netzwerk 3, das sich aus mehreren untergeordneten Netzwerken zusammensetzen kann, ermöglicht den Clients 2a bis 2e und dem Server 4 Daten untereinander auszutauschen. Zum Beispiel sendet der Client 2a über das Netzwerk 3 eine Anforderung an den Server 4, um auf die Datenbank 5 zuzugreifen. Der Server 4 kann mehrere Anforderungen von mehreren Clients empfangen und verarbeitet sie normalerweise in der Reihenfolge des Empfangs bzw. in anderen Fällen gemäß einer vordefinierten Priorisierungsrichtlinie. Anforderungen, die sich im Server 4 in einer Warteschlange befinden, warten ab, bis sie mit der Verarbeitung durch den Server 4 an der Reihe sind. Nach der Verarbeitung durch den Server 4 wird die Antwort auf die Anforderung an den Client 2a bis 2e gesendet.
-
Unter Bezugnahme auf 2 wird eine typische Warteschlange 10 gezeigt, die durch den Server 4 bearbeitet wird. Eine Warteschlange kann eine Tiefe von „QS”-Speicherpositionen haben, wobei jede Speicherposition fähig ist, die Anforderung eines Clients vor deren geplanter Verarbeitung durch den Server 4 zu speichern. Neue Client-Anforderungen werden in den ersten verfügbaren Bereich in der Warteschlange 10 gestellt. Das heißt, wenn die Bereiche „1” bis „3” durch vorherige Anforderungen besetzt sind, wird eine neue Client-Anforderung in den Bereich „4” gestellt. Wenn die Warteschlange 10 bis zu und einschließlich des Bereichs „i – 1” gefüllt ist, ist der nächste zu füllende Bereich analog dazu der Bereich „i”. Vorzugsweise werden Client-Anforderungen für die Verarbeitung immer vom ersten Bereich in der Warteschlange 10 genommen, d. h. vom Bereich „1”. Wenn die Warteschlange 10 voll ist, d. h., der Bereich „QS” ist belegt, verweigert der Server 4 die Annahme neuer Anforderungen von Clients.
-
Um eine drastische Verringerung der Systemleistung auf Grund der Inanspruchnahme von Ressourcen für das Bearbeiten von Sperren und der Zeitlimitüberschreitung von Anforderungen und/oder weil die Wartezeit einen Standardzeitwert überschreitet, der das Entfernen der Anforderung aus der Warteschlange auslöst, zu vermeiden, wird eine komplexe Möglichkeit zum Anpassen der maximalen Anzahl von gleichzeitigen Anforderungen und der maximalen Länge der mindestens einen Warteschlange mithilfe der 3 bis 5 erläutert.
-
3 zeigt eine schematische Darstellung des Servers 4. Der Server 4 weist mindestens eine Datenübertragungsschicht 41 und eine Datenzugriffsschicht 42 auf. Eine eingehende Anforderung 20 wird von einem Dispatcher 43 bearbeitet, welcher der Datenübertragungsschicht 41 zugehörig ist. Um ein Sperren zwischen verschiedenen Anforderungen zu vermeiden, werden die eingehenden Anforderungen vorzugsweise verschiedenen Gruppen zugewiesen. Der Dispatcher 43 führt eine Klassifizierung der eingehenden Anforderungen und die Zuweisung zu einer bestimmten Gruppe aus. Jede Gruppe weist ihre eigene Warteschlange auf, in die die Anforderungen eingefügt werden.
-
Es gibt verschiedene Arten, die eingehenden Anforderungen 20 zu gruppieren. Der einfachste Weg ist, dass nur eine Gruppe vorhanden ist, weil angenommen wird, dass jede Anforderung eine andere Anforderung blockieren kann. Eine zweite Möglichkeit ist, die Anforderungen nach dem Service zu gruppieren, der die Anforderung verursacht hat. Es wird angenommen, dass eine Anforderung, die von einem bestimmten Service stammt, wahrscheinlich eine andere Anforderung von demselben Service blockiert und wahrscheinlich keine Anforderung blockiert, die von einem anderen Service verursacht wurde. Hinsichtlich der zweiten Möglichkeit ist eine Beziehung zwischen der Service-ID der Datenübertragung und der Gruppe vorhanden, der die Anforderung zugewiesen ist. Gemäß einer dritten, noch weiter entwickelten Möglichkeit ist ein Lernmechanismus in dem Dispatcher 43 umgesetzt. Der Lernmechanismus analysiert den Ausnahmenstapel, um zu ermitteln, warum eine bestimmte Ausnahme aufgetreten ist. Wenn die Ausnahme wegen einer Blockierung von Anforderungen verursacht wurde, können die Services, die sich gegenseitig beeinträchtigen, festgestellt werden. Das Ziel ist, die Wahrscheinlichkeit einer Blockierung von Anforderungen auf der Grundlage des Ursprungs der Anforderung, der Service-ID usw. zu untersuchen.
-
Ein Sperrgruppenmanager 44 wird jeder Gruppe von Anforderungen, d. h. jeder Warteschlange zugewiesen. Der Sperrgruppenmanager 44 weist eine Messeinheit auf, die vorzugsweise kontinuierlich die Verarbeitungsleistung der Gruppe misst. Ferner wird jeder Warteschlange oder Gruppe jeweils ein maximaler Wert SS von gleichzeitigen Anforderungen zugeordnet. Vorzugsweise wird der maximale Wert SS von gleichzeitigen Anforderungen unter Verwendung eines Zähl-Semaphors bearbeitet. Der Semaphor kann auf seinen Zustand, zum Beispiel offen oder geschlossen, und auf seinen Wert getestet werden, d. h. die maximale Anzahl SS von gleichzeitigen Anforderungen. Daher ist es möglich zu ermitteln, ob eine eingehende Anforderung, die einer Gruppe zugewiesen wurde, in die Warteschlange (offen/geschlossen) eingefügt werden kann, oder ob sie zurückgewiesen werden muss, und außerdem kann der maximale Wert SS von gleichzeitigen Anforderungen abgerufen werden.
-
Die Messeinheit überwacht kontinuierlich die Anzahl von eingehenden Anforderungen, die der jeweiligen Gruppe zugewiesen sind, den mindestens einen Warteschlangen-Nutzungsparameter, die Länge der Warteschlange und die Anzahl von zurückgewiesenen Anforderungen NoRR. Wie oben erwähnt kann der mindestens eine Warteschlangen-Nutzungsparameter die durchschnittliche Verarbeitungszeit APT von Anforderungen, die Anzahl von bedienten Anforderungen, die Anzahl von zurückgewiesenen Anforderungen, das Verhältnis von zurückgewiesenen Anforderungen zu der Gesamtanzahl von Anforderungen in einem bestimmten Zeitraum oder ein Parameter auf der Grundlage einer Berechnung sein, der mindestens zwei der oben genannten Parameter kombiniert usw. Ferner kann der mindestens eine Warteschlangen-Nutzungsparameter von einer Information über die statistische Verteilung der Zeit abgeleitet werden, die zum Verarbeiten einer Anforderung benötigt wird, z. B. kürzeste Verarbeitungszeit, längste Verarbeitungszeit, Verarbeitungszeitbereich, Abweichung von Verarbeitungszeit, Variante der Verarbeitungszeit usw. In den folgenden Ausführungsformen der Erfindung wird die durchschnittliche Verarbeitungszeit APT als Warteschlangen-Nutzungsparameter verwendet.
-
Auf der Grundlage dieser bewerteten Merkmale eines vorherigen Zeitraums, der hierin im Folgenden auch als Messperiode MP bezeichnet wird, wird die Anzahl von gleichzeitigen Anforderungen ermittelt, die zu dem maximalen Wert des Produkts aus durchschnittlicher Verarbeitungszeit APT und Anzahl von gleichzeitigen Anforderungen SS (APT * SS) führen. Ein Fachmann für Datenbanksysteme erkennt, dass es einen optimalen Wert für das Produkt aus durchschnittlicher Verarbeitungszeit APT und Anzahl von gleichzeitigen Anforderungen SS gibt. Beide Parameter beeinflussen sich gegenseitig. Wenn mit einer kleinen Anzahl von gleichzeitigen Anforderungen SS begonnen wird, wird die durchschnittliche Verarbeitungszeit APT nur geringfügig beeinflusst, wenn die Anzahl von gleichzeitigen Anforderungen SS zunimmt, aber bei einer größeren Anzahl von gleichzeitigen Anforderungen SS nimmt die durchschnittliche Verarbeitungszeit APT schnell ab. Somit kann ein optimaler Wert gefunden werden, bei dem das Multiplikationsprodukt aus Anzahl von gleichzeitigen Anforderungen SS und durchschnittlicher Verarbeitungszeit APT sein Maximum erreicht. Der maximale Wert SS von gleichzeitigen Anforderungen wird verwendet, um das Einfügen einer Anforderung in die zugehörige Warteschlange der Gruppe zu ermöglichen, der die Anforderung vom Dispatcher 43 zugewiesen wurde. Wenn die Anzahl von Anforderungen, die in der jeweiligen Warteschlange enthalten sind, kleiner als der maximale Wert SS von gleichzeitigen Anforderungen ist, wird die Anforderung in die Warteschlange gestellt oder sofort verarbeitet. Andernfalls wird die Anforderung zurückgewiesen.
-
Ferner leitet die Messeinheit einen maximalen Wert einer Warteschlangengröße QS für die aktuelle Messperiode MP(act) unter Verwendung der bewerteten Merkmale einer vorherigen Messperiode MP(act) – ΔMP ab. Der maximale Wert der Warteschlangengröße QS definiert eine maximale Anzahl von Anforderungen, die in der jeweiligen Warteschlange enthalten sein können und die innerhalb eines vordefinierten Zeitraums verarbeitet werden.
-
Unter Bezugnahme auf 4 wird ein Ablaufplan zum Anpassen der Warteschlangeneigenschaften gezeigt, die die Leistung der jeweiligen Gruppe beeinflussen. Der Prozess des Anpassens der Warteschlangeneigenschaften wird für gewöhnlich unter Verwendung von Anfangswerten 30 gestartet. Diese Anfangswerte können vordefinierte Parameterwerte sein oder Werte, die aus vorherigen Prozessausführungen abgeleitet wurden. Die Verarbeitungszeit einer jeweiligen Gruppe wird in Messperioden MP quantisiert, während der statistische Angaben in Bezug auf die Gruppenleistung gesammelt werden. Eine Messperiode MP dauert einen Zeitraum ΔMP. Um zuverlässige statistische Angaben zu erhalten, muss eine Messperiode größer als ein bestimmter Zeitraum sein. Die Messperiode MP kann größer als die durchschnittliche Verarbeitungszeit APT einer Anforderung sein, vorzugsweise größer als das Multiplikationsprodukt aus maximalem Wert SS von gleichzeitigen Anforderungen und durchschnittlicher Verarbeitungszeit APT (SS·APT).
-
Nach dem Beginn mit Anfangswerten 30 werden statistische Angaben über die Gruppenverarbeitungsleistung während einer ersten Messperiode MP(act) gesammelt (Schritt 31). Dabei werden die Anzahl von eingehenden Anforderungen, die der jeweiligen Gruppe zugewiesen wurden, die durchschnittliche Verarbeitungszeit APT, die Länge der Warteschlange und die Anzahl von zurückgewiesenen Verbindungen durch die Messeinheit überwacht. Anschließend werden optimierte Warteschlangenwerte auf der Grundlage der gesammelten statistischen Angaben der ersten Messperiode MP(act) ermittelt (Schritt 32). In einem weiteren Prozessschritt werden die Eigenschaften der jeweiligen Warteschlange gemäß den optimierten Warteschlangenwerten angepasst (Schritt 33), die in Schritt 32 ermittelt wurden. Vorzugsweise werden der maximale Wert SS von gleichzeitigen Anforderungen und der maximale Wert der Warteschlangengröße QS angepasst. Auch die Dauer der Messperiode MP oder weitere Prozessparameter können auf der Grundlage der gesammelten statistischen Angaben dynamisch angepasst werden. Nach dem Anpassen der Warteschlangeneigenschaften wird der Prozess mit Schritt 31 in einer zweiten Messperiode MP (MP(act) = MP(act) + ΔMP) unter Verwendung der warteschlangenspezifischen Eigenschaften fortgesetzt, die während der ersten Messperiode MP ermittelt wurden.
-
5 zeigt im Detail eine Routine zum Anpassen der Warteschlangeneigenschaften auf der Grundlage von statistischen Angaben, die während der vorherigen Messperiode MP gesammelt wurden. Zuerst wird die Anzahl von zurückgewiesenen Anforderungen NoRR in der aktuellen Messperiode MP(act) geprüft. Wenn keine zurückgewiesenen Anforderungen vorhanden waren, NoRR = 0, bedeutet dies, dass alle Anforderungen umgehend bearbeitet werden. Wenn während der aktuellen Messperiode (MP(act) Anforderungen zurückgewiesen wurden, wird der Leistungsfaktor PF der vorherigen Messperiode MP(act – ΔMP) mit dem Leistungsfaktor PF der aktuellen Messperiode MP(act) verglichen. Der Leistungsfaktor PF ist ein Indikator für die aktuelle Verarbeitungsleistung der Gruppe. Der Leistungsfaktor PF wird hauptsächlich auf der Grundlage des maximalen Werts SS von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit APT berechnet. Zum Beispiel kann der Leistungswert mithilfe der folgenden Formel berechnet werden: PF = SS / APT.
-
Der Leistungswert kann auch auf eine komplexere Art berechnet werden.
-
Aus Gründen der Übersichtlichkeit wird in der Beispiel-Ausführungsform nur die durchschnittliche Verarbeitungszeit von Anforderungen überwacht, aber in einem echten System kann es von Vorteil sein, mehr Informationen über die statistische Verteilung der Zeit zu sammeln, die zum Verarbeiten einer Anforderung benötigt wird, z. B. kleinster Wert, maximaler Wert, Bereich, Abweichung, Variation usw. Diese Werte können dann für ein komplexeres Verfahren zum Berechnen des Leistungswerts verwendet werden.
-
Wenn PF(MP(act – ΔMP)) > PF(MP(act)), d. h., die Gruppenleistung hat in Bezug auf die vorherige Messperiode MP(act – ΔMP) abgenommen, kann die maximale Anzahl SS von gleichzeitigen Anforderungen verringert werden (SS = SS – 1), um die Auslastung des Servers zu senken. Durch das Verringern der maximalen Anzahl SS von gleichzeitigen Anforderungen wird die Anzahl von Anforderungen in der jeweiligen Warteschlange nicht sofort verringert. Vorzugsweise wird die Anzahl von Anforderungen langsam durch die Verarbeitung der bereits in der Warteschlange enthaltenen Anforderungen verringert, wobei keine weiteren Anforderungen eingefügt werden, bis die Anzahl der in der Warteschlange enthaltenen Anforderungen kleiner ist als die verringerte maximale Anzahl SS von gleichzeitigen Anforderungen.
-
Wenn PF(MP(act – ΔMP)) < PF(MP(act)), d. h., die Gruppenleistung hat in Bezug auf die vorherige Messperiode MP(act – ΔMP) zugenommen, wird die maximale Anzahl SS von gleichzeitigen Anforderungen erhöht (SS = SS + 1), um die Auslastung des Servers zu erhöhen und somit die Systemleistung zu optimieren. Mit anderen Worten, es wird ferner versucht, die Anzahl von Anforderungen zu erhöhen, die innerhalb eines Referenzzeitraums zu verarbeiten sind.
-
In einem weiteren Schritt wird geprüft, ob QS· APT(MP(act)) / SS > tdefault, wobei QS die maximale Länge der Warteschlange ist, bei der alle Anforderungen der Warteschlange verarbeitet werden, ohne eine Zeitlimitüberschreitung zu verursachen, und tdefault ist ein Standardzeitraum, nach dem eine Zeitlimitüberschreitung verursacht wird. Wenn die Ungleichung zutrifft, wird die maximale Länge der Warteschlange QS verringert, um eine Zeitlimitüberschreitung zu vermeiden.
-
Wenn QS· APT(MP(act)) / SS < tdefault, wird die maximale Länge der Warteschlange QS erhöht, um zu ermöglichen, dass mehr Anforderungen in die Warteschlange eingefügt werden können.
-
Durch Wiederholen der Routine gemäß 5 werden die maximale Anzahl SS von gleichzeitigen Anforderungen und die maximale Länge der Warteschlange QS optimiert, um die maximale Systemleistung zu erzielen.
-
Um so schnell wie möglich auf ein Sperr-Zeitlimitüberschreitungsereignis reagieren zu können, das durch Überschreiten eines Zeitlimits für die Verarbeitung einer Anforderung verursacht wird, wird ein Sperr-Zeitlimitüberschreitungs-Detektor 45 verwendet. Der Sperr-Zeitlimitüberschreitungs-Detektor 45 ist ein Notfallmechanismus, der sich in der Datenbank-Zugriffsschicht befindet. Der Sperr-Zeitlimitüberschreitungs-Detektor 45 erfasst und analysiert das Sperr-Zeitlimitüberschreitungsereignis, zum Beispiel eine SQL-Ausnahme, und ermittelt, welche Anforderung abgebrochen wurde. Anschließend wird der Sperrgruppenmanager 45, der die Anforderung bearbeitet, aufgefordert, die jeweiligen Warteschlangenparameter anzupassen, um weitere Zeitlimitüberschreitungen zu vermeiden. Zum Beispiel werden die maximale Länge der Warteschlang QS und die maximale Anzahl SS von gleichzeitigen Anforderungen drastisch verringert, um der Leistungsverschlechterung entgegenzuwirken. Vorzugsweise wird die maximale Länge der Warteschlange QS auf QS = 0 gesetzt, und die maximale Anzahl SS von gleichzeitigen Anforderungen wird auf SS = 1 gesetzt. Dem System wird das Bearbeiten einer kleinen Anzahl von Anforderungen ermöglicht, ohne dass es von Sperren durch Zeitlimitüberschreitungen beeinträchtigt wird. Wenn sich die Systemleistung erhöht, erhöht sich auch die Anzahl von gleichzeitigen Anforderungen, um eine optimale Systemleistung zu erzielen, d. h., die Parameter erhöhen sich langsam während aufeinander folgender Messperioden MP.
-
Obwohl die vorhergehende Beschreibung unter Bezugnahme auf bestimmte Ausführungsformen der Erfindung erfolgt ist, wird dem Fachmann klar sein, dass Änderungen an diesen Ausführungsformen vorgenommen werden können ohne von den Grundgedanken und der Idee der Erfindung abzuweichen, deren Schutzumfang in den Ansprüchen im Anhang definiert wird.