DE69715967T2 - Quorummechanismus in einem verteilten Zweiknotenrechnersystem - Google Patents
Quorummechanismus in einem verteilten ZweiknotenrechnersystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 |
-
1996
- 1996-05-31 US US08/656,386 patent/US5828889A/en not_active Expired - Fee Related
-
1997
- 1997-06-02 JP JP9144026A patent/JPH10116259A/ja active Pending
- 1997-06-02 DE DE69715967T patent/DE69715967T2/de not_active Expired - Fee Related
- 1997-06-02 EP EP97303680A patent/EP0810526B1/de not_active Expired - Lifetime
-
1998
- 1998-07-14 US US09/115,412 patent/US5948109A/en not_active Expired - Lifetime
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 |