-
HINTERGRUND
-
Gebiet:
-
Die Offenbarung bezieht sich allgemein auf das Tuning von Datenbanken und insbesondere auf das Tuning einer Konfiguration eines Datenbankknotens unter Verwendung eines föderierten maschinellen Lernsystems eines selbstorganisierten, Centerless-Netzwerks aus einer Mehrzahl von Datenbankknoten.
-
Beschreibung des verwandten Standes der Technik:
-
Datenbank-Tuning beschreibt eine Gruppe von Aktivitäten, die zur Optimierung der Leistung einer Datenbank verwendet werden. Das Datenbank-Tuning überschneidet sich in der Regel mit dem Abfrage-Tuning, bezieht sich aber auf die Gestaltung der Datenbankdateien, die Auswahl der Anwendung des Datenbankverwaltungssystems und die Konfiguration der Datenbankumgebung (z.B. Betriebssystem, Zentralverarbeitungseinheit, Pufferpool und dergleichen). Datenbank-Tuning zielt darauf ab, die Systemressourcen optimal zu verwenden, um die Arbeit so effizient und schnell wie möglich durchzuführen. Die meisten Datenbanksysteme sind so konzipiert, dass sie ihre Verwendung von Systemressourcen verwalten, aber es gibt noch viel Raum, um ihre Effizienz zu verbessern, indem sie ihre Einstellungen und Konfiguration für die Datenbank anpassen.
-
Datenbank-Tuning ist einer der wichtigsten Aspekte der Datenbankwartung. Ein Datenbankadministrator wird versuchen, die beste Konfiguration für unterschiedliche Datenbankoptimierungen herauszufinden. Viele Datenbanken unterschiedlicher Unternehmen werden auf einer Cloud-Plattform bereitgestellt, die über eine Schnellbereitstellungsfunktion verfügt, um eine agile Installation zu ermöglichen.
-
Datenbank-Pufferpools speichern Einträge und deren Attribute im Cache. Wenn sich die Einträge im Cache befinden, verkürzt sich die Suchzeit, wenn nach den gecachten Daten gefragt wird. Das Tuning eines Datenbank-Pufferpools ist einer der wichtigeren Typen des Datenbank-Performance-Tunings. Ein Pufferpool ist ein Datencache zwischen dem Lightweight Directory Access Protocol (LDAP) und den physischen Datenbankdateien sowohl für Tabellen als auch für Indexe. Wenn Einträge und ihre Attribute nicht im Pufferpool-Cache gefunden werden, durchsucht der Server den Speicher, wie zum Beispiel eine Menge von einer oder mehreren Festplatten, nach den Werten. Ein Pufferpool wird getunt, wenn die Datenbank anfänglich geladen wird und wenn sich die Größe der Datenbank erheblich ändert.
-
Ein Datenbankadministrator muss die Datenbankkonfiguration auf Grundlage persönlicher Erfahrungen initialisieren oder auf Datenbankkonfigurationen vorhandener Datenbanken Bezug nehmen. Dies setzt voraus, dass der Datenbank-Administrator ein gutes Verständnis von Datenbank-Tuning hat. Wenn es dem Datenbankadministrator jedoch an Erfahrung mangelt, funktioniert das nicht gut. Außerdem können einige Datenbanken eine Auto-Analyse-Funktion bereitstellen, um die Datenbankkonfiguration unter Verwendung eines lokalen Eintrags zur Datenbankoptimierung automatisch auszufüllen. Historische Optimierungsdaten können jedoch für ein neues Datenbank-Tuning nicht im Überfluss zur Verfügung stehen, insbesondere wenn das Tuning für eine neu eingerichtete Datenbank auf einer Cloud-Plattform erfolgt.
-
KURZDARSTELLUNG
-
Gemäß einer veranschaulichenden Ausführungsform wird ein computer-implementiertes Verfahren für das Datenbankkonfigurations-Tuning bereitgestellt. Der Computer wählt eine Menge von Datenbankknoten mit ähnlichen Datenfaktoren in einem Centerless-Netzwerk von Datenbankknoten aus. Der Computer trainiert Konfigurationsmodelle, die der Menge von Datenbankknoten entsprechen, indem er Datenparallelität verwendet. Der Computer kombiniert trainierte Konfigurationsmodelle, die der Menge von Datenbankknoten entsprechen, um ein föderiertes Konfigurationsmodell auszubilden. Der Computer stellt fest, ob die Leistungsindikatoren, die der Menge von Datenbankknoten entsprechen, größer sind als ein Leistungsschwellenwert. In Reaktion darauf, dass der Computer feststellt, dass die Leistungsindikatoren, die der Menge von Datenbankknoten entsprechen, größer als der Leistungsschwellenwert sind, empfiehlt der Computer eine Datenbankkonfiguration, die dem föderierten Konfigurationsmodell entspricht, an einen neuen Datenbankknoten. Der Computer verbindet den neuen Datenbankknoten mit dem Centerless-Netzwerk. Gemäß anderen veranschaulichenden Ausführungsformen werden ein Computersystem und ein Computerprogrammprodukt für das Datenbankkonfigurations-Tuning bereitgestellt. So stellen die unterschiedlichen veranschaulichenden Ausführungsformen eine oder mehrere technische Lösungen bereit, die ein technisches Problem bei dem Tuning von Konfigurationen von Datenbankknoten in einem Centerless-Netzwerk von Datenbankknoten überwinden, um die Leistung der Datenbank zu steigern.
-
Ferner identifiziert der Computer eine Menge von Datenfaktoren, die jedem Datenbankknoten in dem Centerless-Netzwerk von Datenbankknoten entsprechen. Auf Grundlage der Menge von Datenfaktoren, die jedem Datenbankknoten entsprechen, erzeugt der Computer einen Vektor für jeden Datenbankknoten. Der Computer berechnet auf Grundlage des erzeugten Vektors, der jedem jeweiligen Datenbankknoten entspricht, die Vektorbeziehungen zwischen den Datenbankknoten im Centerless-Netzwerk. Der Computer erzeugt für jeden Datenbankknoten im Centerless-Netzwerk eine Knotenbeziehungstabelle, in der benachbarte Datenbankknoten, Datenfaktoren und Vektorbeziehungen für jeden jeweiligen Datenbankknoten aufgelistet sind. Der Computer erstellt das Centerless-Netzwerk, das die Datenbankknoten beinhaltet, die in eine Mehrzahl von virtuellen Datenbankknotengruppen organisiert sind, wobei jede virtuelle Datenbankknotengruppe auf der generierten Knotenbeziehungstabelle basiert, die jedem jeweiligen Datenbankknoten entspricht. So erstellt der Computer dynamisch das Centerless-Netzwerk in Echtzeit und stellt jeder Datenbankknotengruppe eine erhöhte Leistung bereit.
-
Figurenliste
-
Unter Bezugnahme auf die folgenden Zeichnungen werden hier Ausführungsformen der vorliegenden Erfindung beschrieben, die lediglich als Beispiel zu verstehen sind, wobei
- 1 eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen ist, in dem veranschaulichende Ausführungsformen realisiert werden können;
- 2 ein Diagramm eines Datenverarbeitungssystems ist, in dem veranschaulichende Ausführungsformen realisiert werden können;
- 3 ein Diagramm ist, das eine Cloud-Computing-Umgebung veranschaulicht, in der veranschaulichende Ausführungsformen realisiert werden können;
- 4 ein Diagramm ist, das ein Beispiel für Abstraktionsschichten einer Cloud-Computing-Umgebung gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 5 ein Diagramm ist, das ein Beispiel für einen Prozess zur Erzeugung einer Knotenbeziehungstabelle gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 6 ein Diagramm ist, das ein Beispiel für einen Prozess zum Erstellen von Knotengruppen gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 7 ein Diagramm ist, das ein Beispiel für einen Prozess zur Erstellung eines einzelnen Modells gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 8 ein Diagramm ist, das ein Beispiel für einen Prozess zur Erstellung eines föderierten Modells gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 9 ein Diagramm ist, das ein Beispiel für einen Prozess der Mittelwertbildung von Parametern gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 10 ein Diagramm ist, das ein Beispiel für einen Prozess zum Hinzufügen neuer Knoten gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 11 ein Diagramm ist, das ein Beispiel für einen Prozess zum Hinzufügen einer neuen Knotengruppe gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 12 ein Ablaufplan ist, der einen Prozess zum Hinzufügen eines neuen Datenbankknotens zu einem Centerless-Netzwerk gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 13 ein Ablaufplan ist, der einen Prozess zum Erstellen eines Centerless-Netzwerks gemäß einer veranschaulichenden Ausführungsform veranschaulicht;
- 14 ein Ablaufplan ist, der einen Prozess zum Abbilden eines Leistungsindikators auf eine Datenbankkonfiguration veranschaulicht, gemäß einer veranschaulichenden Ausführungsform; und
- 15 ein Ablaufplan ist, der einen Prozess zum Erzeugen einer Empfehlung für eine Datenbankkonfiguration an einen neuen Datenbankknoten veranschaulicht, gemäß einer veranschaulichenden Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Erfindung umfassen ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen möglichen Grad an technischer Integration. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit computerlesbaren Programmanweisungen darauf enthalten, die bewirken, dass ein Prozessor Aspekte der vorliegenden Erfindung ausführt.
-
Das computerlesbare Speichermedium kann eine materielle Einheit sein, die Anweisungen zur Nutzung durch eine Einheit zur Anweisungsausführung enthalten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine geeignete Kombination aus dem Vorhergehenden handeln, ohne auf diese beschränkt zu sein. Eine nicht umfassende Liste konkreterer Beispiele für das computerlesbare Speichermedium beinhaltet Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flashspeicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine Digital Versatile Disk (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie Lochkarten oder erhabene Strukturen in einer Rille mit darin aufgezeichneten Anweisungen und jede geeignete Kombination aus dem Vorhergehenden. Ein wie im vorliegenden Dokument verwendetes computerlesbares Speichermedium soll nicht als transiente Signale an sich ausgelegt werden, beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtleiterkabel durchlaufen), oder durch eine Leitung übertragene elektrische Signale.
-
Im vorliegenden Dokument beschriebene computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, beispielsweise das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein Funknetz, auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, eine drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edgeserver aufweisen. Eine Netzadapterkarte oder Netzschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt aus dem Netzwerk computerlesbare Programmanweisungen und leitet die computerlesbaren Programmanweisungen zum Speichern in einem computerlesbaren Speichermedium in der jeweiligen Datenverarbeitungs/Verarbeitungs-Einheit weiter.
-
Computerlesbare Programmanweisungen zum Ausführen von Funktionen der vorliegenden Erfindung können Assembler-Anweisungen, Anweisungen in einer Befehlssatzarchitektur (instruction set architecture, ISA), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Zustandseinstelldaten oder entweder Quellcode oder Objektcode sein, der in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben ist, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder Ähnliches, und prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der ferne Computer mit dem Computer des Benutzers über jede Art von Netzwerk verbunden sein, unter anderem ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer erfolgen (beispielsweise per Internet über einen Internet-Dienstanbieter). In einigen Ausführungsformen können elektronische Schaltungen, darunter beispielsweise programmierbare logische Schaltungen, feldprogrammierbare Gate Arrays (FPGA) oder programmierbare Logik-Arrays (PLA), die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen zum individuellen Gestalten der elektronischen Schaltungen verwenden, damit Aspekte der vorliegenden Erfindung ausgeführt werden.
-
Aspekte der vorliegenden Erfindung sind im vorliegenden Dokument unter Bezug auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder und Kombinationen aus Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern mit computerlesbaren Programmanweisungen implementiert sein kann bzw. können.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine bereitgestellt werden, sodass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Implementieren der Funktionen/Handlungen erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegeben sind. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, auf eine besttimte Weise zu funktionieren, sodass das computerlesbare Speichermedium, in dem Anweisungen gespeichert sind, einen Herstellungsgegenstand aufweist, der Anweisungen enthält, die Aspekte der Funktion/Handlung realisieren, die in dem Block oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegeben ist.
-
Die computerlesbaren Programmanweisungen können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheit geladen werden, um zu bewirken, dass eine Reihe von Arbeitsschritten auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt wird, um einen auf einem Computer realisierten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Handlungen realisieren, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilder angegeben sind.
-
Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, Segment oder einen Anweisungsbestandteil darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion(en) aufweist. Bei einigen Realisierungsalternativen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben vorkommen. Zwei hintereinander dargestellte Blöcke können beispielsweise tatsächlich als ein Schritt erfolgen, gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder vollständig zeitlich überlappend ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach entsprechender Funktion. Es sei auch festgehalten, dass jeder Block der Blockschaubilder und/oder Ablaufplandarstellung und Kombinationen aus Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch Systeme auf der Grundlage von Hardware für besondere Zwecke realisiert sein kann bzw. können, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen aus Hardware für besondere Zwecke und Computeranweisungen ausführen.
-
Unter Bezugnahme auf die Figuren, und insbesondere unter Bezugnahme auf die 1-4, werden Diagramme von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen realisiert werden können. Es sollte gewürdigt werden, dass die 1-4 lediglich als Beispiele zu verstehen sind und keine Einschränkung bezüglich der Umgebungen, in denen unterschiedliche Ausführungsformen realisiert werden können, behaupten oder implizieren sollen. Es können viele Änderungen an den dargestellten Umgebungen vorgenommen werden.
-
1 stellt eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen dar, in dem veranschaulichende Ausführungsformen realisiert werden können. Das Netzwerk-Datenverarbeitungssystem 100 ist ein Netzwerk von Computern, Verarbeitungsgeräten und anderen Geräten, in dem die veranschaulichenden Ausführungsformen realisiert werden können. Das Netzwerk-Datenverarbeitungssystem 100 umfasst das Netzwerk 102, das als Medium verwendet wird, um Links zur Kommunikation zwischen den Computern, Computergeräten und anderen Geräten bereitzustellen, die innerhalb des Netzwerk-Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen beinhalten, wie z.B. drahtgebundene Links, drahtlose Links und Glasfaserkabel.
-
In dem dargestellten Beispiel sind Server 104, Server 106 und Server 108 mit dem Netzwerk 102 verbunden. Server 104, Server 106 und Server 108 können zum Beispiel Server Computer mit Hochgeschwindigkeitsverbindungen zum Netzwerk 102 sein. Außerdem können Server 104, Server 106 und Server 108 Datenbankknoten sein, die Datenspeicherdienste für eine oder mehrere Stellen bereitstellen, wie z.B. Unternehmen, Organisationen, Behörden, Institutionen und dergleichen. Es sollte auch beachtet werden, dass Server 104, Server 106 und Server 108 jeweils eine Gruppe von mehreren Datenbankknoten in einer Cloud-Plattform oder -Umgebung darstellen können. Alternativ können Server 104, Server 106 und Server 108 auch Cluster von Datenbankknoten in einem Rechenzentrum darstellen.
-
Client 110, Client 112 und Client 114 verbinden sich ebenfalls mit dem Netzwerk 102. Die Clients 110, 112 und 114 sind Clients des Servers 104, des Servers 106 und des Servers 108. In diesem Beispiel sind die Clients 110, 112 und 114 als Desktop- oder Personal Computer mit drahtgebundenen Links zum Netzwerk 102 dargestellt. Es sei jedoch darauf hingewiesen, dass die Clients 110, 112 und 114 lediglich Beispiele sind und andere Typen von Datenverarbeitungssystemen darstellen können, wie z.B. Netzwerkcomputer, Laptops, Handheld-Computer, Smartphones, Smartwatches, Smart-TVs und dergleichen. Die Benutzer der Clients 110, 112 und 114 können unter Verwendung der Clients 110, 112 und 114 auf die in Server 104, Server 106 und Server 108 gespeicherten Daten zugreifen und Operationen darauf durchführen.
-
Außerdem ist anzumerken, dass das Netzwerk-Datenverarbeitungssystem 100 eine beliebige Anzahl von zusätzlichen Servern, Clients, Speichergeräten und anderen nicht dargestellten Geräten beinhalten kann. Der Programmcode, der sich im Netzwerk-Datenverarbeitungssystem 100 befindet, kann auf einem computerlesbaren Speichermedium gespeichert und zur Verwendung auf einen Computer oder ein anderes Verarbeitungsgerät heruntergeladen werden. Zum Beispiel kann der Programmcode auf einem computerlesbaren Speichermedium auf dem Server 104 gespeichert und über das Netzwerk 102 auf den Client 110 heruntergeladen werden, um ihn dort zu verwenden.
-
In dem dargestellten Beispiel kann das Netzwerk-Datenverarbeitungssystem 100 als eine Reihe unterschiedlicher Typen von Kommunikationsnetzwerken realisiert werden, wie z.B. ein Internet, ein Intranet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), ein Telekommunikationsnetzwerk oder eine beliebige Kombination davon. 1 ist lediglich als Beispiel gedacht und nicht als architektonische Einschränkung für die unterschiedlichen veranschaulichenden Ausführungsformen.
-
Unter Bezugnahme auf 2 wird nun ein Diagramm eines Datenverarbeitungssystems gemäß einer veranschaulichenden Ausführungsform dargestellt. Das Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie den Server 104 in 1, in dem sich computerlesbarer Programmcode oder Anweisungen zur Realisierung von Prozessen veranschaulicher Ausführungsformen befinden können. In diesem veranschaulichenden Beispiel beinhaltet das Datenverarbeitungssystem 200 die Kommunikationsstruktur 202, die die Kommunikation zwischen der Prozessoreinheit 204, dem Speicher 206, dem dauerhaften Speicher 208, der Kommunikationseinheit 210, der Eingabe/Ausgabe-Einheit (E/A) 212 und der Anzeige 214 bereitstellt.
-
Die Prozessoreinheit 204 dient dazu, Anweisungen für Softwareanwendungen und Programme auszuführen, die in den Speicher 206 geladen werden können. Die Prozessoreinheit 204 kann in Abhängigkeit von der konkreten Realisierung aus einer Menge von einem oder mehreren Hardware-Prozessorgeräten bestehen oder ein Multi-Core-Prozessor sein.
-
Der Speicher 206 und der dauerhafte Speicher 208 sind Beispiele für Speichergeräte 216. Ein computerlesbares Speichergerät ist ein beliebiges Gerät, das in der Lage ist, Informationen zu speichern, wie z.B. Daten, computerlesbaren Programmcode in funktionaler Form und/oder andere geeignete Informationen entweder auf einer vorübergehenden Basis und/oder einer dauerhaften Basis. Ferner schließt ein computerlesbares Speichergerät ein Verbreitungsmedium aus. Der Speicher 206 kann in diesen Beispielen zum Beispiel ein Direktzugriffspeicher (RAM) oder ein anderes geeignetes flüchtiges oder nichtflüchtiges Speichergerät sein. Der dauerhafte Speicher 208 kann in Abhängigkeit von der jeweiligen Realisierung verschiedene Formen annehmen. Zum Beispiel kann der dauerhafte Speicher 208 ein oder mehrere Geräte umfassen. Der dauerhafte Speicher 208 kann beispielsweise ein Festkörperlaufwerk, ein Solid-State-Laufwerk, ein Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine Kombination der oben genannten Geräte sein. Die vom dauerhaften Speicher 208 verwendeten Medien können austauschbar sein. Zum Beispiel kann eine austauschbare Festplatte für den dauerhaften Speicher 208 verwendet werden.
-
In diesem Beispiel ist das Datenverarbeitungssystem 200 einer von einer Mehrzahl von Datenbankknoten, die auf einer Cloud-Plattform laufen. Centerless-Netzwerk 218 ist eine Kennung eines selbstanpassenden, Centerless-Netzwerks von Datenbankknoten 220, mit dem das Datenverarbeitungssystem 200 gekoppelt ist. Selbstanpassend und centerless bedeutet, dass jeder Datenbankknoten im Netzwerk seine virtuelle Gruppe von Datenbankknoten auf Grundlage von sich ändernden Datenfaktoren und Datenbankknotenbeziehungen verändert und neu organisiert. Datenbankknoten 220 stellen Kennungen der Mehrzahl von Datenbankknoten dar, mit denen das Datenverarbeitungssystem 200 in der Cloud-Plattform gekoppelt ist. Datenbankknotengruppen 222 stellen die unterschiedlichen virtuellen Gruppen von Datenbankknoten dar, die jeder Datenbankknoten in Datenbankknoten 220 erstellt oder ausgebildet hat, um ein föderiertes Datenbankkonfigurationsmodell zu erzeugen und Empfehlungen für das Datenbank-Tuning für vorhandene und neue Datenbankknoten in der Cloud-Plattform bereitzustellen. Die Empfehlungen für das Datenbank-Tuning können zum Beispiel Empfehlungen für das Tuning von Pufferpool-Konfigurationen sein, um die Leistung zu steigern.
-
Die Datenfaktoren 224 stellen eine Menge von einem oder mehreren Datenfaktoren dar, wie z.B. Tabellenkardinalität, Seitenzahl, Zugriffshäufigkeit, Indexebene, Blattseite, Eingabe-/Ausgabegeschwindigkeit, Systemcache und dergleichen, die der Konfiguration des Datenverarbeitungssystems 200 entsprechen. Zum Beispiel beeinflussen die Datenfaktoren 224 die Konfiguration des Pufferpools 225 im Speicher 206. Der Pufferpool 225 ist ein Teil des Speichers 206, der für die Zwischenspeicherung von Tabellen- und Index-Datenseiten verwendet wird, wenn diese geändert oder von der Festplatte, wie dem dauerhaften Speicher 208, gelesen werden. Mit anderen Worten: Der Pufferpool 225 reduziert die Eingabe/Ausgabe von Datenbankdateien und verbessert die Reaktionszeit bei der Datenabfrage.
-
Die Knotenbeziehungstabelle 226 ist eine gespeicherte Tabelle mit Beziehungen zwischen dem Datenverarbeitungssystem 200 und anderen Datenbankknoten in der Cloud-Plattform. In diesem Beispiel beinhaltet die Knotenbeziehungstabelle 226 Nachbarn 228, Datenfaktoren 230 und Vektorbeziehungen 232. Die Nachbarn 228 stellen eine Liste mit einer ausgewählten Anzahl von Datenbankknoten in der Cloud-Plattform dar. Die Anzahl der benachbarten Datenbankknoten ist eine Teilmenge aller anderen Datenbankknoten und nicht die Gesamtheit aller anderen. Jeder Datenbankknoten wählt die Anzahl der Nachbarn gemäß seiner eigenen Berechnungsschwelle aus. Das Datenverarbeitungssystem 200 wählt enge Nachbarn auf Grundlage der entsprechenden Datenfaktoren 230 und der auf Grundlage der in den Vektorbeziehungen 232 aufgelisteten Werte aus. Mit anderen Worten: Je größer der Wert der Vektorbeziehung ist, desto eher wird der entsprechende Datenbankknoten als enger Nachbar des Datenverarbeitungssystems 200 betrachtet. So ist der Datenbankknoten mit dem höchsten Wert der Vektorbeziehung der am nächsten gelegene Nachbar des Datenverarbeitungssystems 200.
-
Die Vektorbeziehungen 232 basieren auf den Datenfaktoren 230. Die Datenfaktoren 230 stellen die Menge der Datenfaktoren dar, die jedem jeweiligen Datenbankknoten entsprechen, der in den Nachbarn 228 aufgelistet ist. Mit anderen Worten, jeder jeweilige Datenbankknoten, der in den Nachbarn 228 aufgelistet ist, kann eine unterschiedliche Menge von Datenfaktoren beinhalten. Es ist jedoch zu beachten, dass ein Datenbankknoten nur dann einen hohen Wert für die Vektorbeziehung in Bezug auf das Datenverarbeitungssystem 200 hat, wenn er die gleiche oder eine ähnliche Menge von Datenfaktoren aufweist wie die Datenfaktoren 224, die dem Datenverarbeitungssystem 200 entsprechen.
-
Das Modell 234 stellt ein Datenbankkonfigurationsmodell dar, das dem Datenverarbeitungssystem 200 entspricht. Das Datenverarbeitungssystem 200 erzeugt das Modell 234 auf Grundlage der erfassten Werte, die den Datenfaktoren 224 entsprechen. Das Datenverarbeitungssystem 200 wertet das Modell 234 aus, indem es den Datenbank-Trace 236 ausführt. Der Datenbank-Trace 236 überwacht und zeichnet spezifische Aktivitäten innerhalb des laufenden Datenverarbeitungssystems 200 auf.
-
Der Datenbank-Trace 236 beinhaltet den Leistungsindikator 238. Der Leistungsindikator 238 stellt die Echtzeitleistung des Datenverarbeitungssystems 200 dar, insbesondere in Bezug auf die Leistung des Pufferpools 225 in seiner aktuellen Konfiguration. Das Datenverarbeitungssystem 200 vergleicht den Leistungsindikator 238 mit einem festgelegten Leistungsschwellenwert, um festzustellen, ob die aktuelle Konfiguration des Datenverarbeitungssystems 200 optimal ist oder nicht. Wenn das Datenverarbeitungssystem 200 zum Beispiel feststellt, dass der Leistungsindikator 238 unter dem definierten Leistungsschwellenwert liegt, stellt das Datenverarbeitungssystem 200 fest, dass die aktuelle Konfiguration des Datenverarbeitungssystems 200 suboptimal ist und angepasst werden muss.
-
Die Gruppe 240 stellt die aktuelle virtuelle Gruppe der am nächsten benachbarten Datenbankknoten dar, die dem Datenverarbeitungssystem 200 in der Cloud-Plattform entsprechen. Es ist jedoch zu beachten, dass sich die Mitgliedschaft in der Gruppe 240 ändern kann, wenn beispielsweise neue Datenbankknoten zur Cloud-Plattform hinzugefügt werden, bestehende Datenbankknoten entfernt werden, sich die Datenfaktoren 224 ändern, sich die Datenfaktoren 230 ändern und dergleichen. Die Empfehlung 242 stellt eine Empfehlung für das Datenbank-Tuning dar, die von einem oder mehreren anderen Datenbankknoten empfangen wurde. Das Datenverarbeitungssystem 200 verwendet die Empfehlung 242, um die aktuelle Konfiguration des Datenverarbeitungssystems 200 zu tunen, wenn der Leistungsindikator 238 unter den definierten Leistungsschwellenwert fällt.
-
Die Kommunikationseinheit 210 stellt in diesem Beispiel die Kommunikation mit anderen Computern, Computergeräten und Datenverarbeitungssystemen über ein Netzwerk bereit, wie das Netzwerk 102 in 1. Die Kommunikationseinheit 210 kann die Kommunikation sowohl über physische als auch über drahtlose Links bereitstellen. Der physische Link kann beispielsweise eine Leitung, ein Kabel, einen universellen seriellen Bus oder eine andere physische Technologie verwenden, um eine physische Kommunikationsverbindung für das Datenverarbeitungssystem 200 herzustellen. Die drahtlose Kommunikationsverbindung kann beispielsweise Kurzwelle, Hochfrequenz, Ultrahochfrequenz, Mikrowelle, Wireless Fidelity (Wi-Fi), Bluetooth®-Technologie, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), zweite Generation (2G), dritte Generation (3G), vierte Generation (4G), 4G Long Term Evolution (LTE), LTE Advanced, fünfte Generation (5G) oder jede andere drahtlose Kommunikationstechnologie oder jeden anderen Standard verwenden, um eine drahtlose Kommunikationsverbindung für das Datenverarbeitungssystem 200 herzustellen.
-
Die Eingabe-/Ausgabeeinheit 212 ermöglicht die Eingabe und Ausgabe von Daten mit anderen Geräten, die mit dem Datenverarbeitungssystem 200 verbunden sein können. Beispielsweise kann die Eingabe-/Ausgabeeinheit 212 eine Verbindung für die Eingabe durch den Benutzer über ein Tastenfeld, eine Tastatur, eine Maus, ein Mikrofon und/oder ein anderes geeignetes Gerät bereitstellen. Die Anzeige 214 stellt einen Mechanismus zur Anzeige von Informationen für den Benutzer bereit und kann Berührungsbildschirm-Ressourcen beinhalten, um dem Benutzer die Möglichkeit zu geben, über Benutzerschnittstellen eine Auswahl auf dem Bildschirm zu treffen oder z.B. Daten einzugeben.
-
Anweisungen für das Betriebssystem, Anwendungen und/oder Programme können sich in Speichergeräten 216 befinden, die über die Kommunikationsstruktur 202 mit der Prozessoreinheit 204 in Verbindung stehen. In diesem veranschaulichenden Beispiel sind die Anweisungen in einer funktionalen Form auf einem dauerhaften Speicher 208 vorhanden. Diese Anweisungen können in den Speicher 206 geladen werden, um von der Prozessoreinheit 204 ausgeführt zu werden. Die Prozesse der unterschiedlichen Ausführungsformen können von der Prozessoreinheit 204 unter Verwendung von computerimplementierten Anweisungen durchgeführt werden, die sich in einem Speicher, wie dem Speicher 206, befinden können. Diese Programmanweisungen werden als Programmcode, durch einen Computer verwendbarer Programmcode oder computerlesbarer Programmcode bezeichnet, der von einem Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Die Programmanweisungen können in den unterschiedlichen Ausführungsformen auf unterschiedlichen physischen computerlesbaren Speichergeräten, wie dem Speicher 206 oder dem dauerhaften Speicher 208, verkörpert sein.
-
Der Programmcode 244 befindet sich in einer funktionalen Form auf computerlesbaren Medien 246, die selektiv entnehmbar sind und auf das Computersystem 200 geladen oder zu diesem übertragen werden können, um von der Prozessoreinheit 204 ausgeführt zu werden. Der Programmcode 244 und die computerlesbaren Medien 246 bilden das Computerprogrammprodukt 248 aus. In einem Beispiel kann es sich bei den computerlesbaren Medien 246 um computerlesbare Speichermedien 250 oder computerlesbare Signalmedien 252 handeln. Computerlesbare Speichermedien 250 können z.B. eine optische oder magnetische Disk beinhalten, die in ein Laufwerk oder ein anderes Gerät, das Teil des dauerhaften Speichers 208 ist, eingelegt oder eingelegt wird, um auf ein Speichergerät, wie z.B. eine Festplatte, zu übertragen, das Teil des dauerhaften Speichers 208 ist. Computerlesbare Speichermedien 250 können auch die Form eines dauerhaften Speichers annehmen, wie z.B. einer Festplatte, eines Daumenlaufwerks oder eines Flash-Speichers, der mit dem Computersystem 200 verbunden ist. In einigen Fällen können die computerlesbaren Speichermedien 250 nicht aus dem Datenverarbeitungssystem 200 entfernt werden.
-
Alternativ kann der Programmcode 244 unter Verwendung von computerlesbaren Signalmedien 252 auf das Datenverarbeitungssystem 200 übertragen werden. Bei den computerlesbaren Signalmedien 252 kann es sich zum Beispiel um ein verbreitetes Datensignal handeln, das den Programmcode 244 umfasst. Bei den computerlesbaren Signalmedien 252 kann es sich zum Beispiel um ein elektromagnetisches Signal, ein optisches Signal und/oder einen anderen geeigneten Typ von Signal handeln. Diese Signale können über Kommunikationsverbindungen übertragen werden, wie z.B. drahtlose Kommunikationsverbindungen, ein optisches Faserkabel, ein Koaxialkabel, ein Draht und/oder jeden anderen geeigneten Typ von Kommunikationsverbindung. Mit anderen Worten, der Link und/oder die Verbindung kann in den veranschaulichenden Beispielen physisch oder drahtlos sein. Die computerlesbaren Medien können auch die Form von nicht materiellen Medien annehmen, wie z.B. Kommunikationslinks oder drahtlose Übertragungen, die den Programmcode umfassen.
-
In einigen veranschaulichenden Ausführungsformen kann der Programmcode 244 über ein Netzwerk in den dauerhaften Speicher 208 von einem anderen Gerät oder einem Verarbeitungsgerät über computerlesbare Signalmedien 252 zur Verwendung im Datenverarbeitungssystem 200 heruntergeladen werden. Zum Beispiel kann Programmcode, der in einem computerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, über ein Netzwerk von dem Datenverarbeitungssystem auf das Datenverarbeitungssystem 200 heruntergeladen werden. Das Datenverarbeitungssystem, das den Programmcode 244 bereitstellt, kann ein Servercomputer, ein Client-Computer oder ein anderes Gerät sein, das in der Lage ist, den Programmcode 244 zu speichern und zu übertragen.
-
Die veranschaulichten unterschiedlichen Komponenten des Datenverarbeitungssystems 200 sollen keine architektonischen Beschränkungen für die Art und Weise bereitstellen, in der unterschiedliche Ausführungsformen realisiert werden können. Die unterschiedlichen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem realisiert werden, das außerdem oder anstelle der für das Datenverarbeitungssystem 200 veranschaulichten Komponenten Komponenten beinhaltet. Andere in 2 dargestellte Komponenten können gegenüber den veranschaulichenden Beispielen variiert werden. Die unterschiedlichen Ausführungsformen können unter Verwendung eines beliebigen Geräts oder Systems realisiert werden, das in der Lage ist, Programmcode auszuführen. Als ein Beispiel kann das Datenverarbeitungssystem 200 organische Komponenten beinhalten, die mit anorganischen Komponenten integriert sind, und/oder es kann vollständig aus organischen Komponenten bestehen, mit Ausnahme eines menschlichen Wesens. Zum Beispiel kann ein Speichergerät einen organischen Halbleiter umfassen.
-
Ein weiteres Beispiel: Ein computerlesbares Speichergerät im Computersystem 200 ist ein beliebiges Hardwaregerät, das Daten speichern kann. Speicher 206, dauerhafter Speicher 208 und computerlesbare Speichermedien 250 sind Beispiele für physische Speichergeräte in einer greifbaren Form.
-
In einem anderen Beispiel kann ein Bussystem zur Realisierung der Kommunikationsstruktur 202 verwendet werden und kann einen oder mehrere Busse umfassen, wie z.B. einen Systembus oder einen Eingabe/Ausgabe-Bus. Natürlich kann das Bussystem unter Verwendung jedes geeigneten Typs von Architektur realisiert werden, der eine Übertragung von Daten zwischen unterschiedlichen Komponenten oder Geräten, die an das Bussystem angeschlossen sind, bereitstellt. Außerdem kann eine Kommunikationseinheit ein oder mehrere Geräte beinhalten, die zum Übertragen und Empfangen von Daten verwendet werden, wie z.B. ein Modem oder ein Netzwerkadapter. Ferner kann es sich bei einem Speicher beispielsweise um einen Speicher 206 oder einen Cache handeln, wie er in einem Hub für Schnittstellen- und Speichersteuereinheiten vorhanden ist, der in der Kommunikationsstruktur 202 vorhanden sein kann.
-
Es versteht sich, dass, obwohl diese Offenbarung eine detaillierte Beschreibung des Cloud-Computing beinhaltet die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können die veranschaulichenden Ausführungsformen in Verbindung mit jedem anderen Typ von Computer-Umgebung implementiert werden, der heute bekannt ist oder später entwickelt wird. Cloud Computing ist ein Modell zur Bereitstellung von Diensten, das einen bequemen, bedarfsgerechten Netzzugang zu einem gemeinsamen Vorrat konfigurierbarer Computerressourcen wie z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste ermöglicht, die mit minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Charakteristiken, mindestens drei Service-Modelle und mindestens vier Bereitstellungsmodelle umfassen.
-
Die Charakteristiken können zum Beispiel bedarfsgesteuerte Selbstbedienung, breiten Netzwerkzugriff, Ressourcenbündelung (Resource Pooling), flexible Anpassungsfähigkeit und Dienstmessung beinhalten. Die bedarfsgesteuerte Selbstbedienung ermöglicht es einem Cloud-Verbaucher einseitig Ressourcen für Berechnungen bereitzustellen, wie z. B. Serverzeit und Netzwerkspeicher, und zwar automatisch, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist. Der breiter Netzwerkzugriff stellt Ressourcen bereit, die über ein Netzwerk verfügbar sind und auf die über Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen wie z. B. Mobiltelefone, Laptops und personal digital assistants fördern. Die Ressourcenbündelung ermöglicht es, die Computer-Ressourcen des Anbieters zu bündeln, um mehrere Verbraucher unter Verwendung eines Multi-Tenant-Modells zu bedienen, wobei verschiedene physische und virtuelle Ressourcen je nach Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine gewisse Standortunabhängigkeit, da der Verbraucher in der Regel keine Kontrolle oder Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, jedoch den Standort auf einer höheren Abstraktionsebene wie z. B. Land, Staat oder Rechenzentrum angeben kann. Die flexible Anpassungsfähigkeit stellt Ressourcen bereit, die schnell und elastisch bereitgestellt werden können, in manchen Fällen auch automatisch, um schnell zu skalieren und schnell wieder freigegeben werden, um schnell zu skalieren. Für den Verbraucher erscheinen die für die Bereitstellung verfügbaren Ressourcen oft unbegrenzt und können in beliebiger Menge und zu jeder Zeit erworben werden. Die Dienstmessung ermöglicht es Cloud-Systemen die Ressourcennutzung automatisch zu kontrollieren und zu optimieren, indem sie eine dem Typ des Dienstes entsprechende Steuereinheit auf einer bestimmten Abstraktionsebene wie z. B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten verwenden. Die Ressourcennutzung kann überwacht, kontrolliert und gemeldet werden, wodurch Transparenz sowohl für den Anbieter als auch für den Nutzer des genutzten Dienstes bereitgestellt wird.
-
Die Service-Modelle können zum Beispeil Software as a Service (SaaS), Platform as a Service (PaaS) und Infrastructure as a Service (laaS) beinhalten. Software as a Service ist die Ressource, die dem Verbraucher bereitgestellt wird, um die Anwendungen des Anbieters zu verwenden, die auf einer Cloud-Infrastruktur laufen. Der Zugriff auf die Anwendungen erfolgt von verschiedenen Mandant-Geräten aus über eine Thin-Client-Schnittstelle wie z. B. einen Webbrowser (z. B. webbasierte E-Mail). Der Verbraucher verwaltet oder kontrolliert nicht die zugrunde liegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme, Steuereinheiten oder sogar einzelne Anwendungsressourcen, mit der möglichen Ausnahme begrenzter benutzerspezifischer Anwendungskonfigurationseinstellungen. Platform as a Service (PaaS) ist die Ressource, die dem Verbraucher bereitgestellt wird, um vom Verbraucher erstellte oder erfasste Anwendungen, die mit vom Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Verbraucher verwaltet oder kontrolliert nicht die zugrunde liegende Cloud-Infrastruktur, die Netzwerke, Server, Betriebssysteme oder Steuereinheiten umfasst, hat aber die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über die Konfigurationen der Hosting-Umgebung der Anwendungen. Infrastructure as a Service (laaS) ist die dem Verbraucher bereitgestellte Ressource zur Bereitstellung von Verarbeitungs-, Speicher-, Netzwerk- und anderen grundlegenden Computer-Ressourcen, wobei der Verbraucher in der Lage ist, beliebige Software einzusetzen und auszuführen, die Betriebssysteme und Anwendungen umfassen kann. Der Verbraucher verwaltet oder kontrolliert nicht die zugrunde liegende Cloud-Infrastruktur, sondern hat die Kontrolle über Betriebssysteme, Speicher, bereitgestellte Anwendungen und möglicherweise eine begrenzte Kontrolle über ausgewählte Netzwerkkomponenten wie z. B. Host-Firewall).
-
Die Bereitstellungsmodelle können zum Beispiel eine private Cloud, eine Gemeinschafts-Cloud, eine öffentliche Cloud und eine Hybride-Cloud beinhalten. Eine private Cloud ist eine Cloud-Infrastruktur, die lediglich für eine Organisation betrieben wird. Die private Cloud kann von der Organisation selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden. Eine Gemeinschafts-Cloud ist eine Cloud-Infrastruktur, die von mehreren Organisationen gemeinsam genutzt wird und eine spezifische Gemeinschaft mit gemeinsamen Anliegen wir z. B. Aufgabe, Sicherheitsanforderungen, Richtlinie und Einhaltung von Gesetzen und Richtlinien unterstützt. Die Gemeinschafts-Cloud kann von den Organisationen selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden. Eine Öffentliche Cloud ist eine Cloud-Infrastruktur, die der allgemeinen Öffentlichkeit oder einer großen Branchengruppe bereitgestellt wird und Eigentum einer Organisation ist, die Cloud-Dienste verkauft. Eine Hybrid-Cloud ist eine Cloud-Infrastruktur, die eine Zusammensetzung aus zwei oder mehreren Clouds wie z. B. privaten, Gemeinschafts- oder öffentlichen Clouds ist, die als eigenständige Einheiten bleiben, aber durch eine standardisierte oder herstellerspezifische Technologie miteinander verbunden sind, die eine Portierbarkeit von Daten und Anwendungen wie z. B. das Cloud-Bursting für den Lastausgleich zwischen Clouds ermöglicht.
-
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Kompatibilität liegt. Im Mittelpunkt einer Cloud-Datenverarbeitung steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten umfasst.
-
Unter Bezugnahme auf 3 wird nun ein Diagramm veranschaulicht, das eine Cloud-Computing-Umgebung darstellt, in der veranschaulichende Ausführungsformen realisiert werden können. In diesem veranschaulichenden Beispiel umfasst die Cloud-Computing-Umgebung 300 eine Menge von einen oder mehreren Cloud Computing-Knoten 310, mit denen lokale Computing-Geräte, die von Verbrauchern in der Cloud verwendet werden, wie z. B. ein personal digital assistant oder ein Smart-Phone 320A, ein Desktop-Computer 320B, ein Laptop-Computer 320C und/oder ein Computersystem 320N für Kraftfahrzeuge, kommunizieren können. Cloud-Computing-Knoten 310 können zum Beispiel der Server 104, der Server 106 und der Server 108 in 1 sein. Lokale Computergeräte 320A-320N können zum Beispiel der Client 110, der Client 112 und der Client 114 in 1 sein.
-
Cloud-Computing-Knoten 310 können miteinander kommunizieren und physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein, wie z. B. in privaten, Community-, öffentlichen oder hybriden Clouds, wie oben beschrieben, oder einer Kombination davon. Auf diese Weise kann die Cloud Computing-Umgebung 300 Infrastruktur, Plattformen und/oder Software als Service anbieten, für die ein Verbraucher in der Cloud keine Ressourcen auf einem lokalen Computing-Gerät wie lokalen Computing-Geräten 320A-320N beibehalten muss. Es wird verstanden, dass die Typen von lokalen Computing-Geräten 320A-320N nur zur Veranschaulichung dienen und dass die Cloud-Computing-Knoten 310 und die Cloud-Computing-Umgebung 300 mit jeder Art von Computer-Gerät über jede Art von Netzwerk und/oder netzwerkadressierbare Verbindung kommunizieren können, beispielsweise über einen Webbrowser.
-
Unter Bezugnahme auf 4 wird nun ein Diagramm veranschaulicht, das Abstraktionsmodellebenen darstellt, gemäß einer veranschaulichenden Ausführungsform. Die Reihe von funktionalen Abstraktionsebenen, die in diesem veranschaulichenden Beispiel gezeigt sind, können von einer Cloud-Computing-Umgebung, wie der Cloud-Computing-Umgebung aus Figure 3, bereitgestellt werden. Es sollte im Voraus verstanden werden, dass die in Figure 4 dargestellten Komponenten, Schichten und Funktionen nur zur Veranschaulichung dienen und die Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie gezeigt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Abstraktionsschichte der Cloud-Computing-Umgebung 400 beinhalten die Hardware- und Software-Schicht 402, die Virtualisierungsschicht 404, die Verwaltungsschicht 404 und die Arbeitsbelastungsschicht (workloads layer) 408. Die Hardware- und Software-Schicht 402 umfasst die Hardware- und Software-Komponenten der Cloud-Computing-Umgebung. Die Hardware-Komponenten können zum Beispiel Großrechner 410, Server auf der Grundlage der RISC-Architektur (Reduced Instruction Set Computer) 412; Server 414; Blade-Server 416; Speichergeräte 418 sowie Netzwerke und Netzwerkkomponenten 420 umfassen. In einigen veranschaulichen Ausführungsformen können die Softwarekomponenten zum Beispiel Netzwerk-Anwendungsserversoftware 422 und Datenbanksoftware 424 umfassen.
-
Die Virtualisierungsschicht 404 umfasst eine Abstraktionsschicht, auf der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 426, virtuelle Speicher 428, virtuelle Netzwerke430, einschließlich virtueller privater Netzwerke, virtuelle Anwendungen und Betriebssysteme 432 und virtuelle Mandanten 434.
-
In einem Beispiel kann die Verwaltungsschicht 406 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 436 stellt die dynamische Beschaffung von Computer-Ressourcen und anderen Ressourcen bereit, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Metering und Pricing 438 stellen die Kostenverfolgung bei der Nutzung von Ressourcen in der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware beinhalten. Sicherheit stellt die Identitätsprüfung für Verbraucher und Aufgaben in der Cloud sowie den Schutz von Daten und anderen Ressourcen bereit. Das Benutzerportal 440 stellt den Zugang zur Cloud-Computing-Umgebung für Verbraucher und Systemadministratoren bereit. Das Service-Level-Management 442 stellt die Zuweisung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die erforderlichen Service-Levels eingehalten werden. Die Planung und Erfüllung von Service Level Agreements (SLA) 444 stellt die Anordnung und Beschaffung von Cloud-Computing-Ressourcen bereit, für die ein zukünftiger Bedarf gemäß einem SLA erwartet wird.
-
Die Arbeitsbelastungsschicht 408 stellt Beispiele für Funktionen bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Beispielhafte Arbeitslasten und Funktionen, die von der Arbeitsbelastungsschicht aus bereitgestellt werden können, können umfassen: das Zuordnen und Navigieren 446, die Softwareentwicklung und die Lebensdauer-Verwaltung (lifecycle management) 448, die Bereitstellung von Ausbildung in virtuellen Klassenzimmern 450, die Datenanalyseverarbeitung 452, die Transaktionsverarbeitung 454 und das Datenbank-Tuning 456.
-
Derzeit kann das Datenbank-Tuning entweder manuell von einem Datenbankadministrator oder mit einem automatischen Verfahren durchgeführt werden. Beim manuellen Datenbank-Tuning muss der Datenbank-Administrator sein Wissen unter Verwendung der Datenbank verwenden. Dieses manuelle Datenbank-Tuning funktioniert jedoch nicht gut, wenn es dem Datenbankadministrator an Erfahrung mangelt. Beim automatischen Datenbank-Tuning muss die Datenbank ein automatisches Tuning verwenden, das auf Informationen zur lokalen Datenbankoptimierung basiert. Dies erfordert jedoch, dass die Datenbank für einige Zeit im Betrieb ist, damit Datenfaktorstatistiken und Datenbank-Trace-Daten für das automatische lokale Tuning erfasst werden können. Bei den Datenfaktorstatistiken handelt es sich um Werte, die den wichtigsten Faktoren entsprechen, die die Parameter für das Datenbank-Tuning bestimmen. Die Datenbank-Tuning-Parameter sind abhängig von den Datenfaktor-Statistiken oder von der Umgebung, wobei die Datenbank ausgeführt wird. Andererseits kann der Datenbankadministrator auf Grundlage der Datenbank-Trace-Daten erkennen, ob das Tuning zur Verbesserung der Datenbankleistung geeignet ist. Datenbank-Trace-Daten sind ein gutes Leistungsfeedback für das Datenbank-Tuning. Allerdings funktioniert dieses Verfahren nicht gut für eine neue Datenbank, für die noch keine Einträge zur Optimierung aufgezeichnet wurden.
-
Veranschaulichende Ausführungsformen nutzen die Cloud-Charakteristik und die Technologie des maschinellen Lernens, um ein Centerless-Netzwerk von Datenbankknoten für eine Cloud-Plattform auf der Grundlage von maschinellem Lernen zu erstellen. Die Cloud-Plattform beinhaltet eine Vielzahl von Datenbankknoten mit unterschiedlichen Typen von Datenfaktoren. Daher ist eine gute Chance vorhanden, dass ein neuer Datenbankknoten von einem oder mehreren bestehenden Datenbankknoten in der Cloud-Plattform eine Empfehlung für eine optimale Konfigurationseinstellung erhält. Die Beziehung zwischen den Datenbankknoten steht in Abhängigkeit von der Ähnlichkeit der Datenfaktoren und der Einstellungen auf Knotenebene zwischen den Datenbankknoten. Manchmal kombiniert ein neuer Datenbankknoten Datenfaktoren von bereits vorhandenen Datenbankknoten. Daher sollte der neue Datenbankknoten von mehreren benachbarten Datenbankknoten Empfehlungen für das Konfigurationstuning erhalten.
-
In veranschaulichenden Ausführungsformen sucht der neue Datenbankknoten nach am nächsten benachbarten Datenbankknoten, von denen er Empfehlungen für das Konfigurations-Tuning erhält. Veranschaulichende Ausführungsformen erstellen ein dynamisches Centerless-Netzwerk von Datenbankknoten für den neuen Datenbankknoten so schnell wie möglich, um die Suche des neuen Datenbankknotens so effizient wie möglich zu gestalten. Alle Datenbankknoten in diesem dynamischen Centerless-Netzwerk sind selbstorganisiert und verändern sich ständig.
-
Der neue Datenbankknoten kann jedoch seine Suche auf alle Datenbankknoten in der Cloud-Plattform erweitern und die Suche nach einer optimalen Menge von eng benachbarten Datenbankknoten gemäß den aktuellen Leistungsdaten der Datenbankverfolgung dynamisch starten. Sobald die durchsuchten Datenbankknoten eine Empfehlung für ein optimales Konfigurationstuning auf Grundlage eines föderierten Konfigurationsmodells bereitstellen, bei dem es sich um eine Kombination der einzelnen Konfigurationsmodelle handelt, die den durchsuchten Datenbankknoten entsprechen, kann der neue Datenbankknoten die Suche anhalten. Alternativ kann der neue Datenbankknoten die Suche immer dann starten, wenn die Leistungsindikatoren, die einer älteren Tuning-Empfehlung entsprechen, unter einen bestimmten Leistungsschwellenwert fallen. Infolgedessen ist das gesamte Netzwerk der Datenbankknoten völlig centerless und verändert sich ständig.
-
Die Datenfaktorstatistiken des neuen Datenbankknotens sind vertraulich und können nicht auf andere Datenbankknoten übertragen werden. Daher müssen Einzelkonfigurationsmodelle auf durchsuchten Datenbankknoten auf ihren eigenen Datenfaktorstatistiken trainiert und anhand von Datenbank-Trace-Daten ausgewertet werden. In veranschaulichenden Ausführungsformen werden dann die einzelnen Konfigurationsmodelle der durchsuchten Datenbankknoten zu einem föderierten Konfigurationsmodell kombiniert, um eine endgültige optimale Konfigurationsempfehlung für den neuen Datenbankknoten zu erhalten.
-
Da das Tuning der Datenbank-Pufferpool-Konfiguration der häufigste Typ des Datenbank-Tunings ist, wird das Tuning der Datenbank-Pufferpool-Konfiguration als Beispiel verwendet. Es sei jedoch darauf hingewiesen, dass die veranschaulichenden Ausführungsformen auch für andere Typen des Datenbank-Tunings als das Pufferpool-Tuning verwendet werden können. Wie bereits erwähnt, umfasst die Cloud-Plattform eine Vielzahl von Datenbankknoten mit unterschiedlichen Datenfaktoren, wie z.B. Tabellenkardinalität, Seitenzahl, Zugriffshäufigkeit, Indexebene, Blattseite, Eingabe-/Ausgabegeschwindigkeit, System-Cache und dergleichen. Diese Datenfaktoren wirken sich auf die Datenbankkonfiguration aus.
-
Aufgrund von Einschränkungen hinsichtlich der Vertraulichkeit der Datenbank-Trace-Daten kann das Datenbankkonfigurationsmodell lediglich auf einem einzelnen Datenbankknoten trainiert werden. Das einzelne Datenbankkonfigurationsmodell kann jedoch nicht mit den neuen Daten des initialisierten neuen Datenbankknotens übereinstimmen, da der neue Datenbankknoten unterschiedliche Datenfaktoren aufweisen kann. Um dieses Problem zu lösen, erstellen veranschaulichende Ausführungsformen ein selbstorganisiertes, Centerless-Netzwerk von Datenbankknoten, das eine dynamische Gruppe von Datenbankknoten für jeden Datenbankknoten der Cloud-Plattform beinhaltet, um dynamisch mehrere föderierte Datenbankkonfigurationsmodelle zu erzeugen. Parameter-Synchronisationsmodule fassen die Modelle der gesuchten Datenbankknoten als föderierte Konfigurationsmodelle zusammen, indem sie ein Verfahren zur Parametersynchronisation nutzen. In diesem Fall verfügen die durchsuchten Datenbankknoten des neuen Datenbankknotens über einige Datenfaktorstatistiken, die auf dem lokalen Speicher gespeichert sind. Es ist jedoch nicht notwendig, Datenfaktorstatistiken von allen Datenbankknoten der Cloud-Plattform abzurufen, da einige der Datenbankknoten keine engen Nachbarn des neuen Datenbankknotens sein können.
-
Der neue Datenbankknoten sucht nach dem Zufallsprinzip nach engen Nachbarknoten, um den Grad der Beziehung zwischen den gesuchten Datenbankknoten und dem neuen Datenbankknoten zu berechnen. Dann kann der neue Datenbankknoten die Konfigurationsmodelle der gesuchten Datenbankknoten, die eine enge Beziehung haben, nutzen, um eine Konfigurationsempfehlung für sich selbst zu finden. Anschließend erzeugt und gibt der neue Datenbankknoten eine neue Beziehungstabelle zwischen sich und den mit ihm verknüpften benachbarten Datenbankknoten frei. Gleichzeitig passen alle anderen Datenbankknoten, die mit dem neuen Datenbankknoten in Beziehung stehen, ihre Beziehungstabellen an, um Informationen bezüglich des neuen Datenbankknotens hinzuzufügen. Allerdings müssen nicht alle Datenbankknoten in der Cloud-Plattform den neuen Datenbankknoten zu ihren Beziehungstabellen hinzufügen, da der neue Datenbankknoten nicht in der Nähe dieser anderen Datenbankknoten liegt (d.h. diese anderen Datenbankknoten befinden sich nicht innerhalb einer definierten Vektorentfernung von dem neuen Datenbankknoten).
-
Während des Lebenszyklus des Konfigurationsmodells des neuen Datenbankknotens überwacht der Algorithmus des maschinellen Lernens der erläuternden Ausführungsformen den Leistungsindikator in den Datenbank-Trace-Daten des neuen Datenbankknotens, nachdem die erläuternden Ausführungsformen die Empfehlung für das Konfigurations-Tuning auf den neuen Datenbankknoten angewendet haben. Wenn der Leistungsindikator des neuen Datenbankknotens unter den definierten Leistungsschwellenwert fällt, entfernen veranschaulichende Ausführungsformen den neuen Datenbankknoten aus seiner gemeinsamen Gruppe von Datenbankknoten und suchen eine andere dynamische Gruppe von Datenbankknoten, um den neuen Datenbankknoten hinzuzufügen, wenn aus der anderen dynamischen Gruppe von Datenbankknoten eine bessere Empfehlung für das Konfigurations-Tuning generiert werden kann. Es ist zu beachten, dass sich auch die Statistiken oder Werte für die Datenfaktoren des neuen Datenbankknotens im Laufe der Zeit ändern. Daher kann es sein, dass eine ältere Konfigurationsempfehlung aufgrund von Änderungen der Datenfaktorwerte nicht mehr optimal zu dem neuen Datenbankknoten passt. Infolgedessen wird die dynamische Gruppe von Datenbankknoten unter Verwendung anderer benachbarter Datenbankknoten sofort umorganisiert. Folglich wird die gesamte Topologie des selbstorganisierten, Centerless-Netzwerks in gewissem Maße neu geordnet.
-
Veranschaulichende Ausführungsformen betrachten jeden Datenbankknoten als ein dynamisches prädiktives Konfigurationsmodell, das die Datenfaktoren seiner Nachbarn einbezieht. Alle benachbarten Datenbankknoten, die in das dynamische prädiktive Konfigurationsmodell einbezogen sind, tragen zur dynamischen Ausgabe für die Vorhersage einer neuen Konfigurationsempfehlung für neu hinzukommende Datenbankknoten bei. Es ist zu beachten, dass die Cloud-Plattform eine beliebige Anzahl von Datenbankknoten umfassen kann.
-
Veranschaulichende Ausführungsformen identifizieren Datenfaktoren, wie z.B. Tabellenkardinalität, Seitenzahl, Zugriffshäufigkeit, Indexebene, Blattseite, Ein-/Ausgabegeschwindigkeit, System-Cache und ähnliches, die über die Datenbankkonfiguration für einen Datenbankknoten entscheiden. Diese Datenfaktoren ändern sich während der Datenbanklaufzeit. Da die Datenbankkonfiguration von diesen Datenfaktoren abhängt, muss ein Datenbankadministrator die Datenbankkonfiguration rechtzeitig anpassen, wenn der Leistungsindikator des Datenbankknotens beginnt, unter den vorgegebenen Leistungsschwellenwert zu fallen. Der Algorithmus des maschinellen Lernens der veranschaulichenden Ausführungsformen passt jedoch automatisch das selbstorganisierte, Centerless-Netzwerk an, indem er jeden Datenbankknoten in der Cloud-Plattform in die nächstgelegene dynamische Gruppe von Datenbankknoten einordnet, um eine aktuelle Konfigurationsempfehlung auf der Grundlage eines föderierten Konfigurationsmodells zu erhalten, das jeder dynamischen Gruppe entspricht. Wenn die Größe der einzelnen Datenbank-Pufferpools zu gering ist, muss der LDAP-Server auf die Aktivität der Datenbankplatten warten, um die Anforderungen der strukturierten Abfragesprache zu erfüllen. Wenn umgekehrt ein oder mehrere Datenbank-Pufferpools zu groß sind, kann der Speicher (d.h. der Cache) des LDAP-Servers verschwendet werden.
-
Wenn der von den Datenbank-Pufferpools belegte Speicherplatz größer ist als der verfügbare Speicher auf dem Server, kann es zu einem Paging des Betriebssystems kommen. Das Paging des Betriebssystems kann zu einer erhöhten Festplattenaktivität führen.
-
Veranschaulichende Ausführungsformen erstellen das selbstorganisierte, Centerless-Netzwerk über die Datenbankknoten der Cloud-Plattform. Alle Datenbankknoten bleiben während der gesamten Lebensdauer des selbstorganisierten, Centerless-Netzwerks als dynamische Datenbankknoten bestehen. Ferner legt jeder Datenbankknoten seine eigene Abstandsberechnungsregel als Standard fest. Das bedeutet, dass ein bestimmter Datenbankknoten einen anderen Datenbankknoten als nahe gelegen betrachten kann (d.h. innerhalb seiner definierten Abstandsberechnungsregel oder Abstandsschwelle), der andere Datenbankknoten kann jedoch eine große Entfernung (z.B. euklidischer Abstand) von diesem bestimmten Datenbankknoten entfernt sein. Veranschaulichende Ausführungsformen nutzen ein Vektorisierungs-Verfahren, um Vektorbeziehungen zwischen Datenbankknoten festzustellen. Es sei jedoch darauf hingewiesen, dass alternative veranschaulichende Ausführungsformen auch andere Verfahren verwenden können, um die Beziehungen zwischen Datenbankknoten festzustellen.
-
Veranschaulichende Ausführungsformen gruppieren verschiedene Datenfaktoren mithilfe von Mathematik in verschiedene Vektoren. Veranschaulichende Ausführungsformen ordnen jeden Datenfaktor, der einem einzelnen Datenbankknoten entspricht, einer Dimension des Vektors des Datenbankknotens zu. Sobald sich einer der Datenfaktoren eines Datenbankknotens während der Laufzeit ändert, wird der Vektor dieses Datenbankknotens neu berechnet, um die korrekten Beziehungsinformationen des Datenbankknotens wiederzugeben. Veranschaulichende Ausführungsformen verwenden die folgende Vektorgleichung:
wobei
der Vektor ist, der die Aggregation der Datenfaktoren darstellt, die einem bestimmten Datenbankknoten entsprechen,
ein Sub-Vektor ist, der einen Datenfaktor des mehrdimensionalen Raums darstellt, und N die Anzahl der Datenfaktoren ist, die diesem bestimmten Datenbankknoten entsprechen. Es sei darauf hingewiesen, dass alle Variablen in der obigen Gleichung auf der Grundlage der Echtzeit-Systemüberwachung des globalen Netzwerks, das aus allen Datenbankknoten in der Cloud-Plattform besteht, dynamisch geändert werden können.
-
Darüber hinaus stellen veranschaulichende Ausführungsformen eine Suchliste zusammen und berechnen Vektorbeziehungen zwischen Datenbankknoten. Da alle Datenbankknoten in der Cloud-Plattform dynamisch nach benachbarten Datenbankknoten suchen, erstellt jeder Datenbankknoten eine Liste mit den am nächsten gelegenen Nachbarn für zukünftige Referenzen. Jeder Datenbankknoten ist flexibel genug, um lediglich einen Teil oder eine Teilmenge der am nächsten gelegenen Datenbankknoten in der Liste zu suchen. Nach der Vektorisierung der Datenfaktoren, wie oben beschrieben, berechnen veranschaulichende Ausführungsformen den Vektorabstand auf der Basis des Winkels, den ein Vektor beinhaltet. Je kleiner die Winkel der Vektoren sind, desto enger ist die Beziehung zwischen ihnen. Mit anderen Worten, je kleiner der Vektorabstand ist, desto enger ist die Beziehung zwischen den Vektoren. Die Abstandsberechnungsregel oder Abstandsschwelle basiert auf der folgenden Gleichung für die Vektorbeziehung:
-
Da veranschaulichende Ausführungsformen die Beziehung anhand von Echtzeitdaten berechnen, können veranschaulichende Ausführungsformen einen Schwellenwert für dynamische Werte für jeden einzelnen Datenbankknoten festlegen. Wenn die Werte der Vektorbeziehungen der benachbarten Datenbankknoten größer sind als der Schwellenwert für den dynamischen Wert, dann betrachten veranschaulichende Ausführungsformen diese benachbarten Datenbankknoten als gute Glieder für eine virtuelle Gruppe von Datenbankknoten für diesen bestimmten Datenbankknoten. Andernfalls setzen veranschaulichende Ausführungsformen die Suche nach näheren benachbarten Datenbankknoten fort. Somit sieht jeder Datenbankknoten vorübergehend eine Datenbankknoten-Beziehungskarte der benachbarten Datenbankknoten auf Grundlage der Knotenbeziehungstabellen.
-
Veranschaulichende Ausführungsformen stellen also eine oder mehrere technische Lösungen bereit, die ein technisches Problem bei der Konfiguration von Datenbankknoten in einer Cloud-Plattform lösen, um die Leistung der Datenbank zu steigern. Infolgedessen stellen diese eine oder mehrere technische Lösungen einen technischen Effekt und eine praktische Anwendung auf dem Gebiet der Datenbankleistung in einem Centerless-Netzwerk von Datenbankknoten bereit.
-
Gemäß einer veranschaulichenden Ausführungsform ist in 5 ein Diagramm dargestellt, das den Prozess 500 zur Erzeugung von Knotenbeziehungstabellen veranschaulicht. Der Prozess 500 zur Erzeugung einer Knotenbeziehungstabelle kann in einem Netzwerk von Datenverarbeitungssystemen, wie dem Netzwerk-Datenverarbeitungssystem 100 in 1, oder einer Cloud-Plattform, wie der Cloud-Computing-Umgebung 300 in 3, realisiert werden.
-
In diesem Beispiel beinhaltet der Prozess 500 zur Erzeugung der Knotenbeziehungstabelle die Knotenbeziehungstabelle 502 und die Knotenbeziehungstabelle 504. Die Knotenbeziehungstabelle 502 entspricht dem Datenbankknoten A 506 und die Knotenbeziehungstabelle 504 entspricht dem Datenbankknoten B 508. Datenbankknoten A 506 und Datenbankknoten B 508 können zum Beispiel Server 104 und Server 106 in 1 sein.
-
Datenbankknoten A 506 und Datenbankknoten B 508 erzeugen die Knotenbeziehungstabelle 502 bzw. die Knotenbeziehungstabelle 504. Die erste Spalte („Nachbarn“) der Tabellen listet die am nächsten benachbarten Datenbankknoten auf. Die zweite Spalte („Datenfaktoren“) listet die ermittelten Datenfaktoren für jeden der benachbarten Datenbankknoten auf, die in der ersten Spalte aufgelistet sind. Beachten Sie bitte, dass sich alle Datenfaktoren dynamisch ändern. Veranschaulichende Ausführungsformen erfassen jedoch die Werte dieser Datenfaktoren, wenn die Beziehungstabellen erstellt werden. Wenn sich die Datenfaktoren ändern, dann ändern sich auch die Beziehungen zwischen den Datenbankknoten mit den sich ändernden Datenfaktoren. Die dritte Spalte („Vektorbeziehungen“) listet Vektorbeziehungswerte auf, die auf Grundlage der Vektorisierung der in der zweiten Spalte aufgelisteten Datenfaktorwerte basieren, die jedem jeweiligen Datenbankknoten in der ersten Spalte entsprechen.
-
Veranschaulichende Ausführungsformen erstellen das selbstorganisierte, Centerless-Netzwerk von Datenbankknoten in der Cloud-Plattform unter Verwendung der erzeugten Beziehungstabellen. Es ist zu beachten, dass das Netzwerk der Datenbankknoten kein Zentrum hat. Dies bedeutet, dass jeder Datenbankknoten über eine virtuelle Gruppe von Datenbankknoten verfügt, die aus den nächsten Nachbarknoten besteht, die durch seine jeweilige Beziehungstabelle festgestellt werden. Mit anderen Worten: Jeder Datenbankknoten wird als sein eigener Basisknoten in seiner virtuellen Gruppe von Datenbankknoten betrachtet. Dies ist jedoch nicht für jeden Datenbankknoten erforderlich. Zum Beispiel kann ein Datenbankknoten eine Beziehungstabelle erzeugen, wenn dieser Datenbankknoten mehr zum gesamten Datenbanksystem der Cloud-Plattform beitragen möchte. Ein Grund, warum der Datenbankknoten die Beziehungstabelle erzeugt, ist, dass er neuen Datenbankknoten dabei helfen kann, eine optimale Menge von benachbarten Datenbankknoten zu finden, um bei der anfänglichen Einrichtung der Cloud-Plattform leichter eine optimale Konfiguration zu erhalten.
-
Veranschaulichende Ausführungsformen legen auch einen dynamischen Schwellenwert auf Grundlage der Beziehungstabelle fest. Wenn zum Beispiel eine Vektorbeziehung zwischen Datenbankknoten zu distanziert ist (d.h. größer als der dynamische Schwellenwert), dann betrachtet dieser Datenbankknoten den anderen Datenbankknoten nicht als einen nahen Nachbarn. Veranschaulichende Ausführungsformen verwenden die folgende mathematische Gleichung, um den Schwellenwert für den dynamischen Wert zu berechnen:
wobei N eine Teilnummer oder Teilmenge der Datenbankknoten ist, die in der aktuellen Beziehungstabelle aufgelistet sind. Der der Beziehungstabelle entsprechende Datenbankknoten entscheidet, wie viele Datenbankknoten in der Tabelle in die Suchliste aufgenommen werden sollen. Der Datenbankknoten kann einen anfänglichen Schwellenwert für Vektorbeziehungen festlegen, z.B. 0,5. Mit anderen Worten: Der Datenbankknoten betrachtet lediglich Datenbankknoten in der Beziehungstabelle, deren Wert für die Vektorbeziehung größer oder gleich dem Schwellenwert von 0,5 ist, als Kandidaten-Glieder für diese virtuelle Gruppe von Datenbankknoten. Für die nächsten Datenbankknoten gilt dann, wenn r
i > E ist, dass der Datenbankknoten den i
-ten Datenbankknoten als engeren Nachbarn betrachtet.
-
Veranschaulichende Ausführungsformen halten die Suche an, wenn die Größe der Beziehungstabelle eine bestimmte Zahl erreicht, z.B. zehn oder eine andere zufällig ausgewählte Zahl zwischen eins und zehn. Wenn ein neuer Datenbankknoten keine gute Empfehlung für das Konfigurations-Tuning erhält, weil die erzeugte Beziehungstabelle nicht genügend Kandidaten-Glieder umfasst, dann starten veranschaulichende Ausführungsformen die Suche neu und reorganisieren das Netzwerk der Datenbankknoten in der Cloud-Plattform dynamisch.
-
In
6 ist gemäß einer veranschaulichenden Ausführungsform ein Diagramm dargestellt, das den Prozess 600 zum Erstellen von Knotengruppen veranschaulicht. Veranschaulichende Ausführungsformen identifizieren eine Menge von Datenfaktoren, die den Datenbankknoten der Cloud-Plattform entsprechen. In diesem Beispiel beinhaltet das Centerless-Netzwerk 602 die Datenbankknoten A, B, C, D, E, F, G, H und I. Die ermittelte Menge von Datenfaktoren ist die Tabellenkardinalität, die Seitenzahl, die Zugriffshäufigkeit, die Indexebene und andere, wie in der folgenden Tabelle dargestellt.
Knoten | Tabellenkardinalität | Seitenzahl | Zugriffshäufigkeit | Indexebene | Andere |
A, B, G | 100∼10,000 | 5∼15 | 20∼100 | P1 | N1 |
C, E, H | 10,000∼1,000,000 | 15∼30 | 100∼1500 | P2 | N2 |
D, F, I | 1,000,000 | 30 | 1500 | P3 | N3 |
-
Anhand der obigen Tabelle sagen veranschaulichende Ausführungsformen eine Empfehlung für das Konfigurations-Tuning voraus. In diesem Beispiel haben die Datenbankknoten A, B und G, die Datenbankknoten C, E und H sowie die Datenbankknoten D, F und I ähnliche Einstellungen auf Knotenebene und Datenfaktorwerte. Veranschaulichende Ausführungsformen können all diese Informationen automatisch von der Cloud-Plattform abrufen, indem sie ein Modul zur Überwachung der Laufzeitstatistiken verwenden, das diese Werte aus einer laufenden Datenbank generiert.
-
In diesem Beispiel suchen der Datenbankknoten A 604, der Datenbankknoten B 606 und der Datenbankknoten C 608 jeweils in ihrer eigenen Suchliste nach den vier engsten Nachbarn (d.h. nach der ausgewählten Anzahl von Nachbarn). Somit hat jeder Datenbankknoten A 604, Datenbankknoten B 606 und Datenbankknoten C 608 seine eigene Menge an am nächsten benachbarten Datenbankenknoten-Glieder in seiner jeweiligen virtuellen Gruppe. Jede jeweilige virtuelle Gruppe repräsentiert die am nächsten benachbarten Datenbankknoten, die innerhalb dieser bestimmten Gruppe miteinander kommunizieren können. Beispiel: Datenbankknoten A 604 hat die Datenbankknoten E, H, B und G als am nächsten benachbarte Glieder der Gruppe 610; Datenbankknoten B 606 hat die Datenbankknoten H, E, A und C als am nächsten benachbarte Glieder der Gruppe 612; und Datenbankknoten C 608 hat die Datenbankknoten H, F, D und I als am nächsten benachbarte Glieder der Gruppe 614. Die anderen Datenbankknoten D, E, F, G, H und I haben ähnliche engste Nachbar-Glieder in ihren jeweiligen virtuellen Gruppen, wenn sie sich entscheiden, ebenfalls Beziehungstabellen zu erstellen.
-
Unter Bezugnahme auf 7 wird gemäß einer veranschaulichenden Ausführungsform ein Diagramm dargestellt, das den Prozess 700 des Erstellens eines einzelnen Modells veranschaulicht. In diesem Beispiel beinhaltet der Prozess 700 zum Erstellen eines einzelnen Modells den Datenbankknoten 702. Bei 704 betreibt der Datenbankknoten 702 eine Statistik, um Werte für die Datenfaktoren 706 zu finden, die dem Datenbankknoten 702 entsprechen. Die Datenfaktoren 706 beinhalten Tabellenkardinalität, Seitenzahl, Zugriffshäufigkeit, Indexebene, Blattseite, Eingabe-/Ausgabegeschwindigkeit, System-Cache und ähnliches.
-
Bei 708 verwendet der Datenbankknoten 702 einen Algorithmus für maschinelles Lernen, um die Datenfaktoren 706 für das prädiktive Modell 710 zu klassifizieren. Das prädiktive Modell 710 ist ein Konfigurationsmodell, das dem Datenbankknoten 702 entspricht. Bei 712 erzeugt der Datenbankknoten 702 einen Leistungsindikator, der dem Vorhersagemodell 710 entspricht. Bei 714 ordnet der Datenbankknoten 702 die Datenbankkonfiguration, die dem Vorhersagemodell 710 entspricht, dem Leistungsindikator zu. Bei 716 stellt der Datenbankknoten 702 auf Grundlage des Leistungsindikators fest, ob die Datenbankkonfiguration gut oder schlecht ist. Liegt der Leistungsindikator unter dem vorgegebenen Leistungsschwellenwert (d.h. die Datenbankkonfiguration ist schlecht), dann wiederholt der Datenbankknoten 702 den Prozess 700 zur Erstellung des einzelnen Modells.
-
Veranschaulichende Ausführungsformen erfassen die Werte der Datenfaktoren 706 und erstellen ein einzelnes Konfigurationsmodell für den Datenbankknoten 702 zur künftigen Verwendung. Um Trainingsdaten zu erfassen, die den Datenfaktoren 706 entsprechen, veranschaulichen Ausführungsformen, dass der Datenbankknoten 702 vor dem Trainieren eine statistische Analyse der Datenfaktoren 706 durchführt. Um unterschiedliche Ergebnisse der Datenbankleistung zu analysieren, gibt ein Datenbank-Trace an, ob die aktuelle Datenbankkonfiguration für die Datenfaktoren 706 geeignet ist. Unabhängig davon, ob die Datenbankkonfiguration gut oder schlecht ist (d.h. über oder unter dem definierten Leistungsschwellenwert liegt), entdeckt der Datenbank-Trace alle Verhaltensweisen, um sie an eine Leistungsfeedbackkomponente des Datenbankkonfigurationsmodells zu melden. Mit anderen Worten: Veranschaulichende Ausführungsformen bewerten das Konfigurationsmodell eines einzelnen Datenbankknotens durch die Analyse des Leistungsindikators im Datenbank-Trace dieses bestimmten Datenbankknotens. Veranschaulichende Ausführungsformen verwenden die folgende Gleichung, um eine Leistungskennzeichnung (performance label) für einen bestimmten Datenbankknoten zu erhalten:
wobei (tc, pn, af, il, lp, io, sc, n
1, n
2...n
m) Abkürzungen für die identifizierten Datenfaktoren sind (d.h., Tabellenkardinalität, Seitenzahl, Zugriffshäufigkeit, Indexebene, Blattseite, Ein-/Ausgabegeschwindigkeit, System-Cache und andere Faktoren), (a
1, a
2, a
3, a
4.....a
n) die entsprechenden Koeffizienten für das Konfigurationsmodell sind und die „Leistungskennzeichnung“ der aktuelle Leistungsindikator der Datenbank für die angegebene Datenbankkonfiguration ist.
-
Um eine Datenbankkonfiguration zu empfehlen, zeichnen illustrative Ausführungsformen die Abbildung zwischen den Datenfaktorwerten der Datenbankkonfiguration und dem Echtzeit-Datenbankleistungsindikator (d.h. der Leistungskennzeichnung) auf. Mit anderen Worten: Jeder Leistungsindikator wird auf eine Menge von Datenbankkonfigurationen abgebildet. Zum Beispiel steht (B
1, B
2, B
3, B
4.....B
n) für eine Menge von Empfehlungen oder Optionen für die Datenbankkonfiguration. Die obige Gleichung lässt sich also wie folgt verfeinern:
wobei PL die Abkürzung für die Leistungskennzeichnung (performance label) ist. Bei dieser Berechnung nutzen veranschaulichende Ausführungsformen den Klassifizierungsalgorithmus des überwachten maschinellen Lernens, um die Leistungskennzeichnung mit den ermittelten Datenfaktoren zu klassifizieren. Veranschaulichende Ausführungsformen können beispielsweise logistische Regression, Support-Vektor-Maschine oder Ensemble-Lernen verwenden, um das dem Datenbankknoten entsprechende Konfigurationsmodell zu trainieren. Ziel ist es, die Koeffizienten (d.h. a
1, a
2, a
3, a
4.....a
n) für das Konfigurationsmodell zu trainieren, das erwartet, dass der Datenbank-Trace keine Leistungsindikatoren mehr unter dem vorgegebenen Leistungsschwellenwert aufweist. Dieses Trainieren ist das einzige Trainieren für den Datenbankknoten.
-
Das Konfigurationsmodell eines Datenbankknotens ist von vielen Datenfaktoren abhängig. Mit anderen Worten: Es gibt unterschiedliche Datenfaktoren für unterschiedliche Datenbankknoten. Um eine Überanpassung des Datenbankkonfigurationsmodells zu vermeiden, trainieren veranschaulichende Ausführungsformen die unterschiedlichen Datenbankkonfigurationsmodelle schrittweise in unterschiedlichen Datenbankknoten für die zukünftige Verwendung. Da veranschaulichende Ausführungsformen denselben Trainingsalgorithmus verwenden, ändern veranschaulichende Ausführungsformen die obige Gleichung wie folgt:
wobei das Symbol i für den i
-ten Datenbankknoten steht.
-
Unter Bezugnahme auf 8 ist ein Diagramm dargestellt, das den Prozess 800 der Erstellung eines föderierten Modells gemäß einer veranschaulichenden Ausführungsform veranschaulicht. Der Prozess 800 der Erstellung eines föderierten Modells beinhaltet einen neuen Datenbankknoten 802, der der Cloud-Plattform hinzugefügt werden soll, und ein Centerless-Netzwerk 804. Bei 806 wählt der neue Datenbankknoten 802 eine optimale dynamische Gruppe von am nächsten benachbarten Datenbankknoten im Centerless-Netzwerk 804 aus und erstellt dann das föderierte Datenbankkonfigurationsmodell 808 auf Grundlage der Datenbankkonfigurationsmodelle, die jedem der jeweiligen Datenbankknoten in der Gruppe entsprechen. Sobald der neue Datenbankknoten 802 eine Menge von am nächsten benachbarten Datenbankknoten auswählt, nutzen veranschaulichende Ausführungsformen die Datenbankkonfigurationsmodelle, die der ausgewählten Menge von am nächsten benachbarten Datenbankknoten entsprechen, um die Datenbankkonfigurationsempfehlung 810 für den neuen Datenbankknoten 802 zu berechnen.
-
In einem ersten Schritt wählt der neue Datenbankknoten 802 also die optimale Menge von benachbarten Datenbankknoten auf Grundlage der Werte für die Vektorbeziehung in der Beziehungstabelle des neuen Datenbankknotens 802 aus. Mit anderen Worten, veranschaulichende Ausführungsformen verwenden die obige Vektorbeziehungsgleichung, um die Vektorbeziehung zwischen dem neuen Datenbankknoten und den vorhandenen Datenbankknoten in der Cloud-Plattform zu berechnen. Der neue Datenbankknoten durchsucht eine Teilmenge der Datenbankknoten, die in seiner Beziehungstabelle aufgelistet sind. Es ist zu beachten, dass sich die Leistung verbessert, wenn die Suche auf Grundlage der aktuellen Beziehungstabelle erfolgt. Da die in der Beziehungstabelle aufgelisteten Datenbankknoten engere Beziehungen haben, werden diese Datenbankknoten mehr gemeinsame Datenfaktoren mit dem neuen Datenbankknoten haben.
-
Der neue Datenbankknoten bleibt jedoch nicht nur in einer Beziehungstabelle, sondern kann eine beliebige Anzahl von Beziehungstabellen durchgehen, die anderen Datenbankknoten entsprechen, wenn der neue Datenbankknoten feststellt, dass die Suche für eine bessere Empfehlung der Datenbankkonfiguration fortgesetzt werden muss. Es handelt sich also um einen iterativen Prozess. Zum Beispiel stellt der laufende Datenbankknoten ein Leistungsfeedback bereit, um festzustellen, ob die Suche neu gestartet werden muss. Veranschaulichende Ausführungsformen verwenden die folgende Gleichung:
wobei Set
new die optimale Menge von benachbarten Datenbankknoten für den neuen Datenbankknoten darstellt und
den Beziehungsvektor des j
-ten Knotens in der Beziehungstabelle des i
-ten Knotens darstellt. Veranschaulichende Ausführungsformen verwenden die obige Gleichung, um die optimale Menge von benachbarten Datenbankknoten auszuwählen, die dem neuen Datenbankknoten am nächsten sind, um optimale Datenbankkonfigurationsempfehlungen für den neuen Datenbankknoten bereitzustellen.
-
Veranschaulichende Ausführungsformen erstellen das föderierte Datenbankkonfigurationsmodell auf Grundlage der Datenbankkonfigurationsmodelle, die der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten entsprechen. Mit anderen Worten, veranschaulichende Ausführungsformen verwenden lediglich die Datenbankkonfigurationsmodelle der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten, um das föderierte Datenbankkonfigurationsmodell für die Konfigurationsempfehlung des neuen Datenbankknotens zu erstellen. Dies bedeutet, dass der Prozess zur Erstellung eines föderierten Modells lediglich in der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten stattfindet, wenn der neue Datenbankknoten diesen Datenbankknoten vertraut. Dies bedeutet jedoch nicht lediglich, dass der neue Datenbankknoten eine vernünftige Konfigurationsempfehlung erhält, sondern auch, dass die anderen Datenbankknoten in der ausgewählten optimalen Menge keine Berechnungen durchführen müssen, um die Vorhersageleistung zu verbessern. Das föderierte Datenbankkonfigurationsmodell 808 ist also die Synthese aller Datenbankknoten-Glieder in der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten. Veranschaulichende Ausführungsformen betrachten das föderierte Datenbankkonfigurationsmodell 808 als das optimale Modell für die Empfehlung der Datenbankkonfiguration 810 für den neuen Datenbankknoten 802.
-
Der neue Datenbankknoten 802 sucht die engsten Nachbarn als optimale Kandidaten für seine Empfehlung der Datenbankkonfiguration. Der neue Datenbankknoten 802 kann die Beziehungstabellen der Nachbarn durchsuchen, um nähere Datenbankknoten zu finden. In diesem Beispiel durchsucht der neue Datenbankknoten 802 die Beziehungstabellen der Datenbankknoten A, C, B und E. Auf Grundlage der Informationen in den durchsuchten Beziehungstabellen sind die Datenbankknoten E, H und I die engsten Nachbarn des neuen Datenbankknotens 802. Veranschaulichende Ausführungsformen beinhalten daher die Datenbankknoten E, H und I in der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten. Ferner sind die Datenbankknoten A und B, die mit einem „*“ gekennzeichnet sind, auf Grundlage der Informationen in den gesuchten Beziehungstabellen ebenfalls die engsten Nachbarn des neuen Datenbankknotens 802. Veranschaulichende Ausführungsformen beinhalten daher auch die Datenbankknoten A und B in der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten.
-
Veranschaulichende Ausführungsformen verwenden das föderierte Datenbankkonfigurationsmodell 808, das auf den Konfigurationsmodellen der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten basiert, um eine sinnvolle Konfiguration für den neuen Datenbankknoten 802 vorherzusagen. Wenn bei 812 der Leistungsindikator für den neuen Datenbankknoten 802 nach Anwendung der Empfehlung 810 aus der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten unter dem vorgegebenen Leistungsschwellenwert liegt, dann starten die veranschaulichenden Ausführungsformen die Suche erneut. Andernfalls halten veranschaulichende Ausführungsformen die Suche an, weil die Empfehlung 810 für das aktuelle Tuning des neuen Datenbankknotens 802 gut genug ist.
-
Unter Bezugnahme auf 9 wird nun ein Diagramm dargestellt, das den Prozess 900 der Mittelwertbildung von Parametern gemäß einer veranschaulichenden Ausführungsform veranschaulicht. In diesem Beispiel beinhaltet der Prozess 900 der Mittelwertbildung von Parametern die dynamische Gruppe 902. Die dynamische Gruppe 902 stellt eine virtuelle Gruppe von Datenbankknoten in einem Centerless-Netzwerk dar. In diesem Beispiel beinhaltet die dynamische Gruppe 902 der Datenbankknoten das trainierte Modell 1 904, das trainierte Modell 2906 und das trainierte Modell 3 908. Das trainierte Modell 1 904, das trainierte Modell 2906 und das trainierte Modell 3 908 stellen trainierte Datenbankkonfigurationsmodelle dar, die jedem der jeweiligen Datenbankknoten in der dynamischen Gruppe 902 entsprechen.
-
Es sei darauf hingewiesen, dass die veranschaulichenden Ausführungsformen denselben Algorithmus für maschinelles Lernen verwenden, um die Datenbankkonfigurationsmodelle für das gesamte Datenbanksystem der Cloud-Plattform zu trainieren. Veranschaulichende Ausführungsformen können daher diese Datenbankkonfigurationsmodelle föderieren, indem sie die Mittelwertbildung 910 von Parametern verwenden. Die Mittelwertbildung 910 von Parametern kann für jeden Typ von Verfahren zur Konfigurationsmodell-Mittelwertbildung von Parametern stehen. Bei den Konfigurationsmodellparametern kann es sich beispielsweise um Konfigurationsmodellkoeffizienten, Konfigurationsmodellwerte, KonfigurationsmodellLeistungsfeedbackdaten und Konfigurationsmodell-Leistungskennzeichnungen handeln. Veranschaulichende Ausführungsformen können auch andere Verfahren nutzen, um Sub-Parameter zu föderieren. Dies ist jedoch abhängig von den Kosten für die Synchronisierung der Parameter und die Kommunikation im Netzwerk. Veranschaulichende Ausführungsformen können ein beliebiges Verfahren zur Synchronisierung von Parametern für die Datenparallelität in diesem Föderationsschritt verwenden. In diesem Beispiel verwenden veranschaulichende Ausführungsformen das Verfahren zur Mittelwertbildung von Parametern.
-
Veranschaulichende Ausführungsformen führen die Mittelwertbildung 910 von Parametern unter Verwendung der folgenden Gleichung durch:
Veranschaulichende Ausführungsformen gehen davon aus, dass die Probedaten auf „n“ Datenbankknoten verteilt werden und jeder Datenbankknoten aus „m“ Probedaten lernt. Zum Beispiel verarbeitet der erste Datenbankknoten Probedaten (1, 2, ... m), der zweite Datenbankknoten verarbeitet die nächsten m Probedaten (m+1, m+2, ... 2m). Folglich beinhaltet das föderierte Konfigurationsmodell 912 unterschiedliche Datenfaktoren von Gliedern der ausgewählten optimalen Menge von am nächsten benachbarten Datenbankknoten (d.h. der dynamischen Gruppe 902). Außerdem müssen die unterschiedlichen Datenbankknoten in dieser ausgewählten optimalen Menge keine vertraulichen Informationen kennen, wie z.B. Datenbankstatistiken, sensible Daten oder andere Daten, die die Datenbankknoten-Benutzer nicht weitergeben möchten, die jedem anderen Datenbankknoten in der Menge entsprechen.
-
Unter Bezugnahme auf 10 wird nun ein Diagramm dargestellt, das den Prozess 1000 des Hinzufügens eines neuen Knotens gemäß einer veranschaulichenden Ausführungsform veranschaulicht. In diesem Beispiel beinhaltet der Prozess 1000 zum Hinzufügen eines neuen Knotens die Knotenbeziehungstabelle 1002, die Knotenbeziehungstabelle 1004 und die Knotenbeziehungstabelle 1006. Die Knotenbeziehungstabelle 1002 entspricht dem Datenbankknoten B, die Knotenbeziehungstabelle 1004 entspricht dem Datenbankknoten A und die Knotenbeziehungstabelle 1006 entspricht dem neuen Datenbankknoten.
-
Veranschaulichende Ausführungsformen fügen den neuen Datenbankknoten in das selbstorganisierte, Centerless-Netzwerk für die Optimierungsiteration hinzu. Nachdem der neue Datenbankknoten die Konfigurationsempfehlung anwendet, setzen veranschaulichende Ausführungsformen den neuen Datenbankknoten in das Centerless-Netzwerk als ein neuer Trainingsdatenlieferant für die Netzwerkoptimierung ein. Der neue Datenbankknoten trägt zur Verbesserung des Centerless-Netzwerks bei, indem er das Centerless-Netzwerk flexibel genug für eine Reihe von Fähigkeiten macht. Das selbstorganisierte Centerless-Netzwerk wird sich in der folgenden Situation selbst einstellen. Die ausgewählte optimale Menge von am nächsten benachbarten Datenbankknoten, wie die virtuelle Gruppe, die dem Datenbankknoten B(*) in 8 entspricht, hat den neuen Datenbankknoten als neues Glied hinzugefügt. In der Beziehungstabelle 1002 für den Datenbankknoten B berechnen veranschaulichende Ausführungsformen die Vektorbeziehung des neuen Datenbankknotens zum Datenbankknoten B und listen die Vektorbeziehung („0,965“) in der Beziehungstabelle 1002 auf.
-
Einige andere Datenbankknoten, wie z.B. Datenbankknoten A, fügen den neuen Datenbankknoten ebenfalls zu ihren Beziehungstabellen hinzu, können aber auch einige andere Datenbankknoten nach der Neuberechnung der Vektorbeziehungen zwischen den Datenbankknoten löschen, da die gelöschten Knoten nicht mehr in der Nähe der jeweiligen Datenbankknoten liegen. In diesem Beispiel fügen veranschaulichende Ausführungsformen den neuen Datenbankknoten zur Beziehungstabelle 1004 des Datenbankknotens A hinzu, entfernen aber gleichzeitig den Datenbankknoten H aus der Beziehungstabelle 1004.
-
Einige andere Datenbankknoten, wie z.B. der Datenbankknoten C, fügen den neuen Datenbankknoten nicht zu ihren jeweiligen Beziehungstabellen hinzu, da der neue Datenbankknoten für diese anderen Datenbankknoten keine ausreichend enge Vektorbeziehung (d.h. oberhalb des Schwellenwerts für dynamische Beziehungen) aufweist. Der neue Datenbankknoten beginnt dann, eine neue virtuelle Gruppe von Datenbankknoten auf Grundlage seiner eigenen Eingaben mit anderen benachbarten Datenbankknoten zu verwalten, als ob der neue Datenbankknoten von Anfang an Teil der trainierten Dateneingabe gewesen wäre.
-
Unter Bezugnahme auf 11 wird nun gemäß einer veranschaulichenden Ausführungsform ein Diagramm zur Veranschaulichung des Prozesses 1100 zum Hinzufügen einer neuen Knotengruppe dargestellt. In diesem Beispiel beinhaltet der Prozess 1100 zum Hinzufügen einer neuen Knotengruppe ein Centerless-Netzwerk 1102. Das Centerless-Netzwerk 1102 beinhaltet die virtuelle Gruppe 1104, die virtuelle Gruppe 1106, die virtuelle Gruppe 1108, die virtuelle Gruppe 1110 sowie weitere virtuelle Gruppen. Die virtuelle Gruppe 1104, die dem Datenbankknoten A entspricht, fügt den neuen Datenbankknoten hinzu und entfernt den Datenbankknoten H. Die virtuelle Gruppe 1106, die dem Datenbankknoten B entspricht, fügt ebenfalls den neuen Datenbankknoten hinzu. Die virtuelle Gruppe 1108, die dem Datenbankknoten C entspricht, fügt den neuen Datenbankknoten jedoch nicht hinzu. Die virtuelle Gruppe 1110 entspricht dem neuen Datenbankknoten.
-
Folglich wiederholen veranschaulichende Ausführungsformen den Prozess des Erstellens neuer Knotenbeziehungstabellen für die Datenbankknoten in einer zweiten Runde von Berechnungen. 11 veranschaulicht die Ausgabe des Centerless-Netzwerks in der zweiten Runde. Nachdem veranschaulichende Ausführungsformen das Centerless-Netzwerk 1102 mit dem neuen Datenbankknoten erstellt haben, umfasst das Centerless-Netzwerk 1102 nun die dem neuen Datenbankknoten entsprechenden Datenfaktoren als zusätzliche Trainingsdaten. Infolgedessen können veranschaulichende Ausführungsformen nun unterschiedliche Datenbank-Konfigurations-Tunings auf Grundlage der neuen zusätzlichen Trainingsdaten vorhersagen, die durch den dem Centerless-Netzwerk 1102 hinzugefügten neuen Datenbankknoten eingegeben wurden.
-
Gemäß einer veranschaulichenden Ausführungsform ist in 12 ein Ablaufplan dargestellt, der einen Prozess für den Anschluss eines neuen Datenbankknotens an ein Centerless-Netzwerk veranschaulicht. Der in 12 gezeigte Prozess kann in einem Computer realisiert werden, wie z.B. dem Server 104 in 1, dem Datenverarbeitungssystem 200 in 2 oder einem Computer-Knoten in einem Cloud-Computing-Knoten 310 in 3.
-
Der Prozess beginnt, wenn der Computer ein Centerless-Netzwerk über eine Mehrzahl von Datenbankknoten in einer Cloud-Plattform erstellt (Schritt 1202). Der Computer stellt fest, ob das Centerless-Netzwerk bereit ist (Schritt 1204). Wenn der Computer feststellt, dass das Centerless-Netzwerk nicht bereit ist (Schritt 1204), kehrt der Prozess zu Schritt 1202 zurück, wobei der Computer das Centerless-Netzwerk weiter erstellt. Wenn der Computer feststellt, dass das Centerless-Netzwerk bereit ist, Ausgabe JA von Schritt 1204, dann wählt der Computer eine optimale Menge von Datenbankknoten mit ähnlichen Datenfaktoren in dem Centerless-Netzwerk aus (Schritt 1206).
-
Der Computer trainiert die Datenbankkonfigurationsmodelle, die der optimalen Menge von Datenbankknoten entsprechen, indem er Datenparallelität verwendet (Schritt 1208). Der Computer kombiniert die trainierten Datenbankkonfigurationsmodelle, die der optimalen Menge von Datenbankknoten entsprechen, um ein föderiertes Datenbankkonfigurationsmodell auszubilden (Schritt 1210). Der Computer stellt fest, ob die Leistungsindikatoren, die der optimalen Menge von Datenbankknoten entsprechen, größer sind als ein Leistungsschwellenwert (Schritt 1212). Der Leistungsschwellenwert ist ein Mindestleistungsschwellenwert.
-
Wenn der Computer feststellt, dass die Leistungsindikatoren, die der optimalen Menge von Datenbankknoten entsprechen, kleiner als der Leistungsschwellenwert sind, Ausgabe NEIN von Schritt 1212, dann kehrt der Prozess zu Schritt 1206 zurück, wobei der Computer eine andere optimale Menge von Datenbankknoten auswählt. Wenn der Computer feststellt, dass die Leistungsindikatoren, die der optimalen Menge von Datenbankknoten entsprechen, größer sind als der Leistungsschwellenwert, Ausgabe JA von Schritt 1212, dann empfiehlt der Computer einem neuen Datenbankknoten eine Datenbankkonfiguration, die dem Konfigurationsmodell der föderierten Datenbank entspricht (Schritt 1214).
-
Der Computer schließt den neuen Datenbankknoten an das Centerless-Netzwerk an (Schritt 1216). Der Computer empfängt zusätzliche Trainingsdaten von dem neuen Datenbankknoten (Schritt 1218). Danach kehrt der Prozess zu Schritt 1202 zurück, wobei der Computer das Centerless-Netzwerk auf Grundlage des neuen Datenbankknotens reorganisiert, der dem Centerless-Netzwerk beitritt.
-
Unter Bezugnahme auf 13 wird nun ein Ablaufplan dargestellt, der einen Prozess zum Erstellen eines Centerless-Netzwerks gemäß einer veranschaulichenden Ausführungsform veranschaulicht. Der in 13 gezeigte Prozess kann in einem Computer realisiert werden, wie z.B. dem Server 104 in 1, dem Datenverarbeitungssystem 200 in 2 oder einem Computer-Knoten in Cloud-Computing-Knoten 310 in 3.
-
Der Prozess beginnt, wenn der Computer eine Menge von Datenfaktoren identifiziert, die jedem Datenbankknoten einer Cloud-Plattform entsprechen (Schritt 1302). Der Computer erzeugt auf Grundlage der ermittelten Menge von Datenfaktoren, die jedem Datenbankknoten in der Rechenplattform entsprechen, einen Vektor für jeden Datenbankknoten (Schritt 1304). Der Computer berechnet auf Grundlage des erzeugten Vektors, der jedem jeweiligen Datenbankknoten entspricht, die Vektorbeziehungen zwischen Datenbankknoten in der Cloud-Plattform (Schritt 1306).
-
Der Computer erzeugt eine Knotenbeziehungstabelle für jeden Datenbankknoten, in der benachbarte Datenbankknoten, Datenfaktoren und Vektorbeziehungen für jeden jeweiligen Datenbankknoten aufgelistet sind (Schritt 1308). Der Computer erstellt ein selbstorganisierendes Centerless-Netzwerk, das die Datenbankknoten der Cloud-Plattform enthält, die auf Grundlage der generierten Knotenbeziehungstabelle für jeden jeweiligen Datenbankknoten in eine Mehrzahl virtueller Datenbankknotengruppen organisiert sind (Schritt 1310). Auf diese Weise erstellt der Computer dynamisch das Centerless-Netzwerk in Echtzeit und sorgt für eine erhöhte Leistungsfähigkeit jeder Datenbankknotengruppe. Danach wird der Prozess terminiert.
-
Unter Bezugnahme auf 14 wird nun ein Ablaufplan dargestellt, der einen Prozess zum Abbilden eines Leistungsindikators auf eine Datenbankkonfiguration gemäß einer veranschaulichenden Ausführungsform veranschaulicht. Der in 14 gezeigte Prozess kann in einem Computer realisiert werden, wie z.B. dem Server 104 in 1, dem Datenverarbeitungssystem 200 in 2 oder einem Cloud-Computing-Knoten in Cloud-Computing-Knoten 310 in 3.
-
Der Prozess beginnt, wenn der Computer die Werte der Datenfaktoren erfasst, die einem Datenbankknoten einer Cloud-Plattform entsprechen (Schritt 1402). Der Computer erstellt auf Grundlage der Werte der Datenfaktoren, die dem Datenbankknoten entsprechen, ein Datenbankkonfigurationsmodell für den Datenbankknoten (Schritt 1404). Der Computer führt einen Datenbank-Trace auf dem Datenbankknoten aus (Schritt 1406).
-
Der Computer identifiziert einen Leistungsindikator, der dem Datenbankkonfigurationsmodell des Datenbankknotens entspricht, innerhalb von Daten des Datenbank-Trace auf Grundlage der Analyse des Datenbank-Trace (Schritt 1408). Der Computer bildet die Werte der Datenfaktoren, die dem Datenbankknoten entsprechen, auf den Leistungsindikator ab, der dem Datenbankkonfigurationsmodell des Datenbankknotens entspricht (Schritt 1410). Der Computer zeichnet das Abbilden der Werte der Datenfaktoren, die dem Datenbankknoten entsprechen, auf den Leistungsindikator, der dem Datenbankkonfigurationsmodell des Datenbankknotens entspricht, für zukünftige Referenzen auf (Schritt 1412). Danach terminiert der Prozess.
-
Gemäß einer veranschaulichenden Ausführungsform wird nun in 15 ein Ablaufplan dargestellt, der einen Prozess zum Erzeugen einer Datenbankkonfigurationsempfehlung für einen neuen Datenbankknoten veranschaulicht. Der in 15 gezeigte Prozess kann in einem Computer realisiert werden, wie z.B. dem Server 104 in 1, dem Datenverarbeitungssystem 200 in 2 oder einem Computer-Knoten in den Cloud Computing-Knoten 310 in 3.
-
Der Prozess beginnt damit, dass der Computer eine Menge von am nächsten benachbarten Datenbankknoten zu einem neuen Datenbankknoten auf Grundlage von Vektorbeziehungswerten auswählt, die in Knotenbeziehungstabellen aufgelistet sind, die einer Mehrzahl von Datenbankknoten in einer Cloud-Plattform entsprechen (Schritt 1502). Der Computer erstellt ein föderiertes Datenbankkonfigurationsmodell auf Grundlage von Datenbankkonfigurationsmodellen, die der ausgewählten Menge von am nächsten benachbarten Datenbankknoten entsprechen (Schritt 1504). Der Computer erzeugt auf Grundlage des föderierten Datenbankkonfigurationsmodells eine Datenbankkonfigurationsempfehlung für den neuen Datenbankknoten (Schritt 1506). Der Computer wendet die Empfehlung zur Datenbankkonfiguration auf den neuen Datenbankknoten an (Schritt 1508). Danach terminiert der Prozess.
-
Somit stellen veranschaulichende Ausführungsformen der vorliegenden Erfindung ein computer-implementiertes Verfahren, Computersystem und Computerprogrammprodukt zum Tuning einer Konfiguration eines Datenbankknotens unter Verwendung eines föderierten maschinellen Lernsystems eines selbstorganisierten, Centerless-Netzwerks aus einer Vielzahl von Datenbankknoten bereit. Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung dargestellt, erheben jedoch keinen Anspruch auf Vollständigkeit oder Beschränkung auf die offenbarten Ausführungsformen. Viele Änderungen und Variationen werden für den Fachmann offensichtlich sein, ohne dass der Umfang und der Geist der beschriebenen Ausführungsformen beeinträchtigt werden. Die hier verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erläutern oder um es Fachleuten zu ermöglichen, die hier offenbarten Ausführungsformen zu verstehen.