DE202011110892U1 - System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren - Google Patents

System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren Download PDF

Info

Publication number
DE202011110892U1
DE202011110892U1 DE202011110892.2U DE202011110892U DE202011110892U1 DE 202011110892 U1 DE202011110892 U1 DE 202011110892U1 DE 202011110892 U DE202011110892 U DE 202011110892U DE 202011110892 U1 DE202011110892 U1 DE 202011110892U1
Authority
DE
Germany
Prior art keywords
tasks
cluster
task
scheduled
backup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE202011110892.2U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202011110892U1 publication Critical patent/DE202011110892U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Abstract

Ein System zur Erzeugung von Sicherungsaufgaben für eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen; das System umfassend: einen Speicher; und einen Prozessor, der mit dem Speicher verbunden ist und so konfiguriert ist, dass er eine Reihe von im Speicher gespeicherten Anweisungen ausführt, um: die Vielzahl an geplanten Aufgaben in Gruppen anhand von einer oder mehreren Betriebsmittelanweisungen, die mit jeder Aufgabe assoziiert sind, zu klassifizieren, wobei jede geplante Aufgabe mit einer Zielwahrscheinlichkeit zur Ausführung assoziiert ist, jede geplante Aufgabe durch ein erstes Cluster-Element und ein zweites Cluster-Element ausführbar ist, wobei jede Gruppe mindestens eine der geplanten Aufgaben umfasst; für mindestens eine der jeweiligen Gruppen eine Anzahl von notwendigen Sicherungsaufgaben zu ermitteln, um zu garantieren, dass die geplanten Aufgaben der jeweiligen Gruppe die Zielwahrscheinlichkeit zur Ausführung erfüllen; und Sicherungsaufgaben anhand der Ermittlung zu erzeugen, wobei die erzeugten Sicherungsaufgaben in der jeweiligen Gruppe identisch sind und jede Sicherungsaufgabe in der jeweiligen Gruppe so konfiguriert ist, dass sie jede geplante Aufgabe der jeweiligen Gruppe ersetzt.

