-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine relationale Datenbank und insbesondere ein Informationsverarbeitungssystem, eine Informationsverarbeitungsvorrichtung, ein Lastausgleichsverfahren, ein Planungsverfahren für die Datenbankbereitstellung und ein Programm für den Lastausgleich zwischen physischen Knoten in einer verteilten Datenbankumgebung.
-
Zugrunde liegende Technik
-
Für eine Anwendung, die eine Datenbank nutzt, ist es wünschenswert, die Datenbankleistung und -kapazität entsprechend dem Datenvolumen und dem Betrag der Zugriffslast zu verbessern. Als Technik zum Verbessern der Skalierbarkeit des Gesamtsystems ist üblicherweise eine Technik zum Erzeugen eines Replikats einer Datenbank und zum verteilten Bereitstellen mehrerer Datenbank-Server bekannt geworden, die für alle Daten auf mehreren physische Knoten zuständig sind um die Arbeitslast zu verringern (siehe zum Beispiel das Patentdokument 1). Ferner ist auch eine Technik zum Aufteilen der Datenbank entsprechend dem praktischen Suchbereich bekannt geworden, um mehrere Datenbank-Server bereitzustellen, die auf verteilte Weise jeweils für die aufgeteilten Partitionen zuständig sind. Somit werden die Datenbanken verteilt auf mehreren physischen Knoten bereitgestellt, um eine verteilte Datenbankumgebung zu erzeugen und eine verbesserte Transaktionsleistung sowie Verfügbarkeit und Fehlertoleranz des Systems zu ermöglichen.
-
14A ist ein schematisches Funktionsschaubild, das eine verteilte Datenbankumgebung gemäß einer herkömmlichen Technik zeigt. Eine in 14A gezeigte verteilte Datenbankumgebung 500 beinhaltet mehrere Datenbank-Server 510a1 bis 510c2, die verteilt auf mehreren physischen Knoten bereitgestellt werden. In der verteilten Datenbankumgebung 500 werden das Partitionieren der Datenbank und das Multiplexen der Partitionen so durchgeführt, dass jeder einzelne Datenbank-Server 510 für Daten in einer anderen Partition oder in derselben Partition zuständig ist. In diesem Fall wird die Logikeinheit aus Datenbanken, die durch eine Gruppe von Datenbank-Servern 510 verwaltet werden, die für dieselbe Partition (z. B. 510a1 und 510a2) zuständig sind, als verteilte Datenbank 520 (z. B. 520a) bezeichnet. Mit anderen Worten, die verteilte Datenbank 520 besteht aus einer Original-Datenbank (Master), die für dieselbe Partition zuständig ist, und einer Replikations-Datenbank (Replikat), die vom Master kopiert wurde.
-
Oben wurde bereits erwähnt, dass die Datenbank so aufgeteilt ist, dass der Datenbereich, für den jeder einzelne Datenbank-Server 510 zuständig ist, zur Beibehaltung der Datenkonsistenz verringert werden kann und dass jede Partition ferner gemultiplext wird, um diese Datenbank-Server 510 auf mehrere physische Knoten zu verteilen, damit die Datenmenge verringert werden kann, für den jeder einzelne physische Knoten zuständig ist. Dies kann die Transaktionsleistung erhöhen, indem die Verfügbarkeit und die Fehlertoleranz des Systems verbessert wird. Ferner werden wird oben erwähnt ein Replikat erzeugt und die Daten gemultiplext, sodass die durch Zugriffe von den Client-Anwendungen 530 bedingte Arbeitslast verteilt werden kann, wodurch die Verfügbarkeit und die Fehlertoleranz des Systems verbessert wird.
-
In einer solchen verteilten Datenverarbeitungsumgebung wird im Allgemeinen eine Technik eingesetzt, bei der Datenbank-Server 510 von verschiedenen verteilten Datenbanken 520 gebündelt und wie in 14B gezeigt auf einem physischen Knoten 540 als gemeinsame physische Ressource bereitgestellt werden, um begrenzte physische Ressourcen effektiv zu nutzen. Wenn jedoch mehrere Datenbank-Server 510 auf demselben physischen Knoten 540 bereitgestellt werden und sich die Zugriffe auf einen Datenbank-Server (z. B. die Datenbank A) konzentrieren, kann der Datenbank-Server (z. B. die Datenbank A) Druck auf die Ressourcen eines anderen Datenbank-Servers (z. B. der Datenbank C') auf demselben physischen Knoten (z. B. dem physischen Knoten 540a) ausüben.
-
Mit anderen Worten, wenn eine solche Konfiguration verwendet wird, bei der mehrere Datenbank-Server auf demselben physischen Knoten bereitgestellt werden, ergibt sich das Problem plötzlicher Überlastung oder redundanter Ressourcen. Als Gegenmaßnahmen zum Beheben dieses Problems kommen ein Verfahren zum Hinzufügen eines Replikats einer verteilten Datenbank 520, bei der eine plötzliche Lastzunahme beobachtet wurde, ein Verfahren zur Erweiterung des physischen Knotens, auf dem der Datenbank-Server 510 mit der beobachteten plötzlichen Lastzunahme bereitgestellt wird, und ein Verfahren zum Verlagern des Datenbank-Servers 510 auf einen anderen physischen Knoten mit ausreichenden Ressourcen infrage. Diese Lösungen sind jedoch nicht für den Notfall einer plötzlichen Zunahme der Zugriffe geeignet, da diese Operationen selbst auch eine hohe Arbeitslast bewirken.
-
Literatur zum Stand der Technik
-
Patentdokument
-
- Patentdokument 1: Japanische Patentanmeldung 2001-175681
-
Kurzdarstellung der Erfindung
-
Durch die Erfindung zu lösende Probleme
-
Deshalb ist die Entwicklung eines flexiblen Lastausgleichsverfahrens mit Operationen wünschenswert, die die Systemleistung im Fall plötzlicher Überlastung oder redundanter Ressourcen nur wenig mindern, um eine wirksame verteilte Datenbankumgebung auf begrenzten physischen Ressourcen zu schaffen.
-
Die vorliegende Erfindung ist angesichts der obigen Probleme erstellt worden, und eine Aufgabe der vorliegenden Erfindung besteht darin, ein Datenverarbeitungssystem, eine Datenbankvorrichtung, ein Lastausgleichsverfahren, ein Planungsverfahren für die Datenbankbereitstellung und ein Programm bereitzustellen, das in der Lage ist, die Arbeitslast auf physischen Knoten durch ein adaptives und flexibles Verfahren mit Operationen unter geringen Leistungsverlusten auszugleichen, wenn es in einer verteilten Datenbankumgebung zu plötzlicher Überlastung oder redundanten Ressourcen kommt, um dadurch eine leistungsstarke verteilte Datenbankumgebung auf begrenzten physischen Ressourcen zu schaffen.
-
Mittel zum Lösen der Probleme
-
Die vorliegende Erfindung ist angesichts der Unzulänglichkeiten der obigen herkömmlichen Technik erstellt worden und stellt ein Datenverarbeitungssystem mit den folgenden Merkmalen bereit, als da sind: Das Datenverarbeitungssystem der vorliegenden Erfindung beinhaltet eine Vielzahl von Datenbank-Servern, die auf einer Vielzahl von physischen Knoten auf eine verteilte Weise bereitgestellt werden sollen, wobei zwei oder mehrere Server aus der Vielzahl von Datenbank-Servern, die für verschiedene Daten zuständig sind, auf demselben physischen Knoten bereitgestellt werden, und wobei ein oder mehrere Server, die für dieselben Daten wie einer der beiden oder mehreren Server zuständig sind, auf einem oder mehreren physischen Knoten bereitgestellt werden. Dann überwacht das Datenverarbeitungssystem die Arbeitslast auf jedem der physischen Knoten und verlagert eine Verbindung mit einem Client von einem Datenbank-Server auf einem physischen Knoten mit einer Arbeitslast, die einen Zielwert übersteigt, zu einem Datenbank-Server auf einem physischen Knoten mit einer Arbeitslast, die geringer als der Zielwert ist, sodass Verbindungen so verteilt werden, dass die Arbeitslast ausgeglichen ist.
-
Die vorliegende Erfindung kann so konfiguriert werden, dass nach dem Verteilen der Verbindungen die Wiedereinrichtung oder Wiederherstellung einer Anzahl von Verbindungen, die einem den Zielwert übersteigenden Betrag der Arbeitslast entsprechen, so geplant wird, dass die neue Verbindungsverteilung einschließlich der wiederhergestellten Verbindungen wahrscheinlich einen Betrag der Arbeitslast aufweist, der kleiner als der Zielwert ist. Ferner kann das Datenverarbeitungssystem einen Wiederherstellungssteuerbereich zum Trennen von Verbindungen, deren Wiederherstellung geplant ist, an den Transaktionsgrenzen und zum Übernehmen neuer Verbindungen beinhalten, die in Beziehung zu der Wiederherstellung stehen. Somit kann das Verlagern der Verbindungen durch Trennen der Verbindungen, deren Wiederherstellung geplant ist, und Übernehmen der neuen Verbindungen erfolgen.
-
Ferner kann die vorliegende Erfindung eine Datenverarbeitungsvorrichtung bereitstellen, die mit einer Vielzahl von physischen Knoten durch ein Netzwerk verbunden ist, das einen Poolbereich zum Bündeln einer Vielzahl von Verbindungen zu den betreffenden Datenbank-Servern beinhaltet, um die Verbindungsverteilung durchzuführen. Gemäß der vorliegenden Erfindung kann die Datenbankvorrichtung einen Plan zum verteilten Bereitstellen der Vielzahl von Datenbank-Servern auf der Vielzahl von physischen Knoten erstellen.
-
Ferner kann die vorliegende Erfindung ein Lastausgleichsverfahren bereitstellen, das durch die Datenverarbeitungsvorrichtung ausgeführt wird. Bei dem Lastausgleichsverfahren führt die Datenverarbeitungsvorrichtung die Schritte aus: Überwachen der Arbeitslast auf jedem der physischen Knoten; Ausgeben einer Anforderung, eine Verbindung mit einem Client zu einem Datenbank-Server auf einem physischen Knoten aus der Vielzahl von Datenbank-Servern an einer Transaktionsgrenze zu trennen, dessen Arbeitslast einen Zielwert überschreitet; und Übernehmen einer neuen Verbindung, die in Beziehung zu der Wiederherstellung mit dem Client zu einem Datenbank-Server auf einem physischen Knoten steht, dessen Arbeitslast kleiner als der Zielwert in der Vielzahl von Datenbank-Servern ist.
-
Ferner stellt die vorliegende Erfindung ein Verfahren zur Datenbankbereitstellung bereit, um einen Plan zum verteilten Bereitstellen einer Vielzahl von Datenbank-Servern auf einer Vielzahl von physischen Knoten zu erstellen. Bei dem Verfahren zur Datenbankbereitstellung führt eine Datenbankvorrichtung den Schritt des Planens der Datenbankbereitstellung so aus, dass von der Vielzahl von Datenbank-Servern zwei oder mehr Server, die für ein und dieselben Daten zuständig sind, nicht auf demselben physischen Knoten bereitgestellt werden, und dass zwei oder mehr Server, die für voneinander verschiedene Daten zuständig sind, auf demselben physischen Knoten bereitgestellt werden, und dass ein oder mehrere Server, die für dieselben Daten wie einer der beiden oder mehr Server zuständig sind, jeweils auf einem oder mehreren anderen physischen Knoten bereitgestellt werden.
-
Vorteil der Erfindung
-
Gemäß den obigen Konfigurationen wird bei der Bereitstellung einer Vielzahl von Datenbank-Servern, die bestimmte Anforderungen erfüllen, eine Verbindungsverteilung gemäß dem Laststatus physischer Knoten so durchgeführt, dass solche Operationen mit einem geringen Durchführungsaufwand bei einer geänderten Verteilung einer Verbindung von einem Client in Bezug auf die dynamische Änderung des Laststatus zum Ausgleich der gesamten Arbeitslast auf den physischen Knoten führen und dadurch die physischen Ressourcen wirksamer auslasten können. Dadurch kann auf adaptive Weise der Schwierigkeit einer plötzlichen Überlastung oder redundanten Ressourcen begegnet werden, die sich durch Erweiterung der physischen Ressourcen oder Hinzufügen von Replikaten nur schwer bewältigen lassen.
-
Kurzbeschreibung der Zeichnungen
-
1 ist ein Funktionsschaubild, das in einem Datenverarbeitungssystem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung umgesetzt wird.
-
2 ist ein konzeptionelles Funktionsschaubild zum Beschreiben der Verbindungsverteilung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
3 ist ein Funktionsschaubild zum Beschreiben einer Beziehung, in der ein Lastausgleich durch die Verbindungsverteilung ermöglicht wird, und einer Beziehung, bei der der Lastausgleich durch die Verbindungsverteilung deaktiviert wird.
-
4 ist ein Funktionsschaubild, das eine Datenbankbereitstellung veranschaulicht, in der jeweils Datenbank-Server von fünf verteilten Datenbanken mit einem Vielfachen von 3 auf fünf physischen Knoten verteilt sind.
-
5 ist ein Funktionsschaubild, das eine Datenbankbereitstellung veranschaulicht, in der jeweils zwei Datenbank-Servereinheiten von sechs verteilten Datenbanken mit einem Vielfachen von 2 auf sechs physischen Knoten verteilt sind.
-
6 ist ein detailliertes Funktionsblockschaubild der Verbindungsverteilung, wie sie in dem Datenverarbeitungssystem gemäß der Ausführungsform der vorliegenden Erfindung realisiert wird.
-
7 ist ein Ablaufplan, der den Ablauf der Verbindungsverteilung durch einen Verbindungsverteilungsbereich gemäß der Ausführungsform der vorliegenden Erfindung zeigt.
-
8 ist ein Funktionsschaubild zum Beschreiben der Wiederherstellung von Verbindungen und der Verteilung der Verbindungen nach dem Zufallsprinzip.
-
9 ist ein Ablaufplan, der den Ablauf der Planung der Datenbankbereitstellung durch einen Bereitstellungsplanungsbereich gemäß der Ausführungsform der vorliegenden Erfindung zeigt.
-
10 ist ein Funktionsschaubild zum Beschreiben eines Verfahrens zum Bereitstellen jeder verteilten Datenbank-Servereinheit auf einem physischen Knoten.
-
11 ist ein Ablaufplan, der den Ablauf eines Bereitstellungsplanungsalgorithmus A(n) zeigt, der durch den Bereitstellungsplanungsbereich gemäß der Ausführungsform der vorliegenden Erfindung ausgeführt wird.
-
12 ist ein Schaubild zum Beschreiben des Bereitstellungsplanungsalgorithmus A(n).
-
13 ist ein Funktionsschaubild, das den Lastausgleich bei einer Datenbankbereitstellung veranschaulicht, wobei verteilte Datenbanken mit einem Vielfachen von 2 in Form eines Kreises verteilt bereitgestellt werden.
-
14 veranschaulicht zusammen ein schematisches Schaubild, das eine verteilte Datenbankumgebung in einer herkömmlichen Technik in A zeigt, und ein Schaubild zum Beschreiben eines Verfahrens zum Bereitstellen von Datenbank-Servern von verteilten Datenbanken.
-
Ausführungsmodus der Erfindung
-
Obwohl die vorliegende Erfindung nunmehr anhand einer bevorzugten Ausführungsform beschrieben wird, ist die vorliegende Erfindung nicht auf die folgende Ausführungsform beschränkt. In der folgenden Ausführungsform wird als Beispiel des Datenverarbeitungssystems ein Informationsverarbeitungssystem beschrieben, das mehrere Datenbanken, die verteilt auf mehreren physischen Knoten bereitgestellt sind, und Client-Anwendungen beinhaltet, die auf die mehreren Datenbanken zugreifen.
-
(1) Darstellung
-
(1.1) Funktionsblöcke des Gesamtsystems
-
1 zeigt Funktionsblöcke, die in einem Datenverarbeitungssystem 100 gemäß der Ausführungsform der vorliegenden Erfindung ausgeführt sind. Das in 1 gezeigte Datenverarbeitungssystem 100 ist so konfiguriert, dass es eine Gruppe von physischen Knoten 120, die aus mehreren (nicht gezeigten) physischen Knoten besteht, einen Datenbankbereitstellungs-Server 110 zum verteilten Bereitstellen von Datenbanken nach dem Plan auf der Gruppe der physischen Knoten 120, einen Anwendungs-Server 130, auf dem Client-Anwendungen (die im Folgenden einfach als Clients bezeichnet werden) 164 laufen, um auf die auf der Gruppe der physischen Knoten 120 verteilt bereitgestellten Datenbanken zuzugreifen, und einen Verbindungsverteilungs-Server 132 beinhaltet, der später ausführlich beschrieben wird. Zu beachten ist, dass der Client 164 einer Anwendungsschicht in einem Dreischichten-Client-Server-Modell entspricht und ein Web-Client über das HTTP-Protokoll in einer Webanwendung mit dem Client 164 verbunden ist, was in 1 nicht dargestellt ist.
-
Die physischen Knoten, die die Gruppe von physischen Knoten 120 bilden, der Datenbankbereitstellungs-Server 110, der Anwendungs-Server 130 und der Verbindungsverteilungs-Server 132 sind durch nicht gezeigte leitungsgebundene oder drahtlose Netze miteinander verbunden, darunter lokale Netze (LAN) mit TCP/IP und Ethernet®, Weitverkehrsnetze (WAN) unter Verwendung von VPN-(virtuelle private Netze) und Standleitungen und das Internet.
-
Jeder der physischen Knoten, die die Gruppe der physischen Knoten 120 bilden, beinhaltet eine Zentraleinheit (CPU) wie beispielsweise einen Einkern- oder Mehrkernprozessor, einen Cachespeicher, einen RAM, eine Netzschnittstellenkarte (NIC) und gegebenenfalls eine Speichereinheit und wird durch ein geeignetes Betriebssystem gesteuert (das im Folgenden als OS bezeichnet wird). Für den physischen Knoten kann eine Architektur mit oder ohne gemeinsam genutzte Platte verwendet werden.
-
Ein Datenbankverwaltungssystem (DBMS), das eine verteilte Datenbank unterstützt, wird in die Gruppe von physischen Knoten 120 eingefügt, und auf der Gruppe von physischen Knoten 120 werden mehrere Datenbank-Server 122a bis 122g bereitgestellt. Im vorliegenden Zusammenhang ist unter dem „Datenbank-Server” ein Serverprozess des DBMS zu verstehen, der auf jedem physischen Knoten ausgeführt wird, und unter der „Datenbank” ist eine Sammlung von Daten zu verstehen, die durch das DBMS verwaltete Datenbankobjekte wie beispielsweise Tabellen, Ansichten und Indizes beinhaltet. Zu beachten ist, dass der Datenbank-Server und die Datenbank als Sammlung von Daten in ihrer Gesamtheit im Folgenden auch als „Datenbank” bezeichnet werden können.
-
Die einzelnen Datenbank-Server 122 sind jeweils für verschiedene oder gleiche Daten zuständig. Im vorliegenden Fall wird die Gesamtheit einer logischen Datenbankgruppe, die aus Datenbank-Servern 122 besteht, die für dieselben Daten zuständig sind, als „verteilte Datenbank” bezeichnet. Der Einfachheit halber wird von einzelnen Datenbanken, die die verteilte Datenbank konfigurieren, eine Original-Datenbank als Master-Datenbank bezeichnet (die im Folgenden einfach als Master bezeichnet wird), und eine von dem Master replizierte Datenbank wird als Replikat-Datenbank bezeichnet (die im Folgenden einfach als Replikat bezeichnet wird). Das Replikationsverfahren ist nicht speziell begrenzt, und es kann entweder ein Multimasterverfahren oder ein Master-Slave-Verfahren verwendet werden.
-
Somit wird in dem Datenverarbeitungssystem 100 eine verteilte Datenbankumgebung, die aus mehreren verteilten Datenbanken mit einem Master und einem oder mehreren Replikaten besteht, durch die mehreren Datenbank-Server 122a bis 122g gebildet, die verteilt auf der Gruppe von physischen Knoten 120 bereitgestellt sind. Die „Datenbank” und die „verteilte Datenbank”, bei der es sich unter anderem, ohne darauf beschränkt zu sein, um eine relationale Datenbank (RDB) handeln kann, kann auf eine beliebige andere Datenbank angewendet werden, beispielsweise auf eine objektorientierte Datenbank, eine XML-(erweiterbare Auszeichnungssprache) Datenbank und einen Schlüsselwert-Datenspeicher, ohne auf ein bestimmtes Datenmodell beschränkt zu sein.
-
Der Datenbankbereitstellungs-Server 110, der Anwendungs-Server 130 und der Verbindungsverteilungs-Server 132 sind im Allgemeinen als Universalcomputer konfiguriert, beispielsweise als Personal Computer, Arbeitsplatzcomputer, Einschub- oder Blade-Server, Computer im mittleren Leistungsbereich oder Großrechner. Genauer gesagt beinhalten der Datenbankbereitstellungs-Server 110, der Anwendungs-Server 130 und der Verbindungsverteilungs-Server 132 jeweils eine CPU wie beispielsweise einen Einkern- oder Mehrkernprozessor, einen Cachespeicher, einen RAM, eine NIC, eine Speichereinheit und dergleichen, in denen Hardware und Software zusammenwirken, um unter Steuerung durch ein geeignetes OS jeden Funktionsbereich und jeden später beschriebenen Arbeitsschritt umzusetzen.
-
Der Datenbankbereitstellungs-Server 110 beinhaltet einen Bereitstellungsplanungsbereich 112 zum Planen der Datenbankbereitstellung, um einen wirksamen Lastausgleich zu erreichen, und einen Bereitstellungsbereich 114. Der Bereitstellungsbereich 114 ist ein Funktionsbereich zum Bereitstellen der Datenbank-Server 122 von verteilten Datenbanken auf der Gruppe von physischen Knoten 120 gemäß dem Datenbankbereitstellungsplan, der durch den Bereitstellungsplanungsabschnitt 112 erstellt wurde. Gemäß der Ausführungsform kann der Datenbankbereitstellungs-Server 110 ferner einen Zusatzkonfigurierungsbereich 116 zum Überwachen von Lastungleichgewichten zwischen physischen Knoten über längere Zeiträume zum entsprechenden Ändern der Datenbankbereitstellung beinhalten, um Lastungleichgewichte auszuschließen. Die Einzelheiten des Datenbankbereitstellungsplans und der Zusatzkonfigurierung zum Verringern der Lastungleichgewichte werden später beschrieben.
-
Ein Verbindungsverwaltungsmechanismus 170 wird zwischen den Clients 164 auf dem Anwendungs-Server 130 und der verteilten Datenbankumgebung auf der Gruppe physischer Knoten 120 bereitgestellt, um eine Funktion zum Verteilen einer zwischen jedem Client 164 und einer Datenbank-Servereinheit (Master oder Replikat) der verteilten Datenbank eingerichteten Datenbankverbindung in der Weise auszuführen, dass die Arbeitslast auf den physischen Knoten ausgeglichen wird. Der Begriff „Verbindung” kann das Festlegen eines Ziels durch Wählen einer Zugehörigkeit zu der Anforderung oder Ähnliches beinhalten.
-
Wenn in der herkömmlichen verteilten Datenbankumgebung der Lastausgleich unter Verwendung eines Masters und eines oder mehrerer Replikate bewirkt wird, werden diese Datenbank-Server auf verschiedenen physischen Knoten bereitgestellt und dem Master und dem einen oder den mehreren Replikaten Verbindungen zum Beispiel im Umlaufverfahren zugeordnet. Da die Verbindungen in diesem Fall in einem fest vorgegebenen Verhältnis verteilt werden, können, wenn zwei oder mehr verteilte Datenbank-Servereinheiten auf demselben physischen Knoten bereitgestellt werden, um die physischen Ressourcen bestmöglich zu nutzen, und wenn sich die Zugriffe auf eine verteilte Datenbank-Servereinheit konzentrieren, die Ressourcen der anderen verteilten Datenbank-Servereinheit auf demselben physischen Knoten unter Druck geraten. In einer solchen Situation ist es bei der herkömmlichen Technik üblich, die physischen Ressourcen zu erweitern und Replikate hinzuzufügen, um auf die Situation zu reagieren, jedoch ist es schwierig, auf eine plötzliche Überlastung oder redundant werdende Ressourcen angemessen zu reagieren.
-
Deshalb verwendet bei der Ausführungsform der Verbindungsverwaltungsmechanismus 170 eine Konfiguration zum dynamischen Steuern des Verteilungsverhältnisses der zwischen den Clients 164 und den Datenbank-Servereinheiten der verteilten Datenbanken eingerichteten Verbindungen zu dem Master und den Replikaten auf der Gruppe physischer Knoten 120 gemäß dem Laststatus, um eine solche plötzliche Zunahme und Abnahme der Arbeitslast adaptiv zu bewältigen und die Arbeitslast zwischen physischen Knoten auszugleichen, auf denen der Master und die Replikate bereitgestellt sind.
-
Der Verbindungsverwaltungsmechanismus 170 beinhaltet einen Verbindungsverteilungsbereich 140, einen Verbindungsanforderungs-Empfangsbereich 160 und einen Treiberbereich 162. Gemäß der in 1 gezeigten Ausführungsform ist der Verbindungsverteilungsbereich 140 auf dem Verbindungsverteilungs-Server 132 eingerichtet, und der Verbindungsanforderungs-Empfangsbereich 160 und der Treiberbereich 162 sind als clientseitige Module auf dem Anwendungs-Server 130 eingerichtet, auf dem eine Client-Anwendung ausgeführt wird. In diesem Fall kann der Verbindungsverteilungs-Server 132 als Verbindungsverteilungs-Server zum Verteilen von Verbindungen auf einheitliche Weise zu den jeweiligen Clients 164 auf mehreren Anwendungs-Servern 130 konfiguriert sein. Ein Client 164a in 1 stellt eine Client-Anwendung dar, die gerade das Einrichten einer neuen Verbindung anfordert. Ein Client 164b wiederum stellt eine Client-Anwendung dar, die bereits eine Verbindung eingerichtet hat und die momentan verbunden ist.
-
Der Verbindungsanforderungs-Empfangsbereich 160 übernimmt eine Verbindung von dem Verbindungsverteilungsbereich 140 als Reaktion auf eine Verbindungsanforderung von dem Client 164a, der eine neue Verbindung einzurichten versucht, und richtet eine Verbindung zwischen dem Client 164a und einer Datenbank-Servereinheit der verteilten Datenbank ein. Der Verbindungsverteilungsbereich 140 überwacht die Arbeitslast auf jedem physischen Knoten, um gemäß dem Laststatus das Verhältnis der Verbindungsverteilung zu einer verteilten Datenbank-Servereinheit (Master oder Replikat) festzulegen. Der Verbindungsverteilungsbereich 140 gibt als Reaktion auf eine Übernahmeanforderung von dem Verbindungsanforderungs-Empfangsbereich 160 entsprechend dem festgelegten Verhältnis der Verbindungsverteilung eine Verbindung zu der Datenbank-Servereinheit zurück.
-
Wenn ein überlasteter physischer Knoten gemäß dem obigen Laststatus gefunden wird, fordert der Verbindungsverteilungsbereich 140 vom Treiberbereich 162 eine der Verbindungen zu den Datenbank-Servereinheiten auf dem physischen Knoten, die der Überlastung entspricht, zu trennen und wiedereinzurichten oder wiederherzustellen. Der Treiberbereich 162 steuert die Verbindungen zwischen dem Client 164b und den Datenbank-Servereinheiten der verteilten Datenbanken. Als Reaktion auf die Wiederherstellungsanforderung vom Verbindungsverteilungsbereich 140 trennt der Treiberbereich sofort die Verbindung, für welche die Wiederherstellung angefordert worden ist, an einer Transaktionsgrenze. Dann übernimmt der Treiberbereich 162 eine neue Verbindung vom Verbindungsanforderungs-Empfangsbereich 160, um die Verbindung zwischen dem Client 164 und der Datenbank-Servereinheit fortzusetzen. Da die Verbindung an der Transaktionsgrenze getrennt wird, kann das Trennen und Wiederherstellen somit vor dem Benutzer verborgen bleiben. Der Treiberbereich 162 stellt einen Wiederherstellungssteuerbereich gemäß der Ausführungsform dar.
-
Der Verbindungsverteilungsbereich 140 gemäß der Ausführungsform überwacht die Arbeitslast auf jedem physischen Knoten, legt das Verhältnis der Verbindungsverteilung gemäß dem Laststatus der Gruppe physischer Knoten 120 fest und fordert auch vom Treiberbereich 162, die überlastete Verbindung wiederherzustellen. Somit wird die Verbindung mit dem Client von einer Datenbank-Servereinheit auf einem physischen Knoten mit einer Arbeitslast, die einen Zielwert überschreitet, zu einer Datenbank-Servereinheit auf einem physischen Knoten mit einer Arbeitslast verlagert, die geringer als der Zielwert ist, sodass die Arbeitslast zwischen Knoten ausgeglichen wird.
-
(1.2) Darstellung der Verbindungsverteilung
-
Die Verbindungsverteilung gemäß der Ausführungsform der vorliegenden Erfindung wird unter Bezugnahme auf 2 beschrieben. 2 ist ein konzeptionelles Funktionsschaubild zum Beschreiben der Verbindungsverteilung gemäß einer Ausführungsform der vorliegenden Erfindung. 2A ist ein Funktionsschaubild, das einen Verbindungsstatus zeigt, bevor die Verbindungsverteilung ausgeführt wird, und 2B ist ein Funktionsschaubild, das einen Verbindungsstatus zeigt, nachdem die Verbindungsverteilung ausgeführt worden ist.
-
2 zeigt einen Status, in dem auf jedem der physischen Knoten 124a, 124b und 124c zwei Datenbank-Server bereitgestellt sind. Jeder Datenbank-Server entspricht einem Master oder einem Replikat einer der verteilten Datenbankeinheiten mit der Bezeichnung A, B und C. Zum Beispiel können die verteilten Datenbanken A, B und C für Partitionen, die von einer einzelnen Datenbank abgetrennt sind, beziehungsweise für Daten verschiedener Datenbanken zuständig sein. Zu beachten ist, dass X (wobei X ein beliebiger Buchstabe des Alphabets sein kann) für Master und X' (wobei X ebenso ein beliebiger Buchstabe des Alphabets sein kann) für ein Replikat steht.
-
Der Verbindungsverwaltungsmechanismus 170 verwaltet Verbindungen zwischen jedem Client 164 und Datenbank-Servereinheiten von verteilten Datenbanken und verteilt Verbindungen zwischen einem Master und einem oder mehreren Replikaten jeder verteilten Datenbank. 2A zeigt zum Beispiel, dass, wenn sich die Zugriffe bei fest vorgegebenem Verhältnis der Verbindungsverteilung auf verteilte Datenbanken B und C konzentrieren, ein physischer Knoten 124b mit darin untergebrachten Datenbank-Servereinheiten C und B' überlastet wird.
-
Deshalb trennt, wie in 2B gezeigt, der Verbindungsverwaltungsmechanismus 170 gemäß der Ausführungsform sofort an einer Transaktionsgrenze Verbindungen, die der Überlastung auf Verbindungen entsprechen, die Datenbank-Servereinheiten B' und C auf dem überlasteten physischen Knoten 124b zugeordnet sind. Ferner führt der Verbindungsverwaltungsmechanismus 170 eine Wiederherstellung der Verbindung durch, nachdem die Verhältnisse der Verbindungsverteilung zwischen Datenbank-Servereinheiten B und B' und zwischen Datenbank-Servereinheiten C und C' geändert wurden, die auf verschiedenen physischen Knoten betrieben werden, um nicht nur die Verbindungen vom Client 164 aufrechtzuerhalten, sondern auch die Überlastung auf dem physischen Knoten 124b zu verringern. Zu diesem Zeitpunkt werden die Verhältnisse der Verbindungsverteilung nach dem Zufallsprinzip so festgelegt, dass auf die Datenbank-Servereinheit B auf einem physischen Knoten 124a und auf eine Datenbank-Servereinheit C' auf einem physischen Knoten 124c, die beide geringer ausgelastet sind, eine größere Arbeitslast verteilt wird.
-
Die Verbindungsverteilung zwischen dem Master und einem oder mehreren Replikaten der verteilten Datenbanken wird durchgeführt, um die Arbeitslast von einem physischen Knoten mit einer vergleichsweise hohen Arbeitslast auf einen physischen Knoten mit einer vergleichsweise geringen Arbeitslast zu verlagern, sodass der Spitzenwert der Gesamtlast auf der Gruppe physischer Knoten 120 geglättet werden kann.
-
Andererseits wird gewünscht, dass jede Datenbank-Servereinheit auf der Gruppe von physischen Knoten 120 zielgerichtet so bereitgestellt wird, dass die Arbeitslast durch die Verbindungsverteilung verlagert wird, um die Arbeitslast auf der gesamten Gruppe physischer Knoten 120 zielgerichtet auszugleichen. Im Folgenden wird eine Datenbankbereitstellung beschrieben, die die Arbeitslast unter Verwendung der Verbindungsverteilung unter Bezugnahme auf 3 bis 5 vorteilhaft ausgleicht.
-
(1.3) Beziehung mit aktiviertem Lastausgleich und Beziehung mit deaktiviertem Lastausgleich
-
3 ist ein Funktionsschaubild zum Beschreiben von Beziehungen, in denen ein Lastausgleich durch die Verbindungsverteilung aktiviert und deaktiviert wird. 3 zeigt eine Beziehung zwischen zwei physischen Knoten 124a und 124b, wobei auf jedem der physischen Knoten 124a und 124b zwei Datenbank-Server bereitgestellt sind. 3A veranschaulicht eine Beziehung, in der der Lastausgleich durch die Verbindungsverteilung deaktiviert oder unmöglich ist, und 3B veranschaulicht eine Beziehung, in der der Lastausgleich durch die Verbindungsverteilung aktiviert oder möglich ist.
-
Bei der in 3A gezeigten Beziehung mit deaktiviertem Lastausgleich wird ein Serversatz mit den verteilten Datenbanken A und B als Elemente betrachtet, wobei die Serversätze auf dem physischen Knoten 124a und dem physischen Knoten 124b identisch sind. Andererseits ist in der in 3B gezeigten Beziehung mit aktiviertem Lastausgleich der Serversatz (A, B) auf dem physischen Knoten 124a von dem Serversatz {B, X} auf dem physischen Knoten 1124b verschieden.
-
Wie oben erwähnt kann die Arbeitslast zwischen einem Master und einem oder mehreren Replikaten verteilter Datenbanken verlagert werden, die auf verschiedenen physischen Knoten bereitgestellt sind. Wie 3A jedoch zeigt, kann die Arbeitslast durch die Verbindungsverteilung in Wirklichkeit nicht ausgeglichen werden, wenn alle Serversätze auf physischen Knoten mit dem darauf bereitgestellten Master und Replikat von verteilten Datenbanken gleich sind. Um die Arbeitslast auf einer verteilten Datenbank durch die Verbindungsverteilung ausgleichen zu können, müssen sich zumindest Serversätze auf physischen Knoten mit dem darauf bereitgestellten Master und dem Replikat voneinander unterscheiden. Ferner ist es stärker bevorzugt, dass der Unterschied zwischen den Serversätzen auf den physischen Knoten mit dem darauf bereitgestellten Master und dem Replikat groß ist.
-
(1.4) Datenbankbereitstellung zum Erreichen eines wirksamen Lastausgleichs
-
Im Folgenden wird eine Datenbankbereitstellung zum Erreichen eines wirksamen Lastausgleichs unter Bezugnahme auf 4 und 5 beschrieben. 4 veranschaulicht eine Datenbankbereitstellung, bei der jeweils Datenbank-Server von fünf verteilten Datenbanken mit einem Vielfachen von 3 auf fünf physischen Knoten verteilt bereitgestellt sind. 5 veranschaulicht eine Datenbankbereitstellung, bei der jeweils Datenbank-Server von sechs verteilten Datenbanken mit einem Vielfachen von 2 auf sechs physischen Knoten verteilt bereitgestellt sind.
-
Bei der in 4A gezeigten Datenbankbereitstellung sind alle fünf verteilten Datenbanken A bis E so bereitgestellt, dass sich Serversätze auf physischen Knoten mit Datenbank-Servereinheiten jeder darauf bereitgestellten verteilten Datenbank voneinander unterscheiden. Zum Beispiel unterscheiden sich die Serversätze {A, C, E}, {A, B, D} und {A, C, D}, auf den physischen Knoten 1, 2 bzw. 4 mit den Servereinheiten der darauf bereitgestellten Datenbank A voneinander. Dasselbe ist bei den anderen verteilten Datenbanken B bis E der Fall. Deshalb kann die Arbeitslast bei der in 4A gezeigten Datenbankbereitstellung wirksam von einem physischen Knoten mit einer hohen Arbeitslast auf einen physischen Knoten mit einer geringen Arbeitslast verlagert werden, sodass der Spitzenwert der gesamten Arbeitslast auf der Gruppe physischer Knoten 120 geglättet werden kann.
-
Bei der in 4B gezeigten Datenbankbereitstellung hingegen sind auf physischen Knoten dieselben Serversätze verteilter Datenbanken A bis C bereitgestellt. Knoten 2 und Knoten 3 weisen dieselben Servereinheiten von verteilten Datenbanken A bis C auf, und Serversätze dieser physischen Knoten sind identisch. Im Gegensatz zu den physischen Knoten 2 und 3 befindet sich jedoch der Master oder das Replikat jeder der verteilten Datenbanken A bis C auch auf jedem der physischen Knoten 1, 4 und 5. Deshalb kann die Arbeitslast zwischen den physischen Knoten 2 und 3 und den anderen physischen Knoten 1, 4 und 5 verlagert und somit in der in 4 gezeigten Datenbankbereitstellung die Arbeitslast auf den physischen Knoten ausgeglichen werden. Durch das Vorhandensein mehrerer physischer Knoten mit denselben Serversätzen wird jedoch der Freiheitsgrad in Bezug auf das Verlagern der Arbeitslast eingeschränkt.
-
Um die gesamte Arbeitslast auf der Gruppe physischer Knoten 120 ferner wirksam auszugleichen, werden die oben erwähnten übertragbaren Beziehungen vorzugsweise so weit wie möglich erweitert, indem mehr physische Knoten in die Gruppe von physischen Knoten 120 einbezogen werden. Wie oben erwähnt kann die Arbeitslast direkt zwischen dem Master und einem Replikat derselben auf verschiedenen physischen Knoten bereitgestellten verteilten Datenbank verlagert werden. Andererseits kann die Arbeitslast auch indirekt zwischen dem Master und einem Replikat verschiedener verteilter Datenbanken verlagert werden, indem eine übertragbare Beziehung derselben verteilten Datenbank durchlaufen wird. Somit kann die oben erwähnte Erweiterung einer übertragbaren Beziehung als Merkmal der Datenbankbereitstellung quantitativ durch die Größe eines Clusters bestimmt werden, dessen physische Knoten und Lastübertragungsbeziehungen als Graph dargestellt werden, in dem physische Knoten mit Übertragungsbeziehungen miteinander verbunden sind.
-
Mit anderen Worten, die Erweiterung kann quantitativ durch die Größe eines Clusters in Form eines Graphen bestimmt werden, der durch Verbinden verschiedener verteilter Datenbanken mit Seiten (Kanten oder Verknüpfungen) zwischen physischen Knoten gebildet wird, auf denen dieselbe verteilte Datenbank-Servereinheit bereitgestellt ist. Wenn der Cluster so klein ist, dass er in einem Teil der Gruppe von physischen Knoten 120 abgeschlossen ist, ist der Lastausgleich nur begrenzt innerhalb des kleinen Clusters möglich.
-
Falls die Arbeitslast auf physischen Knoten ausgeglichen wird, auf denen jeweils zwei oder mehr verteilte Datenbank-Servereinheiten untergebracht sind, kann die Erweiterung des Clusters als Merkmal der Datenbankbereitstellung quantitativ durch die Anzahl von Knoten eines Clusters bestimmt werden, der durch Verbinden der Seiten zwischen physischen Knoten gebildet wird, auf denen dieselbe verteilte Datenbank-Servereinheit bereitgestellt ist, und der physische Knoten enthält, auf denen Datenbank-Server von zwei oder mehr verschiedenen Datenbanken untergebracht sind. Falls eine verteilte Datenbank so konfiguriert ist, dass sie einen Master und ein oder mehrere Replikate enthält, sollte die Anzahl der Knoten in jedem Cluster vorzugsweise drei oder mehr betragen. Ferner ist es angesichts des Lastausgleichs auf der gesamten Gruppe physischer Knoten 120 besonders bevorzugt, dass die Anzahl der Knoten genau gleich der Anzahl der physischen Knoten in der Gruppe von physischen Knoten 120 ist.
-
Zum Beispiel ist in der in 4A und 4B gezeigten Datenbankbereitstellung die Anzahl der Knoten des Clusters gleich der Anzahl physischer Knoten, sodass die gesamte Arbeitslast auf der Gruppe physischer Knoten 120 ausgeglichen werden kann. Die in 5 gezeigte Datenbankbereitstellung hingegen beinhaltet in der Gruppe von physischen Knoten 120 zwei geschlossene Cluster. Da es in diesem Fall keine verteilte Datenbank gibt, die auf beiden Clustern zugleich bereitgestellt ist, kann die Arbeitslast nicht zwischen den Clustern verlagert werden. Dadurch erfolgt der Lastausgleich in dem aus den physischen Knoten 1, 2 und 3 bestehenden Cluster bzw. in dem aus den physischen Knoten 4, 5 und 6 bestehenden Cluster unabhängig voneinander
-
(2) Details zur Verbindungsverteilung
-
(2.1) Detaillierte Darstellung der Funktionsblöcke in Bezug auf die Verbindungsverteilung
-
Im Folgenden werden die Details der Verbindungsverteilung zum Erreichen eines Lastausgleichs zwischen physischen Knoten beschrieben. 6 zeigt im Einzelnen Funktionsblöcke in Bezug auf die Verbindungsverteilung, die in dem Datenverarbeitungssystem 100 gemäß der Ausführungsform der vorliegenden Erfindung durchgeführt wird. 6 zeigt die Gruppe von physischen Knoten 120, in der mehrere Datenbank-Server bereitgestellt sind, den Verbindungsverteilungsbereich 140, den Verbindungsanforderungs-Empfangsbereich 160, den Treiberbereich 162 und die Clients 164.
-
Genauer gesagt, der Verbindungsverteilungsbereich 140 enthält einen Leistungsdatenerfassungsteil 142, einen Bereitstellungsdatenerfassungsteil 144, einen Laststatusberechnungsteil 146, einen Planungsteil für dynamischen Lastausgleich 148, einen Verbindungspoolsteuerteil 150 und einen Verbindungsauflösungsteil 152.
-
Der Leistungsdatenerfassungsteil 142 überwacht die Leistung der verteilten Datenbankumgebung und erfasst periodisch oder in unregelmäßigen Abständen Leistungsdaten. Bei den Leistungsdaten kann es sich um Daten zur quantitativen Ermittlung der Arbeitslast auf dem physischen Knoten handeln, darunter, ohne darauf beschränkt zu sein, der Auslastungswert (Auslastungsgrad) jeder der physischen Ressourcen jedes physischen Knotens, beispielsweise der CPU, der Platten-E/A und des Speichers, die Gesamtzahl der Verbindungen jedes physischen Knotens usw. Bei den Leistungsdaten für jede verteilte Datenbank kann es sich um Daten zur quantitativen Ermittlung der Arbeitslast auf jeder verteilten Datenbank handeln, beispielsweise die Anzahl der Verbindungen für jede verteilte Datenbank, die Zunahme der Tabellendaten, die Auslastung des Datenbankbereichs, die Abfrageantwortzeit und die Anzahl der Benutzer. Solche Daten können von einem in der verteilten Datenbankumgebung angeordneten Leistungsüberwachungstool übernommen werden.
-
Der Bereitstellungsdatenerfassungsteil 144 erfasst periodisch oder in unregelmäßigen Abständen Bereitstellungsdaten auf der verteilten Datenbankumgebung. Bei den Bereitstellungsdaten handelt es sich um Daten, welche die Bereitstellung von Datenbank-Servereinheiten auf der Gruppe physischer Knoten 120 beschreiben und anzeigen, welche verteilte Datenbank-Servereinheit auf jedem physischen Knoten bereitgestellt ist. Kurz gesagt, die Bereitstellungsdaten werden in Form einer Liste von Serversätzen für jeden physischen Knoten erstellt.
-
Der Laststatusberechnungsteil 146 multipliziert die durch den Leistungsdatenerfassungsteil 142 erfassten Leistungsdaten mit den durch den Bereitstellungsdatenerfassungsteil 144 erfassten Bereitstellungsdaten, um den Laststatus für jeden physischen Knoten zu berechnen. Der für jeden physischen Knoten berechnete Laststatus enthält die Bewertungszahl der Arbeitslast auf jedem physischen Knoten, um die auf dem physischen Knoten auszugleichende Arbeitslast und den Anteil jeder Datenbank-Servereinheit auf jedem physischen Knoten an der Bewertungszahl der Arbeitslast quantitativ zu ermitteln.
-
Das Verfahren zum Berechnen der Lastbewertungszahl ist nicht ausdrücklich begrenzt, solange die Arbeitslast auf jedem physischen Knoten quantitativ ermittelt werden kann. Zum Beispiel können der Ressourcenauslastungswert (Auslastungsgrad) und die Anzahl der Verbindungen jedes physischen Knotens, die beide erfasst werden können, ohne Einschränkung verwendet werden. Das Verfahren zum Berechnen des Anteils an der Lastbewertungszahl ist ebenfalls nicht ausdrücklich begrenzt. Zum Beispiel können bei verteilten Datenbanken (d. h. bei einem Serversatz), deren Servereinheiten auf einem physischen Knoten bereitgestellt sind, die Anzahl der Verbindungen jeder verteilten Datenbank und das Ausmaß der Verbindungsverteilung jeder verteilten Datenbank zu jeder Servereinheit dazu verwendet werden, den Anteil jeder Servereinheit an der Lastbewertungszahl auf dem physischen Knoten zu berechnen. Das Ausmaß der Verbindungsverteilung kann zum Beispiel von dem Planungsteil für dynamischen Lastausgleich 148 übernommen werden.
-
Der Planungsteil für dynamischen Lastausgleich 148 berücksichtigt den aktuellen Verbindungsstatus und das in vorgegebenen Intervallen abgeschätzte Ausmaß der Verbindungsänderung, um einen Zielwert für das Festlegen des Anteils der Verbindungsverteilung festzulegen, um die Verbindungsverteilung und die Wiederherstellung so zu planen, dass sich die Lastbewertungszahl auf jedem physischen Knoten asymptotisch dem Zielwert annähert. Genauer gesagt, der Planungsteil für dynamischen Lastausgleich 148 plant eine neue Verbindungsverteilung einschließlich der Wiederherstellung zu jeder verteilten Datenbank-Servereinheit mit einem Verteilungsanteil oder einer Verteilungswahrscheinlichkeit, die einem Lastanteil unterhalb des Zielwertes gemäß dem durch den Laststatusberechnungsteil 146 berechneten Laststatus entspricht.
-
Der Verbindungspoolsteuerteil 150 sorgt für eine ausreichende Anzahl von Verbindungen 156 in einem Poolbereich 154 gemäß dem durch den Planungsteil für dynamischen Lastausgleich 148 geplanten Anteil der Verbindungsverteilung. Der Verbindungsauflösungsteil 152 verwaltet die Anzahl der Verbindungen für den Poolbereich 154, beispielsweise die größtmögliche Anzahl der aus dem Pool gelangenden Verbindungen. Als Reaktion auf eine Verbindungsauflösungsanforderung von dem Verbindungsauflösungs-Empfangsbereich 160 übergibt der Verbindungsauflösungsteil 152 von den im Poolbereich 154 zusammengefassten Verbindungen 156 eine angeforderte Verbindung an eine verteilte Datenbank-Servereinheit. Zu diesem Zeitpunkt wird die zu der Servereinheit einzurichtende Verbindung mit einer Wahrscheinlichkeit übergeben, die dem obigen Verteilungsverhältnis entspricht. Als Reaktion auf eine Verbindungsanforderung von dem anfordernden Client 164a gibt der Verbindungsanforderungs-Empfangsbereich 160 eine Verbindungsauflösungsanforderung an den Verbindungsauflösungsteil 152 aus, um eine Verbindung zwischen dem anfordernden Client 164a und der verteilten Datenbank-Servereinheit einzurichten und gibt einen Hinweis an den Client 164a zurück.
-
Gemäß der Ausführungsform erfolgt das Zusammenfassen von Verbindungen durch den Verbindungspoolsteuerteil 150 und den Verbindungsauflösungsteil 152, um die Verbindung zu der Datenbank-Servereinheit einer verteilten Datenbank wiederzuverwenden, sodass der durch verschiedene Arbeitsschritte wie beispielsweise Berechtigungsprüfung bedingte Systemaufwand beim Einrichten einer Verbindung zwischen einem Client und einer Servereinheit verringert werden kann.
-
Wenn ferner anhand des durch den Laststatusberechnungsteil 146 berechneten Laststatus ein physischer Knoten mit einer hohen Arbeitslast gefunden wird, plant der Planungsteil für dynamischen Lastausgleich 148, eine Anzahl von Verbindungen zu trennen und wiederherzustellen, die einem den Zielwert überschreitenden Lastanteil entsprechen, und richtet eine Anforderung nach Wiederherstellung an den Treiberbereich 162. Als Reaktion auf die Wiederherstellungsanforderung von der Planungseinheit für dynamischen Lastausgleich 148 fordert der Treiberbereich 162 den Verbindungsanforderungs-Empfangsbereich 160 auf, die Verbindungen gemäß der Wiederherstellungsanforderung sofort an Transaktionsgrenzen zu trennen und wiederherzustellen. Nach dem Empfangen dieser Anforderung gibt der Verbindungsanforderungs-Empfangsbereich 160 eine Verbindungsauflösungsanforderung an den Verbindungsauflösungsteil 152 aus, richtet neue Verbindungen mit verteilten Datenbank-Servereinheiten ein und gibt einen Hinweis über die neuen Verbindungen an den Treiberbereich 162 zurück.
-
Wenn diese überschüssige Arbeitslast zum Beispiel auf einen physischen Knoten fällt, auf dem die Datenbank-Servereinheit A bereitgestellt ist, trennt der Treiberbereich 162 sofort die Verbindung I 156a zu der Servereinheit A und richtet eine Anforderung an den Verbindungsanforderungs-Empfangsbereich 160 zwecks Wiederherstellung der Verbindung. Zum Beispiel übernimmt der Verbindungsanforderungs-Empfangsbereich 160 die Verbindung II 156b zu der Datenbank-Servereinheit A', um die Verbindung zwischen der verteilten Datenbank A und dem Client aufrechtzuerhalten.
-
Die Verbindungsverteilung und -wiederherstellung werden durch den oben erwähnten Planungsteil für dynamischen Lastausgleich 148 geplant, und die Wiederherstellung der Verbindung wird durch den Verbindungsanforderungs-Empfangsbereich 160 und den Treiberbereich 162 bewirkt, indem die Verbindung zu einer Servereinheit auf einem physischen Knoten mit einer den Zielwert übersteigenden Arbeitslast getrennt und zu einer Servereinheit auf einem physischen Knoten mit einer geringeren Arbeitslast verlagert wird, wodurch die Arbeitslast zwischen physischen Knoten ausgeglichen wird.
-
(2.2) Verfahren zur Verbindungsverteilung
-
Im Folgenden wird der Ablauf der durch den Verbindungsverteilungsbereich 140 durchgeführten Verbindungsverteilung genauer unter Bezugnahme auf 7 beschrieben. 7 ist ein Ablaufplan, der den Ablauf der durch den Verbindungsverteilungsbereich 140 durchgeführten Verbindungsverteilung zeigt. Der in 7 gezeigte Prozess beginnt in Schritt S100 zum Beispiel als Reaktion auf das Aktivieren einer Verbindungsverteilungsfunktion.
-
In Schritt S101 springt der Verbindungsverteilungsbereich 140 zurück zu Schritt S101, bis eine vorgegebene Zeitspanne abgelaufen ist (NEIN in Schritt S101). Während dieser Zeitspanne wird die Verbindungsverteilung geprüft, und eine Zeitspanne kann entsprechend dem Ausmaß der Laständerung in Abhängigkeit von den Eigenschaften der Client-Anwendung eingestellt werden. Nach dem Ablauf der vorgegebenen Zeitspanne in Schritt S101 (JA) geht der Prozess weiter zu Schritt S102.
-
In Schritt S102 erfasst der Leistungsdatenerfassungsteil 141 Leistungsdaten auf der verteilten Datenbankumgebung. In Schritt S103 erfasst der Bereitstellungsdatenerfassungsteil 144 Erfassungsdaten auf der verteilten Datenbankumgebung. In Schritt S104 verwendet der Laststatusberechnungsteil 146 die erfassten Leistungsdaten und Bereitstellungsdaten, um den Laststatus einschließlich der Lastbewertungszahl für jeden physischen Knoten und den Anteil jeder Datenbank-Servereinheit auf jedem physischen Knoten an der Lastbewertungszahl zu berechnen. Gemäß der im Folgenden beschriebenen Ausführungsform werden der Ressourcenauslastungswert für jeden physischen Knoten und das Verhältnis oder der Anteil jeder Datenbank-Servereinheit auf dem physischen Knoten in Bezug auf den Ressourcenauslastungswert (im Folgenden als Ressourcenauslastungsgrad bezeichnet) als Laststatus für jeden physischen Knoten verwendet.
-
In Schritt S105 berechnet der Planungsteil für dynamischen Lastausgleich
148 einen Zielwert T für den Ressourceauslastungswert gemäß dem folgenden mathematischen Ausdruck (1), wobei Ri gleich dem Ressourcenauslastungswert des physischen Knotens i (i = 1, ..., I) ist, zu dem die Servereinheit gehört, und durch den Laststatusberechnungsteil
146 berechnet wird, C gleich einem Mittelwert der Zunahmen der Anzahl von Verbindungen ist, die während der vorgegebenen Zeitspanne eintreten können und r gleich dem Ressourceauslastungswert ist, der einer Verbindung entspricht: [Ausdruck 1]
-
Hierbei ist der Zielwert T gleich einem Prüfzielwert zum Festlegen des Anteils der Verbindungsverteilung, um die Arbeitslast auf jedem physischen Knoten unter Berücksichtigung des aktuellen Verbindungsstatus und von Verbindungsänderungen während der vorgegebenen Zeitspanne auszugleichen. Der Mittelwert C der Zunahmen der Anzahl von Verbindungen kann zum Beispiel als Leistungswert von Seiten der Datenbank erfasst werden. In Schritt S106 legt der Planungsteil für dynamischen Lastausgleich 148 den Anteil der Verbindungsverteilung für eine Servereinheit auf jedem physischen Knoten gemäß dem berechneten Zielwert T fest. Hierbei wird davon ausgegangen, dass ein verteilter Datenbank-Server gleichermaßen auf jedem physischen Knoten i (i = 1, ..., I) bereitgestellt wird und die Anteile der Verbindungsverteilung für jede Servereinheit der verteilten Datenbank auf jedem physischen Knoten i gleich T – R1:T – R2:...:T-RI sind.
-
In dem obigen mathematischen Ausdruck (1) ist der einer Verbindung entsprechende Ressourcenauslastungswert r gleich einem entsprechenden Ressourcenauslastungswert auf dem physischen Knoten, und wenn die Gesamtzahl der Verbindungen auf jedem physischen Knoten in Form der Leistungsdaten erfasst werden kann, kann der entsprechende Wert berechnet werden, indem das Hauptaugenmerk auf einen physischen Knoten mit der höchsten Arbeitslast gemäß dem folgenden mathematischen Ausdruck (2) gelegt wird, wobei Rs gleich dem Ressourcenauslastungswert des physischen Knotens und m gleich der Gesamtzahl von Verbindungen auf dem physischen Knoten ist: [Ausdruck 2]
-
Wenn hingegen die Anzahl der Verbindungen aller verteilten Datenbanken in Form der Leistungsdaten erfasst werden kann, kann auch der einer Verbindung entsprechende Ressourcenauslastungswert r so berechnet werden, dass das Hauptaugenmerk auf eine verteilte Datenbank mit der höchsten Arbeitslast gelegt wird, um den Gesamtauslastungswert für die durch die verteilte Datenbank genutzten Ressourcen aus dem Ressourcenauslastungswert jedes physischen Knotens, auf dem die verteilte Datenbank-Servereinheit bereitgestellt ist, und dem Ressourcenauslastungsgrad der verteilten Datenbank-Servereinheit auf jedem physischen Knoten zu berechnen und diesen durch die Anzahl der Verbindungen aller verteilten Datenbanken zu teilen.
-
In einer Schleife von Schritt S107 bis Schritt S112 werden die Schritte S108 bis S111 auf jeder verteilten Datenbank ausgeführt. In einer Schleife von Schritt S108 bis Schritt S111 werden die Arbeitsschritte S109 und S110 auf der unter Hauptaugenmerk stehenden verteilten Datenbank für jeden i-ten bis I-ten physischen Knoten ausgeführt, um das Vorhandensein eines physischen Knotens zu erkennen, auf den eine den Zielwert übersteigende Arbeitslast entfällt. In Schritt S109 vergleicht der Planungsteil für dynamischen Lastausgleich 148 den Ressourcenauslastungswert Ri des physischen Knotens i mit dem oben erwähnten Zielwert T, um zu ermitteln, ob der Ressourcenauslastungswert Ri den Zielwert T übersteigt. Wenn in Schritt S109 festgestellt wird, dass der Ressourcenauslastungswert Ri den Zielwert T nicht übersteigt (NEIN), geht die Verarbeitung weiter zu Schritt S111.
-
Nach dem Verlassen der Schleife von Schritt S107 bis Schritt S112 sammelt der Verbindungspoolsteuerteil
150 in Schritt
113 im Poolbereich
154 eine ausreichende Anzahl von Verbindungen für jeden physischen Knoten mit einem Ressourcenauslastungswert Ri an, der kleiner als der Zielwert T (Ri < T) gemäß dem Anteil der Verbindungsverteilung ist, und die Verarbeitung springt zurück zu Schritt S101, um zu warten, bis die nächste Zeitspanne abgelaufen ist. Die Verarbeitung zur Steuerung des Poolvolumens in Schritt S113 veranlasst den Verbindungsauflösungsteil
152, neue Verbindungen gemäß dem festgelegten Anteil der Verbindungsverteilung im Umlaufverfahren zu verteilen, darunter wiederhergestellte Verbindungen und neue Verbindungen. Ausgehend davon, dass auf jedem physischen Knoten i (i = 1, ..., I) gleichermaßen eine verteilte Datenbank-Servereinheit bereitgestellt ist, wird die Wahrscheinlichkeit Si für das Zuordnen einer Verbindung für jeden physischen Knoten durch eine im folgenden mathematischen Ausdruck (3) gezeigte Beziehung ausgedrückt (
8): [Ausdruck 3]
-
Wenn in Schritt S109 hingegen festgestellt wird, dass der Ressourcenauslastungswert Ri den Zielwert T übersteigt (JA), geht die Verarbeitung weiter zu Schritt S110. In Schritt S110 fordert der Planungsteil für dynamischen Lastausgleich
148 den Treiberbereich
162 auf, eine Verbindung aus der Anzahl von Verbindungen Q zu einer Servereinheit einer unter Hauptaugenmerk stehenden verteilten Datenbank auf jedem physischen Knoten, die der Differenz des Ressourcenauslastungswertes Ri des physischen Knotens entspricht, zu trennen und wiederherzustellen, welche den Zielwert T für die unter Hauptaugenmerk stehende verteilte Datenbank übersteigt (
8). Hierbei kann die Anzahl der Verbindungen Q, die der obigen Differenz entsprechen, bei der das Trennen der Verbindung jedes physischen Knotens i angefordert wird, nach dem folgenden mathematischen Ausdruck (4) berechnet werden: [Ausdruck 4]
-
Dann werden, wenn zwei oder mehr verteilte Datenbank-Servereinheiten auf dem physischen Knoten i untergebracht sind, in Schritt S110 Verbindungen aus der Gesamtzahl der Verbindungen Q wiederhergestellt, die dem Ressourcenauslastungsgrad der unter Hauptaugenmerk stehenden verteilten Datenbank auf dem physischen Knoten i entsprechen. Der Treiberbereich 162, der die Wiederherstellungsanforderung empfangen hat, trennt die der Wiederherstellungsanforderung zugehörigen Verbindungen und wandelt diese zum Zeitpunkt der Transaktionsgrenzen in neue Verbindungen um.
-
In der Ausführungsform der vorliegenden Erfindung wird die Verbindungsverteilung wie oben erwähnt gemäß dem Laststatus von physischen Knoten durchgeführt, sodass die Arbeitslast von physischen Knoten mit einer den Zielwert übersteigenden Arbeitslast zu physischen Knoten mit einer Arbeitslast verlagert, die kleiner als der Zielwert ist, und somit der Spitzenwert der gesamten Arbeitslast auf der Gruppe physischer Knoten 120 geglättet werden kann. Gemäß der Ausführungsform der vorliegenden Erfindung werden solche Operationen mit einem geringen Durchführungsaufwand wie das Überwachen des sich dynamisch ändernden Laststatus und des sich dynamisch ändernden Anteils der Verbindungsverteilung beim Client zusammen mit Änderungen des Laststatus ausgeführt, sodass die gesamte Arbeitslast auf den physischen Knoten ausgeglichen werden kann und die physischen Ressourcen besser ausgelastet werden können.
-
Bei dem Lastausgleichsverfahren unter Verwendung der Verbindungsverteilung gemäß der Ausführungsform kann die Datenbankbereitstellung ohne Rücksicht darauf geplant werden, dass der Laststatus schwer vorhersagbar ist. Da der Lastausgleich durch Steuern der Verbindungsverteilung jeder verteilten Datenbank in Bezug auf den Master und ein oder mehrere Replikate erfolgt, kann die Arbeitslast ferner ausschließlich durch lokale Planung und lokale Operationen angemessen geglättet werden, wobei eine plötzliche Überlastung oder redundante Ressourcen adaptiv bewältigt werden können, denen durch Erweitern der physischen Ressourcen oder Hinzufügen von Replikaten nur schwierig begegnet werden kann.
-
Da Verbindungen, die einem den Zielwert übersteigenden Lastanteil entsprechen, an Transaktionsgrenzen wiedereingerichtet werden, bleibt das Trennen der Verbindungen dem Benutzer verborgen, d. h. das Trennen ist für den Benutzer transparent. Somit kann sogar ein Benutzer für die Verbindungsverteilung in Betracht gezogen werden, der Verbindungen längere Zeit betreibt.
-
(3) Details zum Datenbankbereitstellungsplan
-
(3.1) Planungsverfahren für die Datenbankbereitstellung
-
Im Folgenden werden Arbeitsschritte zum Planen der Datenbankbereitstellung beschrieben, die für den Lastausgleich unter Verwendung der Verbindungsverteilung von Vorteil sind. Hierbei wird davon ausgegangen, dass die Anzahl verteilter Datenbanken gleich N, das Vielfache jeder verteilten Datenbank gleich M und die Anzahl physischer Knoten gleich K ist. Ferner wird davon ausgegangen, dass das Vielfache jeder verteilten Datenbank der einfacheren Beschreibung halber gleich ist, obgleich nicht beabsichtigt ist, die Zuweisung anderer Faktoren auszuschließen.
-
Da das Lastausgleichsverfahren unter Verwendung der Verbindungsverteilung gemäß der Ausführungsform der vorliegenden Erfindung den Lastausgleich von physischen Knoten bezweckt, die zwei oder mehr verteilte Datenbank-Servereinheiten aufnehmen, unterliegt das Verfahren ferner der Vorbedingung, dass die Datenbankbereitstellung eine oder mehrere Kombinationen von Serversätzen auf physischen Knoten hervorbringen kann. Deshalb müssen die Bedingungen M ≥ 2 und K < M·N erfüllt sein. Ferner werden, wenn das Vielfache M verteilter Datenbanken die Anzahl physischer Knoten K übersteigt, immer zwei oder mehr Servereinheiten derselben verteilten Datenbank auf ein und demselben physischen Knoten bereitgestellt. Wenn das Vielfache M verteilter Datenbanken gleich der Anzahl physischer Knoten K ist, werden auf jedem physischen Knoten alle der verteilten Datenbank-Servereinheiten bereitgestellt, sodass die Arbeitslast praktisch nicht verlagert werden kann. Deshalb lautet eine weitere Bedingung M < K.
-
9 ist ein Ablaufplan, der den Ablauf der Planung der Datenbankbereitstellung zeigt, der durch den Datenbankplanungsbereich gemäß der Ausführungsform der vorliegenden Erfindung ausgeführt wird. Der in 9 gezeigte Ablauf beginnt in Schritt S200 als Reaktion auf eine Anweisung von einem Systemadministrator, eine erstmalige Bereitstellung vorzunehmen. In Schritt S201 empfängt der Bereitstellungsplanungsbereich 112 die Anwendung von dem Systemadministrator, eine erstmalige Bereitstellung vorzunehmen. In Schritt S202 ermittelt der Bereitstellungsplanungsbereich 112, ob die Anzahl physischer Knoten gleich der oder größer als die Anzahl verteilter Datenbanken N ist und verzweigt dann den Prozessablauf in Abhängigkeit vom Größenverhältnis zwischen der Anzahl physischer Knoten K und der Anzahl verteilter Datenbanken N.
-
Wenn in S202 festgestellt wird, dass die Anzahl physischer Knoten K gleich der oder größer als die Anzahl verteilter Datenbanken N ist (JA), verzweigt der Prozess zu Schritt S203. In Schritt S203 ruft der Bereitstellungsplanungsbereich 112 einen Bereitstellungsplanungsalgorithmus A(n) zum Bereitstellen von n verteilten Datenbanken auf n physischen Knoten auf, um einen Bereitstellungsplan zum Bereitstellen von N verteilten Datenbanken auf N physischen Knoten in K physischen Knoten umzusetzen. Genauer gesagt, der Bereitstellungsplanungsbereich 112 setzt n ← N und gibt den Faktor M als Parameter vor, um den Bereitstellungsplanungsalgorithmus A(n) aufzurufen und den Bereitstellungsplan zum Bereitstellen von Master und Replikaten von N verteilten Datenbanken auf N beliebigen physischen Knoten in K physischen Knoten umzusetzen. Auf diese Weise wird die Bereitstellung von M Datenbank-Servereinheiten von N verteilten Datenbanken auf N physischen Knoten geplant, wobei K – N physische Knoten in K physischen Knoten als leere Knoten übrig bleiben, auf denen keine Datenbank bereitgestellt ist. Die Details des Bereitstellungsplanungsalgorithmus A(n) werden später beschrieben.
-
In Schritt S204 verlagert der Bereitstellungsplanungsbereich
112 O Datenbank-Servereinheiten in N × M Datenbank-Servereinheiten, deren Bereitstellung in Schritt S203 geplant wurde, beginnend mit der letzten im Bereitstellungsplan der Reihe nach zu K – N in Schritt S203 übrig gebliebenen leeren Knoten ohne bereitgestellte Datenbank. Die Anzahl der O zu verlagernden Servereinheiten kann mit dem folgenden mathematischen Ausdruck (5) berechnet werden: [Ausdruck 5]
-
In dem obigen mathematischen Ausdruck (5) stellt die Schreibweise in eckigen Klammern mit fehlendem Oberteil eine Abrundungsfunktion dar. Der obige mathematische Ausdruck (5) zeigt eine Funktion zum Berechnen der Anzahl der Verlagerungen, damit diese gleich der Anzahl der auf jedem physischen Knoten bereitgestellten Servereinheiten sind, jedoch ist die Berechnung nicht auf die Verwendung dieser Funktion beschränkt, sondern anstelle der Abrundungsfunktion kann zum Beispiel eine Aufrundungsfunktion verwendet werden.
-
10 ist ein Funktionsschaubild zum Beschreiben eines Verfahrens zum Bereitstellen verteilter Datenbank-Servereinheiten auf physischen Knoten. 10A zeigt ein Bereitstellungsverfahren, wenn die Anzahl der physischen Knoten K gleich der oder größer als die Anzahl verteilter Datenbanken N ist. Wenn die Anzahl der physischen Knoten K gleich der oder größer als die Anzahl verteilter Datenbanken N ist, wird gemäß 10A die Bereitstellung von M Servereinheiten von N verteilten Datenbanken auf N physischen Knoten in K physischen Knoten geplant, die dann gleichmäßig auf die übrig gebliebenen K – N leeren Knoten verteilt werden. Das führt dazu, dass die Servereinheiten gleichmäßig auf den K physischen Knoten bereitgestellt sind.
-
In Schritt S205 übergibt der Bereitstellungsplanungsbereich 112 die Strukturdefinition der wie oben erwähnt in Schritt S203 und Schritt S204 geplanten Datenbankbereitstellung an den Bereitstellungsbereich 114 und weist den Bereitstellungsbereich 114 an, eine verteilte Bereitstellung vorzunehmen und eine verteilte Datenbankumgebung zu erzeugen. Anschließend endet der Prozess in Schritt S206.
-
Wenn in Schritt S202 hingegen festgestellt wird, dass die Anzahl der physischen Knoten K kleiner als die Anzahl verteilter Datenbanken N ist (NEIN), verzweigt der Prozess zu Schritt S207. In Schritt S207 setzt der Bereitstellungsplanungsbereich 112 zuerst i = 1 und ruft in Schritt S208 den Bereitstellungsplanungsalgorithmus A(n) auf, um einen Bereitstellungsplan zum Bereitstellen von K verteilten Datenbanken in N auf K physischen Knoten umzusetzen. Genauer gesagt, der Bereitstellungsplanungsbereich 112 setzt n ← K und gibt den Faktor M als Parameter vor, um den Bereitstellungsplanungsalgorithmus A(n) aufzurufen und den Bereitstellungsplan zum Bereitstellen von Master und Replikaten beliebiger K verteilter Datenbanken in N auf K physischen Knoten umzusetzen. Auf diese Weise wird die Bereitstellung von M Servereinheiten von K verteilten Datenbanken auf K physischen Knoten geplant. In Schritt S209 wird die Anzahl der ungeplanten verteilten Datenbanken L nach dem folgenden mathematischen Ausdruck (6) berechnet:
-
[Ausdruck 6]
-
-
In Schritt S210 ermittelt der Bereitstellungsplanungsbereich 112, ob die Anzahl ungeplanter verteilter Datenbanken L die Anzahl der physischen Knoten K übersteigt. Wenn in Schritt S210 festgestellt wird, dass die Anzahl ungeplanter verteilter Datenbanken L die Anzahl der physischen Knoten K übersteigt (JA), verzweigt die Verarbeitung zu Schritt S211, um i um eins zu erhöhen, und die Verarbeitung springt zurück zu Schritt S208. Auf diese Weise wird der Bereitstellungsplan von weiteren K verteilten Datenbanken in der Anzahl ungeplanter verteilter Datenbanken L umgesetzt. Wenn in Schritt S210 hingegen festgestellt wird, dass die Anzahl ungeplanter verteilter Datenbanken L gleich der oder kleiner als die Anzahl der physischen Knoten K ist (NEIN), verzweigt die Verarbeitung zu Schritt S212.
-
In Schritt S212 setzt der Bereitstellungsplanungsbereich 112 n ← L und gibt das Vielfache M als Parameter vor, um den Bereitstellungsplanungsalgorithmus A(n) aufzurufen und einen Bereitstellungsplan zum Bereitstellen von Master und Replikaten der übrig gebliebenen L verteilten Datenbanken abzüglich der K Datenbanken auf L physischen Knoten umzusetzen. In Schritt S213 verlagert der Bereitstellungsplanungsbereich 112 L × M Datenbank-Servereinheiten, deren Bereitstellung in Schritt S212 geplant wurde, beginnend mit der letzten im Bereitstellungsplan der Reihe nach zu den anderen K – L physischen Knoten. Ebenso wie in dem obigen mathematischen Ausdruck (5) kann die Anzahl der zu verlagernden Servereinheiten als Funktion zum Berechnen der Anzahl der Verlagerungen gewählt werden, damit diese gleich der Anzahl der auf jedem physischen Knoten bereitgestellten Servereinheiten ist.
-
In Schritt S205 übergibt der Bereitstellungsplanungsbereich 112 dem Bereitstellungsbereich 114 die Strukturdefinition der in Schritt S207 bis Schritt S213 geplanten Datenbankbereitstellung und weist den Bereitstellungsbereich 114 an, eine Verteilung vorzunehmen und eine verteilte Datenbankumgebung zu erzeugen. Anschließend endet der Prozess in Schritt S206.
-
10B ist ein Funktionsschaubild zum Beschreiben eines Bereitstellungsverfahrens, wenn die Anzahl der physischen Knoten K kleiner als die Anzahl verteilter Datenbanken N ist. Wenn die Anzahl der physischen Knoten K kleiner als die Anzahl verteilter Datenbanken N ist, werden gemäß 10B zuerst K von N verteilten Datenbanken auf K physischen Knoten bereitgestellt. Dann wird die Bereitstellung jeder der K verteilten Datenbanken in derselben Weise geplant, bis die Anzahl der übrig bleibenden verteilten Datenbanken kleiner als K wird. Wenn die Anzahl der übrig bleibenden verteilten Datenbanken L kleiner als K wird, wird der Bereitstellungsplan zum Bereitstellen von L verteilten Datenbanken auf L physischen Knoten umgesetzt, um Servereinheiten beginnend mit der letzten im Bereitstellungsplan der Reihe nach auf K – L physische Knoten zu verteilen, um die Servereinheiten gleichmäßig auf den K physischen Knoten bereitzustellen.
-
(3.2) Datenbankbereitstellungsalgorithmus A(n)
-
11 ist ein Ablaufplan, der den Ablauf des durch den Bereitstellungsplanungsbereich gemäß der Ausführungsform der vorliegenden Erfindung ausgeführten Bereitstellungsplanungsalgorithmus A(n) zeigt. Die in 11 gezeigte Verarbeitung wird in Schritt S203, Schritt S208 oder Schritt S212 von 10 aufgerufen, um mit Schritt S300 zu beginnen. In Schritt S301 plant der Bereitstellungsplanungsbereich 112 die Bereitstellung einer Datenbank-Servereinheit (z. B. einer Master-Servereinheit) von jeder von n verteilten Datenbanken auf n physischen Knoten und weist jedem physischen Knoten und jeder verteilten Datenbank Zahlen zu (A1 in 12).
-
In Schritt S302 plant der Bereitstellungsplanungsbereich 112 die Bereitstellung einer anderen Datenbank-Servereinheit der n verteilten Datenbanken (z. B. eines Replikats der ersten Servereinheit) jeweils auf physischen Knoten mit den aufeinander folgenden Zahlen von physischen Knoten, die in Schritt S301 bereitgestellt wurden (A2 in 12). Im vorliegenden Zusammenhang sind unter den „aufeinander folgenden Zahlen” Werte von 1 bis n zu verstehen, und (n + 1) springt wieder um auf 1. Wenn in Schritt S301 und Schritt S302 die Seiten, die eine Verbindung zwischen physischen Knoten herstellen, auf denen dieselbe verteilte Datenbank-Servereinheit bereitgestellt ist, aneinander gelegt werden, entsteht ein aus n physischen Knoten bestehender Ring. Dieser Ring bildet einen Cluster, und die Verwendung dieses Bereitstellungsplanungsalgorithmus erweitert den Cluster auf eine Anzahl von n Knoten.
-
In Schritt S303 ermittelt der Bereitstellungsplanungsbereich 112, ob das Vielfache M drei oder mehr beträgt. Wenn in Schritt S303 festgestellt wird, dass das Vielfache M kleiner als drei ist (NEIN), verzweigt der Prozess zu Schritt S309, wo der Prozess beendet wird, um zum aufrufenden Modul zurückzukehren. Wenn in Schritt S303 hingegen festgestellt wird, dass das Vielfache M drei oder mehr beträgt (JA), durchläuft der Prozess eine Schleife von Schritt S304 bis zu Schritt S306.
-
In der Schleife von Schritt S304 bis zu Schritt S306 wird der Arbeitsschritt S305 (M – 2)-mal (M – 2 times) wiederholt, um die Bereitstellung der übrig gebliebenen Replikate jeder verteilten Datenbank zu planen. In Schritt S305 wird die Bereitstellung des i-ten Datenbank-Servers (d. h. eines Replikats des i + 1-ten Servers) der übrig gebliebenen Replikate von n verteilten Datenbanken nach dem folgenden mathematischen Ausdruck (7) geplant (A3 in
12). [Ausdruck 7]
-
In dem obigen mathematischen Ausdruck (7) stellt die Schreibweise in eckigen Klammern mit fehlendem Unterteil eine Aufrundungsfunktion dar. Ferner sind in dem obigen mathematischen Ausdruck (7) k gleich einer in Schritt S301 zugewiesenen Zahl und i gleich einer Zahl zum Kennzeichnen jedes in Schritt S301 und Schritt S302 in den verteilten Datenbankeinheiten übrig gebliebenen Replikats. Der obige mathematische Ausdruck (7) stellt eine Funktion zum Bereitstellen von n verteilten Datenbank-Servereinheiten auf dem obigen Ring von physischen Knoten in der Weise dar, dass sie den längsten Abstand aufweisen, ist jedoch nicht speziell darauf beschränkt. Nach dem Verlassen der Schleife von Schritt S304 bis zu Schritt S306 ermittelt der Bereitstellungsplanungsbereich 112 in Schritt S307, ob die Bedingungen ungeradzahliges M und geradzahliges n erfüllt sind. Wenn in Schritt S307 festgestellt wird, dass die Bedingungen ungeradzahliges M und geradzahliges n nicht erfüllt sind (NEIN), wird der Prozess in Schritt S309 beendet, um zum aufrufenden Modul zurückzukehren.
-
Wenn in Schritt S307 hingegen festgestellt wird, dass die Bedingungen ungeradzahliges M und geradzahliges n erfüllt sind (JA), geht der Prozess weiter zu Schritt S308. In Schritt S308 stellt der Bereitstellungsplanungsbereich 112 auf den Ordinalpositionen i = (M – 1)/2 angeordnete Datenbank-Server auf nacheinander nummerierten physischen Knoten bereit, wobei kein Datenbank-Server so bereitgestellt ist, dass Kombinationen von k-ten und k + n – 1-ten bereitgestellten Datenbanken einander nicht überlappen. Auf diese Weise wird eine Datenbankbereitstellung so geplant, dass eine Verbindungsverteilung in einer Aufeinanderfolge auf n physische Knoten verteilt wird.
-
Gemäß dem oben erwähnten Ablauf der Datenbankbereitstellung wird die Datenbankbereitstellung so geplant, dass die oben erwähnte Arbeitslast eine übertragbare Beziehung aufweist, der Cluster möglichst groß ist und die Anzahl der Knoten in dem Cluster genau der Anzahl der physischen Knoten K entspricht. Dadurch kann ein Lastausgleich in der gesamten Gruppe physischer Knoten unter Verwendung der oben erwähnten Verbindungsverteilung durchgeführt werden.
-
(3.3) Austausch der Datenbankbereitstellung
-
Im Folgenden wird eine Zusatzkonfiguration zum Verringern von langfristigen Lastungleichgewichten beschrieben. Dem Zusatzkonfigurationsbereich 116 der Ausführungsform obliegt die Funktion, langfristige Lastungleichgewichte zwischen physischen Knoten zu überwachen und die Datenbankbereitstellung angemessen zu verändern oder zu korrigieren, um die Lastungleichgewichte auszuschließen. Im vorliegenden Zusammenhang ist unter einem langfristigen Lastungleichgewicht zwischen physischen Knoten eine für die Gruppe von physischen Knoten 120 normalisierte ungleichmäßige Lastverteilung zu verstehen, die aus dem Mittelwert der Bewertungszahlen der Arbeitslast auf entsprechenden physischen Knoten für eine fest vorgegebene Zeitspanne ermittelt werden kann. Die Bewertungszahl der Arbeitslast auf jedem physischen Knoten wird durch die oben erwähnte Verbindungsverteilung gesteuert, um eine asymptotische Annäherung an den Zielwert T zu erreichen. Wenn sich die Arbeitslast jedoch auf eine bestimmte verteilte Datenbank konzentriert, kann sie ungleichmäßig auf mehrere physische Knoten verteilt sein.
-
13 ist ein Funktionsschaubild, das die Lastverteilung in einer Datenbankumgebung zeigt, in der verteilte Datenbanken mit einem Vielfachen von 2 in Form eines Ringes verteilt bereitgestellt sind. In 13 ist eine Datenbankbereitstellung unter Verwendung der oben erwähnten übertragbaren Beziehung, nicht jedoch die physische Anordnung von physischen Knoten dargestellt. Wenn sich bei dem in 13 gezeigten Ring aus physischen Knoten die Arbeitslast auf eine verteilte Datenbank konzentriert, kann die Arbeitslast auf zwei oder mehr benachbarten physischen Knoten im Vergleich zur Arbeitslast auf den anderen Knoten erhöht werden. In diesem Fall kann die Arbeitslast zwischen den benachbarten physischen Knoten nicht wirksam verlagert werden.
-
Deshalb erfasst der Zusatzkonfigurationsbereich 116 Leistungsdaten von dem Verbindungsverteilungsbereich 140, um ein solches normalisiertes Lastungleichgewicht zu überwachen. Wenn der Zusatzkonfigurationsbereich 116 ein normalisiertes Lastungleichgewicht erkennt, ändert dieser den durch den Bereitstellungsplanungsbereich 112 erstellten Datenbankbereitstellungsplan in der Weise, dass eine der auf physischen Knoten mit ungleichmäßig verteilter Arbeitslast (z. B. das Replikat A') betriebene Servereinheit gegen eine andere Servereinheit (z. B. das Replikat X') ausgetauscht wird, das auf einem physischen Knoten mit einer vergleichsweise geringen Arbeitslast betrieben wird, und veranlasst den Bereitstellungsbereich 114, die Datenbankbereitstellung durchzuführen. Da der Austausch von Replikaten einen höheren Systemaufwand verursacht als die Verbindungsverteilung, ist darauf zu achten, dass dieser selektiv in einem Zeitschlitz mit geringer Arbeitslast wie beispielsweise gegen Mitternacht oder während Wartungsarbeiten durchgeführt werden kann. Der Zusatzkonfigurationsbereich 116 stellt einen Bereitstellungsaustauschbereich der Ausführungsform dar.
-
(4) Alternative Ausführungsformen
-
Gemäß der oben erwähnten Ausführungsform werden der Verbindungsanforderungs-Empfangsbereich 160 und der Treiberbereich 162 auf dem Anwendungs-Server 130 realisiert, auf dem Client-Anwendungen ausgeführt werden, wobei der Verbindungsverteilungsbereich 140 als weitere Einheit auf dem Verbindungsverteilungs-Server 132 realisiert wird. Die Konfiguration ist jedoch nicht auf die in 1 gezeigte Konfiguration beschränkt, und der Verbindungsverteilungsbereich 140, der Verbindungsanforderungs-Empfangsbereich 160, der Treiberbereich 162 und die Clients 164 können gemäß einer weiteren Ausführungsform auf demselben Server 134 realisiert werden, was durch die gestrichelte Linie in 1 angezeigt wird.
-
Gemäß der oben erwähnten Ausführungsform wird der Datenbankbereitstellungs-Server 110 ferner als weitere Vorrichtung realisiert, die von dem Anwendungs-Server 130 und dem Verbindungsverteilungs-Server 132 getrennt ist, jedoch kann der Datenbankbereitstellungs-Server 110 als integraler Bestandteil des Anwendungs-Servers 130 oder des Verbindungsverteilungs-Servers 132 oder als integraler Bestandteil des Servers 134 konfiguriert werden.
-
Wie oben beschrieben kann gemäß der oben erwähnten Ausführungsform in einer verteilten Datenbankumgebung ein Datenverarbeitungssystem, eine Datenbankvorrichtung, ein Lastausgleichsverfahren, ein Planungsverfahren für die Datenbankbereitstellung und ein Programm bereitgestellt werden, die im Fall einer plötzlichen Überlastung oder redundanter physischer Ressourcen anpassungsfähig und flexibel mit geringem Leistungsverlust für Operationen reagieren können, um eine wirksame verteilte Datenbankumgebung auf begrenzten physischen Ressourcen zu erzeugen.
-
Die oben erwähnten Funktionen der vorliegenden Erfindung können durch ein maschinenausführbares Programm umgesetzt werden, das in einer herkömmlichen Programmiersprache wie beispielsweise Assembler, C, C++, Java®, JavaBeans®, Java® Applet, JavaScript®, Perl oder Ruby oder in einer objektorientierten Programmiersprache geschrieben ist und gespeichert in einem maschinenlesbaren Medium in der Form wie beispielsweise einem ROM, einem EEPROM, einem EPROM, einem Flash-Speicher, einer Diskette, einem CD-ROM, einer CD-RW, einer DVD-ROM, einem DVD-RAM, einer DVD-RW, einer Blue-ray-Platte, einer SD (Secure Digital) Memory-Karte oder einer MO (Magneto Optical Disc) verbreitet werden kann.
-
Obwohl die vorliegende Erfindung unter Verwendung bestimmter Ausführungsformen beschrieben wurde, soll die vorliegende Erfindung nicht auf die bestimmten Ausführungsformen beschränkt sein, sondern kann innerhalb ihres Schutzumfangs geändert werden, wobei es denkbar ist, dass ein Fachmann ein oder mehrere Elemente in jeder anderen Ausführungsform hinzufügen, ändern und/oder entfernen kann, die sämtlich durch den Schutzumfang der vorliegenden Erfindung erfasst werden, solange sie sich im Sinne der vorliegenden Erfindung auswirken.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-