DE69715967T2 - Quorummechanismus in einem verteilten Zweiknotenrechnersystem - Google Patents

Quorummechanismus in einem verteilten Zweiknotenrechnersystem

Info

Publication number
DE69715967T2
DE69715967T2 DE69715967T DE69715967T DE69715967T2 DE 69715967 T2 DE69715967 T2 DE 69715967T2 DE 69715967 T DE69715967 T DE 69715967T DE 69715967 T DE69715967 T DE 69715967T DE 69715967 T2 DE69715967 T2 DE 69715967T2
Authority
DE
Germany
Prior art keywords
node
shared
tie
preselected
fault handler
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 - Fee Related
Application number
DE69715967T
Other languages
English (en)
Other versions
DE69715967D1 (de
Inventor
Hossein Moiin
Angelo Pruscino
Ottalingam Satyanarayanan
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69715967D1 publication Critical patent/DE69715967D1/de
Application granted granted Critical
Publication of DE69715967T2 publication Critical patent/DE69715967T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Description

    GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die Fehlertoleranz in verteilten Computersystemen, und insbesondere auf einen besonders robusten Mechanismus zum Ermitteln, welcher von zwei Knoten in einem fehlerhaften verteilten Computersystem exklusiv Zugriff auf gemeinsame Betriebsmittel hat.
  • HINTERGRUND DER ERFINDUNG
  • Die Komplexität von Aufgaben, die von Computern heutzutage gelöst werden, nimmt weiterhin schnell zu. Daher steigt auch die Bedeutung von verteilten Computersystemen, in denen Computeranwendungen und Datenbanken über mehrere Computer verteilt sind, stark an.
  • In einem verteilten Computersystem haben mehrere Bestandteil-Computer des verteilten Computersystems, die allgemein als "Knoten" oder "Hosts" bezeichnet werden, gemeinsam Zugriff auf Speichervorrichtungen, die kollektiv ein verteilte Datenbank speichern. Der Ausfall einer Komponente des verteilten Computersystems kann eine Verfälschung der verteilten Datenbank und somit den möglichen Verlust wertvoller und möglicherweise unersetzbarer Informationen bewirken, die in der verteilten Datenbank gespeichert sind. Folgendes Beispiel dient zur Erläuterung.
  • Es sei angenommen, daß zwei Knoten eines verteilten Computersystems kontinuierlich normal arbeiten, jedoch eine Kommunikationsverbindung zwischen den beiden ausfällt, über die die Knoten den Zugriff auf die gemeinsamen Speichervorrichtungen koordinieren. Jeder der zwei Knoten kann kontinuierlich auf die verteilte Datenbank zugreifen, obwohl ein gemeinsamer Zugriff auf die Datenbank nicht koordiniert werden kann. Wenn beide Knoten kontinuierlich auf die verteilte Datenbank zugreifen, kann die verteilte Datenbank sehr leicht verfälscht werden, wobei leicht ein Verlust wertvoller Informationen eintreten kann. Dies ist allgemein als das "Split-Brain"-Problem ("Geteiltes-Gehirn"-Problem) bekannt.
  • Das folgende Beispiel erläutert das Split-Brain-Problem genauer. Es sei angenommen, daß zwei separate Computer verwendet werden, um Bankaufzeichnungen in einer verteilten Datenbank zu halten. Es sei ferner angenommen, daß zwei Leute, die beide Zugriff auf ein einzelnes Konto haben, im wesentlichen gleichzeitig Geld auf das Konto einzahlen, wobei jede Einzahlungstransaktion in der verteilten Datenbank von einem entsprechenden der beiden Computer aufgezeichnet wird. Ferner sei angenommen, daß alle Informationsverbindungen zwischen den beiden Computern versagt haben. Jeder der Computer zeichnet die Einzahlung auf durch Wiedergewinnen des aktuellen Kontostandes, z. B. 200 $, und Speichern der Summe des vorherigen Kontostandes und des Einzahlungsbetrags, z. B. 500 $ von einer Person und 100 $ von der anderen Person, als neuen Kontostand. Wenn die Computer zu unterschiedlichen Zeiten auf die verteilte Datenbank zugreifen, ist es wahrscheinlich, daß jede Einzahlung in der verteilten Datenbank genau aufgezeichnet wird. Wenn jedoch jeder Computer den aktuellen Kontostand etwa zur gleichen Zeit wiedergewinnt, ermittelt jeder den aktuellen Kontostand zu 200 $ und ersetzt den aufgezeichneten Kontostand entweder durch 700 $ oder 300 $. Der neue Kontostand ist dann entweder 700 $ oder 300 $, in Abhängigkeit davon, welcher der Computer zuletzt den neuen Kontostand aufzeichnet, wobei der Verlust der Einzahlung unentdeckt bleibt. Wenn jedoch nur einem der Computer erlaubt wird, auf die verteilte Datenbank zuzugreifen, wird der Fehler bei der Aufzeichnung einer Einzahlung bemerkt und es können Abhilfemaßnahmen ergriffen werden.
  • In diesem erläuternden Beispiel gehen wesentliche Informationen bezüglich einer einzelnen Transaktion verloren. Es ist unter bestimmten Umständen möglich, Informationen bezüglich der Zwischenbeziehungen bezüglich der in der verteilten Datenbank gespeicherten Informationen zu verlieren, z. B. von Informationen bezüglich des Orts verschiedener Datensätze der verteilten Datenbank. Wenn solche Informationen verlorengehen, können bedeutende Abschnitte der verteilten Datenbank unwiederbringlich verloren gehen. Das Split-Brain-Problem ist daher ein schwerwiegendes Problem bei verteilten Datenbanken und sollte vermieden werden.
  • Es gibt im allgemeinen zwei Klassen von Lösungen für das Split-Brain- Problem: Lösungen, die verteilte Zwei-Knoten-Computersysteme verwenden, und Lösungen, die verteilte Computersysteme mit mehr als zwei Knoten verwenden. In der letzteren Klasse kann eine ausgefallene Kommunikationsverbindung zu zwei Gruppen von Knoten führen, die nicht miteinander kommunizieren können. Eine herkömmliche Lösung ist, Zugriff auf gemeinsame Betriebsmittel, z. B. gemeinsame Speichervorrichtungen, der Gruppe zu gewähren, die eine einfache Mehrheit der Knoten des verteilten Computersystems enthält. Die Gruppe, die einen solchen Zugriff auf die gemeinsamen Speichervorrichtungen hat, wird allgemein als ein Quorum erlangend bezeichnet. Jede Gruppe kann die Anzahl der Knoten in der Gruppe ermitteln, wobei nur eine Gruppe eine einfache Mehrheit aller Knoten des verteilten Computersystems enthalten kann. Die Gruppe, die weniger als die Mehrheit enthält, verzichtet freiwillig auf den Zugriff auf die gemeinsamen Betriebsmittel. Wenn jede Gruppe genau eine Hälfte der Knoten des verteilten Computersystems enthält, wird das Problem analog zu einem Split-Brain- Problem unter Verwendung eines verteilten Zwei-Knoten-Computersystems, wobei im allgemeinen eine entsprechende Lösung verwendet wird.
  • In einem verteilten Zwei-Knoten-Computersystem kann das Split-Brain- Problem gelöst werden durch Beteiligung der zwei Knoten an einem Wettlauf um das Reservieren möglichst vieler gemeinsamer Betriebsmittel. Ein solcher Wettlauf wird im allgemeinen als ein Wettlauf um das Quorum bezeichnet. Jeder Knoten versucht, alle gemeinsamen Speichervorrichtungen zu reservieren. Wenn ein Knoten erfolgreich eine einfache Mehrheit aller gemeinsamen Speichervorrichtungen reserviert, hat dieser Knoten ein Quorum erlangt und hat Zugriff auf alle gemeinsamen Vorrichtungen. Wenn im Gegensatz hierzu ein Knoten nicht eine einfache Mehrheit aller gemeinsamen Speichervorrichtungen reservieren kann, verzichtet dieser Knoten freiwillig auf den Zugriff auf irgendwelche gemeinsamen Speichervorrichtungen. Wenn daher ein Knoten des verteilten Zwei-Knoten-Computersystems versagt, reserviert der übrigbleibende Knoten erfolgreich eine Mehrheit der gemeinsamen Speichervorrichtungen und führt die Verwaltung der verteilten Datenbank fort durch Zugriff auf die gemeinsamen Speichervorrichtungen. Wenn außerdem alle Kommunikationsverbindungen zwischen den beiden Knoten eines verteilten Zwei-Knoten-Computersystems versagen, konkurrieren die beiden Knoten um die Reservierung der gemeinsamen Speichervorrichtungen, wobei der Knoten, der den Wettlauf um das Quorum gewinnt, die Verwaltung der verteilten Datenbank fortsetzt durch Zugreifen auf die gemeinsamen Speichervorrichtungen, während der Knoten, der den Wettlauf um das Quorum verliert, freiwillig auf einen Zugriff auf irgendwelche gemeinsamen Speichervorrichtungen verzichtet, um eine Verfälschung der verteilten Datenbank zu vermeiden.
  • Die Verwendung von Reservierungen gemeinsam genutzter Speichervorrichtungen als Wettlaufparameter wird unmöglich, wenn die Reservierung solcher gemeinsamer Speichervorrichtungen ein notwendiger Teil des Zugriffs auf solche gemeinsamen Speichervorrichtungen ist. Wenn z. B. ein Knoten eines verteilten Zwei-Knoten-Computersystems versagt, können die Reservierungen, die vom versagenden Knoten gehalten werden, nicht aufgehoben werden. Folglich kann der übrigbleibende Knoten, der nicht versagt hat, keine Mehrheit der gemeinsamen Speichervorrichtungen reservieren und kann dementsprechend nicht normal weiterarbeiten, d. h. er kann freiwillig auf den Zugriff auf die gemeinsamen Speichervorrichtungen in der falschen Annahme verzichten, das der übrigbleibende Knoten den Wettlauf um das Quorum verloren hat. Dies ist in herkömmlichen verteilten Computersystemen noch wahrscheinlicher, die eine einzelne gemeinsame Speichervorrichtung als Quorumkontrollvorrichtung spezifizieren, deren Reservierung den Gewinn des Wettlaufs um das Quorum bedeutet. Ein Versagen der Knoten kann eine Reservierung der Quorumkontrollvorrichtung halten und nicht freigeben. Wenn der nicht versagende Knoten nicht das Quorum erreichen kann, versagt das verteilte Computersystem, wobei ein solches Versagen unnötig ist, da der übrigbleibende Knoten andernfalls im allgemeinen fähig ist, den Betrieb normal fortzusetzen. Ein Versagen der Knoten kann Vorrichtungsreservierungen zurückhalten, wenn das Versagen auf die Software bezogen ist, z. B. hat entweder das Betriebssystem des Knotens versagt oder der Computerprozeß, der auf die verteilte Datenbank zugreift oder diese verwaltet, hat versagt. Wenn das Betriebssystem versagt hat, ist im allgemeinen ein menschlicher Eingriff erforderlich, um den Knoten in einen Zustand zu versetzen, in welchem die gehaltenen Vorrichtungsreservierungen aufgehoben werden können. Wenn ein anderer Computerprozeß als das Betriebssystem versagt hat, kann das Versagen vom Betriebssystem unentdeckt bleiben.
  • Was daher als unbefriedigter Bedarf in der Industrie bestehen bleibt, ist ein Quorumsmechanismus, der nicht erfordert, daß ein versagender Knoten Reservierungen von gemeinsamen Speichervorrichtungen aufhebt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung schafft ein Verfahren gemäß Anspruch 1, ein Computerprogrammprodukt gemäß Anspruch 7 und eine Vorrichtung gemäß Anspruch 13. In einer bevorzugten Ausführungsform der Erfindung konkurriert jeder Knoten eines versagenden verteilten Computersystems um das Erreichen eines Quorums durch erfolgreiches Reservieren zweier gemeinsamer Speichervorrichtungen, die als Quorumkontrollvorrichtungen spezifiziert sind. Während des normalen Betriebs des verteilten Computersystems wird jede der Quorumkontrollvorrichtungen einem entsprechenden Knoten zugeordnet und von diesem reserviert. Während des Wettlaufs um das Quorum in Reaktion auf ein erfaßtes Versagen des verteilten Computersystems reserviert jeder Knoten, der nicht versagt hat, zwangsweise die Quorumkontrollvorrichtung, die dem anderen Knoten zugeordnet ist. Wenn ein Knoten gleichzeitig die Reservierungen für beide Quorumkontrollvorrichtungen hält, hat dieser Knoten ein Quorum erlangt. Die zwangsweise Reservierung einer gemeinsamen Speichervorrichtung versagt selbst dann nicht, wenn ein weiterer Knoten eine gültige Reservierung der gleichen Speichervorrichtung hält. Dementsprechend kann ein versagender Knoten, der eine Reservierung der Quorumkontrollvorrichtung des Knotens nicht aufhebt, nicht einen weiteren Knoten daran hintern, ein Quorum zu erlangen.
  • Vor der zwangsweisen Reservierung der Quorumkontrollvorrichtung eines weiteren Knotens verifiziert jeder Knoten, daß er weiterhin eine Reservierung der knoteneigenen zugewiesenen Quorumkontrollvorrichtung hält. Wenn ein Knoten nicht mehr die Reservierung der knoteneigenen zugewiesenen Quorumkontrollvorrichtung hält, hat dieser Knoten den Wettlauf um das Quorum verloren, da ein weiterer Knoten bereits zwangsweise die früher dem Knoten zugewiesene Quorumkontrollvorrichtung reserviert hat. Gemäß der vorliegenden Erfindung kann somit das Quorum effizient und effektiv von unabhängigen Knoten eines versagenden verteilten Computersystems ermittelt werden, unbeschadet des Fehlschlags eines versagenden Knotens, die vom versagenden Knoten gehaltenen Reservierungen von gemeinsamen Speichervorrichtungen aufzuheben.
  • Wenn ein Knoten zwangsweise die Quorumkontrollvorrichtung eines weiteren Knotens reserviert hat, jedoch nicht mehr eine gültige Reservierung der knoteneigenen Quorumkontrollvorrichtung hält, hat der Wettlauf um das Quorum zu einem Unentschieden geführt. Beide Knoten des verteilten Computersystems müssen in Betrieb sein, um ein Unentschieden zu erreichen. Somit besteht keine Möglichkeit, daß ein Knoten beim Freigeben einer Reservierung einer gemeinsamen Speichervorrichtung versagt. Dementsprechend wird ein zweiter Wettlauf um das Quorum verwendet, um das Unentschieden zwischen den Knoten des verteilten Computersystems aufzulösen. Vor dem zweiten Wettlauf um das Quorum hebt jeder Knoten alle Reservierungen für irgendeine Quorumkontrollvorrichtung auf, so daß keine Quorumkontrollvorrichtung von irgendeinem Knoten reserviert ist. Im zweiten Wettlauf um das Quorum versucht jeder Knoten, eine ausgewählte Quorumkontrollvorrichtung in einer vorgegebenen Sequenz zu reservieren. Der Knoten, der erfolgreich die ausgewählte Quorumkontrollvorrichtung reserviert, gewinnt das zweite Rennen um das Quorum und kann auf alle gemeinsamen Speichervorrichtungen zugreifen. Der andere Knoten stellt fest, daß er kein Quorum erlangt hat, und verzichtet freiwillig auf den Zugriff auf irgendwelche gemeinsamen Speichervorrichtungen.
  • Da im ersten Wettlauf um das Quorum Zwangsreservierungen verwendet werden, kann das Versagen eines Knotens beim Aufheben einer Reservierung für eine Quorumkontrollvorrichtung nicht einen weiteren Knoten daran hindern, ein Quorum und dementsprechend einen nachfolgenden Zugriff auf die gemeinsamen Speichervorrichtungen des verteilten Computersystems zu erlangen. Die vorliegende Erfindung stellt daher einen deutlich robusteren und fehlertoleranten Mechanismus für die Ermittlung des Quorums in einem versagenden verteilten Computersystem dar als Mechanismen des Standes der Technik. Da außerdem jeder Knoten eine während des Normalbetriebs reservierte Quorumkontrollvorrichtung besitzt, zeigt der Verlust einer solcher Reservierung während eines Wettlaufs um das Quorum an, daß ein weiterer Knoten zwangsweise die Quorumkontrollvorrichtung reserviert hat und somit in Betrieb ist. Folglich kann ein zweiter Wettlauf um das Quorum, der erfordert, daß jeder Knoten die Reservierungen der Knotenkontrollvorrichtungen aufhebt, verwendet werden, um das Quorum zu erlangen, wenn der erste Wettlauf um das Quorum zu einem Unentschieden führt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockschaltbild eines verteilten Zwei-Knoten-Computersystems gemäß der vorliegenden Erfindung.
  • Fig. 2 ist ein Blockschaltbild des verteilten Zwei-Knoten-Computersystems der Fig. 1 und zeigt Computerprozesse, die innerhalb jedes Knotens des verteilten Computersystems ausgeführt werden.
  • Fig. 3 ist ein logisches Flußdiagramm für die Ermittlung jedes Knotens bezüglich der Tatsache, welcher der Knoten ein Quorum in einem Fehlerzustand erlangt.
  • Fig. 4 ist ein logisches Flußdiagramm der Verarbeitung eines Knotens des verteilten Computersystems der Fig. 1 und 2 bei der Feststellung, daß das Quorum nichterlangt wird.
  • GENAUE BESCHREIBUNG
  • Im allgemeinen sind zwei gemeinsamen Speichervorrichtungen, z. B. den gemeinsamen Speichervorrichtungen 112A und 112B (Fig. 2), eines verteilten Zwei-Knoten-Computersystems 100 Quorumkontrollvorrichtungen zugewiesen, und werden in einem neuartigen Quorumerlangungsprozeß verwendet, der im folgenden genauer beschrieben wird. Jeder der Knoten 100A-B des verteilten Computersystems 100 erfaßt ein Versagen des anderen Knotens und führt den Quorumerlangungsprozeß aus, um eine Übereinstimmung darüber zu erhalten, welcher der Knoten 100A-B ein Quorum erlangt hat und daher Zugriff auf die gemeinsamen Speichervorrichtungen 112A-D hat und somit die Arbeit fortsetzen kann. Jeder Knoten hat während des Normalbetriebs eine entsprechende Quorumkontrollvorrichtung reserviert. Ein Knoten erlangt ein Quorum durch Reservieren beider Quorumkontrollvorrichtungen. Ein Knoten reserviert eine Quorumkontrollvorrichtung, die normalerweise von einem weiteren Knoten reserviert ist, unter Verwendung einer Zwangsreservierung, die im folgenden genauer beschrieben wird. Die Zwangsreservierung einer gemeinsamen Speichervorrichtung schlägt selbst dann nicht fehl, wenn ein weiterer Knoten eine gültige Reservierung der gleichen Speichervorrichtung hält, und verhindert somit, daß ein versagender Knoten einen weiteren Knoten an der Erlangung eines Quorums hindert.
  • Eine Beurteilung der vorliegenden Ausführungsform wird erleichtert durch die folgende Beschreibung der Hardware- und Software-Komponenten des verteilten Zwei-Knoten-Computersystems 100 (Fig. 1). Das verteilte Computersystem 100 enthält einen Knoten 100A und einen Knoten 100B. Die Knoten 100A-B sind zueinander direkt analog, wobei die folgende Beschreibung des Knotens 100A gleichermaßen auf dem Knoten 100B anwendbar ist.
  • Der Knoten 100A enthält einen oder mehrere Prozessoren 102A, von denen jeder Computerbefehle aus dem Speicher 104A über einen Bus 106 wiedergewinnt und die wiedergewonnenen Computerbefehle ausführt. Bei der Ausführung wiedergewonnener Computerbefehle kann jeder der Prozessoren 102A über den Bus 106 Daten wiedergewinnen und Daten schreiben in bzw. aus dem Speicher 104 und irgendeiner der gemeinsamen Speichervorrichtungen 112A-D. Der Speicher 104 kann einen beliebigen Typ von Computerspeicher enthalten, einschließlich und uneingeschränkt von Schreib/Lese-Speichern (RAM), Nur-Lese-Speichern (ROM) und Speichervorrichtungen, die magnetische und/oder optische Speichermedien verwenden, wie z. B. magnetische und/oder optische Platten. Die gemeinsamen Speichervorrichtungen 112A-D sind jeweils eine Speichervorrichtung oder eine Anordnung von Speichervorrichtungen, die gleichzeitig mit zwei oder mehr Computern verbunden sein können. Wie in Fig. 1 gezeigt ist, ist jede der gemeinsamen Speichervorrichtungen 112A-D sowohl mit dem Bus 106A des Knotens 100A als auch dem Bus 106B des Knotens 100B verbunden. Jede der gemeinsamen Speichervorrichtungen 112A-D wird von jedem der Knoten 100A und 100B als eine einzelne Vorrichtung genutzt, obwohl jede der gemeinsamen Speichervorrichtungen 112A-D eine Anordnung von Speichervorrichtungen sein kann. Zum Beispiel kann jede der gemeinsamen Speichervorrichtungen 112A-D eine SPARC-Speicheranordnung sein, erhältlich von Sun Microsystems, Inc. in Mountain View, Kalifornien.
  • Jede der gemeinsamen Speichervorrichtungen 112A-D kann von einem der Knoten 100A oder 100B reserviert werden. Zum Beispiel kann jeder der Prozessoren 102A über den Bus 106 zur gemeinsamen Speichervorrichtung 112C Steuersignale ausgeben, die eine Reservierung der Speichervorrichtung 112C veranlassen. In Reaktion auf die Steuersignale ermittelt die gemeinsame Speichervorrichtung 112C, ob die gemeinsame Speichenvorrichtung 112C bereits reserviert ist, was im physikalischen Zustand der gemeinsamen Speichervorrichtung 112C dargestellt ist, z. B. im Zustand eines Merkers oder einer Identifikation des Halters der aktuellen Reservierung, die in einem Register der gemeinsamen Speichervorrichtung 112C dargestellt ist. Wenn eine gemeinsame Speichervorrichtung 112C derzeit nicht reserviert ist, wechselt die gemeinsame Speichervorrichtung 112C ihren Zustand, um anzuzeigen, daß die gemeinsame Speichervorrichtung 112C nun vom Knoten 100A reserviert ist. Wenn im Gegensatz hierzu die gemeinsame Speichervorrichtung 112C derzeit reserviert ist, sendet die gemeinsame Speichervorrichtung 112C über den Bus 106 Signale zu den Prozessoren 102A, die anzeigen, daß die versuchte Reservierung zurückgewiesen wird.
  • Außerdem kann jeder der Prozessoren 102A Steuersignale an eine Netzzugriffvorrichtung 108A ausgeben, die die Netzzugriffvorrichtung 108A veranlassen, Daten über das Netz 110 zwischen der Netzzugriffvorrichtung 108A des Knotens 100A und der Netzzugriffvorrichtung 108B des Knotens 100B in herkömmlicher Weise zu übertragen. In einer Ausführungsform ist das Netz 110 das wohlbekannte Ethernet-Netz, wobei die Netzzugriffvorrichtungen 108A und 108B herkömmliche Ethernet-Kontrollschaltungen sind.
  • Das verteilte Computersystem 100 ist in Fig. 2 in vereinfachter Form dargestellt. Innerhalb des Knotens 100A werden die folgenden Computerprozesse ausgeführt: (i) verteilte Datenbanküberwachungsvorrichtung 202A, (ii) Betriebssystem 204A, und (iii) verteilte Anwendung 206A. In ähnlicher Weise werden die verteilte Datenbanküberwachungsvorrichtung 2028, das Betriebssystem 204B und die verteilte Anwendung 2068 innerhalb des Knotens 1008 ausgeführt und sind direkt analog zur verteilten Datenbanküberwachungsvorrichtung 202A, zum Betriebssystem 204A bzw. zur verteilten Anwendung 206A. Dementsprechend ist die folgende Beschreibung der verteilten Datenbanküberwachungsvorrichtung 202A, des Betriebssystems 204A und der verteilten Anwendung 206A gleichermaßen anwendbar auf die verteilte Datenbanküberwachungsvorrichtung 2028, das Betriebssystem 2048 und die verteilte Anwendung 2068.
  • Die verteilte Anwendung 206A kooperiert mit der verteilten Anwendung 2068, um eine verteilte Datenbank zu verwalten, die in einer oder mehreren gemeinsamen Speichervorrichtungen 112A-D gespeichert ist. Die verteilte Anwendung 206A verwaltet die verteilte Datenbank durch Speichern von Daten in bzw. Wiedergewinnen von Daten aus der verteilten Datenbank und durch Aufrechterhalten von Metadaten innerhalb der Datenbank. Metadaten beziehen sich im allgemeinen auf Daten innerhalb einer Datenbank, die eine Struktur von Substanzdaten innerhalb der Datenbank darstellen, und stellen häufig Zwischenbeziehungen zwischen den in der Datenbank gespeicherten Substanzdaten dar. In einer Ausführungsform ist die verteilte Anwendung 206A ein Oracle-Parallel-Server, der erhältlich ist von der Oracle Corporation in Redwood Shores, Kalifornien.
  • Vor dem Zugriff auf irgendwelche Daten der verteilten Datenbank, z. B. eines bestimmten Datenblocks der verteilten Datenbank, fordert die verteilte Anwendung 206A von der verteilten Datenbanküberwachungsvorrichtung 202A exklusiven Zugriff auf den bestimmten Datenblock. Die verteilte Datenbanküberwachungsvorrichtung 202A arbeitet mit der verteilten Datenbanküberwachungsvorrichtung 2028 zusammen, um exklusiven Zugriff auf den bestimmten Datenblock zu erlangen, und zeigt der verteilten Anwendung 206A über Antwortsignale an, ob die verteilte Anwendung 206A exklusiven Zugriff auf den bestimmten Datenblock hat. Wenn die verteilte Anwendung 206A erfolgreich exklusiven Zugriff auf den bestimmten Datenblock erlangt, kann die verteilte Anwendung 206A Daten im bestimmten Datenblock speichern, ohne gleichzeitigen Zugriff durch den Knoten 100B, und somit ohne die Gefahr einer Verfälschung der verteilten Datenbank.
  • Die verteilte Datenbanküberwachungsvorrichtung 202A kommuniziert und kooperiert mit der verteilten Datenbanküberwachungsvorrichtung 202B, um für die verteilte Anwendung 206A exklusiven Zugriff auf spezifische Datenblöcke, die in gemeinsamen Speichervorrichtungen 112A-D gespeichert sind, zu erlangen und aufzuheben. Die verteilten Datenbanküberwachungsvorrichtungen 202A-B kommunizieren über die Kommunikationsverbindung 210, die die Netzzugriffvorrichtungen 108A-B (Fig. 1) und das Netz 110 umfaßt. Wenn der Knoten 100B (Fig. 2) oder die Kommunikationsverbindung 200C versagt, erfaßt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) das Versagen und meldet das Versagen dem Betriebssystem 204A. Die Ausfallerfassung durch die verteilte Datenbanküberwachungsvorrichtung 202A wird im folgenden genauer beschrieben.
  • In Reaktion auf die Erfassung eines Versagens der Kommunikationsverbindung 210 oder des Knotens 1008 versucht die verteilte Datenbanküberwachungsvorrichtung 202A, ein Quorum zu erlangen entsprechend den Schritten, die im logischen Flußdiagramm 200 gezeigt sind (Fig. 3). Wenn die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) entsprechend dem logischen Flußdiagramm 300 (Fig. 3) erfolgreich ein Quorum erlangt, nimmt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) (i) an, daß die verteilte Datenbanküberwachungsvorrichtung 202B nicht mehr auf irgendeine der gemeinsamen Speichervorrichtungen 112A-D zugreifen kann, und (ii) erlaubt der verteilten Anwendung 206A, weiterhin auf die gemeinsamen Speichervorrichtungen 112A-D zuzugreifen. Wenn im Gegensatz hierzu die verteilte Datenbanküberwachungsvorrichtung 202A entsprechend dem logischen Flußdiagramm 300 (Fig. 3) kein Quorum erlangt, nimmt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) (i) an, daß der Knoten 100B nicht versagt hat und ein Quorum erlangt hat, und (ii) verzichtet freiwillig auf die Gewährung von Zugriff auf die gemeinsamen Speichervorrichtungen 112A-D für die verteilte Anwendung 206A, da kein exklusiver Zugriff garantiert werden kann.
  • Die Verarbeitung gemäß dem logischen Flußdiagramm 300 (Fig. 3) nimmt an, daß eine entsprechende der gemeinsamen Speichervorrichtungen 112% D (Fig. 2) als eine Quorumkontrollvorrichtung für jeden der Knoten 100A und 100B spezifiziert worden ist. Zum Beispiel kann die gemeinsame Speichervorrichtung 112A als Quorumkontrollvorrichtung für den Knoten 100A spezifiziert sein, während die gemeinsame Speichervorrichtung 112B als Quorumkontrollvorrichtung für den Knoten 100B spezifiziert sein kann. Im allgemeinen kann jede gemeinsame Speichervorrichtung als Quorumkontrollvorrichtung für einen Knoten des verteilten Computersystems 100 spezifiziert werden (Fig. 1), solange die folgenden Kriterien erfüllt sind. Erstens, für jeden Knoten muß eine physikalisch verschiedene gemeinsame Speichervorrichtung als Quorumkontrollvorrichtung spezifiziert werden. Zweitens, die Quorumkontrollvorrichtung für einen bestimmten Knoten muß während des Normalbetriebs des Knotens für den Knoten reserviert sein. Drittens, die Quorumkontrollvorrichtung für jeden Knoten muß von den Knoten des verteilten Computersystems 100 physikalisch gemeinsam genutzt werden. In den hier beschriebenen erläuternden Beispielen sind (i) die gemeinsamen Speichervorrichtungen 112A und 112B physikalisch unterschiedliche Vorrichtungen, (ii) die gemeinsamen Speichervorrichtungen 112A und 112B von den Knoten 100A bzw. 100B während des Normalbetriebs der Knoten 100A bzw. 100B reserviert, und (iii) die gemeinsamen Speichervorrichtungen 112A und 1128 von den Knoten 100A und 100B physikalisch gemeinsam genutzt. Dementsprechend ist die Spezifizierung der gemeinsamen Speichervorrichtungen 112A und 112B als Quorumkontrollvorrichtungen für die Knoten 100A bzw. 100B eine geeignete Spezifizierung.
  • Die Verarbeitung gemäß dem logischen Flußdiagramm 300 (Fig. 3) nimmt ferner an, daß die Quorumkontrollvorrichtungen für die Knoten 100A (Fig. 2) und 100B geordnet sind. Die bestimmte Ordnung der Quorumkontrollvorrichtung ist nicht besonders bedeutend, solange beide Knoten 100A und 100B bezüglich der bestimmten Ordnung der Quorumkontrollvorrichtungen übereinstimmen. In diesem erläuternden Beispiel ist die gemeinsame Speichervorrichtung 112A die erste Quorumkontrollvorrichtung, während die gemeinsame Speichervorrichtung 112B die zweite Quorumkontrollvorrichtung ist. Die Reihenfolge der Quorumkontrollvorrichtungen wird in einer später genauer beschriebenen Weise verwendet, um einen zweiten Wettlauf um das Quorum auszuführen, wenn der erste Wettlauf um das Quorum zu einem Unentschieden führt.
  • Beim Verständnis der folgenden Beschreibung des logischen Flußdiagramms 300 (Fig. 3) ist es nützlich, daran zu erinnern, daß im Fall eines Versagens der Kommunikationsverbindung 210 beide Knoten 100A und 100B die Schritte des logischen Flußdiagramms 300 (Fig. 3) unabhängig ausführen, wenn sie jeweils das Versagen erfassen. Das logische Flußdiagramm 300 (Fig. 3) ist im Zusammenhang mit dem Knoten 100A beschrieben. Die Verarbeitung gemäß dem logischen Flußdiagramm 300 (Fig. 3) durch den Knoten 100B (Fig. 2) ist direkt analog zur Verarbeitung gemäß dem logischen Flußdiagramm 300 (Fig. 3) durch den Knoten 100A (Fig. 2), wie im folgenden beschrieben wird.
  • Die Schritte 302-308 (Fig. 3) stellen einen Wettlauf um das Quorum zwischen den Knoten 100A (Fig. 2) und 100B dar. Mit dem Schritt 302 (Fig. 3) beginnt die Verarbeitung gemäß dem logischen Flußdiagramm 300. Im Schritt 302 reserviert die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) im Auftrag vom Knoten 100A die Quorumkontrollvorrichtung des Knotens, in dem die verteilte Datenbanküberwachungsvorrichtung 202A ausgeführt wird, d. h. des Knotens 100A. Die Reservierung einer gemeinsamen Speichervorrichtung durch die verteilte Datenbanküberwachungsvorrichtung 202A ist gewöhnlich und bekannt, wird jedoch der Vollständigkeit halber kurz beschrieben.
  • Die verteilte Datenbanküberwachungsvorrichtung 202A reserviert irgendeine der gemeinsamen Speichervorrichtungen 112A-D, z. B. die gemeinsame Speichervorrichtung 112C, indem sie über die Prozessoren 102A (Fig. 1) einen Computerbefehl ausgibt, dessen Ausführung Signale zur gemeinsamen Speichervorrichtung 112C sendet, die die Reservierung der gemeinsamen Speichervorrichtung 112C durch den Knoten 100A anfordern. Wenn die gemeinsame Speichervorrichtung 112C nicht reserviert ist, ändert die gemeinsame Speichervorrichtung 112C ihren physikalischen Zustand in einen reservierten Zustand, in welchem die Speichervorrichtung 112C Signale über die Prozessoren 102A zur verteilten Datenbanküberwachungsvorrichtung 202A sendet, die anzeigen, daß die gemeinsame Speichervorrichtung 112C vom Knoten 100A reserviert ist. Wenn im Gegensatz hierzu die gemeinsame Speichervorrichtung 112C reserviert ist, wenn die Reservierungsanforderungssignale von den Prozessoren 102A empfangen werden, sendet die gemeinsame Speichervorrichtung 112C über die Prozessoren 102A zur verteilten Datenbanküberwachungsvorrichtung 202A Signale, die anzeigen, daß die angeforderte Reservierung der gemeinsamen Speichervorrichtung. 112C zurückgewiesen wird. In dieser Ausführungsform werden die Reservierungen von einem Knoten gehalten, weshalb die verteilte Datenbanküberwachungsvorrichtung 202A Reservierungen im Auftrag eines Knotens 100A anfordert.
  • Im Zusammenhang mit der verteilten Datenbanküberwachungsvorrichtung 202A wird die Quorumkontrollvorrichtung des Knotens 100A als "lokale Quorumkontrollvorrichtung" bezeichnet und ist in diesem erläuternden Beispiel die gemeinsame Speichervorrichtung 112A. Schritt 302 (Fig. 3) ist häufig eine Null-Operation, d. h. ein Schritt, in welchem die Prozessoren 102A (Fig. 1) keine Maßnahme ausführen, da der Knoten 100A (Fig. 2) normalerweise die lokale Quorumkontrollvorrichtung reserviert hat. Vom Schritt 302 (Fig. 3) geht die Verarbeitung zum Testschritt 304 über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) ermittelt, ob die Reservierung der lokalen Quorumkontrollvorrichtung erfolgreich ist. Wie im folgenden genauer beschrieben wird, kann die Reservierung der lokalen Quorumkontrollvorrichtung fehlschlagen, wenn die verteilte Datenbanküberwachungsvorrichtung 202B den im folgenden beschriebenen Schritt 308 (Fig. 3) ausführt, bevor die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den Schritt 302 (Fig. 3) ausführt. Unter diesen Umständen gewinnt die verteilte Datenbanküberwachungsvorrichtung 202B (Fig. 2) den Wettlauf um das Quorum und kann auf die gemeinsamen Speichervorrichtungen 112A-D zugreifen.
  • Wenn die verteilte Datenbanküberwachungsvorrichtung 202A die lokale Quorumkontrollvorrichtung nicht reservieren kann, geht die Verarbeitung vom Testschritt 304 (Fig. 3) zum Schritt 306 über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) die Verarbeitung abbricht. Schritt 306 (Fig. 3) ist als logisches Flußdiagramm 306 (Fig. 4) genauer gezeigt, in welchem die Verarbeitung im Schritt 402 beginnt. Im Schritt 402 hebt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) alle Reservierungen auf, die vom Knoten 100A für irgendwelche gemeinsamen Speichervorrichtungen 112A-D gehalten werden. Die Verarbeitung geht zum Schritt 404 (Fig. 4) über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 4) alle Anforderungen von der verteilten Anwendung 206A (Fig. 2) für einen Zugriff auf irgendeine der gemeinsamen Speichervorrichtungen 112A-D zurückweist. Nach dem Schritt 404 (Fig. 4) endet die Verarbeitung gemäß dem logischen Flußdiagramm 306 und somit gemäß dem Schritt 306 (Fig. 3). Nach dem Schritt 306 endet die Verarbeitung gemäß dem logischen Flußdiagramm 300 und die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) hat den Wettlauf um das Quorum verloren.
  • Wenn im Testschritt 304 (Fig. 3) die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) ermittelt, daß die lokale Quorumkontrollvorrichtung, d. h. in diesem erläuternden Beispiel die gemeinsame Speichervorrichtung 112A, vom Knoten 100A erfolgreich reserviert worden ist, geht die Verarbeitung zum Schritt 308 (Fig. 3) über. Im Schritt 308 reserviert die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) im Auftrag des Knotens 100A zwangsweise die Quorumkontrollvorrichtung des Knotens, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A nicht ausgeführt wird, d. h. des Knotens 1008. Im Zusammenhang mit der verteilten Datenbanküberwachungsvorrichtung 202A wird die Quorumkontrollvorrichtung des Knotens 100B als die "entfernte Quorumkontrollvorrichtung" bezeichnet und ist in diesem erläuternden Beispiel die gemeinsame Speichervorrichtung 112B. Gewöhnlich schlägt die versuchte Reservierung einer Vorrichtung, die bereits von einem weiteren Computerprozeß reserviert ist, fehl. Eine Zwangsreservierung einer Vorrichtung ist jedoch eine Reservierung, die trotz einer weiterhin von einem weiteren Knoten gehaltenen, vorherigen Reservierung der Vorrichtung erfolgreich ist. Zwangsreservierungen sind bekannt und sind Teil der SCSI-3-Norm (SCSI = Small Computer Serial Interface), fest gelegt vom CAM-Ausschuß (Common Access Method Committee).
  • Wenn somit der Knoten 1008 selbst oder die verteilte Datenbanküberwachungsvorrichtung 2028 versagt hat, d. h. wenn der Knoten 100B oder die verteilte Datenbanküberwachungsvorrichtung 202B nun außer Betrieb ist, reserviert die verteilte Datenbanküberwachungsvorrichtung 202A für den Knoten 100A beide Quorumkontrollvorrichtungen in den Schritten 302 (Fig. 3) und 308. Dies gilt selbst dann, wenn die verteilte Datenbanküberwachungsvorrichtung 202B (Fig. 2) die Reservierung des Knotens 1008 ihrer lokalen Quorumkontrollvorrichtung, d. h. der gemeinsamen Speichervorrichtung 112B, nicht aufgehoben hat, da die verteilte Datenbanküberwachungsvorrichtung 202A im Auftrag des Knotens 100A die lokale Quorumkontrollvorrichtung des Knotens 100B zwangsweise reserviert. Dementsprechend kann der Fehlschlag der Aufhebung einer Reservierung einer gemeinsamen Speichervorrichtung, wenn ein Knoten des verteilten Computersystems 100 (Fig. 1) versagt, nicht zu einem Versagen des verteilten Computersystems 100 führen, wobei der übrigbleibende arbeitende Knoten ein Quorum erlangen kann. Es wird angenommen, daß die lokale Quorumkontrollvorrichtung der verteilten Datenüberwachungsvorrichtung 2028 (Fig. 2) die entfernte Quorumkontrollvorrichtung der verteilten Datenbanküberwachungsvorrichtung 202A ist und die entfernte Quorumkontrollvorrichtung der verteilten Datenbanküberwachungsvorrichtung 2028 die lokale Quorumkontrollvorrichtung der verteilten Datenbanküberwachungsvorrichtung 202A ist.
  • Wenn der Knoten 100B und die verteilte Datenbanküberwachungsvorrichtung 202B weiter arbeiten, stellen die Schritte 302-308 (Fig. 3) einen Wettlauf um die Reservierung beider Quorumkontrollvorrichtungen dar. Wie oben mit Bezug auf den Testschritt 304 beschrieben worden ist, ist es möglich, daß die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) im Auftrag des Knotens 100A dessen lokale Quorumkontrollvorrichtung nicht reservieren kann. Eine solche Reservierung schlägt fehl, wenn die verteilte Datenbanküberwachungsvorrichtung 202B (Fig. 2) zwangsweise ihre entfernte Quorumkontrollvorrichtung, d. h. die lokale Quorumkontrollvorrichtung der verteilten Datenbanküberwachungsvorrichtung 202A, bei der Durchführung des Schritts 308 (Fig. 3) vor der Ausführung des Schritts 302 durch die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) reserviert. Unter diesen Umständen gewinnt die verteilte Datenbanküberwachungsvorrichtung 202B den Wettlauf um das Quorum, wobei die verteilte Datenbanküberwachungsvorrichtung 202A im Schritt 306 (Fig. 3) abbricht, wie oben genauer beschrieben worden ist.
  • Wenn eine verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den Wettlauf um das Quorum der Schritte 302 (Fig. 3) bis 308 gewonnen hat, hat der Knoten 100A (Fig. 2) sowohl die lokale Quorumkontrollvorrichtung als auch die entfernte Quorumkontrollvorrichtung reserviert, d. h. beide gemeinsamen Speichervorrichtungen 112A und 112B. Wenn im Gegensatz hierzu die verteilte Datenbanküberwachungsvorrichtung 202A den Wettlauf um das Quorum verloren hat, hat der Knoten 100B sowohl die lokale als auch die entfernte Quorumkontrollvorrichtung reserviert, wobei die Verarbeitung durch die verteilte Datenbanküberwachungsvorrichtung 202A nach Ausführung des Schritts 306 (Fig. 3) endet.
  • Wenn der Wettlauf um das Quorum zwischen den verteilten Datenbanküberwachungsvorrichtungen 202A (Fig. 2) und 202B zu einem Unentschieden führt, d. h. wenn die verteilten Datenbanküberwachungsvorrichtungen 202A und 202B die Schritte 302-308 (Fig. 3) - und insbesondere den Schritt 308- im wesentlichen gleichzeitig ausführen, hat jeder der Knoten 100A-B die entfernte Quorumkontrollvorrichtung reserviert, hat jedoch nicht die lokale Quorumkontrollvorrichtung reserviert. In diesem erläuternden Beispiel führt ein solches Unentschieden dazu, daß die gemeinsame Speichervorrichtung 112B (Fig. 2) vom Knoten 100A reserviert ist und die gemeinsame Speichervorrichtung 112A vom Knoten 100B reserviert ist. In den Schritten 310-312 (Fig. 3) prüft die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) auf ein solches Unentschieden, ebenso wie die verteilte Datenbanküberwachungsvorrichtung 202B in einer separaten, unabhängigen Ausführung der Schritte 310-312 (Fig. 3).
  • Im Schritt 310 versucht die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2), im Auftrag des Knotens 100A dessen lokale Quorumkontrollvorrichtung zu reservieren. Im Testschritt 312 (Fig. 3) ermittelt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2), ob die versuchte Reservierung des Schritts 310 (Fig. 3) erfolgreich ist. Wenn die Reservierung der lokalen Quorumkontrollvorrichtung erfolgreich ist, hat die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den Wettlauf um das Quorum gewonnen und die Verarbeitung gemäß dem logischen Flußdiagramm 300 (Fig. 3) endet. Wenn die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den Wettlauf um das Quorum gewonnen hat, kann die verteilte Datenbanküberwachungsvorrichtung 202A Anforderungen von der verteilten Anwendung 206A für einen Zugriff auf irgendeine der gemeinsamen Speichervorrichtungen 112A-D bewilligen. Wenn im Testschritt 312 (Fig. 3) die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) ermittelt, daß die versuchte Reservierung des Schritts 310 (Fig. 3) fehlgeschlagen ist, ermittelt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2), daß der Wettlauf um das Quorum der Schritte 302-308 (Fig. 3) zu einem Unentschieden geführt hat und die Verarbeitung geht vom Testschritt 312 zum Schritt 314 über.
  • Die Schritte 314-324 stellen einen Unentschiedenabwendungsmechanismus dar, in welchem die verteilten Datenbanküberwachungsvorrichtungen 202A (Fig. 2) und 2028 an einem zweiten Wettlauf um das Quorum teilnehmen. Da der Schritt 314 (Fig. 3) nur dann ausgeführt wird, wenn sich im ersten Rennen um das Quorum ein Unentschieden ergibt, nehmen die verteilten Datenbanküberwachungsvorrichtungen 202A (Fig. 2) und 202B an, daß beide verteilten Datenbanküberwachungsvorrichtungen 202A und 202B in Betrieb sind und der erfaßte Fehler in der Kommunikationsverbindung 210 liegt. Dementsprechend kann der zweite Wettlauf um das Quorum den Reservierungsmechanismus der gemeinsamen Speichervorrichtungen 112A- D als einen Arbitrierungsmechanismus des zweiten Wettlaufs um das Quorum verwenden. Im Schritt 314 (Fig. 3) veranlaßt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den Knoten 100A, die Reservierung für die entfernte Quorumkontrollvorrichtung aufzuheben, so daß der Knoten 100A keine Quorumkontrollvorrichtung mehr reserviert hat. In einer analogen unabhängigen Ausführung des Schritts 314 (Fig. 3) durch die verteilte Datenbanküberwachungsvorrichtung 202B (Fig. 2) veranlaßt die verteilte Datenbanküberwachungsvorrichtung 202B den Knoten 100B, ihre entfernte Quorumkontrollvorrichtung freizugeben, so daß der Knoten 100B keine Quorumkontrollvorrichtung mehr reserviert hat. Die Verarbeitung geht vom Schritt 314 (Fig. 3) zum Schritt 316 über.
  • Im Schritt 316 wartet die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) eine zufällig ausgewählte Zeitspanne. Genauer erzeugt die verteilte Datenbanküberwachungsvorrichtung 202A eine Zufallszahl, die eine Zeitspanne innerhalb eines vorgegebenen Zeitbereiches darstellt, wobei die verteilte Datenbanküberwachungsvorrichtung 202A während dieser zufällig ausgewählten Zeitspanne in einem Bereitschaftszustand verharrt. Da die zu wartende Zeitspanne von einer zufällig erzeugten Zahl abhängt, ist es wahrscheinlich, daß die verteilten Datenbanküberwachungsvorrichtungen 202A und 202B unterschiedlich lange Zeitspannen warten und daher ihre jeweils unabhängige Ausführung des Schritts 316 (Fig. 3) zu unterschiedlichen Zeitpunkten beenden.
  • Die Verarbeitung geht zum Schritt 318 über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) versucht, im Auftrag des Knotens 100A die erste Quorumkontrollvorrichtung zu reservieren. Wie oben beschrieben worden ist, sind die Quorumkontrollvorrichtungen geordnet und weisen die gleiche Ordnung innerhalb beider verteilter Datenbanküberwachungsvorrichtungen 202A und 202B auf. In den analogen und separaten Ausführungen des Schritts 318 (Fig. 3) durch die verteilten Datenbanküberwachungsvorrichtungen 202A (Fig. 2) und 202B versucht sowohl die verteilte Datenbanküberwachungsvorrichtung 202A als auch die verteilte Datenbanküberwachungsvorrichtung 202B, die gleiche Quorumkontrollvorrichtung, d. h. die gleiche gemeinsame Speichervorrichtung, zu reservieren. In diesem Beispiel ist die gemeinsame Speichervorrichtung 112A die erste Quorumkontrollvorrichtung.
  • Vom Schritt 318 (Fig. 3) geht die Verarbeitung zum Testschritt 320 über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) ermittelt, ob die versuchte Reservierung des Schritts 318 (Fig. 2) erfolgreich war. Wenn die versuchte Reservierung fehlgeschlagen ist, hat die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den zweiten Wettlauf um das Quorum verloren und die Verarbeitung geht zum Schritt 306 (Fig. 3) über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) abbricht, wie oben genauer beschrieben worden ist. Wenn im Gegensatz hierzu die verteilte Datenbanküberwachungsvorrichtung 202A im Testschritt 320 (Fig. 2) ermittelt, daß die versuchte Reservierung des Schritts 318 erfolgreich war, geht die Verarbeitung zum Schritt 322 über. An diesem Punkt kann die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) nicht sicher sein, daß die verteilte Datenbanküberwachungsvorrichtung 202A das Quorum erlangt hat. Da die verteilten Datenbanküberwachungsvorrichtungen 202A und 202B unabhängig arbeiten und möglicherweise mit unterschiedlichen Geschwindigkeiten arbeiten, ist es möglich, daß die verteilte Datenbanküberwachungsvorrichtung 202A den Schritt 308 (Fig. 3) unmittelbar vor der Ausführung des im folgenden beschriebenen Schritts 322 durch die verteilte Datenbanküberwachungsvorrichtung 202B ausführt. In einer solchen Situation hat der Knoten 100B die zweite Quorumkontrollvorrichtung, d. h. die gemeinsame Speichervorrichtung 112B, reserviert und die verteilte Datenbanküberwachungsvorrichtung 202A kann daher im Auftrag des Knotens 100A nicht beide Quorumkontrollvorrichtungen reservieren und kann somit nicht das Quorum erlangen.
  • Im Schritt 322 versucht die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2), die zweite Quorumkontrollvorrichtung zu reservieren, welche in diesem erläuternden Beispiel die gemeinsame Speichervorrichtung 112B ist. Vom Schritt 322 (Fig. 3) geht die Verarbeitung zum Testschritt 324 über, in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) ermittelt, ob die versuchte Reservierung des Schritts 320 (Fig. 3) erfolgreich war. Wenn die versuchte Reservierung fehlgeschlagen ist, hat die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den zweiten Wettlauf um das Quorum verloren und die Verarbeitung geht zum Schritt 306 (Fig. 3), in welchem die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) abbricht, wie oben genauer beschrieben worden ist. In einer solchen Situation fährt die verteilte Datenbanküberwachungsvorrichtung 202B mit der Ausführung der Schritte 316-324 (Fig. 3) fort und erlangt erfolgreich ein Quorum. Wenn im Gegensatz hierzu die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) im Testschritt 324 (Fig. 3) ermittelt, das die versuchte Reservierung des Schritts 322 erfolgreich war, hat die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den zweiten Wettlauf um das Quorum gewonnen und die Verarbeitung gemäß dem logischen Flußdiagramm 300 (Fig. 3) endet. Wenn wie oben beschrieben die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) den Wettlauf um das Quorum gewinnt, gewährt die verteilte Datenbanküberwachungsvorrichtung 202A der verteilten Anwendung 206A Zugriff auf jede der gemeinsamen Speichervorrichtungen 112A-D.
  • Gemäß den Schritten des logischen Flußdiagramms 300 (Fig. 3) erlangen somit die verteilten Datenbanküberwachungsvorrichtungen 202A (Fig. 2) und 202B unabhängig Übereinstimmung darüber, welche der verteilten Datenbanküberwachungsvorrichtungen 202A und 202B ein Quorum und somit Zugriff auf die gemeinsamen Speichervorrichtungen 112A-D erlangt, ohne daß es erforderlich ist, daß ein ausgefallener Knoten während eines solchen Versagens Reservierungen aufhebt. Dementsprechend stellt die vorliegende Erfindung gegenüber Mechanismen des Standes der Technik eine wesentliche Verbesserung hinsichtlich der Fehlertoleranz des verteilten Zwei-Knoten- Computersystems dar.
  • Fehlererfassung
  • Wie oben beschrieben worden ist, erfaßt die verteilte Datenbanküberwachungsvorrichtung 202A (Fig. 2) ein Versagen entweder des Knotens 100B oder der Kommunikationsverbindung 210. Die Erfassung eines Versagens des verteilten Computersystems 100 durch die verteilte Datenbanküberwachungsvorrichtung 202A wird der Vollständigkeit halber kurz beschrieben. Die verteilte Datenbanküberwachungsvorrichtung 202A erfaßt das Versagen in einer im wesentlichen herkömmlichen Weise, z. B. durch die Beobachtung, daß von der verteilten Datenbanküberwachungsvorrichtung 202B in einer vorgegebenen Zeitspanne keine Nachricht empfangen worden ist. Zum Beispiel kann die verteilte Datenbanküberwachungsvorrichtung 202A so konfiguriert sein, daß sie zur verteilten Datenbanküberwachungsvorrichtung 202B ein Statusanforderungssignal sendet, daß die verteilte Datenbanküberwachungsvorrichtung 202B anweist, mit einem Signal zu antworten, das Daten enthält, die den Status der verteilten Datenbanküberwachungsvorrichtung 2028 darstellen. Wenn die verteilte Datenbanküberwachungsvorrichtung 202A solche Daten von der verteilten Datenbanküberwachungsvorrichtung 202B nicht innerhalb eines vorgegebenen Zeitspanne von z. B. einer Sekunde nach dem Zeitpunkt des Sendens des Statusanforderungssignals empfängt, wird von der verteilten Datenbanküberwachungsvorrichtung 202A ein Versagen angenommen. Alternativ kann die verteilte Datenbanküberwachungsvorrichtung 202B so konfiguriert sein, daß sie in vorgegebenen Intervallen, z. B. jede Sekunde, zur verteilten Datenbanküberwachungsvorrichtung 202A ein Signal sendet, das den Status der verteilten Datenbanküberwachungsvorrichtung 202B darstellt. Wenn für eine vorgegebene Zeitperiode von z. B. dem zweifachen oder dreifachen vorgegebenen Intervall keine solchen Signale empfangen werden, kann dies von der verteilten Datenbanküberwachungsvorrichtung 202A als ein Versagen der Kommunikationsverbindung 210 oder des Knotens 100B interpretiert werden.

