-
HINTERGRUND
-
Großangelegte Datenverarbeitung ist in Webunternehmen sowie innerhalb verschiedener Branchen mittlerweile stark verbreitet. Großangelegte Datenverarbeitung kann parallele Verarbeitung enthalten, die im Allgemeinen das gleichzeitige Ausführen einer Operation auf jedes Element einer großen Datenmenge beinhalten. Die verschiedenen Operationen können in einer datenparallelen Pipeline aneinandergereiht werden, um einen effizienten Mechanismus zur Verarbeitung eines Datensatzes zu generieren. Die Produktion eines Datensatzes kann die Erstellung von untergeordneten Aufträgen oder Phasen umfassen, die die Hauptaufgabe oder den übergeordneten Auftrag ausführen, wobei ein untergeordneter Auftrag auf verschiedenen Verarbeitungszonen ausgeführt werden kann. Aufgrund der Größe der großangelegten Datenverarbeitungsaufträge ist es jedoch schwierig, die Leistung der großangelegten Aufträge zu analysieren.
-
KURZDARSTELLUNG
-
Die vorliegende Spezifikation bezieht sich im Allgemeinen auf großangelegte Datenverarbeitungsaufträge.
-
Die Diagnose von Auffälligkeiten in Datenverarbeitungs-Pipelines kann schwierig sein, nachdem die Pipelines den Betrieb beendet haben. Einige der Herausforderungen umfassen fehlende Logs, Datenzuordnungsprobleme zwischen mehreren Durchläufen, die Informationszuordnung zu anderen Verarbeitungs-Events und die Ermittlung einer Beziehung zwischen einem Hauptauftrag mit den Phasen oder untergeordneten Aufträge eines entsprechenden Hauptauftrags. Es kann eine Reihe relevanter Diagnoseinformationen und Analysen geben, einschließlich von Pipeline-Versagen, Langsamkeit und Leistungskennzahlen. Somit besteht ein Bedarf für ein Datenanalyse-Tool, das die Erfassung relevanter Informationen bezüglich des verteilten Datenverarbeitungsauftrags und die Diagnose von Auffälligkeiten in den Daten-Pipelines ermöglicht.
-
Im Allgemeinen kann ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstands in Computerprogrammprodukten ausgeführt werden, die Anweisungen umfassen, die bei der Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren zur Durchführung von Verfahren veranlassen, die folgende Aktionen umfassen: Den Zugriff auf Daten, die auf einem Speichergerät einer ersten Verarbeitungszone gespeichert sind, die mit einem bestimmten, verteilten Datenverarbeitungsauftrag verknüpft sind, der ausgeführt wurde; die Ermittlung von identifizierenden Informationen, aus den auf dem Speichergerät gespeicherten Daten, die einen bestimmten, mit dem bestimmten, verteilten Datenverarbeitungsauftrag verknüpften, untergeordneten Auftrag identifizieren; der Vergleich der identifizierenden Informationen mit den auf dem Speichergerät einer zweiten Verarbeitungszone gespeicherten Daten, als Reaktion auf die Ermittlung der identifizierenden Informationen, die einen mit einem bestimmten, verteilten, Datenverarbeitungsauftrag verknüpften bestimmten untergeordneten Auftrag identifizieren; die Identifizierung eines weiteren, mit dem bestimmten verteilten Datenverarbeitungsauftrag verknüpften, untergeordneten Auftrags , basierend auf einem Ergebnis des Vergleichs der identifizierenden Informationen von Daten, die auf dem Speichergerät der zweiten Verarbeitungszone gespeichert sind; die Zuordnung bestimmter, mit dem bestimmten untergeordneten Auftrag verknüpften Ausgabedaten mit zusätzlichen mit dem zusätzlichen untergeordneten Auftrag verknüpften Ausgabedaten für den bestimmten, verteilten Datenverarbeitungsauftrag; die Ermittlung von Leistungskennzahlen für den bestimmten, verteilten Datenverarbeitungsauftrag basierend auf den bestimmten, mit dem bestimmten untergeordneten Auftrag verknüpften Ausgabedaten und den zusätzlichen mit dem zusätzlichen untergeordneten Auftrag verknüpften Ausgabedaten; und die Bereitstellung zur Anzeige der Leistungskennzahlen für den bestimmten, verteilten Datenverarbeitungsauftrag basierend auf den bestimmten, mit dem bestimmten untergeordneten Auftrag verknüpften Ausgabedaten und den zusätzlichen mit dem zusätzlichen untergeordneten Auftrag verknüpften Ausgabedaten.
-
In bestimmten Implementierungen umfassen die Verfahren weiterhin Aktionen zum Leistungsdatenvergleich für den bestimmten, verteilten Datenverarbeitungsauftrag mit einem Leistungsgrenzwert; sowie die Bereitstellung einer Benachrichtigung basierend auf einem Ergebnis des Leistungsdatenvergleichs für den bestimmten, verteilten Datenverarbeitungsauftrag mit dem Leistungsgrenzwert.
-
In bestimmten Implementierungen besteht die Benachrichtigung aus einem oder mehreren der folgenden Elemente: ein akustischer Alarm, ein taktiler Alarm, ein visueller Alarm oder eine elektronische Nachricht. In bestimmten Implementierungen umfassen die Leistungsdaten eines oder mehrere der folgenden Elemente: eine Laufzeit, Speicherauslastung, CPU-Zeit, Festplattenauslastung, einer Beziehung zwischen jedem untergeordneten Auftrag und dem bestimmten, verteilten Datenverarbeitungsauftrag, einen oder mehrere mit dem bestimmten, verteilten Datenverarbeitungsauftrag verknüpfte Zähler oder ein Verarbeitungsstatus.
-
In bestimmten Implementierungen werden die Speicherauslastungen, die CPU, die Zeit der Festplattenauslastung, die Beziehung zwischen jedem untergeordneten Auftrag und dem bestimmten Datenverarbeitungsauftrag, der eine oder die mehreren mit dem bestimmten, verteilten Datenverarbeitungsauftrag verknüpften Zähler und/oder der Verarbeitungsstatus in Abhängigkeit mit der Benachrichtigung geändert, insbesondere durch ein Signal an einen Datenprozessor und/oder in Abhängigkeit mit dem Ergebnis des Vergleichs mit dem Leistungsgrenzwert.
-
In bestimmten Implementierungen umfassen die Verfahren weiterhin Aktionen zur Anzeige einer Benutzerschnittstelle, die eine Leistungsdatenanzeige beinhaltet, wobei die Benutzerschnittstelle eine interaktive hierarchische Struktur umfasst.
-
In bestimmten Implementierungen umfassen die identifizierenden Informationen ein gemeinsames Präfix, das in den Daten identifiziert wird.
-
In bestimmten Implementierungen ist der bestimmte, verteilte Datenverarbeitungsauftrag mit einer bestimmten Pipeline verknüpft; und die Zuordnung von bestimmten, mit dem untergeordneten Auftrag verknüpften Ausgabedaten zu zusätzlichen, mit dem zusätzlichen untergeordneten Auftrag verknüpften Ausgabedaten für den bestimmten, verteilten Datenverarbeitungsauftrag umfasst die Zuweisung des bestimmten untergeordneten Auftrags und des zusätzlichen untergeordneten Auftrags zu der bestimmten Pipeline; und die Verfahren beinhalten folgende Aktionen: Ermittlung der Pipeline-Leistungsdaten für einen ersten Durchlauf der bestimmten Pipeline; und die Ermittlung der Pipeline-Leistungsdaten für einen zweiten Durchlauf der bestimmten Pipeline.
-
Andere Umsetzungen der vorstehenden Aspekte umfassen entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sind, die Aktionen der Verfahren auszuführen, die auf Computerspeichervorrichtungen codiert sind.
-
Bestimmte Implementierungen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile realisieren. Die Systeme und Verfahren ermöglichen einem Mechanismus die zuverlässige und präzise Analyse der Richtigkeit und Leistung von großangelegten Datenverarbeitungsaufträgen. Die Systeme und Verfahren erzielen ein intuitives Datenanalyse-Tool, das die Diagnose von Pipeline-Durchflussfehlern und der Pipeline-Präzision im Vergleich zu Systemen ohne diese Systeme und Verfahren beschleunigt und verbessert. Das ermöglicht spezifischere und wirksamere Abhilfemaßnahmen, was sowohl Zeit als auch Systemressourcen spart. Weiterhin erzielen Implementierungen der vorliegenden Offenbarung technische Vorteile, wie die Identifizierung von Daten untergeordneter Aufträge bezüglich eines Hauptauftrags, wenn die Daten des untergeordneten Auftrags in den Verarbeitungszonen gespeichert sind; eine automatisierte Erfassung und Zuordnung der Daten eines untergeordneten Auftrags, der in den Verarbeitungszonen gespeichert ist; eine wirksamere und schnellere Verarbeitung für die Erfassung und Zuordnung von Leistungsdaten; automatische Benachrichtigungen oder Warnungen in Bezug auf die Leistungskennzahlen eines Auftrags; und eine Analyse und Diagnose der Auftragsleistung, einschließlich einer intuitiven Benutzerschnittstelle. Insbesondere erzielen Implementierungen der vorliegenden Offenbarung den technischen Vorteil einer einfacheren Identifizierung der Grundursachen von Leistungsabfall und der Identifizierung von Phasen, die mehr Ressourcen über verschiedene Durchläufe verwenden.
-
Die Details einer oder mehrerer Implementierungen der Erfindung sind in den nachstehenden beigefügten Zeichnungen und der Beschreibung dargelegt. Andere Merkmale und Vorteile der Erfindung werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
-
Figurenliste
-
- 1 stellt ein Beispiel eines verteilten Datenverarbeitungssystems dar, das gemäß Implementierungen der vorliegenden Offenbarung ausgeführt werden kann.
- 2 stellt ein Beispiel eines Systems zur Analyse von Daten eines verteilten Datenverarbeitungssystems dar, das gemäß Implementierungen der vorliegenden Offenbarung ausgeführt werden kann.
- 3 stellt ein Beispiel einer Benutzerschnittstelle zur Verarbeitung dar, die gemäß Implementierungen der vorliegenden Offenbarung ausgeführt werden kann.
- 4 stellt ein Flussdiagramm eines Beispiels eines Prozesses zur Analyse von Daten in einem verteilten Datenverarbeitungssystem dar, das gemäß Implementierungen der vorliegenden Offenbarung ausgeführt werden kann.
-
In den verschiedenen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Auf einer hohen Ebene können Implementierungen der vorliegenden Offenbarung eine Offline-Analyse der Pipeline sowie einen Diagnoserahmen bereitstellen, über den relevante Daten bezüglich der mit den verteilten Datenverarbeitungs-Pipelines gesammelt und organisiert werden können, die in den verschiedenen Verarbeitungszonen gespeichert sind. Zusätzlich werden die Daten zugeordnet und dem Benutzer auf strukturiertere Weise präsentiert und können eine automatische Benachrichtigung in Bezug auf bestimmte Leistungskennzahlen bereitstellen. Einige exemplarische Leistungsanalysen umfassen unter anderem: Die Häufigkeit, in der die Pipeline in der letzten Zeit (N) gelaufen ist und den entsprechenden Status; die Laufzeiten für die verschiedenen Stufen oder Phasen des Datenverarbeitungsauftrags; Zählerabweichungen zwischen den verschiedenen Durchläufen der Pipeline; die Anzahl an einmaligen Ausfällen, die für eine bestimmte Pipeline aufgetreten sind, sowie jegliche bestehenden Bugs; eine Änderung in der Verarbeitungsumgebung der Pipeline, wie Gruppierung, Planung und Strategie zwischen den verschiedenen Durchläufen der Pipeline; sowie andere vorübergehende Aspekte, die sich auf die Pipeline auswirken könnten. Ein Beispiel eines verteilten Datenverarbeitungsauftrags ist ein MapReduce-Auftrag, der Map-, Shuffle- und Reduce-Phasen umfassen könnte. Andere verteilte Verarbeitungssysteme können aber auch von den Implementierungen der vorliegenden Offenbarung profitieren.
-
Diese Merkmale und weitere Merkmale sind nachstehend detaillierter beschrieben.
-
1 stellt ein Beispiel eines verteilten Datenverarbeitungssystems 100 dar, das gemäß Implementierungen der vorliegenden Offenbarung ausgeführt werden kann. Das verteilte Datenverarbeitungssystem 100 kann einen Datenprozessor 102 beinhalten, der einen oder mehrere Computer beinhalten könnte. Der Datenprozessor 102 kann Daten speichern, zum Beispiel in Speicherknoten 110 in den Verarbeitungszonen 104, 106 und 108. Herkömmliche Verarbeitungszonen können große Mengen an Daten speichern. Einige Daten werden redundant auf verschiedenen Verarbeitungszonen gespeichert, sodass auch beim Ausfall einer gesamten Verarbeitungszone die Daten wiederhergestellt werden können. Der Datenprozessor 102 kann mit den Verarbeitungszonen 104, 106 und 108 über ein Netzwerk 112 kommunizieren.
-
Ein Speicherknoten kann ein oder mehrere Computerspeichermedien umfassen. In einigen Implementierungen ist ein Speicherknoten ein Datenserver, zum Beispiel ein Server einschließlich einer Vorrichtung zur Datenverarbeitung und mehreren Festplattenlaufwerken, auf denen die Daten gespeichert werden können. Eine Gruppe an Speicherknoten könnte ein Rack, ein Subnetz, eine Verarbeitungszone oder verschiedene andere Ansammlungen an Servern oder Speicherknoten umfassen.
-
Eine Verarbeitungszone könnte eine Gruppierung an Speicherknoten umfassen. Eine Verarbeitungszone ist konzipiert, um relativ unabhängig von anderen Verarbeitungszonen zu agieren. Beispielsweise kann eine Verarbeitungszone unabhängige Ressourcen haben, wie eine Stromversorgung, Netzwerke, Umgebungskontrollen, Sicherheitsfunktionen oder dergleichen sowie jede Kombination daraus. Verarbeitungszonen können beispielsweise Vernetzungssysteme, Backup-Stromversorgungen, Klimaregelungen, Sicherheitsfunktionen oder dergleichen sowie jede Kombination daraus beinhalten. Eine Verarbeitungszone kann eine einzelne Einrichtung oder ein Gebäude umfassen sowie eine oder mehrere Einrichtungen und kann in einigen Fällen auf einen Teil einer einzelnen Einrichtung beschränkt sein. In 1 sind die Verarbeitungszonen 104, 106 und 108 mit drei Speicherknoten gezeigt; jede Verarbeitungszone kann jedoch mehr oder weniger Speicherknoten haben. Daten können in Datenblöcken gespeichert werden, wobei jeder Datenblock eine vorgegebene Menge an Daten enthält. In einigen Implementierungen kann ein Datenblock ein zusammenhängender Teil der Daten aus einer Datei sein. In anderen Implementierungen kann ein Datenblock eine oder mehrere nicht zusammenhängende Teile der Daten aus einer Datei sein. In einigen Implementierungen werden Metadaten in den Verarbeitungszonen 104, 106 und 108 verwendet, um den Überblick über die gespeicherten Daten zu behalten. Beispielsweise können Metadaten vorgeben, welche Teile einer Datei in welchen Verarbeitungszonen gespeichert werden. Darüber hinaus kann die Speicherung von Datenblöcken in bestimmten Verarbeitungszonen vorgegeben werden. Beispielsweise kann die Speicherung von Daten in einer Verarbeitungszone basierend auf dem geografischen Standort der Verarbeitungszone vorgegeben werden.
-
In einem verteilten Datenverarbeitungssystem, zum Beispiel dem verteilten Datenverarbeitungssystem 100 aus 1, kann ein bestimmter, verteilter Datenverarbeitungsauftrag einen Hauptauftrag umfassen, der mehrere untergeordnete Aufträge erstellt, die sich über mehrere Verarbeitungszonen 104, 106 und 108 erstrecken können. Diese Aufträge können auch als Batch-Aufträge bezeichnet werden. Da sich untergeordnete Aufträge über mehrere Verarbeitungszonen erstrecken, ist der Zugriff auf die Daten an verschiedenen Standorten mit herkömmlichen Systemen und Prozessen schwierig. Insbesondere könnte es mit diesen herkömmlichen Systemen und Prozessen nicht möglich sein, konsolidierte Daten für den gesamten Auftrag zu erhalten, um eine präzise Leistungsanalyse und Diagnose bereitzustellen. Insbesondere können zum Beispiel die oben beschriebenen Metadaten verloren gehen oder gelöscht werden, sobald ein verteilter Datenverarbeitungsauftrag abgeschlossen ist. Aus diesem Grund ist eine Zuordnung zwischen verschiedenen untergeordneten Aufträgen und dem Hauptauftrag möglicherweise schwierig umzusetzen.
-
Beispielsweise könnte in einem typischen MapReduce-System das MapReduce-Framework den Auftrag automatisch in mehrere untergeordnete Aufträge unterteilen, die manchmal parallel ausgeführt werden können. Die Beziehungen zwischen dem Hauptauftrag und den untergeordneten Aufträgen sind nicht gut realisierbar, insbesondere für einen Auftrag der beendet wurde. Weiterhin ist es beispielsweise schwierig Zähler bezüglich der Anzahl an Objekten und Operationen, die der MapReduce-Auftrag verarbeitet, zu verfolgen und zuzuordnen, die als Kennzeichen für das Verhalten des Auftrags sowie zum Debugging des Auftrags verwendet werden, sowie Informationen über die Code-Version, die zum binären Aufbau des MapReduce-Auftrags verwendet wurde. Zusätzlich wird z. B. ein MapReduce-Auftrag im Rahmen eines großangelegten MapReduce-Datenverarbeitungssystems typischerweise regelmäßig durchgeführt, es ist jedoch schwierig, die relative Leistung des gleichen Auftrags im Laufe der Zeit zu betrachten, beispielsweise, wenn Änderungen im MapReduce-System im Rahmen eines Entwicklungsprozesses eingeführt werden. Darüber hinaus ist es schwierig Informationen über die Interaktion des MapReduce-Auftrags mit der verteilten Runtime-Umgebung zu erhalten. Implementierungen der vorliegenden Offenbarung ermöglichen jedoch die Überwindung jeder dieser Schwierigkeiten oder Herausforderungen und somit die Bereitstellung der entsprechenden Funktionalität für die Leistung und Diagnose eines großangelegten Datenverarbeitungssystems, wie unten genauer beschrieben ist.
-
Implementierungen der vorliegenden Offenbarung bieten eine Möglichkeit zur Erfassung und Zuordnung der relevanten Informationen bezüglich jedes der untergeordneten Aufträge, zur Ermittlung einer Beziehung zwischen den entsprechenden untergeordneten Aufträgen und dem Hauptauftrag, zur Ermittlung, wie unterschiedliche Aufträge im Verhältnis zueinander ausgeführt werden sowie zur Befähigung von Entwicklern zur Identifizierung, welche Phase oder Stufe in jedem Auftrag ausgeführt wird, selbst wenn die Daten auf unterschiedlichen Verarbeitungszonen gespeichert sind. Zusätzlich können Implementierungen der vorliegenden Offenbarung Daten mit Relevanzfür verschiedene Durchläufe der gleichen Pipeline erfassen und gruppieren, um verbesserte Diagnose- und Analysefähigkeiten bereitzustellen. Wie unten detaillierter beschrieben ist, können beispielsweise ein Fußabdruck oder ein Muster der Daten ermittelt werden, die mit dem verteilten Datenverarbeitungsauftrag verknüpft sind, der zur Identifizierung von untergeordneten Aufträgen verwendet werden könnte, die auf verschiedenen Verarbeitungszonen verknüpft mit dem Hauptauftrag gespeichert sind. Beispielsweise können ein Fußabdruck oder ein Muster ein gemeinsames Präfix umfassen, das mit dem Hauptauftrag verknüpfte untergeordnete Aufträge eindeutig identifiziert. Auf diese Weise können mit untergeordneten Aufträgen verknüpfte Daten identifiziert und einander sowie dem Hauptauftrag zugeordnet werden, und aus diesen Daten können Leistungsinformationen ermittelt werden.
-
2 stellt ein Beispiel eines Systems 200 zur Analyse von Daten eines verteilten Datenverarbeitungssystems dar, das gemäß Implementierungen der vorliegenden Offenbarung ausgeführt werden kann. Als ein Beispiel einer verteilten Datenverarbeitung ist eine verarbeitende Pipeline 210 in 2 dargestellt. Die Pipeline 210 kann sowohl in einer Informationsdatenbank eines verteilten Datenverarbeitungsauftrags 220 als auch in einer Pipeline-Informationsdatenbank 230 Daten speichern oder mit diesen Datenbanken kommunizieren. Wie vorstehend beschrieben, können diese Datenbanken in Speichergeräten innerhalb der Verarbeitungszonen gespeichert werden. Zum Beispiel kann ein Teil der mit der Pipeline 210 verknüpften Daten in einer Verarbeitungszone gespeichert werden und ein anderer Teil in Verbindung mit der Pipeline 210 kann in einer anderen Verarbeitungszone gespeichert werden. Weiterhin kann jede dieser Datenportionen beispielsweise mit einem entsprechenden untergeordneten Auftrag der Pipeline 210 verknüpft werden.
-
Daten von sowohl der Informationsdatenbank des verteilten Datenverarbeitungsauftrags 220 als möglicherweise auch von der Pipeline-Informationsdatenbank 230 können über einen Datenprozessor 240 erreicht werden. Eine der Hauptfunktionen eines Datenprozessors 240 ist eine Pipeline zur Datenerfassung und Verarbeitung 250, die alle für die Pipeline relevanten Informationen erfasst und verarbeitet und diese Daten in die Verarbeitungsdatenbank 260 schreibt. Die Pipeline zur Datenerfassung und Verarbeitung 250 kann Informationen von einer Reihe von Quellen erfassen, einschließlich der Informationsdatenbank des verteilten Datenverarbeitungsauftrags 220 und der Pipeline-Informationsdatenbank 230, auf die über einen Datenprozessor 240 zugegriffen werden kann. Darüber hinaus kann die Pipeline zur Datenerfassung und Verarbeitung 250 Informationen von externen Diensten und der Verarbeitungsumgebung 280 erfassen. Die verarbeitende Benutzerschnittstelle (UI) 270 stellt Informationen zur Anzeige bereit aus den Daten, die von der Pipeline zur Datenerfassung und Verarbeitung 250 erfasst und verarbeitet werden und die in der Verarbeitungsdatenbank 260 gespeichert sind.
-
Die Pipeline der Verarbeitung 250 kann Informationen in Bezug aufjeden Auftrag aus mehreren Quellen erfassen, einschließlich von Protokolldateien, Protokolldatenbanken, Event-Logs und Runtime-Umgebungseinstellungen, die anschließend in der verarbeitenden UI 270 präsentiert werden können. Beispielsweise kann die Verarbeitungs-Pipeline 250 Informationen in einem vorbestimmten Zeitabstand erfassen. Die Informationen, die durch die Verarbeitungs-Pipeline 250 identifiziert und erfasst werden, können in einer Verarbeitungsdatenbank 260 gespeichert werden. Die Daten können auch optimiert werden für eine Kombination mit anderen Daten, bevor oder nachdem diese gespeichert werden, um eine effektivere Datenverarbeitung für eine Präsentation in der verarbeitenden UI 270 zu ermöglichen.
-
Einige Beispiele der Arten an Informationen, die die Verarbeitungs-Pipeline 250 erfassen könnte, sind unter anderem: die Laufzeit von jedem Auftrag; die Speicherauslastung, CPU-Zeit und Festplattenauslastung für jede Durchführung eines Auftrags; Informationen bezüglich jeder Phase oder Stufe eines Auftrags für jede Durchführung des Auftrags; die verstrichene Zeit für jede Phase oder Stufe zusammen mit der Speicherauslastung, CPU-Zeit und Festplattenauslastung für jede Stufe oder Phase; eine „über-/untergeordnete“ Beziehung zwischen dem Hauptauftrag und den untergeordneten Aufträgen oder Stufen, die von den Protokolldateien oder Protokolldatenbanken erfasst und rekonstruiert werden können, in die das System die Protokollierung-Informationen schreibt; jegliche Zählerinformationen, die in jeder Phase oder Stufe protokolliert werden, die aus Protokolldateien oder Datenbanken oder von einer anderen Datenbank erfasst werden können, in der die Zählerinformationen aufgrund deren großen Volumens gespeichert werden können.
-
Die verarbeitende UI 270 kann für die Anzeige der Leistungsinformationen, die von der Verarbeitungs-Pipeline 250 ermittelt wurden, so strukturiert werden, dass der Benutzer eine selektive Ansicht der verschiedenen Detailebenen für die mit dem Auftrag verknüpften Informationen erhält. Beispielsweise kann die verarbeitende UI 270 eine Informationshierarchie umfassen, sodass ein Benutzer selektiv Informationen einer höheren Ebene über das System oder den Auftrag einsehen und eine Auswahl zur Ansicht detaillierterer Informationen über das System oder den Auftrag oder über einen Teil des Systems oder Auftrags treffen kann. Diese interaktive Hierarchie der anzuzeigenden Informationen ist weiter im Detail mit Verweis auf 3 beschrieben, und zeigt ein Beispiel einer verarbeitenden UI, die vorstehend beschrieben worden ist.
-
3 zeigt ein Beispiel einer verarbeitenden UI 300 gemäß Implementierungen der vorliegenden Offenbarung. Die verarbeitende UI 300 kann beispielsweise eine Dashboard-UI 305 beinhalten. Die Dashboard-UI 305 kann eine interaktive Hierarchie der Informationsebenen beinhalten, die es einem Benutzer erlauben, die Detailinformationen eines Auftrags selektiv zu durchsuchen. Diese verarbeitende UI 300 ermöglicht einem Benutzer eine einfachere Beobachtung des Status aller Durchläufe eines bestimmten Auftrags, den Vergleich verschiedener Durchläufe, den Vergleich verschiedener Aufträge und Ähnliches, sowie jede Kombination daraus.
-
Zum Beispiel kann die UI der ersten Ebene 310 alle spezifischen Aufträge anzeigen, die mit dem Benutzer verknüpft sind oder die der Benutzer zur Anzeige ausgewählt hat. Die UI der ersten Ebene 310 kann auch die allumfassende Anzahl an Aufträgen anzeigen, die in einem vorgegebenen Zeitraum bestanden oder nicht bestanden wurden. Weiterhin kann die UI der ersten Ebene beispielsweise eine Anzahl an Ausführungen nach Status sowie eine Gesamtdauer nach Arbeitsablauf anzeigen. Im Rahmen der verarbeitenden UI300 kann ein Benutzer jeden entsprechenden Auftrag auswählen, was zur Bereitstellung einer Anzeige der Informationen der nächsten Ebene, der UI der zweiten Ebene 320, führen kann.
-
Die UI der zweiten Ebene 320 kann historische Daten in Bezug auf die verstrichene Zeit und die verbrauchten Ressourcen nach Durchläufen eines bestimmten Auftrags oder für einen bestimmten Zeitrahmen anzeigen. Die UI der zweiten Ebene 320 kann auch eine Reihe der folgenden Leistungskennzahlen anzeigen: Durchlaufdauer der Pipeline, CPU-Nutzungsdauer der Pipeline, Pipeline-Speicherauslastung, Pipeline-Festplattenauslastung, Instanzen oder Mengen an Pipeline-Durchläufen, Phasendauer nach Durchlauf, eine Liste der „n“ längsten, durchschnittlichen Phasendauern sowie eine Liste der Phasendauer nach Name. Weiterhin kann der Benutzer zum Beispiel während der Präsentation eine Liste der Instanzen vergangener Auftragsdurchläufe in der UI der zweiten Ebene 320 eine dieser Instanzen auswählen, sodass die nächste Ebene an Informationen, die UI der dritten Ebene 330, angezeigt werden.
-
Die UI der dritten Ebene 330 kann Informationen in Bezug auf eine spezielle Durchlaufinstanz eines Auftrags anzeigen. Die UI der dritten Ebene 330 könnte beispielsweise Informationen in Bezug auf die Laufzeit, CPU-Nutzungsdauer, Speicherauslastung und Festplattenauslastung für jede Phase eines Auftrags anzeigen, sowie die binär aufgebaute Version für den Auftrag. Die UI der dritten Ebene 330 kann auch die Pipeline-Zustände, einen Startpunkt und eine Dauer der Pipeline, Phasen der Pipeline sowie die mit der Instanz des Auftrags verknüpften Zählerwerte anzeigen. Darüber hinaus kann eine Zeitachse des Starts und Stopps einer jeden Phase in der UI der dritten Ebene 330 angezeigt werden.
-
Als weitere Funktion der UI der zweiten Ebene 320 kann ein Benutzer zwei verschiedene Durchläufe aus der Anzeige auswählen und diese Durchläufe miteinander vergleichen. Diese Auswahl kann beispielsweise die Anzeige einer Vergleichs-UI veranlassen, in der Informationen in Bezug auf die zwei ausgewählten Durchläufe für einen einfacheren Vergleich nebeneinander angezeigt werden. Die Vergleichs-UI kann Teil der UI der zweiten Ebene 320 sein oder aber eine separate UI, die innerhalb der verarbeitenden UI 300 angezeigt wird.
-
4 zeigt ein Flussdiagramm eines Beispiels eines Prozesses 400 zur Analyse von Daten in einem verteilten Datenverarbeitungssystem gemäß Implementierungen der vorliegenden Offenbarung. Obwohl Prozess 400 mit den Schritten in einer bestimmten Reihenfolge dargestellt und beschrieben ist, können einer oder mehrere dieser Schritte in einer alternativen Reihenfolge als dargestellt und beschrieben durchgeführt werden.
-
Sobald ein großangelegter Datenverarbeitungsauftrag abgeschlossen ist, können mit dem Auftrag in verschiedenen Verarbeitungszonen verknüpfte Informationen gespeichert werden und somit schwer zu identifizieren, abzufragen und zu analysieren sein. Gemäß Implementierungen der vorliegenden Offenbarung, kann in 410 auf Daten zugegriffen werden, die in einem oder mehreren Speichergeräten in einer ersten Verarbeitungszone gespeichert sind. Die Daten, auf die in 410 zugegriffen wird, können mit einem bestimmten verteilten Datenverarbeitungsauftrag verknüpft sein, der ausgeführt worden ist.
-
In 420 können die identifizierenden Informationen, die einen bestimmten, mit dem bestimmten verteilten Datenverarbeitungsauftrag verknüpften, untergeordneten Auftrag identifizieren, aus den Daten ermittelt werden, die in einem Speichergerät in der ersten Verarbeitungszone gespeichert sind. Die identifizierenden Informationen können ein Muster beinhalten, das einen untergeordneten Auftrag in Verbindung mit dem bestimmten, verteilten Datenverarbeitungsauftrag eindeutig identifiziert. Das Muster könnte beispielsweise ein gemeinsames Präfix sein, das in den Daten identifiziert wird, und das identisch zu anderen untergeordneten Aufträgen in Verbindung mit dem bestimmten, verteilten Datenverarbeitungsauftrag ist.
-
Als Reaktion auf die Ermittlung der identifizierenden Informationen, die einen bestimmten, mit einem bestimmten verteilten, Datenverarbeitungsauftrag verknüpften, untergeordneten Auftrag identifizieren, können die identifizierenden Informationen in 430 mit Daten verglichen werden, die in einem Speichergerät in einer zweiten Verarbeitungszone gespeichert sind. Wie die erste Verarbeitungszone, kann die zweite Verarbeitungszone ein oder mehrere Speichergeräte beinhalten, auf denen mit einem oder mehreren untergeordneten Aufträgen verknüpfte Daten gespeichert werden. In 440 kann ein zusätzlicher untergeordneter Auftrag als zugehörig zu einem bestimmten, verteilten Datenverarbeitungsauftrag identifiziert werden, basierend auf einem Ergebnis des Vergleichs zwischen den identifizierenden Informationen, die einen bestimmten untergeordneten Auftrag als zugehörig zu dem bestimmten, verteilten Datenverarbeitungsauftrag identifizieren sowie Daten, die in dem Speichergerät in der zweiten Verarbeitungszone gespeichert sind.
-
In 450 können bestimmte, mit dem bestimmten untergeordneten Auftrag verknüpfte Ausgabedaten den zusätzlichen, mit dem bestimmten untergeordneten Auftrag verknüpfte Ausgabedaten für den bestimmten, verteilten Datenverarbeitungsauftrag zugeordnet werden. Beispielsweise können eine oder mehrere Beziehungen zwischen untergeordneten Aufträgen und entsprechenden Beziehungen zwischen dem untergeordneten Auftrag und dem Hauptauftrag ermittelt werden.
-
Weiterhin können in 460 Leistungsdaten für den bestimmten, verteilten Datenverarbeitungsauftrag bestimmt werden, basierend auf den bestimmten, mit dem bestimmten Auftrag verknüpften Ausgabedaten sowie zusätzlichen mit dem zusätzlichen untergeordneten Auftrag verknüpften Ausgabedaten. Die Leistungsdaten können Folgendes umfassen: eine Laufzeit, Speicherauslastung, CPU-Zeit, Festplattenauslastung, eine Beziehung zwischen jedem untergeordneten Auftrag und dem bestimmten, verteilten Datenverarbeitungsauftrag, einen oder mehrere Zähler in Verbindung mit dem bestimmten, verteilten Datenverarbeitungsauftrag, einen Verarbeitungsstatus oder Ähnliches sowie eine Kombination daraus.
-
Sobald die Leistungsdaten für den bestimmten, verteilten Datenverarbeitungsauftrag bestimmt wurden, können diese Leistungsdaten in 470 zur Anzeige bereitgestellt werden, basierend auf den bestimmten, mit dem bestimmten untergeordneten Auftrag verknüpften Ausgabedaten sowie den zusätzlichen mit dem zusätzlichen untergeordneten Auftrag verknüpften Ausgabedaten. Beispielsweise können verschiedene Leistungsinformationen und Kennzahlen aus den erfassten Daten berechnet werden und können in einer interaktiven UI angezeigt werden. Weiterhin können Leistungsdaten zum Beispiel für den bestimmten, verteilten Datenverarbeitungsauftrag mit einem Leistungsgrenzwert verglichen werden; und eine Benachrichtigung kann basierend auf einem Ergebnis des Leistungsdatenvergleichs des bestimmten, verteilten Datenverarbeitungsauftrags mit dem Leistungsgrenzwert bereitgestellt werden. Die Benachrichtigung kann beispielsweise einen akustischen Alarm, einen taktilen Alarm, einen visuellen Alarm, eine elektronische Nachricht oder Ähnliches sowie eine Kombination daraus beinhalten.
-
In bestimmten Implementierungen kann die Benachrichtigung zur automatischen Anpassung von mindestens einem der folgenden Elemente verwendet werden: die Laufzeit, die Speicherauslastung, die CPU-Zeit, die Festplattenauslastung, die Beziehung zwischen jedem untergeordneten Auftrag und dem bestimmten Datenverarbeitungsauftrag, dem einen oder den mehreren Zählern, verknüpft mit dem bestimmten, verteilten Datenverarbeitungsauftrag, der Leistungskennzahlen und/oder dem Verarbeitungsstatus, die in Abhängigkeit mit der Benachrichtigung geändert werden, insbesondere durch ein Signal an einen Datenprozessor. Zusätzlich oder alternativ dazu kann die Änderung auf die Abhängigkeit des Ergebnisses des Vergleichs, der auf den Leistungsgrenzwert Bezug nimmt, zurückzuführen sein.
-
Wie oben beschrieben, können die Leistungsdaten, die in 270 zur Anzeige bereitgestellt werden, über eine UI bereitgestellt werden, die eine Anzeige der Leistungsdaten beinhaltet. Die UI kann eine interaktive hierarchische Struktur beinhalten. Auf diese Weise kann die UI selektiv die Anzeige verschiedener Detailebenen oder Informationen in Bezug auf verschiedene Aufträge, verschiedene Durchführungen einer Pipeline, verschiedene untergeordnete Aufträge oder Ähnliches basierend auf der Auswahl eines Benutzers anzeigen. Wie oben mit Verweis auf 3 beschrieben, kann die UI beispielsweise verschiedene hierarchische Ebenen zur Anzeige beinhalten, mit denen ein Benutzer interagieren kann und die selektiv, basierend auf der Art von Informationen, die ein Benutzer wünscht, angezeigt werden können.
-
In Implementierungen der vorliegenden Offenbarung kann der bestimmte, verteilte Datenverarbeitungsauftrag einer bestimmten Pipeline der verteilten Datenverarbeitung zugeordnet werden. Somit kann die Zuordnung bestimmter, mit dem bestimmten untergeordneten Auftrag verknüpfter Ausgabedaten zu zusätzlichen, mit dem zusätzlichen untergeordneten Auftrag verknüpfter Ausgabedaten für den bestimmten, verteilten Datenverarbeitungsauftrag beispielsweise die Zuordnung des bestimmten untergeordneten Auftrags zu dem zusätzlichen untergeordneten Auftrag mit der bestimmten Pipeline beinhalten. Weiterhin können die Leistungsdaten der Pipeline beispielsweise für einen ersten Durchlauf der bestimmten Pipeline ermittelt werden und die Leistungsdaten der Pipeline können für einen zweiten Durchlauf der bestimmten Pipeline bestimmt werden.
-
Somit kann ein Vergleich zwischen verschiedenen Durchläufen einer bestimmten Pipeline erstellt werden und die Leistungsdaten können auf der UI bereitgestellt werden, sodass die verschiedenen Durchläufe der bestimmten Pipeline nebeneinander verglichen werden können. Dementsprechend kann ein Benutzer Unstimmigkeiten, Latenzen, Unterschiede im Ressourcenverbrauch oder Ähnliches, sowie jede Kombination daraus leichter identifizieren. Die Identifizierung der Beziehung zwischen verschiedenen Durchläufen der gleichen Pipeline ermöglicht eine Vergleichserstellung, die eine effektivere Diagnose von Problemen der verteilten Datenverarbeitungs-Pipeline ermöglicht.
-
Somit erzielen Implementierungen der vorliegenden Offenbarung technische Vorteile, wie die Identifizierung von Daten untergeordneter Aufträge in Bezug auf einen Hauptauftrag, wenn die Daten des untergeordneten Auftrags in den Verarbeitungszonen gespeichert sind; eine automatisierte Erfassung und Zuordnung der Daten eines untergeordneten Auftrags, der in den Verarbeitungszonen gespeichert ist; eine wirksamere und schnellere Verarbeitung für die Erfassung und Zuordnung von Leistungsdaten; automatische Benachrichtigungen oder Warnungen in Bezug auf die Leistungskennzahlen eines Auftrags; und eine Analyse und Diagnose der Auftragsleistung, einschließlich einer intuitiven Benutzerschnittstelle. Weiterhin umfassen bestimmte Vorteile und technische Wirkungen der Implementierungen der vorliegenden Offenbarung eine interaktive UI, mit der ein Benutzer den Status aller Auftragsdurchläufe beobachten kann; die Fähigkeit zum Vergleich zweier Auftragsdurchläufe nebeneinander, für eine vereinfachte Untersuchung der möglichen Grundursachen und jeglicher Leistungsabfälle im Auftrag; die automatische Identifizierung eines Auftrags, dessen Leistung über die Zeit abnimmt; und die Identifizierung von Phasen innerhalb eines Auftrags, die am meisten Zeit in Anspruch nehmen oder die meisten Computerressourcen verbrauchen. Somit können Mängel oder Probleme in einem verteilten Datenverarbeitungsauftrag einfacher und schneller diagnostiziert und korrigiert werden, wodurch die Verarbeitungszeit reduziert und die Leistung des verteilten Datenverarbeitungssystems verbessert wird.
-
Es wurde eine Anzahl von Implementierungen beschrieben. Trotzdem versteht es sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Zum Beispiel können verschiedene Formen der vorstehend dargestellten Abläufe verwendet und Schritte neu geordnet, hinzugefügt oder entfernt werden.
-
Implementierungen der Erfindung und alle in dieser Spezifikation beschriebenen Funktionsvorgänge können in digitalen elektronischen Schaltungen oder in Computersoftware, -Firmware oder -Hardware, darunter auch in den in dieser Spezifikation offenbarten Strukturen und deren strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer derselben, implementiert werden. Implementierungen der Erfindung können als ein oder mehrere Computerprogrammprodukte implementiert werden, d. h. als ein oder mehrere Module von Computerprogrammbefehlen, die auf einem computerlesbaren Medium zur Ausführung codiert sind, oder um den Betrieb von Datenverarbeitungsvorrichtungen zu steuern. Das computerlesbare Medium kann ein maschinenlesbares Datenspeichergerät, ein maschinenlesbares Speichersubstrat, ein Arbeitsspeicher, eine Stoffzusammensetzung, die ein maschinenlesbares verbreitetes Signal bewirkt, oder eine Kombination aus einem oder mehreren derselben sein.
-
Der Begriff „Datenverarbeitungsvorrichtung“ umfasst alle Vorrichtungen, Geräte und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computer. Die Vorrichtung kann neben der Hardware auch einen Code beinhalten, der eine Ausführungsumgebung für das betreffende Computerprogramm bildet, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt. Ein propagiertes Signal ist ein künstlich erzeugtes Signal, wie z. B. ein maschinengeneriertes elektrisches, optisches oder elektromagnetisches Signal, das erzeugt wird, um Informationen für die Übertragung zu einer geeigneten Empfangsvorrichtung zu codieren.
-
Während diese Offenbarung viele Details enthält, sollten diese nicht als Begrenzungen bezüglich des Umfangs der Erfindung oder dessen ausgelegt werden, was beansprucht werden kann, sondern vielmehr als Beschreibungen von Merkmalen, die spezifisch für bestimmte Implementierungen der Erfindung sind. Bestimmte Merkmale, die in dieser Spezifikation im Zusammenhang mit separaten Implementierungen beschrieben werden, können darüber hinaus in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzelnen Implementierung beschrieben sind, auch in mehreren Implementierungen getrennt oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
-
Gleichermaßen soll dies, obwohl die Abläufe in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, nicht so verstanden werden, dass die besagten Abläufe in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen bzw. alle dargestellten Abläufe durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Implementierungen nicht als in allen Implementierungen erforderlich ausgelegt werden, zudem sollte davon ausgegangen werden, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzelnen Software-Produkt oder in mehreren Software-Produkten gebündelt integriert sein können.
-
Somit wurden bestimmte Implementierungen der vorliegenden Offenbarung beschrieben. Andere Implementierungen fallen in den Umfang der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Handlungen können beispielsweise in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Es wurde eine Anzahl von Implementierungen beschrieben. Trotzdem versteht es sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Sinn und Umfang der Offenbarung abzuweichen. Zum Beispiel können verschiedene Formen der vorstehend dargestellten Abläufe verwendet und Schritte neu geordnet, hinzugefügt oder entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.