Description

  • VERWEIS
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen das Risikomanagement in Computer-Cluster. Insbesondere betreffen die Aspekte der Erfindung das Enthalten von Descheduling-Risiken der Jobs innerhalb eines gebundenen Ziels durch das Erzeugen von Sicherungsaufgaben für heterogene Aufgaben mit ähnlichen Betriebsmittelanforderungen. Beschreibung des Stands der Technik
  • Die Computerleistung, die von Applikationen benötigt wird, ist enorm gestiegen. Durch das Aggregieren der Leistung von weit verbreiteten Betriebsmitteln, ermöglichen Computer-Cluster es den Unternehmen ihre Verarbeitungsleistung durch verknüpfte Computer und einer Sammlung gemeinsamer Betriebsmittel wie Computerknoten, Prozessoren, Speicher, Datenbanken, Netzwerkbandbreite, I/O-Geräte usw. zu verstärken. Heterogenen Applikationsjobs/-aufgaben werden durch Clustermanagement-Infrastruktur, wie Betriebsmittelmanager und Jobscheduler, Betriebsmittel zugewiesen und geplant serienmäßig oder parallel auf verschiedenen Rechnern zu laufen.
  • In einer verteilten Computerumgebung können Ausführungsfehler der bereits geplanten Jobs oder Aufgaben aus mehreren Gründen auftreten, wie z. B. Netzwerkfehler, Rechnerabsturz, Stromausfall, überladene Betriebsmittelbedingungen, misstraute Sicherheitsvorgaben, konkurrierende Aufgaben oder Jobs oder andere Vorfälle, die zu einer Nicht-Verfügbarkeit von geplanten und/oder benötigten Betriebsmitteln führen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Um solche Ausführungsfehler zu vermeiden, minimisieren die Aspekte der Erfindung die Descheduling-Wahrscheinlichkeiten der geplanten Jobs oder Aufgaben aufgrund der oben genannten Gründe, um ein Risiko-elastisches Cluster mit einer robusten bleibenden Scheduling-Fähigkeit bereitzustellen.
  • Gemäß den Aspekten der Erfindung erzeugt ein System Sicherungsaufgaben für eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen. Jede geplante Aufgabe ist mit einer Zielwahrscheinlichkeit für die Ausführung assoziiert. Jede geplante Aufgabe ist ausführbar durch ein erstes Cluster-Element und ein zweites Cluster-Element. In einem Beispiel umfasst das erste Cluster-Element einen Rechner und das zweite Cluster-Element umfasst ein Rack, das den Rechner beherbergt. Das System klassifiziert die geplanten Aufgaben in unterschiedliche Gruppen anhand der Betriebsmittelanforderungen jeder Aufgabe. Das System kann für jede Gruppe die Anzahl an zu erzeugenden Sicherungsaufgaben anhand der Zielwahrscheinlichkeiten der geplanten Aufgaben in der Gruppe ermitteln. Das System ist so konfiguriert, dass es die Sicherungsaufgaben anhand der Ermittlung erzeugt, wobei alle Sicherungsaufgaben in einer bestimmten Gruppe identisch sind und dazu verwendet werden können, jede geplante Aufgabe der Gruppe zu sichern/ersetzen.
  • Gemäß einer Ausführungsform ist ein Computerimplementiertes Verfahren durch einen Prozessor zur Zuweisung von Sicherungsaufgaben an eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen ausführbar. Das Verfahren umfasst die Klassifikation der Vielzahl an geplanten Aufgaben in Gruppen anhand von einer oder mehrerer Betriebsmittelanforderungen, die mit jeder Aufgabe assoziiert sind, wobei jede Gruppe mindestens eine geplante Aufgabe enthält; die Ermittlung, für mindestens eine der jeweiligen Gruppen, einer Anzahl von notwendigen Sicherungsaufgaben, um zu garantieren, dass die geplanten Aufgaben der jeweiligen Gruppe eine Zielwahrscheinlichkeit für die Ausführung erfüllen; und das Erzeugen, mit dem Prozessor, der Sicherungsaufgaben anhand der Ermittlung, wobei die erzeugten Sicherungsaufgaben identisch sind und jede Sicherungsaufgabe in der jeweiligen Gruppe konfiguriert wird, um jede geplante Aufgabe in der jeweiligen Gruppe zu ersetzen.
  • In einem Beispiel umfasst der Computer-Cluster erste und zweite Cluster-Elemente. Hier umfasst das erste Cluster-Element einen Rechner und das zweite Cluster-Element umfasst ein Rack, das den Rechner beherbergt. Alternativ basiert die Ermittlung der Anzahl von Sicherungsaufgaben auf mindestens einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements oder einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements.
  • In einem weiteren Beispiel ist jede geplante Aufgabe der jeweiligen Gruppe mit einem Job verknüpft und jeder Job ist mit der Zielwahrscheinlichkeit für die Ausführung seiner verknüpften Aufgabe assoziiert. In einem weiteren Beispiel enthält jede Gruppe Aufgaben mit identischen Betriebsmittelanforderungen. In noch einem weiteren Beispiel ist eine der Betriebsmittelanforderungen für eine ausgewählte der geplanten Aufgaben eine Speicherbereichanforderung.
  • Alternativ umfasst der Computer-Cluster eine Vielzahl der ersten Cluster-Elemente und einer Vielzahl der zweiten Cluster-Elemente. Hier umfasst das Verfahren außerdem das Empfangen, von jeder geplanten Aufgabe, einer Bevorzugung für die Ausführung durch ein bestimmtes der Vielzahl an ersten Cluster-Elementen oder ein bestimmtes der Vielzahl an zweiten Cluster-Elementen. In diesem Fall wird die Klassifikation anhand der empfangenen Bevorzugung durchgeführt.
  • Außerdem umfasst das Verfahren alternativ die Ermittlung eines ersten Aufwandes, um die Sicherungsaufgaben für die jweilige Gruppe zu erzeugen; für jede Gruppe die Ermittlung eines zweiten Aufwandes, um zusätzliche Sicherungsaufgaben für eine Kombinationsgruppe, die die jeweilige Gruppe beinhaltet, zu erzeugen, wobei die Ermittlung des zweiten Aufwandes durch Teilen der Vielzahl an geplanten Aufgaben und der jeweiligen Gruppe erhalten wird; den Vergleich des ersten Aufwandes mit dem zweiten Aufwand, das Erzeugen der Sicherungsaufgaben für die jeweilige Gruppe, falls der erste Aufwand geringer ist als der zweite Aufwand; und das Erzeugen zusätzlicher Sicherungsaufgaben für die Kombinationsgruppe, falls der erste Aufwand höher oder gleich dem zweiten Aufwand ist.
  • In einem Beispiel umfasst die Ermittlung der Anzahl von Sicherungsaufgaben das iterative Berechnen einer Wahrscheinlichkeit nicht mehr als alle gegenwärtigen Sicherungsaufgaben zu verlieren in einer bestimmten der Vielzahl an Gruppen; den Vergleich der berechneten Wahrscheinlichkeit mit den Zielwahrscheinlichkeiten für die Ausführung; das Hinzufügen einer Sicherungsaufgabe zu einer Klasse der bestimmten Gruppe, falls die berechnete Wahrscheinlichkeit höher als alle Zielwahrscheinlichkeiten ist; und das Aufhören Sicherungsaufgaben der bestimmten Gruppe hinzuzufügen, falls die berechnete Wahrscheinlichkeit geringer als alle Zielwahrscheinlichkeiten ist. Alternativ basiert das Berechnen der Wahrscheinlichkeit auf mindestens einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im Cluster oder einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements im Cluster und der Anzahl an gegenwärtigen Sicherungsaufgaben in der bestimmten Gruppe.
  • Außerdem umfasst der Cluster alternativ eine Vielzahl an ersten und zweiten Cluster-Elementen und das Berechnen der Wahrscheinlichkeit umfasst außerdem: für jedes zweite Cluster-Element, dass von den geplanten Aufgaben in der bestimmten Gruppe benutzt wird, das Teilen des zweiten Cluster-Elements in Sub-zweite-Elemente. In diesem Fall umfasst jedes der Sub-zweiten-Elemente eines oder mehrere erste Cluster-Elemente. Und jedes der ersten Cluster-Elemente in dem jeweiligen Sub-zweiten-Element führt die gleiche Anzahl an geplanten Aufgaben aus. Für jedes Sub-zweite-Element berechnet das Verfahren eine Wahrscheinlichkeit nicht mehr als alle geplanten Aufgaben darin zu verlieren basierend auf einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im jeweiligen Sub-zweiten-Element, der Anzahl der ersten Cluster-Elemente im jeweiligen Sub-zweiten-Element und der Anzahl von geplanten Aufgaben im jeweiligen Sub-zweiten-Element.
  • In einem anderen Beispiel umfasst das Verfahren außerdem das Überwachen des Aufgabenausführungsstatus und des Cluster-Status; und das Durchführen von Bearbeitung oder Löschen der Sicherungsaufgaben in der jeweiligen Gruppe anhand des Überwachens.
  • In einem weiteren Beispiel umfasst der Computer-Cluster erste und zweite Cluster-Elemente und das Verfahren umfasst außerdem die Abschätzung einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements und einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements. Alternativ basiert die Ermittlung der Anzahl von Sicherungsaufgaben auf einer Fehlerwahrscheinlichkeit eines dritten Cluster-Elements des Computer-Clusters. Hier umfasst das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element.
  • Gemäß einer anderen Ausführungsform wird ein System zum Erzeugen von Sicherungsaufgaben für eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen, bereitgestellt. Das System umfasst einen Speicher und einen Prozessor, der mit dem Speicher verbunden ist. Der Prozessor ist so konfiguriert, dass er eine Reihe von Anweisungen ausführt, die in dem Speicher gelagert sind, zur Klassifikation der Vielzahl an geplanten Aufgaben in Gruppen anhand von einer oder mehreren mit jeder Aufgabe verbundenen Betriebsmittelanforderungen. Jede geplante Aufgabe ist mit einer Zielwahrscheinlichkeit für die Ausführung assoziiert. Jede geplante Aufgabe ist ausführbar durch ein erstes Cluster-Element und ein zweites Cluster-Element. Jede Gruppe enthält mindestens eine der geplanten Aufgaben. Der Prozessor ist auch so konfiguriert, dass er für mindestens eine der jeweiligen Gruppen eine Anzahl von notwendigen Sicherungsaufgaben ermittelt, um zu garantieren, dass die geplanten Aufgaben der jeweiligen Gruppe die Zielwahrscheinlichkeit für die Ausführung erfüllen. Der Prozessor ist außerdem so konfiguriert, dass er die Sicherungsaufgaben anhand der Ermittlung erzeugt. Die erzeugten Sicherungsaufgaben in der jeweiligen Gruppe sind identisch. Und jede Sicherungsaufgabe in der jeweiligen Gruppe ist so konfiguriert, dass sie jede geplante Aufgabe der jeweiligen Gruppe ersetzen kann.
  • In einem Beispiel ist eine der Betriebsmittelanforderungen für eine ausgewählte der geplanten Aufgaben eine Speicherbereichanforderung. In einem anderen Beispiel umfasst das erste Cluster-Element mindestens einen einer Vielzahl an Rechnern und das zweite Cluster-Element umfasst mindestens eines einer Vielzahl an Racks.
  • In einem weiteren Beispiel umfasst das erste Cluster-Element eine Vielzahl der ersten Cluster-Elemente, das zweite Cluster-Element umfasst eine Vielzahl der zweiten Cluster-Elemente und der Prozessor ist außerdem so konfiguriert, dass er von jeder geplanten Aufgabe, eine Bevorzugung für die Ausführung durch ein bestimmtes der Vielzahl an ersten Cluster-Elementen oder ein bestimmtes der Vielzahl an zweiten Cluster-Elementen empfängt. Hier wird die Klassifikation anhand der empfangenen Bevorzugung durchgeführt.
  • In einem anderen Beispiel ist der Prozessor außerdem so konfiguriert, dass er einen ersten Aufwand zur Erzeugung der Sicherungsaufgaben für die jeweilige Gruppe ermittelt. Für jede Gruppe ist der Prozessor so konfiguriert, dass er einen zweiten Aufwand zur Erzeugung zusätzlicher Sicherungsaufgaben für eine Kombinationsgruppe, die die jeweilige Gruppe umfasst, ermittelt. Der ermittelte zweite Aufwand wird durch das Teilen der Vielzahl an geplanten Aufgaben und der jeweiligen Gruppe erhalten. Der Prozessor ist außerdem so konfiguriert, dass er den ersten Aufwand mit dem zweiten Aufwand vergleicht, um die Sicherungsaufgaben für die jeweilige Gruppe zu erzeugen, falls der erste Aufwand geringer ist als der zweite Aufwand; und um zusätzliche Sicherungsaufgaben für die Kombinationsgruppe zu erzeugen, falls der erste Aufwand höher oder gleich dem zweiten Aufwand ist.
  • In einem anderen Beispiel ermittelt der Prozessor die Anzahl von Sicherungsaufgaben durch die iterative Ausführung des Berechnens einer Wahrscheinlichkeit nicht mehr als alle gegenwärtigen Sicherungsaufgaben zu verlieren in einer bestimmten der Vielzahl an Gruppen; vergleicht die berechnete Wahrscheinlichkeit mit den Zielwahrscheinlichkeiten für die Ausführung; fügt eine Sicherungsaufgabe zu einer Klasse der bestimmten Gruppe hinzu, falls die berechnete Wahrscheinlichkeit höher als alle Zielwahrscheinlichkeiten ist; und hört auf Sicherungsaufgaben der bestimmten Gruppe hinzuzufügen, falls die berechnete Wahrscheinlichkeit geringer als alle Zielwahrscheinlichkeiten ist.
  • Alternativ umfasst das erste Cluster-Element eine Vielzahl an ersten Cluster-Elementen und das zweite Cluster-Element umfasst eine Vielzahl an zweiten Cluster-Elementen. Hier ist der Prozessor außerdem so konfiguriert, dass er eine Wahrscheinlichkeit berechnet nicht mehr als alle gegenwärtigen Sicherungsaufgaben in einer bestimmten Gruppe zu verlieren durch: für jedes zweite Cluster-Element, dass von den geplanten Aufgaben in der bestimmten Gruppe benutzt wird, das Teilen des zweiten Cluster-Elements in Sub-zweite-Elemente. Jedes der Sub-zweiten-Elemente umfasst eines oder mehrere erste Cluster-Elemente. Jedes der ersten Cluster-Elemente in dem jeweiligen Sub-zweiten-Element führt die gleiche Anzahl an geplanten Aufgaben aus. Für jedes Sub-zweite-Element berechnet der Prozessor außerdem eine Wahrscheinlichkeit nicht mehr als alle geplanten Aufgaben darin zu verlieren basierend auf einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im jeweiligen Sub-zweiten-Element, der Anzahl der ersten Cluster-Elemente im jeweiligen Sub-zweiten-Element und der Anzahl von geplanten Aufgaben im jeweiligen Sub-zweiten-Element.
  • In einer weiteren Alternative umfasst der Prozessor außerdem das Überwachen des Aufgabenausführungsstatus und des Cluster-Status und das Durchführen von Bearbeitung oder Löschen der Sicherungsaufgaben in der jeweiligen Gruppe anhand des Überwachens. In einem zusätzlichen Beispiel ist der Prozessor außerdem so konfiguriert, dass er eine Fehlerwahrscheinlichkeit des ersten Cluster-Elements und einer Fehlerwahrscheinlichkeit des zweiten Cluster-Elements abschätzt. In einem weiteren Beispiel ist der Prozessor außerdem so konfiguriert, dass die Anzahl von Sicherungsaufgaben basierend auf einer Fehlerwahrscheinlichkeit eines dritten Cluster-Elements in dem Computer-Cluster ermittelt. Hier umfasst das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element. Hier umfasst das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Diagramm einer Netzwerkumwelt gemäß den Aspekten der Erfindung.
  • 2 ist ein funktionelles Diagramm gemäß den Aspekten des Systems von 1.
  • 3 ist ein Hauptflussdiagramm gemäß den Aspekten der Erfindung.
  • 4 ist ein beispielhaftes Szenario gemäß den Aspekten der Erfindung.
  • 5 ist ein weiteres beispielhaftes Szenario gemäß den Aspekten der Erfindung.
  • 6 ist ein Flussdiagramm gemäß den Aspekten Erfindung.
  • 7 ist ein weiteres Flussdiagramm gemäß den Aspekten Erfindung.
  • 8 ist noch ein weiteres Flussdiagramm gemäß den Aspekten Erfindung.
  • 9 ist ein weiteres Flussdiagramm gemäß den Aspekten der Erfindung.
  • 10 ist ein weiteres Flussdiagramm gemäß den Aspekten Erfindung.
  • 11 ist ein weiteres Flussdiagramm gemäß den Aspekten der Erfindung.
  • 12 ist ein weiteres beispielhaftes Szenario gemäß den Aspekten der Erfindung.
  • 13 ist ein weiteres beispielhaftes Szenario gemäß den Aspekten der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte, Merkmale und Vorteile der Erfindung werden geschätzt, wenn sie mit Bezugnahme auf die folgende Beschreibung von Ausführungsbeispielen und beigefügten Figuren betrachtet werden. Dieselben Referenznummern in unterschiedlichen Zeichnungen können dieselben oder ähnliche Elemente identifizieren. Ferner ist die folgende Beschreibung nicht einschränkend; der Umfang der vorliegenden Erfindung wird durch die beigefügten Ansprüche und Äquivalente definiert.
  • Wie in 1 gezeigt, ein Computer-Cluster 100 gemäß den Aspekten der Erfindung umfasst ein oder mehrere Netzwerk-Berechnungselemente 102, 104 und 106 zur Durchführung von Job-/Aufgabenverarbeitung. Der Cluster kann jede Art von verteiltem Computersystem sein. Zum Beispiel kann Cluster 100 ein hochverfügbarer Cluster sein, der redundante Arbeitseinheiten umfasst, um die Verfügbarkeit von Dienstleistungen zu verbessern oder ein lastausgleichender Cluster, der eine oder mehrere lastausgleichende Vorderenden hat, durch welche die gesamte Arbeitslast durchkommt und zu einer Sammlung von Hinterenden-Servern verteilt werden.
  • In anderen Szenarien kann Cluster 100 ein hochverfügbarer Cluster sein, der die rechnerische Aufgabe in Stücke teilt und die Stücke über viele verschiedene Verarbeitungseinheiten in dem Cluster verteilt. In weiteren Beispielen kann Cluster 100 ein Gitter-Cluster sein, der mehrere heterogene Sammlungen trägt. Alternativ kann der Cluster ein engagierter Cluster sein, der paralleles Rechnen über die gesamten Cluster durchführt, oder ein nicht engagierter Cluster, der gewissen Applikationen erlaubt, in freien CPU-Zyklen ausgeführt zu werden.
  • Cluster-Berechnungselemente wie 102, 104 und 106, auch als Verarbeitungseinheiten bekannt, können durch Netzwerk 90 miteinander kommunizieren. Netzwerk 90 kann verschiedene Typen von dazwischenliegenden Knoten umfassen, wie z. B. Router, Gateways, Server, Datenbanken und Bedienungsterminals. Netzwerk 90 kann auch verschiedene Konfigurationen umfassen und verschiedene Protokolle nutzen, einschließlich Weitverkehrsnetzwerke, lokale Netzwerke, drahtlose Netzwerke, persönliche Netzwerke, virtuelle private Netzwerke, private Netzwerke, die Kommunikationsprotokolle nutzen, die Eigentum einer oder mehreren Firmen sind und verschiedene Kombinationen der vorher genannten. Obwohl nur wenige Netzwerkknoten in dargestellt sind in 1, sollte geschätzt werden, dass ein typischer Cluster eine große Zahl verbundener Computer umfassen kann. Eine solche Kommunikation kann von jedem Gerät ermöglicht werden, das in der Lage ist, Daten von und zu anderen Computer zu übertragen, wie Ethernet-Netzwerkschnittstellen, T1-Leitungen, Faseroptikkabel und/oder drahtlose Schnittstellen.
  • Jedes Netzwerk-Computing-Element 102, 104 und 106 kann sich in einem einzigartigen Netzwerkknoten aufhalten und kann verschiedene Typen von Computeranlagen umfassen. Zum Beispiel kann Computing-Element 102 ein unabhängiger Rechner sein, mit seinem eigenen Betriebssystem, Speicher, Prozessor(en), Eingangs-/Ausgangsbus, Netzwerkadapter, usw. In einem anderen Beispiel kann Verarbeitungseinheit 104 ein Rackserver sein, der mindestens einen Rechner umfasst.
  • Jede Verarbeitungseinheit ist mit verschiedenen Hardware- und Softwarebetriebsmitteln assoziiert, so wie Betriebsmittel 108, 110 und 112, jeweils. Diese Hardware- und Softwarebetriebsmittel können Prozessoren, Speicher, CDs, Kassetten, Swaps, Eingangs/-Ausgangsvorrichtungen oder Schnittstellen, Netzwerkbandbreite, Netzwerkverbindungen, Lizenzen oder jedes andere ortsspezifische Betriebsmittel umfassen. Als solcher besitzt Cluster 100 eine Reihe von verteilten und heterogenen Betriebsmitteln, die zentral oder lokal von den eingehenden Applikationsjobs/-aufgaben verwaltet und benutzt werden können. Diese Betriebsmittel können mehreren Jobs oder Aufgaben zugeordnet werden und über sie gemeinsam genutzt werden.
  • Die Jobs 114, 116 und 118 können von einer oder mehreren Benutzerapplikationen kommen. Jeder Job kann eine Reihe von individuellen Aufgaben umfassen. Zum Beispiel kann Job 114 eine oder mehrere Aufgaben 120 umfassen. Job 116 kann eine Reihe von Aufgaben 122 umfassen und Job 118 kann Aufgaben 124 umfassen. Diese Aufgaben können als parallele Aufgaben verknüpft sein oder abhängige oder aufeinanderfolgende Aufgaben sein. Jeder Job kann auf einem Cluster aus Prozessoren durchgeführt werden. Die Aufgaben können diskrete Blöcke von ausführbarem Code oder Funktionen sein, die auf einem oder mehreren Prozessoren in dem Cluster durchgeführt werden können. Die Aufgaben können spezifische Eingangs- oder Ausgangsdaten haben, die zwischen gewissen Aufgaben gemeinsam genutzt werden und die Basis für Beziehungen zwischen Aufgaben sein können.
  • Jeder Job ist vorzugsweise mit einer Reihe von jobbedingter Information assoziiert. Zum Beispiel kann Job 114 mit Information 126 assoziiert sein, Job 116 kann mit Information 128 assoziiert sein und Job 118 kann mit Information 130 assoziiert sein. Die jobbedingte Information kann ein oder mehrere Job-Ziele, Performance-Ziele, Richtlinien, Einschränkungen und/oder Bevorzugungen umfassen. Die Performance-Ziele können eine Zielwahrscheinlichkeit für einen bestimmten Job umfassen, dass dieser geplant bleibt. Zum Beispiel, wenn die Zielwahrscheinlichkeit für Job 114 bei 99,999% liegt, bedeutet das, dass dieser Job eine Garantie mit einer Wahrscheinlichkeit von 99,999% benötigt, dass der Job angesichts erwarteter Nichtverfügbarkeit von Betriebsmitteln aufgrund von Vorfällen wie Rechner-/Rackfehlern geplant bleibt.
  • Die jobbedingte Information kann auch eine Reihe von Betriebsmittelanforderungen für jeden Job umfassen, einschließlich der Mindestanzahl oder maximalen Anzahl an benötigten Betriebsmitteln. Jeder Job kann gesondert definierte Betriebsmittel besitzen, die benötigt werden, um den Job oder die Aufgabe zu implementieren. Daher kann jeder Job oder Aufgabe eine Reihe von gemeinsamen Cluster-Betriebsmitteln 108112 auf unterschiedlichen Niveaus nutzen. In einem Beispiel kann ein Job oder eine Aufgabe ein einziges Betriebsmittel wie einen einzigen Prozessor oder eine einzige Softwarelizenz benötigen. In einem anderen Beispiel kann ein Job oder eine Aufgabe mehrere Betriebsmittel benötigen. Eine Aufgabe kann so konfiguriert sein, dass sie entweder mit einer Mindestmenge von Speicher oder einer maximalen Menge an Speicher läuft.
  • In anderen Beispielen kann jeder Job oder Aufgabe so konfiguriert sein, dass sie mehrere Betriebsmittel, die sich über verschiedene Betriebsmittelkategorien erstrecken, benutzt. Zum Beispiel kann Aufgabe 120 1.0 CPU, 1 GB RAM, eine spezifische Softwarelizenz und eine gewisse Menge von Netzwerkbandbreite benutzen, während Aufgabe 122 keine spezifische Softwarelizenz oder Netzwerkbandbreite benötigen kann, aber gewisse I/O-Geräte, 2.0 CPU und 0,5 GB RAM. Die jobbedingte Information kann auch Einschränkungs- oder Bevorzugungsinformation umfassen, wie zu meidende oder zu bevorzugende Rechner oder Racks usw.
  • Die jobbedingte Information kann außerdem jeden anderen Typ von Zielen umfassen, die von der Applikation, die den Job versendet, vorbestimmt wurden. Diese Ziele können, zum Beispiel, Job- oder Aufgabeninitiierungsanforderungen, Ziel-Job oder Aufgabenabschlusszeit usw., umfassen. In anderen Beispielen können diese Performance-Ziele auch von einer Verwaltungsinfrastruktur oder einer anderen mit dem Cluster assoziierten Einheit festgelegt werden, wie die Clustermanagement-Infrastruktur 132, die in der 1 dargestellt wird.
  • Die Clustermanagement-Infrastruktur 132 kann mehrere Arten von Clustermanagement-Funktionen durchführen, einschließlich der Verwaltung der Cluster-Betriebsmitten und Planung, dass die Applikationsjobs oder -aufgaben auf der zugewiesenen Hardware- und Softwareplattform laufen. Die Clustermanagement-Infrastruktur 132 kann eine oder mehrere Softwareschichten umfassen, die mehrere Managementmodule oder -funktionen, die auf zentralisierten Servern oder auf verteilten Hostplattformen laufen, beinhalten.
  • Zum Beispiel kann die Management-Infrastruktur ein oder mehrere Module 134 umfassen zur Durchführung von Betriebsmittelmanagement, Jobplanung, Flussmanagement usw. Diese Managementmodule können die eingehenden Jobs und Aufgaben analysieren, um die Mindestmenge und die maximale Menge an notwendigen Betriebsmitteln für jeden Job oder Aufgabe zu ermitteln. Jobs und Aufgaben können geplant werden, wenn die notwenigen Betriebsmittel verfügbar werden. Die Managementmodule können ebenso Planungsgewichte oder Prioritätswerte anhand von vorbestimmten Richtlinien und Jobzielen ermitteln und demgemäß die Jobplanung durchführen. Die pro geplant-bleibendem Job Zielwahrscheinlichkeit kann auch von der Clustermanagement-Infrastruktur 132 ermittelt werden, anhand mehrerer Faktoren (z. B., Kotrollrichtlinien des Clusters, Priorität des Jobs/Aufgabe usw).
  • Der Risikomanager 136 kann als separates Managementmodul zusätzlich zu den anderen Clusterverwaltungsfunktionen implementiert werden, wie in 1 dargestellt wird. Alternativ kann der Risikomanager 136 als Teil eines jeden der anderen funktionellen Module, wie ein Jobplaner, ein Betriebsmittelmanager oder ein Sicherungsaufgabenmanager, implementiert werden. Der Risikomanager 136 ist für die Ermittlung der Anzahl von benötigten Sicherungsaufgaben, um die geplant-bleiben Zielwahrscheinlichkeit zu garantieren, verantwortlich.
  • Insbesondere klassifiziert der Risikomanager 136 die eingehenden Aufgaben über heterogene Jobs anhand deren jeweiligen Betriebsmittelanforderungen. Die Klassifikation der Aufgaben kann so durchgeführt werden, dass die Aufgaben mit ähnlichen Betriebsmittelanforderungen in die gleiche Klasse gruppiert werden. Der Risikomanager kann den vorbestimmten Ähnlichkeitsgrad von den Clustermanagement-Richtlinien erhalten. In weiteren Ausführungen kann der Risikomanager oder die Clustermanagement-Infrastruktur (z. B., in dem Risikomanager) so konfiguriert werden, dass sie den Ähnlichkeitsgrad anhand vorheriger Performance des Systems dynamisch anpassen und verbessern können.
  • Dann schätzt der Risikomanager 136 die Descheduling-Wahrscheinlichkeiten der Aufgaben in jeder Klasse anhand von einer Vielzahl vorbestimmter Annahmen und vorgegebenen Fehlerwahrscheinlichkeiten der Netzwerkelemente ab, die an den Aufgabenausführungen beteiligt sind. Die vorgegebenen Fehlerwahrscheinlichkeiten können Fehlerwahrscheinlichkeiten von Rechnern, Racks, Schaltern oder jedem anderen Typ von Computer-Vorrichtungen umfassen. Diese Fehlerwahrscheinlichkeiten können abgeschätzt werden durch und erhalten werden von anderen Clustermanagement-Einheiten. Alternativ kann die Abschätzung dieser Fehlerwahrscheinlichkeiten von dem Risikomanager 136 durchgeführt werden.
  • Anhand der abgeschätzten Descheduling-Wahrscheinlichkeiten und der geplant-bleiben Zielwahrscheinlichkeit, die mit den Aufgaben in der Klasse assoziiert ist, ermittelt der Risikomanager 136 wie viele Sicherungsaufgaben von einer bestimmten Klasse benötigt werden, um den darin vorhandenen Aufgaben die geplant-bleiben Zielwahrscheinlichkeiten zu garantieren. Der Risikomanager kann dann die Sicherungsaufgaben für jede Klasse demgemäß erzeugen. Alternativ kann der Risikomanager die ermittelte Anzahl von Sicherungsaufgaben an andere Clustermanagement-Einheiten weitergeben (z. B. an einen Sicherungsaufgabenmanager, nicht gezeigt), um für jede Gruppe erzeugte Sicherungsaufgaben zu haben.
  • Eine Sicherungsaufgabe kann durch eine Sammlung von Informationen wie z. B. der Aufgabenname, die Aufgaben, die gesichert werden müssen, der Ort, an dem die Sicherungsaufgaben gespeichert werden, die Betriebsmittelanforderungen und Betriebsmittelorte in dem Cluster und Sicherungsoptionen für die bestimmte Sicherungsaufgabe definiert werden. In System 100 wird vom Risikomanager 136 eine Anzahl von identischen Sicherungsaufgaben 138 für jede Klasse erzeugt. Jede Sicherungsaufgabe 138 ist in der Lage jede Aufgabe einer bestimmten Klasse zu ersetzen. Als solche, ist in einer bestimmten Klasse jede Sicherungsaufgabe 138 mit einer Reihe von Clusterbetriebsmitteln verknüpft, die ausreichend sind, um jede geplante Aufgabe der Klasse zu tragen.
  • In einem Beispiel von System 100 können die geplant-bleiben Zielwahrscheinlichkeiten vom Risikomanager 136 als Teil der Job-/Aufgabenziele empfangen werden, einschließlich der jobbedingten Information 126, 128 und/oder 130. In einem anderen Beispiel kann die geplant-bleiben Zielwahrscheinlichkeit von einem Betriebsmittelmanager oder einem Jobplaner, dem Risikomanager oder von anderen Managementmodulen in der Clustermanagement-Infrastruktur ermittelt werden.
  • Die Betriebsmittelanforderungen können von jedem eingehenden Job/Aufgabe bereitgestellt werden oder vom Risikomanager ermittelt und überwacht werden. Zum Beispiel kann der Risikomanager 136 ein Job-/Aufgabenanalysierungsmodul besitzen, welches die minimalen und maximalen Betriebsmittel anhand der Jobziele und jeglicher relevanten Richtlinien des Clusters ermittelt, die benötigt werden, um einen Job/Aufgabe zu initiieren oder auszuführen.
  • Der Risikomanager 136 kann auch Job-/Augabenüberwachungsfunktionen durchführen, um die Job-/Aufgabenveränderungen und Ausführungsstatus zu überwachen. Der Risikomanager 136 kann auch den Status von Rechnern, Racks oder verschiedenen anderen Computervorrichtungen in dem Cluster überwachen. Alternativ kann der Risikomanager 136 den Job-/Aufgabenausführungsstatus, Rechner- oder Rackstatus oder andere Clusterstatusinformationen von anderen Clustermanagement-Modulen wie einem Betriebsmittelmanager oder einem Jobplaner empfangen. Anhand der überwachten Information kann der Risikomanager 136 die Sicherungsaufgaben in jeder Klasse anpassen oder optimieren durch das Hinzufügen von neuen Sicherungsaufgaben, Löschen oder Verändern von existierenden Sicherungen.
  • 2 zeigt ein Systemblockdiagramm 200 gemäß den Aspekten der Erfindung. Wie veranschaulicht kann der Risikomanager 202 (äquivalent zum Risikomanager 136 in 1) auf einem Knoten in dem Cluster 226 liegen. Der Risikomanager 202 kann verschiedene Informationen vom Cluster 226 erhalten und demgemäß Risikomanagementinformation erzeugen. Der Risikomanager 202 kann auch eine Vielzahl an Computer umfassen, die Informationen mit unterschiedlichen Knoten eines Netzwerks austauschen, und zwar zum Zweck des Empfangs, der Bearbeitung, und Übertragung von Daten an andere Rechner oder Bedienungsterminals.
  • Wie gezeigt in 2, kann der Risikomanager 202 ein Computer sein (z. B. ein Server), der einen Prozessor 204, einen Speicher 206 und andere Komponenten enthält, die üblicherweise in einem Mehrzweck-Computer vorhanden sind. Der Prozessor 204 kann jeder herkömmliche Prozessor sein, wie beispielsweise Prozessoren von Intel Corporation oder Advanced Micro Devices. Alternativ kann der Prozessor ein engagiertes Gerät sein, wie beispielsweise ein ASIC oder vielleicht ein ARM Prozessor.
  • Der Speicher 206 enthält Informationen, die durch den Prozessor 204 zugänglich sind, einschließlich Anweisungen 208, die vom Prozessor 204 ausgeführt oder anderweitig benutzt werden können. Er beinhaltet zudem Daten 218, die der Prozessor abrufen, bearbeiten oder speichern kann. Der Speicher kann jeglicher Art sein, solange er in der Lage ist, die vom Prozessor zugänglichen Informationen zu speichern. Hierzu gehören unter anderem computerlesbare Datenträger, oder sonstige Medien, die Daten speichern, die mithilfe eines elektronischen Geräts gelesen werden können. Hierzu gehören unter anderem Festplatten, Speicherkarten, ROM, RAM, DVD, oder sonstige optische Platten, sowie auch sonstige beschreibbare Speicher und Festwertspeicher. Die Systeme und Verfahren können unterschiedliche Kombinationen der vorstehend Genannten beinhalten, wobei unterschiedliche Abschnitte der Anweisungen und Daten auf unterschiedlichen Datenträgerarten gespeichert werden.
  • Anweisungen 208 können jede Art von Anweisungen sein, die vom Prozessor direkt (wie beispielsweise Maschinenbinärcode) oder indirekt (wie beispielsweise Skripte von jeglicher Art von Programmiersprache) ausgeführt werden können. Die Anweisungen können beispielsweise in Form von Computercode auf einem computerlesbaren Datenträger gespeichert werden. Insoweit können die Begriffe „Anweisungen” und „Programme” hierin austauschbar verwendet werden. Die Anweisungen können im Objektcodeformat zur direkten Verarbeitung durch den Prozessor oder in jeder anderen Computersprache einschließlich Scripts und Sammlungen von unabhängigen Sourcecodemodulen gespeichert werden, die auf Anfrage interpretiert oder im Voraus erstellt werden können.
  • Darüberhinaus können Anweisungsverfahren oder -routinen mehrere Programme oder Funktionen gemäß den Aspekten der Erfindung umfassen. Zum Beispiel können die Anweisungen 210 so ausgeführt werden, dass sie von den eingehenden Jobs/Aufgaben in Cluster 226 geplant-bleiben Wahrscheinlichkeiten 230 und Job- oder Aufgabenbetriebsmittelanforderungen 232 empfangen. Anhand der empfangenen Informationen, können die Anweisungen 210 so ausgeführt werden, dass sie Job-/Aufgabenähnlichkeitsabschätzung und Aufgabenklassifikationen durchzuführen.
  • Die Anweisungen können auch Risikoabschätzungsanweisungen 212, um Funktionen wie beispielsweise Descheduling-Wahrscheinlichkeitsberechnungen, und Sicherungsaufgabenerzeugungs/-Optimierungsanweisungen 214 umfassen, wie beispielsweise das Löschen/Bearbeiten der existierenden Sicherungsaufgaben in jeder Klasse, um die Gültigkeit der Sicherungsaufgaben zu gewährleisten und um zu gewährleisten, dass die geplant-bleiben Zielwahrscheinlichkeiten der Aufgaben in jeder bestimmten Klasse garantiert sind.
  • Clusterstatus-Überwachungsanweisungen 216 können so ausgeführt werden, dass sie die Clusterstatusinformationen 228 beobachtet und verarbeitet, um die aktualisierten Betriebsmittelanforderungen der Aufgaben in jeder Klasse anhand von Clusterstatusinformationen zu ermitteln.
  • Die Anweisungen 208 können auch so konfiguriert werden, dass sie die Verteilung der Risikomanagementinformation 234, welche Sicherungsaufgaben umfasst, an andere Clustermanagement-Einheiten durchführen, um Funktionen wie Jobplanung, Flussmanagement oder Betriebsmittelmanagement zu vereinfachen. Die Anweisungen 208 können außerdem Anweisungen zur Abschätzung der Fehlerwahrscheinlichkeiten von Netzwerkelementen in Cluster 226 umfassen, um die Descheduling-Risikoabschätzung zu vereinfachen.
  • Die Daten 218 können vom Prozessor 204 gemäß den Anweisungen 208 abgerufen, gespeichert oder bearbeitet werden. Obwohl das System und das Verfahren beispielsweise nicht von einer bestimmten Datenstruktur begrenzt sind, können die Daten in Computerregistern in einer relationalen Datenbank als eine Tabelle gespeichert werden, die über eine Vielzahl an unterschiedlichen Feldern und Datensätzen, XML Dokumenten oder anderen Formaten verfügt.
  • Wie veranschaulicht, können die Daten 218 Aufgabenklassendaten 220 umfassen, die gemäß den Aufgabenklassifikationsanweisungen und den Sicherungsaufgabenerzeugungs/-optimierungsanweisungen erzeugt wurden. Die Aufgabenklassendaten 220 beschreiben die Eigenschaften jeder Klasse und können Informationen wie beispielsweise Betriebsmittelanforderungen der Aufgaben in der Klasse, so wie die geplant-bleiben Zielwahrscheinlichkeiten jeder Aufgabe umfassen. Außerdem speichern die Klassendaten auch Informationen der Sicherungsaufgaben, die vom Risikomanager für jede Klasse erzeugt wurden.
  • Die Daten 222 speichern Clusterstatusinformationen, die vom Risikomanager benutzt werden können, die Deschedulingwahrscheinlichkeit innerhalb der gewünschten Grenze zu halten. Die Statusinformationen können, zum Beispiel, Jobausführungsstatus und die aktualisierten Betriebsmittelanforderungen, fehlerhafte Rechner/Racks, Ausfälle von mehreren Cluster-Elementen und andere vom Risikomanager überwachte und aufgenommene Informationen umfassen.
  • Die Daten 224 speichern mehrere Typen von empirischen oder abgeschätzen Fehlerwahrscheinlichkeiten für die Nutzung durch die Risikoabschätzung und Sicherungsaufgabenerzeugungsanweisungen. Diese können, zum Beispiel, Fehlerwahrscheinlichkeiten von Netzwerkelementen wie Schaltern, Rechnern oder Racks umfassen oder Job-/Aufgabenfehlerwahrscheinlichkeiten auf einem oder mehreren oder Kombinationen dieser Netzwerkelemente.
  • Die oben genannten Daten können sich in dem Risikomanager 202 aufhalten, wie in 2 gezeigt, oder können auf verteilten Datenbanken in dem mit dem Risikomanager assoziierten Cluster gespeichert werden. Der Prozessor 204 kann die Anweisungen 208 ausführen, um auf diese Datenbanken zuzugreifen und Daten von ihnen abzurufen.
  • Obwohl 2 den Prozessor und den Speicher als im selben Block funktionell veranschaulicht, können der Prozessor und der Speicher eigentlich mehrere Prozessoren und Speicher umfassen, die im gleichen physischen Gehäuse untergebracht sein können oder nicht. Der Speicher 206 kann beispielsweise eine oder mehrere Festplatten oder ein anderes Speichermedium sein, das sich in einer Serverfarm eines Datenzentrums befindet. So können beispielsweise einige der Anweisungen und Daten auf einem herausnehmbaren schreibgeschützten Speicher und andere in einem schreibgeschützten Computerchip gespeichert sein. Einige oder alle der Anweisungen und Daten können an einem Standort gespeichert werden, der physisch vom Prozessor entfernt ist, zu dem der Prozessor aber trotzdem Zugang hat. Desgleichen kann der Prozessor eine Reihe von Prozessoren umfassen, die parallel betrieben werden können oder nicht. Demgemäß werden Bezugnahmen auf einen Prozessor, Computer oder Speicher als Bezugnahmen auf eine Sammlung von Prozessoren, Computer oder Speicher verstanden, die parallel betrieben werden können oder nicht.
  • Der Risikomanager 202 kann an einem Knoten in dem Cluster 226 sein und dazu fähig sein, direkt oder indirekt mit anderen Knoten in dem Cluster zu kommunizieren. Zum Beispiel, anstatt der Überwachung der Clusterinformation oder der Abschätzung der Betriebsmittelanforderungen oder der Zielwahrscheinlichkeiten selbst, kann der Risikomanager die Clusterinformation von anderen Clustermanagement-Modulen, die sich in anderen Knoten in Cluster 226 befinden, erhalten. In diesem Fall kann der Risikomanager an einem von vielen Knoten, die sich in der Clustermanagement-Infrastruktur 132, veranschaulicht in 1, befinden, sein.
  • Obwohl gewisse Vorteile erzielt werden, wenn Informationen wie oben angegeben übertragen oder empfangen werden, sind andere Aspekte des Systems und Verfahrens nicht auf eine besondere Art und Weise der Informationsübertragung eingeschränkt. Zum Beispiel können die Informationen in einigen Aspekten über ein konkretes computerlesbares Medium wie beispielweise eine Platte, Kassette, CD-ROM oder Festspeicher wie beispielsweise ein USB-Stick gesendet werden. In anderen Aspekten können die Informationen in einem nicht-elektronischen Format übertragen und manuell in das System eingegeben werden. Und obwohl manche Funktionen auf einer Vielzahl an Rechnern oder Servern ausgeführt werden, können verschiedene Aspekte der Erfindung mittels eines einzelnen Computers mit einem einzelnen Prozessor implementiert werden.
  • 3 veranschaulicht ein Flussdiagramm 300 gemäß den Aspekten der Erfindung, wobei ein Risikomanagementsystem in einem Computer-Cluster Sicherungsaufgaben für eine Vielzahl an geplanten Aufgaben erzeugt, anhand deren Zielwahrscheinlichkeiten geplant zu bleiben, abgeschätzte Descheduling-Wahrscheinlichkeiten und Betriebsmittelanforderungen.
  • Wie gezeigt in 3, startet das Verfahren vorzugsweise in Block 302, mit dem Teilen der geplanten Aufgaben in Klassen anhand der Betriebsmittelanforderungen von jeder Aufgabe durch das Risikomanagementsystem. Die Aufgaben in jeder Klasse können von heterogenen Jobs kommen, haben aber identische oder ähnliche Betriebsmittelanforderungen. Die Aufgabenklassifikation kann auch anhand von zusätzlichen Kriterien durchgeführt werden, wie beispielsweise bevorzugte oder zu meidende Rechner, Racks oder andere Netzwerkcomputereinheiten.
  • Wie in den jeweiligen Blöcken 304 und 306 gezeigt, führt das System dann einen iterativen Prozess durch zur Erzeugung der Sicherungsaufgaben und Ermittlung, ob die exisitierenden Sicherungsaufgaben die Zielwahrscheinlichkeit geplant zu bleiben garantieren können. In Block 304 kann die Anzahl von Sicherungsaufgaben mit jeder Iteration um 1 erhöht werden. Block 306 kann ausgeführt werden, indem die Descheduling-Wahrscheinlichkeit der Aufgaben abgeschätzt wird und die geschätzte Descheduling-Wahrscheinlichkeit mit der geplant-bleiben Zielwahrscheinlichkeit verglichen wird. Falls die Descheduling-Wahrscheinlichkeit höher oder gleich den Zielwahrscheinlichkeiten ist, kehrt der Prozess zurück zu Block 304 und erzeugt mehr Sicherungsaufgaben. Falls die Descheduling-Wahrscheinlichkeit höher als die Zielwahrscheinlichkeiten ist, werden keine Sicherungsaufgaben mehr erzeugt und der Prozess fährt mit Block 308 fort.
  • In einem Szenario startet das System mit keinen Klassen und erzeugt neue Klassen für alle geplanten Aufgaben. Anstatt neue Klassen zu erzeugen kann das Risikomanagementsystem bei später geplanten Aufgaben diese Aufgaben, anhand der Betriebsmittelanforderungen der Aufgaben und der Eigenschaften der existierenden Klassen, geeignetsten Klassen zuordnen. Das System kann die existierende Klasse auch bearbeiten, um die neuen Aufgaben aufzunehmen.
  • In Block 308 führt das Risikomanagementsystem zusätzliche Optimierung der Sicherungsaufgaben durch. Die Optimierung kann vom Risikomanagementsystem durchgeführt werden durch Überwachen oder Empfangen von Mitteilungen von anderen Clustermanagement-Einheiten über die Veränderungen an den Aufgaben, sowie an dem Cluster. Diese Veränderungen können Jobs/Aufgaben umfassen, die den Cluster beenden, verändern oder verlassen. Die Veränderungen können auch den Ausfall von Rechnern, Überlassung eines Netzwerkknotens, Zusammenbruch eines Computerprozesses, das Hinzufügen oder Entfernen von Netzwerkelementen usw. umfassen.
  • Anhand der überwachten Informationen ermittelt das System, ob die existierenden Sicherungsaufgaben in jeder Klasse noch die Anforderungen der Aufgaben in der Klasse erfüllen. Dies kann periodisch durchgeführt werden, nach einer Ansammlung von veränderten Ereignissen oder vielleicht durch ein veränderndes Ereignis ausgelöst werden wie beispielsweise ein Job, der eine Klasse verlässt. Wenn die Sicherungsaufgaben in einer Klasse die Anforderungen einer bestimmten geplanten Aufgabe in der Klasse nicht erfüllen, kann das System festlegen, dass die geplante Aufgabe nicht gesichert ist und Bearbeitungen an den existierenden Sicherungsaufgaben vornehmen oder neue Sicherungsaufgaben zu der Klasse hinzufügen.
  • In einem Beispiel kann das System eine Sicherungsaufgabe, die noch gültig ist, aber aufgrund ihrer Vollendung oder des Verlassens des Clusters (z. B. zur Benutzerapplikation mit den vollendeten Ergebnissen zurückkehren) unnötig geworden ist, entfernen. In einem anderen Beispiel kann das System einige extra Sicherungsaufgaben hinterlassen, um die Wahrscheinlichkeit des nochmaligen Wachsens der Klasse in der nächsten Runde der Klassifikation oder Optimierung der Aufgaben zu vermeiden. Auf diese Weise wird die Effizienz des Systems mit einem reduzierten Anteil an Löschen oder Erzeugung erhöht. In dieser Situation kann die Anzahl oder die Kriterien von extra zu hinterlassenden Sicherungsaufgaben für jede Klasse vorbestimmt werden.
  • Im Optimierungsprozess entfernt das System vorzugsweise jegliche Sicherungsaufgaben, die ungültig geworden sind aufgrund von Ereignissen wie Rechnerfehler. Als solche können unnötige Sicherungsbetriebsmittel rechtzeitig an den Cluster zurückgegeben werden, um die Benutzungseffizienz der Clusterbetriebsmittel zu verbessern.
  • Das System führt auch verschiedene andere Optimierungen durch. Zum Beispiel können Jobs oder Aufgaben ohne erzeugte Sicherungsaufgaben geplant und ausgeführt werden. Diese Opt-out-Option kann von den Jobzielen oder -richtlinien, die mit jedem Job oder Aufgabe assoziiert sind, abhängig sein. In dieser Situation kann das System sich dazu entscheiden die Bearbeitung oder das Wachsen einer existierenden Klasse zu verweigern, wenn Unterbrechungen für die nicht gesicherten Aufgaben währen des Optimierungsprozesses groß sind. Wenn beispielsweise Löschungen für all Sicherungsaufgaben und Wiedererzeugungen benötigt werden, kann Bearbeitung oder Wachsen verweigert werden.
  • In einem weiteren Beispiel kann das System alle reduzierten Sicherungsaufgaben auf dem gleichen Rechner oder Rack oder auf der kleinstmöglichen Anzahl von Netzwerkelementen planen, um jegliche unnötige Berechnungen oder Unterbrechungen zu reduzieren, wenn die Sicherungsaufgaben einer bestimmten Klasse kleiner werden (z. B. aufgrund von vollendeten Jobs oder Verlassen des Clusters) und die Sicherungsaufgaben demgemäß reduziert werden müssen.
  • 4 veranschaulicht ein Beispielszenario 400, in dem das Risikomanagementsystem gemäß einem Aspekt der vorliegenden Erfindung arbeitet. In diesem Szenario hat Job 402 10 Aufgaben, Job 404 hat 6 Aufgaben und Job 406 hat 5 Aufgaben, jeweils. Die Aufgaben in jedem Job können unterschiedliche Betriebsmittelanforderungen besitzen und die Aufgaben mit ähnlichen Betriebsmittelanforderungen werden in einer Klasse zusammengefasst. Zum Beispiel können Aufgabe 408 von Job 402, Aufgabe 412 von Job 404 und Aufgabe 418 von Job 406 ähnliche Betriebsmittelanforderungen haben und in „Aufgabenklasse 1” (422) klassifiziert werden. „Aufgabenklasse 2” (424) kann Aufgabe 410 von Job 402 und Aufgabe 414 von Job 404 umfassen. Aufgabe 416 von Job 404 kann ähnliche Betriebsmittelanforderungen wie Aufgabe 420 von Job 406 besitzen und daher werden beide Aufgaben in „Aufgabenklasse 3” (426) gruppiert.
  • Zusätzlich zu den Betriebsmittelanforderungen, kann das Risikomanagementsystem die Aufgaben auch durch Berücksichtigung anderer Kriterien klassifizieren, wie beispielsweise Planungsrichtlinien oder Bevorzugung der Rechner zur Ausführung dieses Jobs/Aufgabe. Diese Kriterien können von anderen Clustermanagement-Einheiten kommen, wie beispielsweise ein Jobplaner oder ein Betriebsmittelmanager wie in 1 veranschaulicht, oder alternativ von den jobbedingten Informationen, die von jedem Job getragen werden. Daher ist jede Klasse eine Reihe von Jobs/Aufgaben, die sich zumindest in den Betriebsmittelanforderungen und anderen Aspekten ähneln.
  • 5 veranschaulicht ein weiteres Beispielszenario 500, in welchen Sicherungsaufgaben von dem Risikomanagementsystem gemäß einem Aspekt der vorliegenden Erfindung erzeugt werden. In jeder Klasse sind die Sicherungsaufgaben identisch und können jede geplante Aufgabe in dieser Klasse ersetzen. Als solche, ist jede Sicherungsaufgabe mit einer Reihe von Clusterbetriebsmitteln, die die maximalen Betriebsanforderungen der geplanten Aufgaben erfüllen können, assoziiert. Zum Beispiel, in „Aufgabenklasse 1” (522), kann Aufgabe 508 von Job 502 1 GB RAM und 1.0 CPU benötigen, Aufgabe 512 von Job 504 kann 10 MB RAM und 2.0 CPU benötigen and Aufgabe 518 von Job 506 kann 100 MB RAM und 1.5 CPU benötigen. Daher sollte jede der Sicherungsaufgaben 528 in Aufgabenklasse 1 mindestens 1 GB RAM und 2.0 CPU besitzen, um fähig zu sein entweder Aufgabe 508, Aufgabe 512 oder Aufgabe 518 zu ersetzen. Ähnlich ist Sicherungsaufgabe 530 fähig, die maximalen Betriebsmittelanforderungen der Aufgaben in „Aufgabenklasse 2” (524) aufzunehmen und kann Aufgabe 516 und Aufgabe 520 ersetzen. Sicherungsaufgabe 532 in „Aufgabenklasse 3” (526) sind auch die maximalen benötigten Betriebsmittel für alle Aufgaben in Aufgabenklasse 3 zugewiesen und kann Aufgabe 510 und Aufgabe 514 ersetzen.
  • Operationen gemäß den Aspekten der Erfindung werden jetzt detailgenau beschrieben mit Bezugnahme auf die Prozesse veranschaulicht in 611. Die 67 veranschaulichen den operativen Zusammenbruch eines detaillierten Prozesses der Teilung von Aufgaben in Klassen (Block 302 in 3). Die 811 veranschaulichen den operativen Zusammenbruch eines detaillierten Prozesses der Erzeugung von Sicherheitsaufgaben und der Abschätzung, ob die existierenden Sicherungsaufgaben die geplant-bleiben Zielwahrscheinlichkeiten garantieren können. Es sollte sich verstehen, dass die folgenden Operationen nicht in der nachstehend beschriebenen genauen Reihenfolge durchgeführt werden müssen. Stattdessen können unterschiedliche Operationen in unterschiedlicher Reihenfolge oder simultan durchgeführt werden.
  • 6 veranschaulicht einen Aufgabenldassifizierungsprozess 600. In Block 602 teilt das System alle geplanten Aufgaben in Signaturen (vorläufige Gruppen), sodass die Aufgaben in jeder bestimmten Signatur oder vorläufigen Gruppe ähnliche Betriebsmittelanforderungen und Performanceeinschränkungen (z. B. bevorzugte/zu vermeidende Rechner/Racks usw.) oder Planungsrichtlinien haben.
  • In Block 604 ermittelt das System, ob es irgendeine existierende Klasse, der die Aufgaben zugewiesen werden können, gibt. Falls es keine gibt, geht der Prozess zu Block 606 über, um Klassen anhand der geteilten Signaturen oder Gruppen zu erzeugen. Falls es irgendeine existierende Klasse gibt, geht der Prozess zu Block 608 über, um eine passende Klasse auszuwählen und die Klasse bei Bedarf zu bearbeiten.
  • 7 veranschaulicht einen Beispielprozess 700 gemäß welchem das System die Operationen in Block 608 durchführt, und zwar, Auswählen einer Klasse und bei Bedarf Bearbeiten der Klasse für jede Signatur oder jede Gruppe von Aufgaben. In Block 702, ermittelt das System einen Aufwand für jede existierende Klasse, Cs+b, um in der jeweiligen Klasse Sicherungsaufgaben für Signatur S zu erzeugen. Dann in Block 704 wählt das System die Klasse mit dem minimalsten Aufwand, min(C(s+b)).
  • In Block 706 ermittelt das System einen Aufwand Cs, um Sicherungsaufgaben für jede Signatur alleine zu erzeugen. Da größere Klassen zu größerer Betriebsmittelbenutzungseffizienz führen, kann der Ermittlung des Aufwandseine Strafe Cs eine Strafe 708 zugeführt werden, um die Erzeugung einzelner Sicherungsaufgaben zu verhindern. In Block 710 vergleicht das System den minimalen Aufwand Sicherungsaufgaben für die Signatur zu erzeugen und die existierende Klasse (min(C(s+b))) mit dem Aufwand Cs. Wenn min(C(s+b)) weniger oder gleich Cs ist, geht der Prozess zu Block 712 über, um eine neue Klasse für die Signatur alleine und neue Sicherungsaufgaben für die neue Klasse zu erzeugen. Wenn min(C(s+b)) größer als Cs ist, geht der Prozess zu Block 714 über, um die Klasse mit dem minimalen Aufwand min(C(s+b)) zu vergrößern durch Hinzufügen der Signatur S zu der Klasse und Erzeugung von extra Sicherungsaufgaben falls nötig.
  • Prozess 700 kann iterativ auch jeder erzeugten Signatur durchgeführt werden. Das System kann die Iteration in unterschiedlichen Reihenfolgen durchführen. Für ein Beispiel kann die Iteration mit der Signatur beginnen, für welche die Zahl an kompatiblen Rechnern, die von den Aufgaben in jeder Signatur benötigt wird, sie geringste oder die höchste ist. Alternativ kann die Iterationsreihenfolge auf anderen Einschränkungen, Bevorzugungen oder Richtlinien basieren, die mit den eingehenden Aufgaben assoziiert sind. In einem weiteren Beispiel kann die Iteration in einer beliebigen Reihenfolge ausgeführt werden.
  • Anstatt eine geeignete Klasse auszuwählen und die Klasse anhand der Aufwände wachsen zu lassen, um Sicherungsaufgaben zu erzeugen, kann das System anhand einer Reihe von Betriebsmittelanforderungen von allen Aufgaben in dem Cluster, eine Anzahl von benötigten Klassen und eine Reihe von Betriebsmittelanforderungen für jede Klasse ermitteln. Daher kann eine bestimmte Signatur exakt in eine Klasse passen.
  • 8 veranschaulicht einen iterativen Beispielprozess 800 gemäß welchem das System die Anzahl von benötigten Sicherungsaufgaben für jede Klasse ermittelt und demgemäß Sicherungsaufgaben erzeugt. Der Prozess startet in Block 802, in dem das System die gesamte Wahrscheinlichkeit berechnet, nicht mehr als alle (b) Sicherheitsaufgaben für eine Klasse mit einer Zahl (n) von darin geplanten Aufgaben.
  • Dann in Block 804 ermittelt das System, ob diese gesamte Wahrscheinlichkeit größer ist als die geplant-bleiben Zielwahrscheinlichkeit einer jeden Aufgabe. Wenn der Vergleich zeigt, dass die gesamte Wahrscheinlichkeit die b Sicherungsaufgaben zu verlieren größer ist als die Zielwahrscheinlichkeit, geht der Prozess zu Block 808 über, in dem das Risikomanagementsystem eine Sicherungsaufgabe zu der Klasse hinzufügt. Andernfalls gab es genügend Sicherungsaufgaben in der Klasse um sicherzustellen, dass jede der n Zahl von Aufgaben geplant bleibt. Dann geht der Prozess zu Block 806 über, in dem das System aufhört Sicherungsaufgaben für die Klasse zu erzeugen.
  • 9 veranschaulicht einen Beispielprozess 900, in dem das System die Operationen in Block 802 durchführt, und zwar, die Berechnung der gesamten Wahrscheinlichkeit, nicht mehr als alle b Sicherheitsaufgaben in einer bestimmten Klasse zu verlieren. Wie gezeigt, kann das System zuerst das Risiko k Aufgaben für k = 0 ... n + b zu verlieren in Block 902 ermitteln, dann diese Wahrscheinlichkeiten für k = 0 ... b in Block 904 hinzufügen.
  • 10 veranschaulicht einen Beispielprozess 1000 wie die Risikoabschätzung k Aufgaben für k = 0 ... n + b zu verlieren vom System durchgeführt werden kann. Das System kann erst in Block 1002 die Wahrscheinlichkeit für jedes Rack (oder eine andere ausgewählte Einheit der verteilten Berechnungselemente in dem Cluster) ermitteln, alle Aufgaben des Racks zu verlieren Dann, in Block 1004, entfernt das System die Annahme, dass sich alle Aufgaben auf einem einzigen Rack befinden, durch die Durchführung der Faltung der pro Rack Wahrscheinlichkeiten für alle Racks, die von k Aufgaben in einem bestimmten Cluster benutzt werden.
  • Um die pro Rack Wahrscheinlichkeit alle Aufgaben zu verlieren zu berechnen, kann das System zuerst eine Reihe von vorgegebenen Annahmen benutzen und dann diese Annahmen eine nach der anderen in späteren Berechnungen entfernen. Wie veranschaulicht in dem Beispielprozess 1100 in 11, kann das System zuerst die Fehlerwahrscheinlichkeiten der Aufgaben auf dem gleichen Rack berechnen. Der Prozess kann von Block 1102 starten, in dem das System eine Wahrscheinlichkeitsdichtefunktion Pr(f = X) (1) berechnet,
    dass x de-scheduled Aufgaben auf einem bestimmten Rack r mit einer Annahme, dass nicht mehr als eine Aufgabe auf einem Rechner läuft und sich alle diese Aufgaben auf dem gleichen Rack befinden, d. h. Rack r. Hier wird angenommen, dass Rack r mindestens m Rechner hat und R benutzt werden kann, um die Zahl von Rechnern, die von den sich in Rack r befindenden Aufgaben benutzt werden, zu bestimmen.
  • Pr(f = x) kann von p(r), p(m\~ r) und Rerhalten werden, wobei: p(r) = Wahrscheinlicheit, dass Rack r scheitert (2) p(m\~ r) = Wahrscheinlichkeit, dass der Rechner m scheitert, aber Rack r nicht (3)
  • Die obigen Fehlerwahrscheinlichkeiten p® und p(m\~ r) können vom Risikomanagementsystem ermittelt werden. Alternativ können diese Wahrscheinlichkeiten vorbestimmt werden und erhalten werden von einem empirischen Datenset, wie beispielsweise Daten 224 gezeigt in 2, oder von anderen Clustermanagement-Einheiten.
  • Daher können folgende Berechnungen vom System durchgeführt werden, um Pr(f = x) zu erhalten: Pr(f > R) = 0; (4) Pr(f = R) = p(r) + p(~r).PIr(f = R); (5) Pr(f = x < R) = p(~r).PIr(f = x); (6) PIr(f = x) = binomisch(x, R, p(m l~ r)) (7)
  • Als Nächstes geht der Prozess zu Block 1104 über. An dieser Stelle wird die Annahme von nicht mehr als einer Aufgabe pro Rechner entfernt durch das Teilen des Racks r in Sub-Racks, sodass innerhalb eines jeden Sub-Racks, jeder Rechner darin eine identische Anzahl an Aufgaben ausführt.
  • In Block 1106 ermittelt das System für jedes Sub-Rack die Wahrscheinlichkeit, dass i Aufgaben scheitern. In anderen Worten, das System verändert die obigen Berechnungen der Wahrscheinlichkeitsdichtefunktion PIr(f = x), um die Situation, in der jeder scheiternde Rechner i Aufgaben auf jedem Rechner stürzt, zu beurteilen. Sobald die pro Sub-Rack Wahrscheinlichkeit erhalten wird, können diskrete Faltungen in Block 1108 vorgenommen werden, um alle pro Sub-Rack Wahrscheinlichkeitsdichtefunktionen zusammenzählen zu können.
  • 1213 zeigen Beispielszenarios der obigen Prozesse in den Blöcken 1104 und 1106. 12 veranschaulicht ein Rack 1201, das sechs Rechner beherbergt: 1202, 1204, 1206, 1208, 1210 und 1212. Jeder Rechner hat eine oder mehrere geplante Aufgaben auszuführen und Rechnerbetriebsmittel zu verbrauchen. Zum Beispiel hat Rechner 1202 Aufgabe 1214, Aufgabe 1216 und Aufgabe 1218. Rechner 1204 hat Aufgabe 1220 und 1222, während sich Aufgabe 1224, 1226 und 1228 in Rechner 1206 befinden. Rechner 1208, 1210 und 1212 haben vier, drei und vier darin laufende Aufgaben jeweils.
  • 13 zeigt ein Szenario 1300, in dem das Rack 1201 in drei Sub-Racks unterteilt ist: Sub-Rack 1, Sub-Rack 2 und Sub-Rack 3. Jedes Sub-Rack beherbergt vorzugsweise Rechner mit einer identischen Anzahl an darin laufenden Aufgaben. Nach der Teilung beherbergt Sub-Rack 1 den zwei-Aufgaben Rechner 1204, Sub-rack 2 beherbergt die drei-Aufgaben Rechner 1202 und 1210 und Sub-Rack 3 beherbergt die vier-Aufgaben Rechner 1206, 1208 und 1212. Als solche können mögliche Fehlerszenario mit jedem Sub-Rack nur eine ixRsub Anzahl an Aufgaben stürzen. Hier ist i die Anzahl von laufenden Aufgaben auf jedem Rechner in dem Sub-Rack und Rsub ist eine Ganze Zahl von 0 bis zur maximalen Anzahl an Rechner auf jedem Sub-Rack rsub. Insbesondere in Szenario 1300 kann Sub-Rack 1 nur 0 oder 2 Anzahlen an Aufgaben verlieren und Sub-Rack 2 kann nur 0, 3 oder 6 verlieren. Für Sub-Rack 3 ist es möglich 0, 4, 8 oder 12 Aufgaben zu verlieren. Jede dieser Wahrscheinlichkeiten folgt einer binomischen Verteilung.
  • Mit bekannter Fehlerwahrscheinlichkeit von jedem unabhängigen Recher p(ml~ r), kann die Wahrscheinlichkeitsdichtefunktion, die die Wahrscheinlichkeit des Verlustes von x = ixRsub Anzahl an Aufgaben Prsub(f = x) abbildet, (8) leicht erhalten werden durch das Finden der binomischen Verteilung PIrsub(f = x) = binomisch(x, Rsub, p(ml~ rsub)) (9) für jedes Sub-Rack rsub von Sub-Rack 1 bis 3 mit der jeweiligen Rsub Anzahl an Rechnern.
  • Wie in 13 dargestellt, für Sub-Rack 1, wobei i = 2 und Rsub = 1, berechnet das System PIrsubI(f = 0) und PIrsub2(f = 2). Für Sub-Rack 2, wobei i = 3 und Rsub = 2 PIrsub2(f = 0), PIrsub2(f = 3) und PIrsub2(f = 6) werden erhalten. Für Sub-Rack 3, wobei i = 4 und Rsub = 3, PIrsub3(f = 0), PIrsub3(f = 4), PIrsub3(f = 8) und PIrsub3(f = 12) werden berechnet.
  • Sobald die Verteilungswahrscheinlichkeitenauf einer Pro-Sub-Rack Basis gefunden werden, kann die Wahrscheinlichkeitsdichtefunktion Pr1201 (f = x) für Rack 1201 gefunden werden durch Compulterfaltungen aller binomischer Verteilungen für alle Sub-Racks 1–3. Da es nicht möglich ist eine Fraktion einer Aufgabe zu verlieren, sind die Faltungen hier diskrete Faltungen.
  • Während die vorherigen Erläuterungen bezüglich Prozess 1000 in 10 verlaufen, sobald die Pro-Rack pdfs (Wahrscheinlichkeitsdichtefunktionen) erhalten werden, wird die Annahme eines einzelnen Racks durch die Durchführung von Faltungen auf diesen pdfs entfernt, um die Pro-Rack Wahrscheinlichkeitsdichtefunktion in einem bestimmten Cluster zusammenzuzählen.
  • Neben der Wahrscheinlichkeit, dass Rack r scheitert und der Wahrscheinlichkeit, dass Rechner m scheitert, aber Rack r nicht, können jegliche andere Fehlerwahrscheinlichkeiten oder Zusammenhänge zwischen den Descheduling-Risiken der Aufgaben und den Fehlern eines bestimmten Netzwerks oder Cluster-Elements vom System benutzt werden, um die Fehlerwahrscheinlichkeit von x Aufgaben auf einem bestimmten Rack zu erhalten. In dieser Hinsicht können ähnliche Teilungen von geringeren Niveau Cluster-Elementen, die sich in einem höheren Niveau Cluster-Element aufhalten oder mit ihm verbunden sind, so durchgeführt werden, dass die höheren Niveau Cluster-Elemente in Sub-Elemente geteilt werden, wie oben erläutert mit Bezugnahme auf die Szenarien 1200 und 1300. Zum Beispiel, wenn die Fehlerwahrscheinlichkeit eines Schalters in den Berechnungen angewendet werden soll, kann ein Schalter in mehrere Sub-Schalter geteilt werden. In diesem Beispiel ist jeder jeweilige Sub-Schalter mit Racks verbunden, die eine identische Anzahl an Rechnern besitzen, und jedes Rack kann außerdem ähnlich wie in Szenarien 1200 und 1300 geteilt werden. Daher kann die Fehlerwahrscheinlichkeit eines jeden Cluster-Elements in jeder Hierarchieordnung in dem Cluster vom Risikomanagementsystem benutzt werden. Obwohl 12 und 13 eine zwei-Niveau Hierarchie veranschaulichen, die ein Rechner-Niveau und ein Rack-Niveau umfasst, können Systeme und Verfahren gemäß den Aspekten der Erfindung außerdem multi-Niveau Szenarien umfassen. Darüber hinaus sind die Cluster-Elemente nicht auf Rechner und Racks begrenzt.
  • Das System kann auch verfeinert werden, um verschiedene Fehlerwahrscheinlichkeiten für Netzwerk- oder Cluster-Elemente des gleichen Typs zu berücksichtigen. Zum Beispiel können verschiedene Rechner verschiedene Fehlerwahrscheinlichkeiten haben und verschiedene Racks oder Schalter können auch mit verschiedenen Fehlerwahrscheinlichkeiten assoziiert sein.
  • Es wird sich außerdem verstehen, dass die Datenmusterwerte, -typen und -konfigurationen, die beschrieben und in den Figuren gezeigt wurden nur zum Zwecke der Veranschaulischung dienen. In dieser Hinsicht können Systeme und Verfahren gemäß den Aspekten der Erfindung mehrere Arten von Computer-Clustern, Netzwerken, Übertragungsgeräten, Bedienungsterminals, Servern, Datenwerten, Datentypen und Konfigurationen umfassen. Die Daten können zu verschiedenen Zeiten (z. B. über verschiedene Server oder Datenbanken) und von verschiedenen Einheiten (z. B. können manche Werte vorbestimmt oder von verschiedenen Quellen bereitgestellt werden) erhalten und empfangen werden.
  • Alle diese und weitere Variationen und Kombinationen der vorstehend erörterten Merkmale können zur Anwendung kommen, ohne sich von der Erfindung laut Definition in den Ansprüchen zu entfernen; die vorstehende Beschreibung der Ausführungsform dient zur Veranschaulichung und nicht zur Einschränkung der von den Ansprüchen definierten Erfindung. Es versteht sich von selbst, dass das Bereitstellen von Beispielen der Erfindung (sowie auch Klauseln, die mit Begriffen, wie „wie etwa”, „z. B.”, „einschließlich” und dergleichen, formuliert sind) nicht als Begrenzung der Erfindung auf diese spezifischen Beispiele interpretiert werden sollte, da die Beispiele eher dazu dienen, einige der vielen möglichen Aspekte zu illustrieren.
  • Sofern nicht ausdrücklich das Gegenteil angegeben ist, kann jedes Merkmal in einer bestimmten Ausführungsform, Alternative oder einem bestimmten Beispiel in einer beliebigen anderen Ausführungsform, Alternative oder einem anderen Beispiel verwendet werden. Zum Beispiel kann jedes Verfahren zur Ermittlung der pro Job geplant-bleiben Zielwahrscheinlichkeit in jeder anderen Konfiguration dafür angewendet werden. Jede Art von Überwachung oder Erhalten des Job-/Aufgabenausführungsstatus und Clusterstatus kann in jeder Konfiguration dafür angewendet werden. Das Risikomanagementsystem kann mit mehreren Clustermanagement-Einheiten in dem Cluster mit jeder der Konfigurationen dafür kommunizieren. Verschiedene Sicherungsaufgaben-Optimierungsverfahren oder Iterationsreihenfolge, um Aufgabensignaturen zu erzeugen können angewendet werden.
  • INDUSTRIELLE ANWENDBARKEIT
  • Die vorliegende Erfindung genießt weites industrielles Anwendungsvermögen einschließlich, aber nicht darauf begrenzt, Planung, Datenverarbeitung und Management von Jobs oder Aufgaben in einer Computer-Cluster Architektur.