Claims (19)

1. Verfahren, das einem von zwei Knoten (100A, 100B) eines verteilten Computersystems (100) exklusiven Zugriff auf gemeinsame Betriebsmittel (112A-D) des verteilten Computersystems gewährt, welches zwei vorgewählte gemeinsame Vorrichtungen enthält und in welchem jeder Knoten einen Fehlerbehandler enthält und einen Zustand aufweist, der spezifiziert, ob der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wobei das Verfahren umfaßt:
für jeden Knoten das Zuweisen einer der vorgewählten gemeinsamen Vorrichtungen als lokale gemeinsame Vorrichtung;
das Erfassen einer Fehlerbedingung im verteilten Computersystem; und
das Veranlassen jedes Fehlerbehandlers, die folgenden Schritte auszuführen, wenn eine Fehlerbedingung erfaßt wird:
Versuchen, die fokale gemeinsame Vorrichtung des Knotens des Fehlerbehandlers zu reservieren;
zwangsweises Reservieren der anderen vorgewählten gemeinsamen Vorrichtung, wenn der Fehlerbehandler die lokale gemeinsame Vorrichtung des Knotens des Fehlerbehandlers erfolgreich reserviert hat;
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler beide vorgewählten gemeinsamen Vorrichtungen erfolgreich reserviert hat; und
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler nicht beide vorgewählten gemeinsamen Vorrichtungen reservieren kann.
2. Verfahren nach Anspruch 1, bei dem jeder der Fehlerbehandler ferner den folgenden Schritt ausführt, wenn eine Fehlerbedingung erfaßt wird:
Erfassen einer Unentschiedenbedingung, wenn der Knoten erfolgreich eine der vorgewählten gemeinsamen Vorrichtungen reserviert hat und die andere der vorgewählten gemeinsamen Vorrichtungen nicht reservieren kann.
3. Verfahren nach Anspruch 2, bei dem das verteilte Computersystem eine gemeinsame Vorrichtung enthält, die als eine Unentschiedenabwendungs-Vorrichtung spezifiziert ist;
und bei dem jeder der Fehlerbehandler ferner die folgenden Schritte ausführt, wenn eine Unentschiedenbedingung erfaßt wird:
Versuchen, die Unentschiedenabwendungs-Vorrichtung zu reservieren;
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler erfolgreich die Unentschiedenabwendungs- Vorrichtung reserviert hat; und
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler die Unentschiedenabwendungs-Vorrichtung nicht reservieren kann.
4. Verfahren nach Anspruch 3, bei dem die Unentschiedenabwendungs-Vorrichtung eine der vorgewählten gemeinsamen Vorrichtungen ist.
5. Verfahren nach Anspruch 3, bei dem das verteilte Computersystem eine gemeinsame Vorrichtung enthält, die als eine zweite Unentschiedenabwendungs-Vorrichtung spezifiziert ist, welche verschieden ist von der zuerst erwähnten Unentschiedenabwendungs-Vorrichtung;
und bei dem jeder der Fehlerbehandler ferner die folgenden Schritte ausführt, wenn die erste Unentschiedenabwendungs-Vorrichtung vom Fehlerbehandler erfolgreich reserviert worden ist:
Versuchen, die zweite Unentschiedenabwendungs-Vorrichtung zu reservieren;
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler erfolgreich die zweite Unentschiedenabwendungs-Vorrichtung reserviert hat; und
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler die zweite Unentschiedenabwendungs- Vorrichtung nicht reservieren kann.
6. Verfahren nach Anspruch 5, bei dem die zweite Unentschiedenabwendungs-Vorrichtung eine der vorgewählten gemeinsamen Vorrichtungen ist.
7. Computerprogrammprodukt, das umfaßt:
ein computernutzbares Medium mit darin enthaltenem computerlesbaren Code, um einem von zwei Knoten (100A, 100B) eines verteilten Computersystems (100) exklusiven Zugriff auf gemeinsame Betriebsmittel (112A-D) des verteilten Computersystems zu gewähren, wobei das verteilte Computersystem zwei vorgewählte gemeinsame Vorrichtungen enthält, wobei jeder Knoten einen Fehlerbehandler enthält, dem eine der vorgewählten gemeinsamen Vorrichtungen als eine lokale gemeinsame Vorrichtung zugewiesen ist, und einen Zustand aufweist, der spezifiziert, ob der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, und wobei der computerlesbare Code umfaßt:
ein Fehlererfassungsmodul, das dafür konfiguriert ist, eine Fehlerbedingung im verteilten Computersystem zu erfassen; und
ein Fehlerbehandlungsmodul, das mit dem Fehlererfassungsmodul operativ verbunden ist und das dafür konfiguriert ist, die folgenden Schritte auszuführen, wenn eine Fehlerbedingung erfaßt wird:
Versuchen, die lokale gemeinsame Vorrichtung des Knotens des Fehlerbehandlungsmoduls zu reservieren;
zwangsweises Reservieren der anderen vorgewählten gemeinsamen Vorrichtung, wenn das Fehlerbehandlungsmodul die lokale gemeinsame Vorrichtung erfolgreich reserviert hat;
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn das Fehlerbehandlungsmodul erfolgreich alle vorgewählten gemeinsamen Vorrichtungen reserviert hat; und
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler nicht alle vorgewählten gemeinsamen Vorrichtungen reservieren kann.
8. Computerprogrammprodukt nach Anspruch 7, bei dem das Fehlerbehandlungsmodul ferner dafür konfiguriert ist, den folgenden Schritt auszuführen, wenn eine Fehlerbedingung erfaßt wird:
Erfassen einer Unentschiedenbedingung, wenn der Knoten wenigstens eine der vorgewählten gemeinsamen Vorrichtungen erfolgreich reserviert hat und die andere vorgewählte gemeinsame Vorrichtung nicht reservieren kann.
9. Computerprogrammprodukt nach Anspruch 8, bei dem das Fehlerbehandlungsmodul ferner dafür konfiguriert ist, die folgenden Schritte auszuführen, wenn eine Unentschiedenbedingung erfaßt wird:
Versuchen, eine gemeinsame Unentschiedenabwendungs-Vorrichtung des verteilten Computersystems zu reservieren;
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn das Fehlerbehandlungsmodul erfolgreich die gemeinsame Unentschiedenabwendungs-Vorrichtung reserviert hat; und
Veranlassen, daß der Zustand des Knotens spezifiziert, daß der Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn das Fehlerbehandlungsmodul nicht die gemeinsame Unentschiedenabwendungs-Vorrichtung reservieren kann.
10. Computerprogrammprodukt nach Anspruch 9, bei dem die gemeinsame Unentschiedenabwendungs-Vorrichtung eine der vorgewählten gemeinsamen Vorrichtungen ist.
11. Computerprogrammprodukt nach Anspruch 9, bei dem das Fehlerbe handlungsmodul ferner dafür konfiguriert ist, die folgenden Schritte auszuführen, wenn die gemeinsame Unentschiedenabwendungs-Vorrichtung vom Fehlerbehandlungsmodul erfolgreich reserviert worden ist:
Versuchen, eine zweite gemeinsame Unentschiedenabwendungs- Vorrichtung zu reservieren, die verschieden ist von der zuerst erwähnten gemeinsamen Unentschiedenabwendungs-Vorrichtung;
Veranlassen, daß der Zustand des Knotens des Fehlerbehandlers spezifiziert, daß der Knoten des Fehlerbehandlers exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn das Fehlerbehandlungsmodul erfolgreich die zweite Unentschiedenabwendungs-Vorrichtung reserviert hat; und
Veranlassen, daß der Zustand des Knotens des Fehlerbehandlers spezifiziert, daß der Knoten des Fehlerbehandlers keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn das Fehlerbehandlungsmodul nicht die zweite Unentschiedenabwendungs-Vorrichtung reservieren kann.
12. Computerprogrammprodukt nach Anspruch 11, bei dem die zweite Unentschiedenabwendungs-Vorrichtung eine der vorgewählten gemeinsamen Vorrichtungen ist.
13. Vorrichtung zur Wiederherstellung nach einem Fehler in einem verteilten Computersystem (100), welches zwei Knoten (100A, 100B) mit Zugriff auf gemeinsame Betriebsmittel (112A-D) enthält, wobei die gemeinsamen Betriebsmittel zwei vorgewählte gemeinsame Vorrichtungen enthalten, wobei jedem Knoten eine der vorgewählten gemeinsamen Vorrichtungen als eine lokale gemeinsame Vorrichtung zugewiesen ist, und wobei die Vorrichtung umfaßt:
einen Fehlerdetektor, der einem ausgewählten der Knoten des verteilten Computersystems entspricht und der eine Fehlerbedingung im verteilten Computersystem erfaßt;
einen Fehlerbehandler, der (i) mit dem Fehlerdetektor operativ verbunden ist, (ii) einen Zustand aufweist, der spezifiziert, ob der ausgewählte Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, und der (iii) nach Erfassung der Fehlerbedingung:
(a) versucht, die lokale gemeinsame Vorrichtung zu reservieren;
(b) zwangsweise die andere vorgewählte gemeinsame Vorrichtung reserviert, wenn der Fehlerbehandler erfolgreich die lokale gemeinsame Vorrichtung reserviert hat;
(c) veranlaßt, daß der Zustand des Fehlerbehandlers spezifiziert, daß der ausgewählte Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler erfolgreich beide vorgewählten gemeinsamen Vorrichtungen reserviert hat; und
(d) veranlaßt, daß der Zustand des Fehlerbehandlers spezifiziert, daß der ausgewählte Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler nicht beide vorgewählten gemeinsamen Vorrichtungen reservieren kann.
14. Vorrichtung nach Anspruch 13, bei der im Fehlerzustand der Fehlerbehandler eine Unentschiedenbedingung erfaßt, wenn der Fehlerbehandler erfolgreich eine der vorgewählten gemeinsamen Vorrichtungen reserviert hat und nicht beide vorgewählten gemeinsamen Vorrichtungen reservieren kann.
15. Vorrichtung nach Anspruch 14, bei der dann, wenn der Fehlerbehandler die Unentschiedenbedingung erfaßt, der Fehlerbehandler (i) versucht, eine gemeinsame Unentschiedenabwendungs-Vorrichtung des verteilten Computersystems zu reservieren, und (ii) (a) veranlaßt, daß der Zustand des Fehlerbehandlers spezifiziert, daß der ausgewählte Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler erfolgreich die gemeinsame Unentschiedenabwendungs-Vorrichtung reserviert hat, und (b) veranlaßt, daß der Zustand des Fehlerbehandlers spezifiziert, daß der ausgewählte Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler die gemeinsame Unentschiedenabwendungs-Vorrichtung nicht reservieren kann.
16. Vorrichtung nach Anspruch 15, bei der die gemeinsame Unentschiedenabwendungs-Vorrichtung eine der vorgewählten gemeinsamen Vorrichtungen ist.
17. Vorrichtung nach Anspruch 15, bei der dann, wenn die gemeinsame Unentschiedenabwendungs-Vorrichtung vom Fehlerbehandler erfolgreich reserviert worden ist, das Fehlerbehandlungsmodul (i) versucht, eine zweite gemeinsame Unentschiedenabwendungs-Vorrichtung zu reservieren, die von der zuerst erwähnten gemeinsamen Unentschiedenabwendungs-Vorrichtung verschieden ist; (ii) (a) veranlaßt, daß der Zustand des Fehlerbehandlers spezifiziert, daß der ausgewählte Knoten exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler erfolgreich die zweite Unentschiedenabwendungs-Vorrichtung reserviert hat; und (b) veranlaßt, daß der Zustand des Fehlerbehandlers spezifiziert, daß der ausgewählte Knoten keinen exklusiven Zugriff auf die gemeinsamen Betriebsmittel hat, wenn der Fehlerbehandler die zweite Unentschiedenabwendungs-Vorrichtung nicht reservieren kann.
18. Vorrichtung nach Anspruch 17, bei der die zweite Unentschiedenabwendungs-Vorrichtung eine der vorgewählten gemeinsamen Vorrichtungen ist.
19. Verteiltes Computersystem (100), das umfaßt:
gemeinsame Betriebsmittel (112A-D), die zwei vorgewählte gemeinsame Vorrichtungen enthalten;
zwei Knoten (100A, 100B), von denen jeder mit jeder der vorgewählten gemeinsamen Vorrichtungen operativ verbunden ist, wobei jedem Knoten eine der vorgewählten gemeinsamen Vorrichtungen als eine lokale gemeinsame Vorrichtung zugewiesen ist, und wobei jeder Knoten umfaßt:
wenigstens einen Prozessor (102);
eine Netzzugriffvorrichtung (108), die mit dem wenigstens einen Prozessor operativ verbunden ist und über die der wenigstens eine Prozessor mit wenigstens einem Prozessor des anderen Knotens kommunizieren kann;
einen Fehlerdetektor, der eine Fehlerbedingung erfaßt, in der der Knoten nicht mehr mit dem anderen Knoten kommunizieren kann; und
die Vorrichtung nach irgendeinem der Ansprüche 13 bis 18.
DE69715967T 1996-05-31 1997-06-02 Quorummechanismus in einem verteilten Zweiknotenrechnersystem Expired - Fee Related DE69715967T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/656,386 US5828889A (en) 1996-05-31 1996-05-31 Quorum mechanism in a two-node distributed computer system

