-
HINTERGRUND
-
Computerdatenbanken sind technisch äußerst anspruchsvoll geworden, so haben sich z.B. die an Datenbanksysteme gestellten Datenverarbeitungsanforderungen rasant erhöht. Datenbanksysteme sind üblicherweise so konfiguriert, dass sie den Prozess des Speicherns von Daten vom Zugreifen, Bearbeiten oder Verwenden von Daten trennen, die in der Datenbank gespeichert sind. Insbesondere verwenden Datenbanken ein Modell, in dem Daten zuerst gespeichert, dann indexiert und dann abgefragt werden. Dieses Modell kann jedoch die Leistungsanforderungen von einigen Echtzeitanwendungen nicht erfüllen. Zum Beispiel kann die Geschwindigkeit, mit der ein Datenbanksystem eingehende Daten empfangen und speichern kann, begrenzen, wie viele Daten verarbeitet oder anderweitig ausgewertet werden können, was wiederum die Nützlichkeit von Datenbankanwendungen begrenzt, die für die Verarbeitung großer Datenmengen in Echtzeit konfiguriert sind.
-
Um dieses Problem zu beheben, bilden sich eine Datenverarbeitung auf Datenstromgrundlage und eine Datenbank-Datenverarbeitung auf Datenstromgrundlage als eine Entwicklungstechnologie für Datenbanksysteme heraus, in denen Produkte verfügbar sind und Benutzern gestatten, Anwendungen zu erstellen, die Datenstromdaten vor dem Erreichen einer Datenbankdatei verarbeiten und abfragen. Mit dieser aufkommenden Technologie können Benutzer eine Verarbeitungslogik angeben, die auf eingehende Datensätze angewendet werden soll, während sie sich „unterwegs“ befinden, wobei die Ergebnisse in Millisekunden verfügbar sind. Ein Konstruieren einer Anwendung unter Verwendung dieses Verarbeitungstyps hat ein neues Programmier-Paradigma eröffnet, das die Entwicklung einer breiten Vielfalt von innovativen Anwendungen, Systemen und Prozessen ermöglichen wird, sowie neue Herausforderungen für Anwendungsprogrammierer und Datenbankentwickler darstellt.
-
Messen der Leistung einer Anwendung auf Datenstromgrundlage ermöglicht es festzustellen, ob die Anwendung auf Datenstromgrundlage in einer optimierten Weise arbeitet. In einer Anwendung auf Datenstromgrundlage werden „Tupel“ von Daten über einen Datenstrom empfangen und über Verarbeitungselemente (PEs) weitergeleitet, die Operationen an den Tupeln vornehmen und die Tupel dann an ein anderes Verarbeitungselement zur weiteren Verarbeitung übersenden. Eine Technik zum Messen der Leistung einer Anwendung auf Datenstromgrundlage bezieht ein Ermitteln eines Durchsatzes der Tupel ein, die über den Datenstrom empfangen werden, z.B. kann eine bestimmte Anwendung auf Datenstromgrundlage als effizient betrachtet werden, wenn einhundert Tupel pro Minute von einem oder mehreren PEs vollständig verarbeitet werden. Leider kann diese Maßzahl alleine nicht für die Angabe verwendet werden, um anzugeben, ob die Anwendung auf Datenstromgrundlage in einer optimierten Weise arbeitet, da verschiedene Bedingungen die Geschwindigkeit beeinflussen, mit der Tupel in dem Datenstrom ankommen. Zum Beispiel schwankt die Anzahl von Tupeln, die über einen Really-Simple-Syndication- (RSS-) Feed (d.h. einen Datenstrom) empfangen werden, abhängig von der Tageszeit, da Nachrichtenartikel oft häufiger zu bestimmten Tageszeiten erzeugt werden, z.B. am Morgen und abends. Demzufolge kann ein Benutzer fälschlicherweise gewarnt werden, dass es bei der Anwendung auf Datenstromgrundlage Probleme gibt, selbst wenn die Anwendung auf Datenstromgrundlage in einer optimierten Weise arbeitet.
-
Aus
US 2011 / 0 167 148 A1 sind ein System und ein Verfahren zum Verflechten von Überwachungsdaten von einem Server und einem Client des Servers bekannt. Dazu werden wenigstens Teile der beiden Datenströme zwischengespeichert.
-
Aus WATERS, Christopher; HOWELL, Jonathan; JANKUN-KELLY, T. J. CluVis: dual-domain visual exploration of cluster/network metadata. In: Proceedings of the 45th annual southeast regional conference. ACM, 2007. S. 272-276. doi: 10.1145/1233341.1233390 ist ein System und Verfahren bekannt zur Videoüberwachung und -untersuchung von Metadaten im Netz.
-
Ausgehend von diesem Stand der Technik stellt sich die Erfindung die Aufgabe, die Leistung eines Datenverarbeitungssystems zu erfassen und in Abhängigkeit von der ermittelten Leistung gegebenenfalls die Konfiguration des Systems zu verbessern.
-
Diese Aufgabe wird erfindungsgemäß gelöst durch ein in einem Datenverarbeitungssystem auf Datenstromgrundlage umgesetztes Verfahren nach Anspruch 1 sowie ein System nach Anspruch 11 und ein Computerprogrammprodukt nach Anspruch 12. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der Unteransprüche.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die Erfindung stellt eine Technik zum Berechnen von Leistungsmaßzahlen bereit, die einem Datenstrom zugehörig sind. Die Technik umfasst die Schritte des Empfangens an einem ersten Verarbeitungselement, das so konfiguriert ist, dass es Datentupel verarbeitet, die durch das Datenverarbeitungssystem auf Datenstromgrundlage fließen, von einem oder mehreren Tupeln, die einem ersten Datenstrom zugehörig sind, des Verarbeitens jedes des einen oder der mehreren Tupel an dem ersten Verarbeitungselement, des Zuordnens jedes des einen oder der mehreren Tupel zu Metadaten, die Informationen in Bezug auf die Verarbeitung des Tupels durch das erste Verarbeitungselement enthalten, des Berechnens von Leistungsmaßzahlen auf der Grundlage der Metadaten, die zu dem einen oder den mehreren Tupeln zugehörig sind, und des Anzeigens der berechneten Leistungsmaßzahlen über eine Benutzerschnittstelle auf einer Anzeigeeinheit.
-
Die Erfindung stellt außerdem ein System zur Durchführung des Verfahrens bereit.
-
Die Erfindung stellt in Form eines Computerprogrammprodukts zusätzlich ein nichtflüchtiges computerlesbares Speichermedium bereit, das Anweisungen enthält, um ein Computersystem zu veranlassen, eines oder mehrere der oben dargelegten Verfahren auszuführen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die Erfindung wird anschließend mit Bezug auf die beigefügten Zeichnungen anhand von bevorzugten Ausführungsformen erläutert.
- Die 1A bis 1B veranschaulichen eine Datenverarbeitungsinfrastruktur, die so konfiguriert ist, dass sie eine Datenstrom-Datenbankanwendung gemäß einer Ausführungsform der Erfindung ausführt.
- 2 veranschaulicht einen Datenverarbeitungsknoten gemäß einer Ausführungsform der Erfindung.
- 3 veranschaulicht ein Managementsystem gemäß einer Ausführungsform der Erfindung.
- 4 veranschaulicht einen Operator-Graphen, in dem Leistungsmaßzahlen, die zu einem oder mehreren Datenströmen zugehörig sind, gemäß einer Ausführungsform der Erfindung berechnet werden.
- 5 ist ein Ablaufplan eines Verfahrens zum Berechnen von einer oder mehreren Leistungsmaßzahlen, die zu einem Datenstrom zugehörig sind, gemäß einer Ausführungsform der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der Erfindung stellen Techniken zum Ermitteln von verschiedenen Leistungsmaßzahlen bereit, die einer Anwendung auf Datenstromgrundlage zugehörig sind. Im Kontext dieser Offenbarung enthält eine Anwendung auf Datenstromgrundlage ein oder mehrere Verarbeitungselemente, die einen Datenstrom empfangen, wobei der Datenstrom Tupel zu einem oder den mehreren Verarbeitungselementen befördert. Jedes Verarbeitungselement kann im Allgemeinen ein Tupel (oder mehrere Tupel) empfangen und ein Tupel (oder mehrere Tupel) zu anderen Verarbeitungselementen senden. Die gesendeten Tupel können durch das Verarbeitungselement unverändert bleiben, aber es können auch neue oder modifizierte Tupel erzeugt werden. Tupel, die in dem Datenstrom enthalten sind, werden mit Metadaten-Tags gekennzeichnet, wenn sie von dem einen oder den mehreren Verarbeitungselementen verarbeitet werden, was einen Datenstrom-Leistungsmanager in die Lage versetzt, die verschiedenen Leistungsmaßzahlen zu identifizieren, die zu dem Datenstrom zugehörig sind. Als Ergebnis dessen können die verschiedenen Leistungsmaßzahlen verwendet werden, um die Leistung der Anwendung auf Datenstromgrundlage zu ermitteln und potenzielle Verarbeitungsengpässe in der Anwendung auf Datenstromgrundlage zu identifizieren. Des Weiteren können Anpassungen an der Anwendung auf Datenstromgrundlage automatisch auf der Grundlage der verschiedenen Leistungsmaßzahlen vorgenommen werden, um die Verarbeitungsengpässe abzumildern.
-
Die 1A bis 1B veranschaulichen eine Datenverarbeitungsinfrastruktur 100, die so konfiguriert ist, dass sie eine Anwendung auf Datenstromgrundlage gemäß einer Ausführungsform der Erfindung ausführt. Wie gezeigt, enthält die Datenverarbeitungsinfrastruktur ein Managementsystem 105 und eine Vielzahl von Datenverarbeitungsknoten 1301-4, die jeweils mit einem Datenübertragungsnetzwerk 120 verbunden sind. Außerdem enthält das Managementsystem 105 einen Operator-Graphen 132 und einen Datenstrom-Manager 143. Der Operator-Graph 132 stellt eine Anwendung auf Datenstromgrundlage beginnend ab einem oder mehreren Quellen-Verarbeitungselementen (PEs) bis zu einem oder mehreren Senken-PEs dar. Datenelemente fließen in ein Quellen-PE einer Anwendung auf Datenstromgrundlage und werden von diesem PE verarbeitet. Üblicherweise empfangen Verarbeitungselemente ein N-Tupel von Datenelementen aus dem Datenstrom und senden auch ein N-Tupel von Datenelementen in den Datenstrom (ausgenommen ein Senken-PE, an dem der Datenstrom endet). Selbstverständlich muss das von einem Verarbeitungselement empfangene N-Tupel nicht dasselbe N-Tupel sein, das stromabwärts geschickt wird. Und die Verarbeitungselemente könnten so konfiguriert sein, dass sie Daten in anderen Formaten als ein N-Tupel empfangen oder senden (z.B. könnten die Verarbeitungselemente Daten austauschen, die als XML-Dokumente formatiert sind). Außerdem kann jedes Verarbeitungselement so konfiguriert sein, dass es jede Form von Datenverarbeitungsfunktionen an dem empfangenen Tupel ausführt, einschließlich z. B. Schreiben in Datenbanktabellen oder Ausführen anderer Datenbankoperationen wie Datenverknüpfungen, -aufteilungen, -lesevorgänge usw. sowie Ausführen anderer Datenanalysefunktionen oder Operationen.
-
Der Datenstrom-Manager 134 kann so konfiguriert werden, dass er eine Anwendung auf Datenstromgrundlage überwacht, die auf den Datenverarbeitungsknoten 1301-4 läuft, sowie die Struktur des Operator-Graphen 132 ändert. Zum Beispiel kann der Datenstrom-Manager 134 Verarbeitungselemente (PEs) von einem Datenverarbeitungsknoten 130 zu einem anderen verschieben, um z.B. die Verarbeitungslasten der Datenverarbeitungsknoten 130 in der Datenverarbeitungsinfrastruktur 100 zu verwalten. Ferner kann der Datenstrom-Manager 134 die Anwendung auf Datenstromgrundlage durch Einfügen, Entfernen, Zusammenlegen, Rückgängigmachen der Zusammenlegung oder anderweitiges Modifizieren der Verarbeitungselemente (oder welche Daten-Tupel auch immer zu den Verarbeitungselementen fließen) steuern, die auf den Datenverarbeitungsknoten 1301-4 laufen.
-
1B veranschaulicht einen beispielhaften Operator-Graphen, der zehn Verarbeitungselemente (die als PE1 bis PE10 bezeichnet werden) enthält, die auf den Datenverarbeitungsknoten 1301-4 laufen. Zwar kann ein Verarbeitungselement als ein unabhängig laufender Prozess (mit seiner eigenen Prozess-ID (PID) und eigenem Speicherplatz) ausgeführt werden, doch können mehrere Verarbeitungselemente zusammengelegt werden, um als einzelner Prozess zu laufen (mit einer PID und Speicherplatz). In Fällen, in denen zwei (oder mehr) Verarbeitungselemente unabhängig voneinander laufen, kann eine zwischen Prozessen ablaufende Datenübertragung unter Verwendung eines Netzwerk-Socket (z.B. ein TCP/IP-Socket) auftreten. Allerdings können die zusammengelegten Verarbeitungselemente schnellere Datenübertragungstechniken zum Übergeben von N-Tupeln (oder anderen Daten) zwischen Verarbeitungselementen (und Operatoren in jedem Verarbeitungselement) verwenden, wenn Prozesse zusammengelegt werden.
-
Wie gezeigt, beginnt der Operator-Graph an PE1, das aus der Quelle 135 liest, und an PE6 und PE10 endet, die beide in die Senke 1401-2 schreiben. Der Datenverarbeitungsknoten 1301 enthält die Quelle PE1 zusammen mit PE2 und PE3. Die Quelle PE1 sendet Tupel, die von PE2 und PE3 empfangen werden. Zum Beispiel kann PE1 Datenelemente, die in einem Tupel empfangen werden, aufteilen und einige Datenelemente an PE2, andere an PE3 übergeben. Daten, die zu PE2 fließen, führen zu Tupeln, die an PE4 auf dem Datenverarbeitungsknoten 1302 gesendet werden. Und Datentupel, die von PE4 gesendet werden, fließen zur Senke PE6, die in die Senke 1401 schreibt. Auf ähnliche Weise erreichen auch Tupel, die von PE3 zu PE5 fließen, die Senke PE6, die in die Senke 1401 schreibt. Daher könnte PE6 zusätzlich dazu, dass es eine Senke für diese beispielhafte Operator-Grafik ist, so konfiguriert werden, dass es eine Join-Operation (Verknüpfung) ausführt, die Tupel kombiniert, die von PE4 und PE5 empfangen werden. Diese beispielhafte Operator-Grafik zeigt auch Datentupel, die von PE3 nach PE7 auf dem Datenverarbeitungsknoten 1303 fließen, der selbst Datentupel zeigt, die zu PE8 fließen und in einer Schleife zu PE7 zurückkehren. Datentupel, die von PE8 gesendet werden, fließen zu PE9 auf dem Datenverarbeitungsknoten 1304, der Tupel sendet, die durch die Senke PE10 verarbeitet werden, die in die Senke 1402 schreibt.
-
2 ist eine detailliertere Ansicht des Datenverarbeitungsknotens 130 der 1 A bis 1 B gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält der Datenverarbeitungsknoten 130 ohne Einschränkung eine zentrale Verarbeitungseinheit (CPU) 205, eine Netzwerkschnittstelle 215, eine Verbindung 220, einen Arbeitsspeicher (Memory) 225 und einen Datenspeicher (Storage) 230. Der Datenverarbeitungsknoten 130 kann auch eine E/A-Einheitenschnittstelle 210 enthalten, die zum Verbinden der E/A-Einheiten 212 (z.B. Tastatur-, Anzeige- und Mauseinheiten) mit dem Datenverarbeitungsknoten 130 verwendet wird.
-
Die CPU 205 ruft Programmieranweisungen ab, die in dem Speicher 225 gespeichert sind, und führt sie aus. Auf ähnliche Weise speichert die CPU 205 Anwendungsdaten, die sich in dem Arbeitsspeicher 225 befinden, und ruft sie ab. Die Verbindung 220 wird zum Übertragen von Programmieranweisungen und Anwendungsdaten zwischen der CPU 205, der E/A-Einheitenschnittstelle 210, dem Datenspeicher 230, der Netzwerkschnittstelle 215 und dem Arbeitsspeicher 225 verwendet. Die enthaltene CPU 205 steht stellvertretend für eine einzelne CPU, mehrere CPUs, eine einzelne CPU mit mehreren Verarbeitungskernen und dergleichen. Und der enthaltene Arbeitsspeicher 225 steht im Allgemeinen stellvertretend für einen Direktzugriffspeicher. Der Datenspeicher 230 wie beispielsweise ein Festplattenlaufwerk, eine Solid-State-Einheit (SSD) oder ein Flash-Speicher-Speicherlaufwerk kann nichtflüchtige Daten speichern.
-
In diesem Beispiel enthält der Arbeitsspeicher 225 ein zusammengelegtes Verarbeitungselement (PE) 235, einen Datenstromknoten 245, einen Datenstrom-Leistungsmonitor 248 und Datenstrom-Verbindungsdaten 255. Der Datenstromknoten 245 enthält eine Sammlung von Operatoren 240. Jeder Operator 240 kann einen kleinen Datenblock (Chunk) von ausführbarem Code enthalten, der so konfiguriert ist, dass er Daten verarbeitet, die in ein Verarbeitungselement fließen (z.B. PE 235) und Daten an andere Operatoren 240 in diesem PE und zu anderen PEs in der Anwendung auf Datenstromgrundlage sendet. Derartige PEs können auf demselben Datenverarbeitungsknoten 130 oder auf anderen Datenverarbeitungsknoten liegen, auf die über das Datenübertragungsnetzwerk 120 zugegriffen wird.
-
Der Datenstrom-Leistungsmonitor 248 ist so konfiguriert, dass er Tupel, die über einen Datenstrom empfangen werden, mit Metadaten-Tags kennzeichnet, die es einem nachstehend in Verbindung mit den 3 bis 5 ausführlich beschriebenen Datenstrom-Leistungsmanager ermöglichen, verschiedene Leistungsmaßzahlen zu identifizieren, die zu dem Datenstrom zugehörig sind. Die Datenstrom-Verbindungsdaten 255 stellen die Verbindungen zwischen PEs auf dem Datenverarbeitungsknoten 130 dar (z.B. eine TCP/IP-Socket-Verbindung) sowie Verbindungen zu anderen Datenverarbeitungsknoten 130 mit stromaufwärts und stromabwärts liegenden PEs in der Anwendung auf Datenstromgrundlage, ebenfalls über TCP/IP-Sockets (oder andere zwischen Prozessen ablaufende Datenübertragungsmechanismen).
-
Gepufferte Datenstromdaten 260 stellen einen Speicherplatz für Daten dar, die von stromaufwärts liegenden Verarbeitungselementen (oder von einer Datenquelle für die Anwendung auf Datenstromgrundlage) in den Datenverarbeitungsknoten 105 fließen. Zum Beispiel können gepufferte Datenstromdaten Daten-Tupel enthalten, die darauf warten, von einem Verarbeitungselement wie PE 235 verarbeitet zu werden. Die gepufferten Datenstromdaten 260 können auch die Ergebnisse einer durch PE 235 ausgeführten Datenverarbeitung speichern, die an stromabwärts liegende Verarbeitungselemente (oder eine Lastabgabestelle an stromabwärts liegenden Verarbeitungselementen) gesendet werden.
-
3 ist eine detailliertere Ansicht des Managementsystems 105 von 1 gemäß einer Ausführungsform der Erfindung. Wie gezeigt, enthält das Managementsystem 105 ohne Einschränkung eine zentrale Verarbeitungseinheit (CPU) 305, eine Netzwerkschnittstelle 315, eine Verbindung 320, einen Arbeitsspeicher (Memory) 325 und einen Datenspeicher (Storage) 330. Das Client-System 310 kann auch eine E/A-Einheitenschnittstelle 310 enthalten, die die E/A-Einheiten 312 (z.B. Tastatur-, Anzeige- und Mauseinheiten) mit dem Managementsystem 105 verbindet.
-
Wie die CPU 205 von 2 ist die CPU 305 so konfiguriert, dass sie Programmieranweisungen abruft, die in dem Arbeitsspeicher 325 und in dem Datenspeicher 330 gespeichert sind, und sie ausführt. Auf ähnliche Weise ist die CPU 305 so konfiguriert, dass sie Anwendungsdaten, die sich in dem Arbeitsspeicher 325 und in dem Datenspeicher 330 befinden, speichert und abruft. Die Verbindung 320 ist so konfiguriert, dass sie Daten, wie beispielsweise Programmieranweisungen und Anwendungsdaten, zwischen der CPU 305, der E/A-Einheitenschnittstelle 310, dem Datenspeicher 330, der Netzwerkschnittstelle 305 und dem Arbeitsspeicher 325 verschiebt. Wie die CPU 205 steht die enthaltene CPU 305 stellvertretend für eine einzelne CPU, mehrere CPUs, eine einzelne CPU mit mehreren Verarbeitungskernen und dergleichen. Der enthaltene Speicher 325 steht im Allgemeinen stellvertretend für einen Direktzugriffspeicher. Die Netzwerkschnittstelle 315 ist so konfiguriert, dass sie Daten über das Datenübertragungsnetzwerk 120 überträgt. Obwohl er als einzelne Einheit gezeigt ist, kann der Datenspeicher 330 eine Kombination aus festen und/oder austauschbaren Speichereinheiten sein wie beispielsweise Festplattenlaufwerke, austauschbare Speicherkarten, optische Speicher, SSD- oder Flash-Speichereinheiten, netzgebundener Speicher (NAS) oder Verbindungen zu Speicherbereichsnetz- (SAN-) Einheiten.
-
Wie gezeigt, sind im Arbeitsspeicher 325 ein Datenstrom-Manager 134 und einen Datenstrom-Leistungsmanager 335 gespeichert. Der Datenspeicher 330 enthält einen Operator-Graphen 132. Der Operator-Graph 132 stellt eine Anwendung auf Datenstromgrundlage beginnend ab einem oder mehreren Quellen-Verarbeitungselementen (PEs) bis zu einem oder mehreren Senken-PEs dar. In einer Ausführungsform überwacht der Datenstrom-Manager 134 eine Anwendung auf Datenstromgrundlage, die auf den Datenverarbeitungsknoten 1301-4 läuft, und ändert die Struktur des Operator-Graphen 132 nach Bedarf. Zum Beispiel kann der Datenstrom-Manager 134 Verarbeitungselemente (PEs) von einem Datenverarbeitungsknoten 130 zu einem anderen verschieben, um z.B. die Verarbeitungslasten der Datenverarbeitungsknoten 130 in der Datenverarbeitungsinfrastruktur 100 zu verwalten. Ferner kann der Datenstrom-Manager 134 die Anwendung auf Datenstromgrundlage durch Einfügen, Entfernen, Zusammenlegen, Rückgängigmachen der Zusammenlegung oder anderweitiges Modifizieren der Verarbeitungselemente (oder welche Daten-Tupel auch immer zu den Verarbeitungselementen fließen) steuern, die auf den Datenverarbeitungsknoten 1301-4 laufen.
-
Der Datenstrom-Leistungsmanager 335 ist so konfiguriert, dass er die Metadaten analysiert, die als Tags mit Tupeln verbunden sind, indem einer oder mehrere Datenstrom-Leistungsmonitore 248 verwendet werden. Durch eine derartige Analyse berechnet der Datenstrom-Leistungsmanager 335 nützliche Leistungsmaßzahlen, die dem Datenstrom zugehörig sind, in dem Tupel empfangen werden. Zum Beispiel kann der Datenstrom-Leistungsmanager 335 so konfiguriert werden, dass er einen Gesamtbetrag von Zeit ermittelt, die ein Tupel für das Zurücklegen des Wegs zwischen zwei bestimmten PEs braucht, die in einem Operator-Graphen enthalten sind, um einen Gesamtbetrag von Zeit zu ermitteln, die ein Tupel für das Zurücklegen des Wegs zwischen einer Gruppe von PEs benötigt, um einen Gesamtbetrag von Zeit zu ermitteln, die ein Tupel für das Durchlaufen aller in einem Operator-Graphen enthaltenen PEs benötigt und/oder um einen Gesamtbetrag von Zeit zu ermitteln, die ein Tupel zum Durchlaufen von zwei oder mehr Datenverarbeitungsknoten benötigt. Der Datenstrom-Leistungsmanager 335 kann auch so konfiguriert sein, dass er eine Gesamtanzahl von Operatoren ermittelt, die ein bestimmtes Tupel durchläuft, um eine Gesamtanzahl zu berechnen, wie oft jedes Attribut des Tupels aktualisiert wird und/oder um absolute doppelte oder teilweise doppelte Datenströme in einem oder mehreren PEs, Operator-Graphen oder Datenverarbeitungsknoten zu identifizieren.
-
Vorteilhafterweise können diese Leistungsmaßzahlen zum Identifizieren von Verarbeitungs-Leistungsschwächen in einer Anwendung auf Datenstromgrundlage verwendet werden. Wenn zum Beispiel eine Verringerung in dem Durchsatz von Tupeln, die über einen Datenstrom empfangen werden, auf der Grundlage von einer oder mehreren der obigen Leistungsmaßzahlen erkannt wird, kann eine weitere Analyse der Attribute von Tupeln, die über den Datenstrom empfangen werden - in Verbindung mit einer Analyse dessen, wie die Daten in der Anwendung auf Datenstromgrundlage verarbeitet werden - von dem Datenstrom-Manager 134 verwendet werden, um automatisch das Erstellen von zusätzlichen Datenstrompfaden zu veranlassen in dem Versuch, den Tupel-Durchsatz des Datenstroms wiederherzustellen. In einem Beispiel werden Tupel, die über den Datenstrom ankommen, an einem Namensattribut von entweder „RYAN“ oder „JOHN“ aufgeteilt, was üblicherweise zu einer gleichmäßigen Verteilung der Tupel über die Anwendung auf Datenstromgrundlage führt. Die Anwendung auf Datenstromgrundlage kann jedoch an einem Punkt aufgrund einer unregelmäßigen Verteilung des Empfangens nur von Tupeln mit einem Namensattribut „JOHN“ überlastet sein. In diesem Fall kann z.B. durch den Datenstrom-Manager 134 automatisch ein weiterer Pfad zum Verarbeiten von Tupeln mit dem Namensattribut „JOHN“ erstellt werden, um die Verteilung von Tupeln in der Anwendung auf Datenstromgrundlage auszugleichen. Die aktualisierte Konfiguration der Anwendung auf Datenstromgrundlage wird dann durch den Datenstrom-Leistungsmanager 335 stichprobenartig geprüft, um zu ermitteln, ob die aktualisierte Konfiguration die Durchsatz-Leistungsschwächen abgemildert hat. 4 veranschaulicht einen Operator-Graphen 400, in dem Leistungsmaßzahlen, die zu einem oder mehreren Datenströmen zugehörig sind, gemäß einer Ausführungsform der Erfindung berechnet werden. Wie gezeigt, fließen die Datenströme 4021-6 von PE 404 zu PE 406, wobei PE 406 die Datenströme 4021-3 zur Verarbeitung an PE 408 und die Datenströme 4024-6 zur Verarbeitung an PE 410 verteilt. Wie oben beschrieben, sind einer oder mehrere Datenstrom-Leistungsmonitore wie der Datenstrom-Leistungsmonitor 430 so konfiguriert, dass sie Tupel, die über die Datenströme 402 empfangen und durch die PEs 404, 406, 408, 410 und 412 verarbeitet werden, mit Metadaten-Tags kennzeichnen. Auf diese Weise ist der Datenstrom-Leistungsmanager 335 in der Lage, verschiedene Leistungsmaßzahlen für die Datenströme 402, die PEs 404, 406, 408, 410 und 412, den Operator-Graphen 400 und einen oder mehrere Datenverarbeitungsknoten zu berechnen, die die PEs 404, 406, 408, 410 und 412 (nicht gezeigt) ausführen.
-
Wenn in dem in 4 gezeigten Beispiel PE 408 und PE 410 jeweils die Datenströme 4021-3 und die Datenströme 4024-6 verarbeiten, werden sie als die Datenströme 4021-3' und die Datenströme 4024-6' ausgegeben und zur weiteren Verarbeitung an PE 412 übersandt. Wenn PE 412 die Datenströme 4021-6' verarbeitet, werden sie als die Datenströme 4021-6'' ausgegeben, wobei die Datenströme 4021-5'' an PE 414 übersandt werden und die Datenströme 4026'' in einer „Schleife“ zur weiteren Verarbeitung durch PE 410 zu PE 410 zurückgeführt werden, wobei PE 410 optional den Datenstrom 4026''' an PE 412 ausgeben kann.
-
In einer Ausführungsform ist jedes der PEs, z.B. PE 408, unter dem Betrieb eines zugehörigen Datenstrom-Leistungsmonitors 430 so konfiguriert, dass jedes am PE 408 empfangene Tupel zuerst mit einem Tag von Metadaten gekennzeichnet wird, die 1) eine zu PE 408 zugehörige Kennungs- (ID) Nummer, 2) eine ID-Nummer des Operator-Graphen, in dem PE 408 enthalten ist (d.h. der Operator-Graph 400), 3) eine ID-Nummer des Datenverarbeitungsknotens, in dem das PE 408 ausgeführt wird (nicht gezeigt), und 4) einen Zeitstempel enthalten, der einen Zeitpunkt angibt, an dem das Tupel von PE 408 empfangen wurde. Vor dem Ausgeben des verarbeiteten Tupels kennzeichnet PE408 unter dem Betrieb des zugehörigen Datenstrom-Leistungsmonitors 430 das verarbeitete Tupel mit zusätzlichen Metadaten, die einen aktuellen Zeitstempel und die oben beschriebenen IDs angeben. Wenn daher das Tupel zu dem nachfolgenden PE 412 übertragen wird, ist der Datenstrom-Leistungsmanager 335 auch in der Lage, über einen Datenstrom-Leistungsmonitor 430, der zu PE 412 zugehörig ist, für PE 408 den Zeitbetrag für die Verarbeitung des Tupels zu ermitteln.
-
Wie oben beschrieben, werden die vorgenannten Metadaten von dem Datenstrom-Manager 335 zum Ermitteln einer Vielfalt von Leistungsmaßzahlen verwendet. In einem Beispiel ermittelt der Datenstrom-Manager 335 einen Gesamtbetrag von Zeit, die ein Tupel für das Zurücklegen des Wegs zwischen zwei spezifischen PE benötigt, die in einem Operator-Graphen enthalten sind, z.B. PE 404 und PE 412, die in dem Operator-Graphen 400 enthalten sind. Für diese Ermittlung ruft der Datenstrom-Manager 335 aus den Metadaten des Tupels die Zeitstempel ab, die den IDs von PE 404 und PE 412 zugehörig sind, und berechnet eine Differenz zwischen den Zeitstempeln, wobei die Differenz den Zeitbetrag darstellt, den das Tupel für das Zurücklegen des Wegs zwischen PE 404 und PWE 412 benötigt.
-
In einem weiteren Beispiel ermittelt der Datenstrom-Manager 335 einen Gesamtbetrag von Zeit, die ein Tupel für das Zurücklegen des Wegs zwischen einer Gruppe von PEs benötigt, d.h. drei oder mehr PEs, die in einer Operator-Grafik enthalten sind, z.B. PEs 410, 412 und 414. Für diese Ermittlung analysiert der Datenstrom-Manager 335 die Organisation der Operator-Grafik 400, um einen Anfangspunkt und einen Endpunkt der Gruppe von PEs, d.h. PE 410 und PE 412 zu ermitteln, ruft dann aus den Metadaten des Tupels die Zeitstempel ab, die den IDS der PEs 410 und 412 zugehörig sind, und berechnet eine Differenz zwischen den Zeitstempeln, wobei die Differenz den Zeitbetrag darstellt, den das Tupel für das Zurücklegen des Wegs zwischen der Gruppe der PEs 410, 412 und 414 benötigt.
-
In einem weiteren Beispiel ermittelt der Datenstrom-Manager 335 einen Gesamtbetrag von Zeit, die ein Tupel für das Durchlaufen aller PEs in einer Operator-Grafik benötigt, z.B. PEs 404, 406, 408, 410 und 412, die in der Operator-Grafik 400 enthalten sind. Für diese Ermittlung analysiert der Datenstrom-Manager 335 die Organisation der Operator-Grafik 400, um einen Anfangspunkt und einen Endpunkt der Operator-Grafik zu ermitteln, d.h. PE 404 und PE 412, ruft dann aus den Metadaten des Tupels die Zeitstempel ab, die den IDS der PEs 404 und 412 zugehörig sind, und berechnet eine Differenz zwischen den Zeitstempeln, wobei die Differenz den Zeitbetrag darstellt, den das Tupel für das Durchlaufen der Operator-Grafik 400 benötigt.
-
In einem weiteren Beispiel ermittelt der Datenstrom-Manager 335 einen Gesamtbetrag von Zeit, den ein Tupel zum Durchlaufen von zwei oder mehr Datenverarbeitungsknoten (nicht gezeigt) benötigt. In einem Beispiel werden die PEs 404 und 406 auf einem ersten Datenverarbeitungsknoten ausgeführt, wogegen die PEs 408, 410 und 412 auf einem zweiten Datenverarbeitungsknoten ausgeführt werden. Zum Ermitteln des Zeitbetrags, den ein Tupel für das Zurücklegen des Wegs zwischen dem ersten Datenverarbeitungsknoten und dem zweiten Datenverarbeitungsknoten benötigt, ruft der Datenstrom-Manager aus den Metadaten des Tupels die Zeitstempel ab, die den IDs des ersten Datenverarbeitungsknotens und des zweiten Datenverarbeitungsknotens zugehörig sind, und berechnet eine Differenz zwischen den Zeitstempeln, wobei die Differenz den Zeitbetrag darstellt, den das Tupel für das Zurücklegen des Wegs zwischen dem ersten Datenverarbeitungsknoten und dem zweiten Datenverarbeitungsknoten benötigt.
-
In einem weiteren Beispiel ermittelt der Datenstrom-Manager 335 eine Gesamtanzahl von Operatoren, die ein bestimmtes Tupel durchläuft. Für diese Ermittlung bezieht sich der Datenstrom-Manager 335 auf die Metadaten des Tupels und analysiert die darin enthaltenen Zeitstempel/IDs, um Zählwerte für ein oder mehrere PEs, Operator-Graphen und Datenverarbeitungsknoten zu erhalten, die das Tupel verarbeiten, wobei jeder Zählwert angibt, wie oft die zugehörige Entität das Tupel verarbeitet hat.
-
Außerdem ist jedes der PEs, z.B. PE 408, unter dem Betrieb eines zugehörigen Datenstrom-Leistungsmonitors 430 so konfiguriert, dass jedes Tupel, das an PE 408 empfangen wird, mit Metadaten-Tags gekennzeichnet wird, die angeben, wie oft jedes Datenattribut des Tupels geändert worden ist. Wenn zum Beispiel ein Tupel ein erstes, zweites und drittes Attribut hat und PE 408 das erste und zweite Attribut des Tupels aktualisiert, werden ein Zähler für das erste Attribut und ein Zähler für das zweite Attribut erhöht. Dementsprechend bezieht sich der Datenstrom-Leistungsmanager 335 auf diese Metadaten, um eine Gesamtanzahl zu berechnen, wie oft jedes Attribut des Tupels aktualisiert wird, wenn das Tupel z. B. den Operator-Graphen 400 durchläuft.
-
Der Datenstrom-Leistungsmanager 335 ist ferner so konfiguriert, dass er die vorhergehenden Metadaten analysiert, um absolute doppelte oder teilweise doppelte Datenströme in einem oder mehreren PEs, Operator-Graphen oder Datenverarbeitungsknoten zu identifizieren. Insbesondere analysiert der Datenstrom-Leistungsmanager 335 die Zeitstempel und IDs, die in den Metadaten enthalten sind, die zwei oder mehreren Tupeln zugehörig sind - zusammen mit Datenattributen der zwei oder der mehreren Tupel - um Ähnlichkeiten zwischen den zwei oder den mehreren Tupeln zu identifizieren. Wenn zum Beispiel ein erstes Tupel angibt, dass ein erstes Verarbeitungselement das erste Tupel zum Zeitpunkt X verarbeitet, während ein zweites Tupel angibt, dass ein zweites Verarbeitungselement ein zweites Tupel zum Zeitpunkt X verarbeitet, wobei das erste Tupel und das zweite Tupel identische Attribute haben, kann der Datenstrom-Leistungsmanager 335 einem Benutzer angeben, dass aufgrund des Vorhandenseins von doppelten Tupeln in einem Datenstrom ein potenzieller Verarbeitungsengpass besteht.
-
5 ist ein Ablaufplan eines Verfahrens 500 zum Berechnen von einer oder mehreren Leistungsmaßzahlen, die einem Datenstrom zugehörig sind, gemäß einer Ausführungsform der Erfindung. In einer Ausführungsform werden die Verfahrensschritte 500 durch einen Datenstrom-Leistungsmanager 335 ausgeführt. Wie gezeigt, beginnt das Verfahren 500 in Schritt 502, indem der Datenstrom-Leistungsmanager 335 eine Verbindung mit einem Datenstrom herstellt, der eine Vielzahl von Tupeln bereitstellt. In Schritt 504 stellt der Datenstrom-Leistungsmanager 3335 das erste in der Vielzahl von Tupeln enthaltene Tupel als ein aktuelles Tupel ein. In Schritt 506 kennzeichnet der Datenstrom-Leistungsmanager 335 das aktuelle Tupel mit Metadaten-Tags von Leistungsmaßzahlen gemäß den Techniken, die oben in Verbindung mit 4 beschrieben worden sind.
-
In Schritt 508 ermittelt der Datenstrom-Leistungsmanager 335, ob weitere Tupel in der Vielzahl von Tupeln enthalten sind. Wenn der Datenstrom-Leistungsmanager 335 in Schritt 508 ermittelt, dass weitere Tupel in der Vielzahl von Tupeln enthalten sind, fährt das Verfahren 500 mit Schritt 510 fort, in dem der Datenstrom-Leistungsmanager 335 ein nächstes Tupel, das in der Vielzahl von Tupeln enthalten ist, als das aktuelle Tupel einstellt. Die Verfahrensschritte 508 bis 510 werden wiederholt, bis jedes in der Vielzahl von Tupeln enthaltene Tupel mit Metadaten-Tags von Leistungsmaßzahlen gekennzeichnet ist.
-
In Schritt 512 empfängt der Datenstrom-Leistungsmanager 335 eine Anforderung von einem Benutzer, eine oder mehrere Leistungsmaßzahlen zu berechnen, die zu dem Datenstrom zugehörig sind. Diese Anforderung kann zum Beispiel durch einen Benutzer erzeugt werden, der auf eine durch den Datenstrom-Manager 335 bereitgestellte Benutzerschnittstelle zugreift, wobei der Benutzer in der Lage ist, bestimmte Leistungsmaßzahlen auszuwählen, die angezeigt werden sollen. Der Benutzer kann über die Benutzerschnittstelle auch Werte angeben, die die Leistungsmaßzahlen eingrenzen, wie beispielsweise IDs von Verarbeitungselementen, Operator-Graphen und Datenverarbeitungsknoten.
-
In Schritt 514 analysiert der Datenstrom-Leistungsmanager 335 die Metadaten, die einem oder mehreren Tupeln zugehörig sind, um eine oder mehrere Leistungsmaßzahlen zu berechnen, wie beispielsweise die oben in Verbindung mit 4 beschriebenen Leistungsmaßzahlen. In Schritt 516 zeigt der Datenstrom-Leistungsmanager 335 dem Benutzer die eine oder die mehreren Leistungsmaßzahlen über die Schnittstelle auf z.B. einer Anzeigeeinheit an.
-
Ausführungsformen der Erfindung stellen Techniken zum Ermitteln von verschiedenen Leistungsmaßzahlen bereit, die einer Anwendung auf Datenstromgrundlage zugehörig sind. Insbesondere werden Tupel, die in einem Datenstrom enthalten sind, mit Metadaten-Tags gekennzeichnet, wenn sie von dem einen oder den mehreren Verarbeitungselementen verarbeitet werden, was einen Datenstrom-Leistungsmanager in die Lage versetzt, die verschiedenen Leistungsmaßzahlen zu identifizieren, die dem Datenstrom zugehörig sind. Daraufhin können die verschiedenen Leistungsmaßzahlen verwendet werden, um den fehlerfreien Zustand und die Leistung der Anwendung auf Datenstromgrundlage zu ermitteln und potenzielle Verarbeitungsengpässe in der Anwendung auf Datenstromgrundlage zu identifizieren.