Claims (10)

  1. Ein System zur Erzeugung von Sicherungsaufgaben für eine Vielzahl an Aufgaben, die geplant sind in einem Computer-Cluster zu laufen; das System umfassend: einen Speicher; und einen Prozessor, der mit dem Speicher verbunden ist und so konfiguriert ist, dass er eine Reihe von im Speicher gespeicherten Anweisungen ausführt, um: die Vielzahl an geplanten Aufgaben in Gruppen anhand von einer oder mehreren Betriebsmittelanweisungen, die mit jeder Aufgabe assoziiert sind, zu klassifizieren, wobei jede geplante Aufgabe mit einer Zielwahrscheinlichkeit zur Ausführung assoziiert ist, jede geplante Aufgabe durch ein erstes Cluster-Element und ein zweites Cluster-Element ausführbar ist, wobei jede Gruppe mindestens eine der geplanten Aufgaben umfasst; für mindestens eine der jeweiligen Gruppen eine Anzahl von notwendigen Sicherungsaufgaben zu ermitteln, um zu garantieren, dass die geplanten Aufgaben der jeweiligen Gruppe die Zielwahrscheinlichkeit zur Ausführung erfüllen; und Sicherungsaufgaben anhand der Ermittlung zu erzeugen, wobei die erzeugten Sicherungsaufgaben in der jeweiligen Gruppe identisch sind und jede Sicherungsaufgabe in der jeweiligen Gruppe so konfiguriert ist, dass sie jede geplante Aufgabe der jeweiligen Gruppe ersetzt.
  2. Das System nach Anspruch 1, wobei eine der Betriebsmittelanforderungen für eine ausgewählte der geplanten Aufgaben eine Speicherbereichanforderung ist.
  3. Das System nach Anspruch 1, wobei das erste Cluster-Element mindestens einen einer Vielzahl an Rechnern umfasst und das zweite Cluster-Element umfasst mindestens eines einer Vielzahl an Racks.
  4. Das System nach Anspruch 1, wobei das erste Cluster-Element eine Vielzahl der ersten Cluster-Elemente umfasst, das zweite Cluster-Element umfasst eine Vielzahl der zweiten Cluster-Elemente und der Prozessor ist außerdem so konfiguriert, dass: er von jeder geplanten Aufgabe, eine Bevorzugung für die Ausführung durch ein bestimmtes der Vielzahl an ersten Cluster-Elementen oder ein bestimmtes der Vielzahl an zweiten Cluster-Elementen empfängt, wobei die Klassifikation auf der empfangenen Bevorzugung basiert.
  5. Das System nach Anspruch 1, wobei der Prozessor weiterhin so konfiguriert wird, dass er: einen ersten Aufwandes ermittelt, um die Sicherungsaufgaben für die jeweilige Gruppe zu erzeugen, für jede Gruppe, die Ermittlung eines zweiten Aufwandes, um zusätzliche Sicherungsaufgaben für eine Kombinationsgruppe zu erzeugen, die die jeweilige Gruppe umfasst, wobei die Ermittlung des zweiten Aufwandes durch Teilen der Vielzahl an geplanten Aufgaben und der jeweiligen Gruppe erhalten wird; den ersten Aufwand mit dem zweiten Aufwand vergleicht; die Sicherungsaufgaben für die jeweilige Gruppe erzeugt, falls der erste Aufwand geringer ist als der zweite; und die zusätzlichen Sicherungsaufgaben für die Kombinationsgruppe erzeugt, falls der erste Aufwand größer oder gleich dem zweiten Aufwand ist.
  6. Das System nach Anspruch 1, wobei der Prozessor die Anzahl von Sicherungsaufgaben ermittelt, indem er iterativ die Anweisungen ausführt zur: Berechnung einer Wahrscheinlichkeit, nicht mehr als alle gegenwärtigen Sicherungsaufgaben einer bestimmten der Vielzahl an Gruppen zu verlieren; Vergleich der berechneten Wahrscheinlichkeit mit den Zielwahrscheinlichkeiten zur Ausführung; Hinzufügen einer Sicherungsaufgabe zu einer Klasse der bestimmten Gruppe, falls die berechnete Wahrscheinlichkeit größer als alle Zielwahrscheinlichkeiten ist; und Aufhören Sicherungsaufgaben hinzuzufügen, falls die berechnete Wahrscheinlichkeit geringer ist als alle Zielwahrscheinlichkeiten.
  7. Das System nach Anspruch 1, wobei das erste Cluster-Element eine Vielzahl an ersten Cluster-Elementen umfasst und das zweite Cluster-Element umfasst eine Vielzahl an zweiten Cluster-Elementen, und der Prozessor außerdem so konfiguriert ist, dass er eine Wahrscheinlichkeit berechnet nicht mehr als alle gegenwärtigen Sicherungsaufgaben in einer bestimmten Gruppe zu verlieren durch: für jedes zweite Cluster-Element, das von den geplanten Aufgaben in der bestimmten Gruppe benutzt wird, das Teilen des zweiten Cluster-Elements in Sub-zweite-Elemente, jedes der Sub-zweiten-Elemente eines oder mehrere erste Cluster-Elemente umfassend und wobei jedes der ersten Cluster-Elemente in dem jeweiligen Sub-zweiten-Element die gleiche Anzahl an geplanten Aufgaben ausführt; und für jedes Sub-zweite-Element, das Berechnen einer Wahrscheinlichkeit nicht mehr als alle geplanten Aufgaben darin zu verlieren basierend auf einer Fehlerwahrscheinlichkeit des ersten Cluster-Elements im jeweiligen Sub-zweiten-Element, der Anzahl der ersten Cluster-Elemente im jeweiligen Sub-zweiten-Element und der Anzahl von geplanten Aufgaben im jeweiligen Sub-zweiten-Element.
  8. Das System nach Anspruch 1, wobei der Prozessor weiterhin so konfiguriert wird, dass er: den Aufgabenausführungsstatus und Clusterstatus überwacht; und und Bearbeitung oder Löschen der Sicherungsaufgaben in der jeweiligen Gruppe anhand des Überwachens durchführt.
  9. Das System nach Anspruch 1, wobei der Prozessor weiterhin so konfiguriert ist, dass er eine Fehlerwahrscheinlichkeit des ersten Cluster-Elements und eine Fehlerwahrscheinlichkeit des zweiten Cluster-Elements ermittelt.
  10. Das System nach Anspruch 1, wobei der Prozessor weiterhin so konfiguriert ist, dass er eine Anzahl von Sicherungsaufgaben anhand einer Fehlerwahrscheinlichkeit eines dritten Cluster-Elements in dem Computer-Cluster ermittelt, das dritte Cluster-Element mindestens ein Cluster-Element, anders als das erste oder zweite Cluster-Element, umfassend.
DE202011110892.2U 2010-10-29 2011-10-12 System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren Expired - Lifetime DE202011110892U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/915,439 2010-10-29
US12/915,439 US8627322B2 (en) 2010-10-29 2010-10-29 System and method of active risk management to reduce job de-scheduling probability in computer clusters

Publications (1)

Publication Number Publication Date
DE202011110892U1 true DE202011110892U1 (de) 2017-01-25

Family

ID=45994645

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202011110892.2U Expired - Lifetime DE202011110892U1 (de) 2010-10-29 2011-10-12 System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren

Country Status (5)

Country Link
US (1) US8627322B2 (de)
EP (1) EP2633403B1 (de)
AU (1) AU2011320763B2 (de)
DE (1) DE202011110892U1 (de)
WO (1) WO2012058003A2 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990397B2 (en) * 2009-07-31 2015-03-24 Ntt Docomo, Inc. Resource allocation protocol for a virtualized infrastructure with reliability guarantees
US8984109B2 (en) 2010-11-02 2015-03-17 International Business Machines Corporation Ensemble having one or more computing systems and a controller thereof
US9253016B2 (en) 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
US9081613B2 (en) * 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
US8959220B2 (en) 2010-11-02 2015-02-17 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
US8966020B2 (en) 2010-11-02 2015-02-24 International Business Machines Corporation Integration of heterogeneous computing systems into a hybrid computing system
US8959526B2 (en) * 2011-06-09 2015-02-17 Microsoft Corporation Scheduling execution of complementary jobs based on resource usage
US9658892B2 (en) 2011-08-31 2017-05-23 International Business Machines Corporation Management of storage cluster performance with hybrid workloads
JP5961848B2 (ja) * 2012-11-27 2016-08-02 株式会社日立製作所 計画管理システム及び計画管理方法
EP2962186A4 (de) * 2013-02-28 2016-10-12 Hewlett Packard Entpr Dev Lp Bereitstellung von codewechsel-jobpaketen von verschiedener grösse für validatoren
US9280431B2 (en) * 2013-04-17 2016-03-08 Globalfoundries Inc. Prioritizing backups on a disk level within enterprise storage
US9727379B1 (en) 2014-04-14 2017-08-08 Google Inc. Specifying behavior among a group of computing tasks
US20170054592A1 (en) * 2014-04-30 2017-02-23 Telefonaktiebolaget Lm Ericsson (Publ) Allocation of cloud computing resources
CN105279020A (zh) * 2014-07-03 2016-01-27 北京联嘉众赢网络技术有限公司 一种任务调度方法及系统
CN105139130A (zh) * 2015-08-27 2015-12-09 国电南瑞科技股份有限公司 一种适用于电力系统分布式任务的管理方法
US9690648B2 (en) * 2015-10-30 2017-06-27 Netapp, Inc. At-risk system reports delivery at site
WO2017105376A1 (en) * 2015-12-14 2017-06-22 Vce Company, Llc Methods, systems, and computer readable mediums for workload clustering
US10536391B1 (en) 2016-07-07 2020-01-14 Binaris Inc Systems and methods for intelligently directing a service request to a preferred place of execution
US10592280B2 (en) 2016-11-23 2020-03-17 Amazon Technologies, Inc. Resource allocation and scheduling for batch jobs
US10417043B1 (en) 2017-07-06 2019-09-17 Binaris Inc Systems and methods for executing tasks adaptively
US10621001B1 (en) 2017-07-06 2020-04-14 Binaris Inc Systems and methods for efficiently expediting execution of tasks in isolated environments
CN109428912B (zh) * 2017-08-24 2020-07-10 阿里巴巴集团控股有限公司 一种分布式系统资源分配方法、装置及系统
US10802880B2 (en) * 2017-09-19 2020-10-13 Huawei Technologies Co., Ltd. System and method for distributed resource requirement and allocation
US10803108B2 (en) 2017-12-20 2020-10-13 International Business Machines Corporation Facilitation of domain and client-specific application program interface recommendations
US10831772B2 (en) 2017-12-20 2020-11-10 International Business Machines Corporation Facilitation of domain and client-specific application program interface recommendations
US10782949B2 (en) 2018-01-08 2020-09-22 International Business Machines Corporation Risk aware application placement modeling and optimization in high turnover DevOps environments
US10860430B2 (en) * 2018-07-06 2020-12-08 EMC IP Holding Company LLC System and method for resilient backup generation
US10860431B2 (en) * 2018-07-06 2020-12-08 EMC IP Holding Company LLC System and method for fault tolerant backup generation in a virtual environment
US11205159B2 (en) * 2018-08-28 2021-12-21 Oracle International Corporation Using constraint programming to obtain a machine maintenance schedule for maintaining machines
CN110147280B (zh) * 2019-05-14 2023-01-31 河南城建学院 基于安全与成本感知的大数据应用调度方法
CN110737521B (zh) * 2019-10-14 2021-03-05 中国人民解放军32039部队 基于任务调度中心的容灾方法和装置
CN111600643A (zh) * 2020-04-09 2020-08-28 中国电子科技集团公司电子科学研究院 一种卫星通信资源调度方法、装置存储介质
US11797951B2 (en) 2020-07-24 2023-10-24 Oracle International Corporation Using constraint programming to obtain a machine maintenance schedule for maintenance tasks
CN113127310B (zh) * 2021-04-30 2023-09-01 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备及存储介质
US20230342195A1 (en) * 2022-04-21 2023-10-26 Altair Engineering, Inc. Workload scheduling on computing resources

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065764B1 (en) 2001-07-20 2006-06-20 Netrendered, Inc. Dynamically allocated cluster system
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US8301772B2 (en) 2007-03-27 2012-10-30 Symantec Corporation Method and apparatus for allocating resources among backup tasks in a data backup system
US8468527B2 (en) 2007-04-16 2013-06-18 Xerox Corporation Method and system for optimal batching in a production environment
US20090259500A1 (en) * 2008-04-09 2009-10-15 International Business Machines Corporation Method for negotiating information technology service processes
US8566285B2 (en) 2008-05-28 2013-10-22 International Business Machines Corporation Method and system for scheduling and controlling backups in a computer system
US8990397B2 (en) * 2009-07-31 2015-03-24 Ntt Docomo, Inc. Resource allocation protocol for a virtualized infrastructure with reliability guarantees

Also Published As

Publication number Publication date
US8627322B2 (en) 2014-01-07
WO2012058003A2 (en) 2012-05-03
AU2011320763A1 (en) 2013-06-13
WO2012058003A3 (en) 2012-07-12
EP2633403A2 (de) 2013-09-04
US20120110584A1 (en) 2012-05-03
EP2633403B1 (de) 2018-12-12
AU2011320763B2 (en) 2015-06-04
EP2633403A4 (de) 2014-12-17

Similar Documents

Publication Publication Date Title
DE202011110892U1 (de) System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE102018214774A1 (de) Technologien zum dynamischen Managen der Zuverlässigkeit disaggregierter Betriebsmittel in einem gemanagten Knoten
DE112017003688T5 (de) Technologien zur Durchführung einer Orchestrierung mit Online-Analyse von Telemetriedaten
DE102016204680A1 (de) Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten
DE102012217202A1 (de) Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
DE112011105294T5 (de) Abhängigkeiten-basierte Auswirkungsanalyse unter Verwendung eines mehrdimensionalen Modells eines Software-Angebots
DE112020004623T5 (de) Ml-basierte ereignishandhabung
DE102021109767A1 (de) Systeme und methoden zur vorausschauenden sicherheit
DE112010004420T5 (de) Verfahren und System zur Verbesserung der Ausführungszeit von Software durch Optimierung elnes Leistungsmodells
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
EP1711892B1 (de) Verfahren zum bestimmen eines übernahmeszenarios der softwareeinheiten bei einem rechnerausfall in einer serverfarm
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112021003276T5 (de) Ressourcenverwaltung einer softwareanwendung mit mehreren softwarekomponenten
DE102020112531A1 (de) Operationelle metrische Berechnung für Arbeitsbelastungstyp
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112021003184T5 (de) Ermittlung von laufzeitumgebungen für software-container
DE112020005227T5 (de) Speicherzustandsüberwachung für differenziertedatenwiederherstellungskonfigurationen
DE102021109138A1 (de) Ausführung von abfrageplänen
DE102021104735A1 (de) Log-Daten Analyse
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R151 Utility model maintained after payment of second maintenance fee after six years
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right