Publications (2)

Publication Number Publication Date
DE69715967D1 DE69715967D1 (de) 2002-11-07
DE69715967T2 true DE69715967T2 (de) 2003-02-20

Family

ID=24632817

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69715967T Expired - Fee Related DE69715967T2 (de) 1996-05-31 1997-06-02 Quorummechanismus in einem verteilten Zweiknotenrechnersystem

Country Status (4)

Country Link
US (2) US5828889A (de)
EP (1) EP0810526B1 (de)
JP (1) JPH10116259A (de)
DE (1) DE69715967T2 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system
US6108699A (en) * 1997-06-27 2000-08-22 Sun Microsystems, Inc. System and method for modifying membership in a clustered distributed computer system and updating system configuration
US6279032B1 (en) * 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6311217B1 (en) * 1998-06-04 2001-10-30 Compaq Computer Corporation Method and apparatus for improved cluster administration
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6453426B1 (en) 1999-03-26 2002-09-17 Microsoft Corporation Separately storing core boot data and cluster configuration data in a server cluster
US6401120B1 (en) 1999-03-26 2002-06-04 Microsoft Corporation Method and system for consistent cluster operational data in a server cluster using a quorum of replicas
US6499113B1 (en) * 1999-08-31 2002-12-24 Sun Microsystems, Inc. Method and apparatus for extracting first failure and attendant operating information from computer system devices
US6421688B1 (en) 1999-10-20 2002-07-16 Parallel Computers Technology, Inc. Method and apparatus for database fault tolerance with instant transaction replication using off-the-shelf database servers and low bandwidth networks
US6487622B1 (en) 1999-10-28 2002-11-26 Ncr Corporation Quorum arbitrator for a high availability system
US6615256B1 (en) * 1999-11-29 2003-09-02 Microsoft Corporation Quorum resource arbiter within a storage network
US6662219B1 (en) 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US6643748B1 (en) * 2000-04-20 2003-11-04 Microsoft Corporation Programmatic masking of storage units
US6965936B1 (en) * 2000-12-06 2005-11-15 Novell, Inc. Method for detecting and resolving a partition condition in a cluster
US6915391B2 (en) * 2000-12-15 2005-07-05 International Business Machines Corporation Support for single-node quorum in a two-node nodeset for a shared disk parallel file system
US6785678B2 (en) * 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function
US7792977B1 (en) * 2001-02-28 2010-09-07 Oracle International Corporation Method for fencing shared resources from cluster nodes
US6965929B2 (en) * 2001-06-29 2005-11-15 Intel Corporation Configuring a network device
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7631066B1 (en) * 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US7191357B2 (en) * 2002-03-29 2007-03-13 Panasas, Inc. Hybrid quorum/primary-backup fault-tolerance model
US7739541B1 (en) 2003-07-25 2010-06-15 Symantec Operating Corporation System and method for resolving cluster partitions in out-of-band storage virtualization environments
US7302607B2 (en) * 2003-08-29 2007-11-27 International Business Machines Corporation Two node virtual shared disk cluster recovery
EP1632854A1 (de) * 2004-08-23 2006-03-08 Sun Microsystems France S.A. Verfahren und Vorrichtung zur Benutzung eines seriellen Kabels als Quorum-Gerät in einem Cluster
EP1748361A1 (de) * 2004-08-23 2007-01-31 Sun Microsystems France S.A. Verfahren und Vorrichtung zur Benutzung eines USB-Kabels als Quorum-Gerät in einem Cluster
US7644305B2 (en) 2006-05-18 2010-01-05 Microsoft Corporation Quorum establishment based on a vote from a voting device
WO2008018969A1 (en) * 2006-08-04 2008-02-14 Parallel Computers Technology, Inc. Apparatus and method of optimizing database clustering with zero transaction loss
JP5005425B2 (ja) * 2007-05-21 2012-08-22 パナソニック株式会社 制御装置復帰システム
US8886809B2 (en) * 2007-07-18 2014-11-11 Siemens Industry, Inc. Wireless node auto-reset function
US8250088B2 (en) * 2007-10-05 2012-08-21 Imation Corp. Methods for controlling remote archiving systems
US8001413B2 (en) * 2008-05-05 2011-08-16 Microsoft Corporation Managing cluster split-brain in datacenter service site failover
US8305706B2 (en) 2008-07-11 2012-11-06 Imation Corp. Disk library system including array of removable disk cartridges and movable connector system
US8682842B2 (en) * 2008-12-09 2014-03-25 Yahoo! Inc. System and method for logging operations
US10169097B2 (en) * 2012-01-23 2019-01-01 Microsoft Technology Licensing, Llc Dynamic quorum for distributed systems
US9723064B1 (en) 2014-09-02 2017-08-01 Amazon Technologies, Inc. Hybrid quorum policies for durable consensus in distributed systems
US10320703B2 (en) * 2015-09-30 2019-06-11 Veritas Technologies Llc Preventing data corruption due to pre-existing split brain
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
JP6984437B2 (ja) 2018-01-24 2021-12-22 富士通株式会社 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置
US10884879B2 (en) 2018-10-18 2021-01-05 Oracle International Corporation Method and system for computing a quorum for two node non-shared storage converged architecture
US11902083B1 (en) 2021-08-05 2024-02-13 Cisco Technology, Inc. Techniques to provide a flexible witness in a distributed system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1141175B (it) * 1980-02-07 1986-10-01 Honeywell Inf Systems Procedimento per la liberazione di risorse comuni di memoria in un sistema multiprocessore
JPS6054052A (ja) * 1983-09-02 1985-03-28 Nec Corp 処理継続方式
US4827399A (en) * 1986-10-03 1989-05-02 Nec Corporation Common file system for a plurality of data processors
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
DE69230428T2 (de) * 1991-09-27 2000-08-03 Sun Microsystems, Inc. Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
US5408629A (en) * 1992-08-13 1995-04-18 Unisys Corporation Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system
US5469575A (en) * 1992-10-16 1995-11-21 International Business Machines Corporation Determining a winner of a race in a data processing system
EP0595453B1 (de) * 1992-10-24 1998-11-11 International Computers Limited Verteiltes Datenverarbeitungssystem
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
JPH0713838A (ja) * 1993-06-14 1995-01-17 Internatl Business Mach Corp <Ibm> エラーの回復方法及び装置
US5673384A (en) * 1995-10-06 1997-09-30 Hewlett-Packard Company Dual disk lock arbitration between equal sized partition of a cluster
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system

Also Published As

Publication number Publication date
US5948109A (en) 1999-09-07
JPH10116259A (ja) 1998-05-06
EP0810526B1 (de) 2002-10-02
DE69715967D1 (de) 2002-11-07
EP0810526A1 (de) 1997-12-03
US5828889A (en) 1998-10-27

Similar Documents

Publication Publication Date Title
DE69715967T2 (de) Quorummechanismus in einem verteilten Zweiknotenrechnersystem
DE69811148T2 (de) Mitgliedschaft in einem unzuverlässigen verteilten Rechnersystem
DE69629630T2 (de) Struktur zur Gruppenzugehörigkeitsverwaltung in einem Mehrfachrechnersystem
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE69629444T2 (de) Datenverarbeitungsgerät und Verfahren zur Ersetzung von ausgefallenen Speichereinheiten
DE69807077T2 (de) Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten
DE69125330T2 (de) Verfahren zur Verordnung der Sicherheitsübertragung eines 1:1-redundanten Sklavenprozessorpaares
DE3853452T2 (de) Mehrfachverarbeitung mit hoher Verfügbarkeit.
DE3611223A1 (de) Verfahren und vorrichtung zum verhindern einer blockierung in einem datenbank-verwaltungssystem
DE19525013C2 (de) Multiprozessorsystem
DE69523124T2 (de) Fehlererkennungssystem für einen gespiegelten Speicher in einer duplizierten Steuerung eines Plattenspeicherungssystems
DE4104781C2 (de) Speicherzugriffssteuerung
DE3781873T2 (de) Rekonfigurierbare rechenanordnung.
DE69521549T2 (de) Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
DE69121973T2 (de) Verarbeitungssystem zur Ausgabe vom Verwendungsrecht vom Betriebsmittel
DE69032673T2 (de) Verfahren und Vorrichtung zur dynamischen Verwaltung der Eingabe-/Ausgabeverbindungsmöglichkteiten
DE69506997T2 (de) System zur Verwendung eines gespiegelten Speichers als fehlerunempfindlichen Kommunikationspfad zwischen doppelten Plattenspeichersteuerungen
DE69022709T2 (de) Synchronisationsbefehl für Mehrprozessornetz.
DE68924061T2 (de) Versionskontrolle in einem Datenverarbeitungssystem.
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
DE69907852T2 (de) Hochverfügbare asynchrone Ein/Ausgabe für gruppierte Rechnersysteme
DE3127349A1 (de) Signalverarbeitungssystem mit verteilten elementen
DE2244402A1 (de) Datenverarbeitungsanlage
DE10123067A1 (de) Synchrone Vervielfältigung von Transaktionen in einem verteilten System
DE69122142T2 (de) Steuerungsanlage für ein Mehrprozessorsystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee