-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft Datenbanksysteme und insbesondere persistente
Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit.
-
HINTERGRUND
-
Die
in diesem Abschnitt beschriebenen Lösungsansätze sind Lösungsansätze, die man verfolgen könnte, es
sind jedoch nicht notwendigerweise Lösungsansätze, die bereits zuvor erdacht
oder verfolgt wurden. Daher sollte man, falls nicht anders angegeben,
nicht davon ausgehen, dass irgendeiner der in diesem Abschnitt beschriebenen
Lösungsansätze lediglich
dadurch, dass er in diesem Abschnitt enthalten ist, als Stand der
Technik gilt.
-
Ein
Mehrknoten-Computersystem besteht aus miteinander verbundenen Knoten,
die einen Zugriff auf Ressourcen gemeinsam nutzen. Typischerweise
sind die Knoten miteinander über
ein Netzwerk verbunden und teilen sich einen Zugriff, in variierendem
Maße,
auf einen gemeinsam genutzten Speicher (z. B. einen gemeinsam genutzten
Zugriff auf einen Satz von Plattenlaufwerken). Die Knoten in einem
Mehrknoten-Computersystem können
in Form einer Gruppe von Computer (z. B. Arbeitsplatzrechner (Workstations),
persönliche
Computer) vorliegen, die über
ein Netzwerk miteinander verbunden sind. Alternativ kann es sich
bei den Knoten um die Knoten eines Verbundnetzes (Grid) handeln.
Ein Verbundnetz besteht aus Knoten in Form von Server-Blades, die
mit anderen Server-Blades in einem Gestell (Rack) miteinander verbunden
sind.
-
Der
Begriff Ressource betrifft hier eine beliebige von einem Computer
verwendete Ressource, wobei ein Zugriff auf diese zwischen mehreren
Prozessen verwaltet wird. Ressourcen beinhalten Speichereinheiten,
Peripheriegeräte
(z. B. Drucker, Netzwerkkarten), Einheiten eines Plattenspeichers
(z. B. eine Datei, ein Datenblock), und Datenstrukturen (eine relationale
Tabelle, Datensätze
von relationalen Tabellen, ein Datensätze einer relationalen Tabelle enthaltender
Datenblock). Eine gemeinsam genutzte Ressource ist eine Ressource,
bei der eine gemeinsame Nutzung und ein Zugriff durch mehrere Knoten eines
Mehrknotensystem erfolgt.
-
Zwar
ist eine gemeinsame Nutzung von Ressourcen möglich, jedoch ist es bei vielen
Ressourcen nicht möglich,
dass sie zu einem gegebenen Zeitpunkt von mehr als einem Prozess
genutzt werden. Beispielsweise sind die meisten Drucker nicht in
der Lage, zu einem Zeitpunkt mehr als ein einziges Dokument zu drucken.
Auf andere Ressourcen, beispielsweise Datenblöcke eines Speichermediums oder
auf einem Speichermedium gespeicherte Tabellen, kann von mehreren
Prozessen auf einige Weisen (z. B. Lesen) zugegriffen werden, jedoch
kann ein Zugriff auf andere Weisen (z. B. Schreiben) zu einem Zeitpunkt
durch lediglich einen einzigen Prozess erfolgen. Demzufolge wurden
Mechanismen entwickelt, die einen nebenläufigen (gleichzeitigen) Zugriff auf
gemeinsam genutzte Ressourcen eines Mehrknotensystems verwalten.
-
Mehrstufiges Sperren-System
-
Einer
von diesen Mechanismen wird hier als Mehrstufen-Sperrensystem bezeichnet.
In einem Mehrstufen-Sperrensystem ist, für eine gegebene gemeinsam genutzte
Ressource, ein (einziger) Knoten in einem Mehrknoten-Computersystem
der "Master" (Meister) der Ressource
und ist zur Verwaltung des Zugriffs auf die gemeinsam genutzte Ressource verantwortlich.
Gemeinsam genutzte Ressourcen, für
die ein Knoten "Master" ist, werden als
gemeinsam genutzte Ressourcen bezeichnet, die von diesem Knoten 'beherrscht' werden, oder werden
der Einfachheit halber als gemeinsam genutzte Ressourcen des Masters
bezeichnet.
-
Der
Master verwaltet global einen nebenläufigen (gleichzeitigen) Zugriff
auf eine gemeinsam genutzte Ressource und behält einen globalen Überblick über einen
nebenläufigen
(gleichzeitigen) Zugriff auf gemeinsam genutzte Knoten. Ein Zugriff durch
Prozesse in einem Mehrknotensystem wird, egal ob der Prozess auf
dem Master oder einem anderen Knoten des Systems ausgeführt wird,
durch den Master der Ressource gesteuert. Um einen Zugriff auf eine
Ressource zu erlangen, muss eine Anfrage an den Master der Ressource
erfolgen, der die Anfrage bewilligen oder ablehnen kann. Prozessen, die
auf einem Knoten laufen, der nicht der Master ist (d. h. einem "entfernt befindlichen
Knoten"), kann durch
einen Master-Knoten ein Zugriff auf eine Ressource nicht separat
bewilligt werden. Vielmehr wird einem entfernt befindlichen Knoten
ein Zugriff auf eine Ressource bewilligt, und sobald die Bewilligung erfolgt
ist, kann der auf dem "Slave" (Sklaven) laufende
Prozess auf die Ressource zugreifen.
-
Ein
Master-Knoten verwendet Sperren, um Zugriffsrechte ("Rechte") auf eine Ressource
zu verwalten. Eine Sperre (lock) ist eine Datenstruktur, die angibt,
ob eine spezielle Entität
ein gewisses Recht auf eine Ressource angefordert hat, dieses bewilligt wurde
und sie dieses hält.
Wenn eine Bewilligung einer Anforderung des Rechtes, das durch eine
Sperre repräsentiert
wird, erfolgt ist, wird die Sperre selbst als bewilligt bezeichnet.
Bis die Sperre aufgehoben wird, wird die Sperre als gehalten bezeichnet.
-
Sperrentypen
-
Es
gibt viele Typen von Sperren. Für
eine gegebene Ressource repräsentiert
eine "gemeinsam genutzte
Sperre" das Recht,
einen Zugriff auf eine Ressource gemeinsam zu nutzen. Eine gemeinsam genutzte
Sperre kann mehreren Prozessen nebenläufig (gleichzeitig) bewilligt
werden, was diesen das Recht gibt, eine Form von Zugriff (z. B.
Lesezugriff) gemeinsam zu nutzen. Eine "exklusive Sperre" kann gleichzeitig lediglich einem einzigen
Prozess bewilligt werden. Sobald eine Bewilligung erfolgt ist, verhindert
die Sperre, dass dieser Typ und andere Typen von Sperren für die Ressource
bewilligt werden. Während
eine exklusive Sperre für
eine Ressource gehalten wird, wird die Ressource als exklusiv gesperrt
bezeichnet.
-
Aufgrund
der verschiedenen Erlaubnisse und Garantien, die zu diesen Sperren
gehören,
ist es nicht gestattet, gewisse Kombinationen von Sperren gleichzeitig
zu bewilligen. Falls beispielsweise ein Prozess eine exklusive Sperre
auf eine Ressource besitzt, dann kann kei nem anderen Prozess eine
exklusive Sperre oder eine gemeinsam genutzte Sperre bewilligt werden.
Falls ein Prozess eine gemeinsam genutzte Sperre besitzt, dann können anderen
Prozessen gemeinsam genutzte Sperren bewilligt werden, jedoch kann
ihnen keine exklusive Sperre bewilligt werden. Sperren, die nicht
kombiniert werden können,
werden hier als 'inkompatibel' oder 'in Konflikt stehend' bezeichnet.
-
Flüchtige Speicherung von Sperren
führt zu
einer exzessiven Wiederherstellungsverarbeitung
-
Die
Sperren werden im flüchtigen
Speicher eines Computers gespeichert. Somit hört die Sperre auf zu existieren
und 'stirbt', wenn eine Terminierung des
Speichers des Masters erfolgt. Dies ist für mehrstufige Sperrenverwaltungssysteme
problematisch, wenn eine Terminierung eines flüchtigen Speichers ungeplant
erfolgt.
-
Wenn
ein Knoten ausfällt,
ist es erforderlich, Wiederherstellungsprozeduren für gemeinsam
genutzte Ressourcen durchzuführen,
die durch den Knoten exklusiv gesperrt sind und möglicherweise von
ihm modifiziert wurden. Für
eine gemeinsam genutzte Ressource, die nicht vom ausgefallenen Knoten
verwaltet wird, ist dem überlebenden
Master bekannt, über
welche gemeinsam genutzte Ressourcen der ausgefallene Knoten Sperren
gehalten hat, und er kennt den Zustand dieser Sperren. Jedoch sind
die Zustände
von Sperren über
Ressourcen, die vom ausgefallenen Knoten selbst verwaltet werden,
anderen Knoten unbekannt. Tatsächlich
kann der Zustand der gemeinsam genutzten Ressourcen des Masters unbekannt
sein. Diese Bedingungen bewirken eine unnötige Wiederherstellungsverarbeitung
von gemeinsam genutzten Ressourcen, deren Verwaltung durch den ausgefallenen
Master erfolgt.
-
Beispielsweise
hält ein
Master in einem Mehrknotensystem eine exklusive Sperre betreffend gemeinsam
genutzter Datenblöcke.
Keiner der anderen Knoten im Mehrknotensystem kennt oder besitzt Daten,
die angeben, dass der Master diese exklusiven Sperren hält. Wenn
der Master ausfällt,
ist den anderen Knoten nicht bekannt, bei welchen der Datenblöcke des
Masters eine exklusive Sperre durch den Master vorlag. Tatsächlich ist
es, falls kein anderer Knoten eine gemeinsam genutzte Sperre auf
einen Datenblock eines Masters gehalten hat, den anderen Knoten
nicht bekannt, ob der Master eine exklusive Sperre für den Datenblock
gehalten hat, oder nicht. Es ist möglich, dass der Master keine
exklusive Sperre betreffend den Datenblock gehalten hat; es ist ebenfalls
möglich,
dass der Master eine exklusive Sperre hielt und Änderungen am Datenblock vorgenommen
hat.
-
Als
Vorsichtsmaßnahme
wird, wenn ein Master ausfällt,
angenommen, dass alle Datenblöcke
des Masters durch den Master exklusiv gesperrt waren und von ihm
modifiziert wurden. Alle Datenblöcke des
Masters werden exklusiv gesperrt und es werden Wiederherstellungsprozeduren
bei allen diesen durchgeführt.
-
Basierend
auf dem zuvor Beschriebenen ist es klar wünschenswert, einen Mechanismus
bereitzustellen, der das Ausmaß einer
Wiederherstellungsverarbeitung verringert, die durchgeführt werden muss,
wenn ein Master ausfallt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Erfindung wird beispielhaft und nicht einschränkend in den Figuren der anliegenden
Zeichnungen erläutert,
wobei gleiche Bezugszeichen ähnliche
Elemente in diesen bezeichnen; in den Zeichnungen sind:
-
1 ein
Diagramm, das ein Verfahren zur Verwaltung einer Steuerung einer
Nebenläufigkeit
für eine
gemeinsam genutzte Sperre auf Ressourcen gemäß einer Ausführungsform
der Erfindung darstellt; und
-
2 ein
Diagramm eines Computersystems, das bei einer Implementierung einer
Ausführungsform
der Erfindung verwendet werden kann.
-
DETAILLIERTE BESCHREIBUNG
-
In
der folgenden Beschreibung sind zu Erläuterungszwecken zahlreiche
spezifische Details dargelegt, um für ein grundlegendes Verständnis der
Erfindung zu sorgen. Es ist jedoch offensichtlich, dass die Erfindung
ohne diese speziellen Details ausgeführt werden kann. In anderen
Fällen
sind allgemein bekannte Strukturen und Vorrichtungen in Form eines
Blockdiagramms dargestellt, um zu vermeiden, dass die Erfindung
unnötig
kompliziert dargestellt wird.
-
Es
werden hier Techniken beschrieben, um den Status von Sperren, die
im flüchtigen
Speicher durch den Master für
die Ressourcen unterhalten werden, nach Terminierung des Masters
zu konservieren. Die Sperren werden durch Speichern von persistenten
Kopien der Sperren konserviert. Auf die persistent gespeicherten
Kopien der Sperren kann durch andere Knoten in einem Mehrknotensystem des
Masters zugegriffen werden. Die Kopie der Sperre braucht keine genaue
Nachbildung der Sperre zu sein, sondern kann ein Teilstück der Sperre
enthalten oder repräsentieren,
und sie kann zusätzliche
Information enthalten. Sperren, für die persistente Kopien in
dieser Weise gespeichert sind, werden als persistente Sperren bezeichnet.
-
Eine
persistente Kopie von Daten ist eine Kopie, die in einer Form von
Speicher gespeichert ist, die fähig
ist, die Kopie zu speichern, nachdem der die Daten speichernde flüchtige Speicher
nicht mehr dazu in der Lage ist. Beispiele für derartige Speicher beinhalten
einen Plattenspeicher und den flüchtigen Speicher
anderer Computer, die eine Fehlfunktion und einen Ausfall des Computers,
dessen flüchtiger Speicher
die Daten speichert, überleben
könnten.
-
1 stellt
eine Ausführungsform
der Erfindung dar, bei der ein Master-Knoten in einem Mehrknotensystem
eine persistente Kopie einer Sperre speichert. In 1 ist
Knoten 102 der Master-Knoten für die gemeinsam genutzte Ressource 104.
Reagierend darauf, dass der Master-Knoten 102 eine Sperre 106 auf
eine gemeinsam genutzte Ressource 104 erlangt, wird eine
persistente Kopie einer Sperre 106, eine Sperrenkopie 106', erzeugt und
dann im persistenten Speicher 110 gespeichert. Die Sperrenkopie 106' wird zumindest
für die
Dauer der Sperre 106 unterhalten.
-
Der
persistente Speicher 110 kann der flüchtige Speicher eines anderen
Knotens im Mehrknotensystem sein. Bei einer weiteren Ausführungsform
der Erfindung wird eine zusätzliche
persistente Kopie einer Sperre 106 im flüchtigen
Speicher von mehr als einem Knoten im Mehrknotensystem gespeichert und
unterhalten. Dieser Lösungsansatz
sorgt für
einige zusätzliche
Zuverlässigkeit,
da eine persistente Kopie einen mehrere Knoten involvierenden Ausfall mit
größerer Wahrscheinlichkeit überlebt.
-
Bei
noch einer weiteren Ausführungsform der
Erfindung wird eine Kopie einer Sperre in einem nichtflüchtigen
Speicher gespeichert, beispielsweise auf einer gemeinsam genutzten
Platte. Auf eine gemeinsam genutzte Platte kann durch alle Knoten
in einem Mehrknotensystem direkt zugegriffen werden, anstatt dass
auf diese über
einen anderen Knoten zugegriffen werden muss, d. h. alle Knoten
können
auf Daten auf der gemeinsam genutzten Platte zugreifen, ohne zuerst
die Daten zu einem anderen Knoten zu übertragen. Dieser Lösungsansatz
gewährleistet die
Persistenz, da der gemeinsam genutzte nichtflüchtige Speicher nicht durch
die Terminierung irgendeines Knotens beeinträchtigt werden kann.
-
Persistenz
reduziert eine Wiederherstellungsverarbeitung. Anstatt alle Ressourcen
eines ausgefallenen Masters zu sperren, sind die einzigen Ressourcen,
für die
Sperren erlangt werden müssen und
für die
Wiederherstellungsprozeduren durchgeführt werden müssen, diejenigen
Ressourcen, für welche
es eine persistente Kopie einer Sperre gibt, die vom ausgefallenen
Master gehalten wurde, und zwar zum Zeitpunkt des Ausfalls des Masters.
-
Fail-over-Verarbeitung von
Transaktionen in einem Datenbanksystem
-
Eine
Persistenz einer Sperre kann auch eine Fail-over-Verarbeitung (Ausfall-Übernahme-Verarbeitung) einer
Transaktion erleichtern, bei der ein überlebender Knoten ("Wiederherstellungsknoten") in einem Mehrknoten-Datenbanksystem
eine unvollendete Transaktion, die vom ausgefallenen Knoten gerade
ausgeführt
wurde, fertigstellt. Die unvollendete Transaktion wird beim überlebenden
Knoten als "Fail-over-Transaktion" ausgeführt. Aus
den persistenten Kopien von Sperren, die vom ausgefallenen Knoten
bei dessen Ausfall gehalten wurden, ist der Wiederherstellungsknoten
fähig zu
bestimmen, welche Ressourcen gesperrt werden müssen, um eine Ausführung der
Transaktion in einer Weise fortzusetzen, bei der eine erneute Verrichtung
einer Arbeit, welche vom ausgefallenen Knoten vor dem Ausfall bereits
verrichtet wurde, zu vermeiden. Ohne eine derartige Information
ist es erforderlich, dass der Wiederherstellungsknoten bei der Datenbank
ein Rollback (Rückführung) auf
einen transaktionskonsistenten Zustand durchführt, der vor dem Ausfall des Knotens
vorlag, und er dann von diesem Punkt an mit einer Fail-over-Verarbeitung
von Transaktionen fortfährt.
(In einem transaktionskonsistenten Zustand reflektiert eine Datenbank
alle Änderungen,
die von Transaktionen vorgenommen wurden, für die Commit erfolgt ist, und
keine Änderungen,
die von Transaktionen vorgenommen wurden, für die kein Commit erfolgt ist).
Unter Verwendung dieser persistenten Kopien ist der Wiederherstellungsknoten
fähig,
Sperren zu erhalten, die für
eine Fail-over-Transaktion gehalten werden, ohne dass er mit anderen
Knoten, die eine in Konflikt stehende Sperre erhalten, darüber disputieren
muss.
-
Außerdem kann
Information betreffend den Zustand einer Transaktion in einer persistenten
Kopie von für
die Transaktion erlangten Sperren ("Transaktionssperren") gespeichert sein. Diese Information
kann von Nutzen sein, um zu ermöglichen, dass
eine Fail-over-Verarbeitung einer Transaktion effizienter durchgeführt wird.
-
HARDWARE-ÜBERBLICK
-
2 ist
ein Blockdiagramm, das ein Computersystem 200 darstellt,
auf dem eine Ausführungsform
der Erfindung implementiert werden kann. Das Computersystem 200 beinhaltet
einen Bus 202 oder einen anderen Kommunikationsmechanismus zum
Weiterleiten von Information, und einem mit dem Bus 202 verbundenen
Prozessor 204 zum Verarbeiten von Informationen. Das Computersystem 200 beinhaltet
auch einen Hauptspeicher 206, wie beispielsweise einen
Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichervorrichtung,
die mit dem Bus 202 verbunden ist, um Informationen und durch
den Prozessor 204 auszuführende Anweisungen zu speichern.
Der Hauptspeicher 206 kann auch zum Speichern von temporären Variablen
oder anderen Zwischeninformationen während eines Ausführens von
durch den Prozessor 204 auszuführenden Anweisungen verwendet
werden. Das Computersystem 200 beinhaltet weiter einen
Nur-Lese-Speicher (ROM) 208 oder eine andere mit dem Bus 202 verbundene
statische Speichervorrichtung zum Speichern statischer Informationen
und Anweisungen für den
Prozessor 204. Eine Speichervorrichtung 210, wie
beispielsweise eine Magnetplatte oder eine optische Platte, ist
vorgesehen und mit dem Bus 202 verbunden, um Informationen
und Anweisungen zu speichern.
-
Das
Computersystem 200 kann über einen Bus 202 mit
einer Anzeigeeinrichtung 212 wie beispielsweise einer Kathodenstrahlröhre (CRT)
verbunden sein, um einem Computerbenutzer Informationen anzuzeigen.
Eine Eingabevorrichtung 214, die alphanumerische und weitere
Tasten beinhaltet, ist mit dem Bus 202 verbunden, um Informationen
und ausgewählte
Befehle an den Prozessor 204 zu übermitteln. Ein weiterer Typ
vom Benutzereingabevorrichtung ist eine Cursorsteuerung 216,
wie beispielsweise eine Maus, ein Trackball oder Cursor-Richtungstasten,
um Richtungsinformationen und ausgewählte Befehle an den Prozessor 204 zu übermitteln und
die Cursorbewegung auf der Anzeigevorrichtung 212 zu steuern.
Diese Eingabevorrichtung weist typischerweise zwei Freiheitsgrade
in zwei Achsen auf, einer ersten Achse (z. B. x) und einer zweiten
Achse (z. B. y), was ermöglicht,
dass die Vorrichtung Positionen in einer Ebene bezeichnen kann.
-
Die
Erfindung betrifft die Verwendung eines Computersystems 200 zum
Implementieren der hier beschriebenen Verfahren. Gemäß einer
Ausführungsform
der Erfindung werden diese Verfahren durch ein Computersystem 200 ausgeführt, und
zwar reagierend darauf, dass Prozessor 204 eine oder mehrere
Sequenzen von einer oder mehreren im Hauptspeicher 206 enthaltenen
Anweisungen ausführt.
Derartige Anweisungen können
in den Hauptspeicher 206 von einem weiteren computerlesbaren Medium,
wie beispielsweise einer Speichervorrichtung 210, eingelesen
werden. Ein Ausführen
der im Hauptspeicher 206 enthaltenen Anweisungssequenzen
bewirkt, dass der Prozessor 204 die hier beschriebenen
Prozessschritte durchführt.
Bei alternativen Ausführungsformen
kann eine fest verdrahtete Schaltungsanordnung verwendet werden,
und zwar anstelle von Softwareanweisungen oder in Kombination mit
diesen, um die Erfindung zu implementieren. Daher sind die Ausführungsformen
der Erfindung nicht auf irgendeine spezielle Kombination aus Hardware-Schaltungsanordnung
und Software eingeschränkt.
-
Der
Begriff "computerlesbares
Medium", wie hier
verwendet, betrifft ein beliebiges Medium, das daran beteiligt ist,
Daten zu liefern, die eine Maschine veranlassen, in spezieller Weise
zu arbeiten. Bei einer Ausführungsform,
die unter Verwendung von Computersystem 200 implementiert
ist, sind verschiedene maschinenlesbare Medien beteiligt, beispielsweise
beim Liefern von Anweisungen an den Prozessor 204 zur Ausführung. Ein
derartiges Medium kann viele Formen annehmen, einschließlich, jedoch
nicht beschränkt
auf nichtflüchtige
Medien, flüchtige
Medien und Übertragungsmedien.
Nichtflüchtige
Medien beinhalten beispielsweise optische oder magnetische Platten,
wie beispielsweise die Speichervorrichtung 210. Flüchtige Medien
beinhalten einen dynamischen Speicher, wie beispielsweise den Hauptspeicher 206. Übertragungsmedien
beinhalten Koaxialkabel, Kupferdraht- und Glasfaserkabel, einschließlich der
Drähte,
die den Bus 202 beinhalten. Übertragungsmedien können auch
die Form von akustischen Wellen oder Lichtwellen annehmen, beispielsweise
solche, die während
Radiowellen- und Infrarot-Datenkommunikationen erzeugt werden. Alle
derartige Medien müssen
konkret ermöglichen, dass
die von diesen Medien getragenen Anweisungen durch einen physischen
Mechanismus zu erfassen sind, der diese Anweisungen in eine Maschine einliest.
-
Übliche Formen
vom computerlesbaren Medien beinhalten beispielsweise eine Floppy-Disk, eine
Diskette, eine Festplatte, ein Magnetband oder ein beliebiges anderes
magnetisches Medium, eine CD-ROM, ein beliebiges anderes optisches
Medium, Lochkarten, Papierband, ein beliebiges anderes physisches
Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein FLASH-EPROM,
einen beliebigen anderen Speicherchip oder eine -kassette, eine
Trägerwelle
wie nachfolgend beschrieben, oder ein beliebiges anderes Medium,
von dem ein Computer lesen kann.
-
Verschiedene
Formen von computerlesbaren Medien können daran beteiligt sein,
eine oder mehrere, aus einer oder mehreren Anweisungen bestehende
Sequenzen zum Prozessor 204 zur Ausführung zu transportieren. Beispielsweise
können sich
die Anweisungen zu Anfang auf einem Magnetplattenspeicher eines
entfernt angeordneten Computers befinden. Der entfernt angeordnete
Computer kann die Anweisungen in seinen dynamischen Speicher laden
und die Anweisungen über
eine Telefonleitung unter Verwendung eines Modems senden. Ein Modem,
das sich lokal beim Computersystem 200 befindet, kann die
auf der Telefonleitung befindlichen Daten empfangen und eine Infrarot-Übertragungseinrichtung
verwenden, um die Daten in ein Infrarotsignal umzuwandeln. Eine
Infrarot-Erfassungseinrichtung kann die im Infrarotsignal transportierten Daten
empfangen, und eine geeignete Schaltungsanordnung kann die Daten
auf den Bus 202 legen. Der Bus 202 transportiert
die Daten zum Hauptspeicher 206, von dem aus der Prozessor 204 die
Anweisungen ausliest und ausführt.
Die vom Hauptspeicher 206 empfangenen Anweisungen können optional
in der Speichervorrichtung 210 gespeichert werden, und
zwar entweder vor oder nach dem Ausführen durch den Prozessor 204.
-
Das
Computersystem 200 beinhaltet auch eine Kommunikationsschnittstelle 218,
die mit dem Bus 202 verbunden ist. Die Kommunikationsschnittstelle 218 sorgt
für eine
Zweiweg-Datenkommunikationsverbindung
zu einem Netzwerk-Verbindungsglied 220, das mit einem lokalen
Netz 222 verbunden ist. Beispielsweise kann die Kommunikationsschnittstelle 218 eine
ISDN-(Integrated Services Digital Network)-Karte oder ein Modem
sein, um eine Datenkommunikationsverbindung zu einem entsprechenden
Typ von Telefonleitung bereitzustellen. Als weiteres Beispiel kann
die Kommunikationsschnittstelle 218 eine LAN-(Local Area
Network)-Karte sein, um eine Datenkommunikationsverbindung zu einem kompatiblen
LAN bereitzustellen. Drahtlose Verkehrsverbindungen können auch
implementiert sein. Bei jeder derartigen Implementierung sendet
und empfängt
die Kommunikationsschnittstelle 218 elektrische, elektromagnetische
oder optische Signale, welche digitale Datenströme transportieren, die verschiedene
Typen von Information repräsentieren.
-
Das
Netzwerk-Verbindungsglied 220 sorgt typischerweise für eine Datenkommunikation über eines
oder mehrere Netze zu anderen Datenvorrichtungen. Beispielsweise
kann das Netzwerk-Verbindungsglied 220 eine Verbindung über ein
lokales Netz 222 zu einem Host-Computer 224 oder zu einer Datenanlage
bereitstellen, die durch einen Internetdienstanbieter (ISP) 226 betrieben
wird. Der ISP 226 stellt seinerseits Datenkommunikationsdienste über das
weltweite Paketdaten-Kommunikationsnetz bereit, das heutzutage allgemein
als "Internet" 228 bezeichnet
wird. Sowohl das lokale Netz 222 als auch das Internet 228 verwenden
elektrische, elektromagnetische oder optische Signale, die digitale
Datenströme
transportieren. Die über
die verschiedenen Netzwerke übertragenen
Signale, und die beim Netzwerk-Verbindungsglied 220 und über die
Kommunikationsschnittstelle 218 übertragenen Signale, welche
die digitalen Signale zum Computersystem 200 hin und von
diesem weg transportieren, sind beispielhafte Formen von die Informationen
transportierenden Trägerwellen.
-
Das
Computersystem 200 kann Nachrichten senden und Daten empfangen,
einschließlich
Programmcode, und zwar über
das/die Netzwerk(e), das Netzwerk-Verbindungsglied 220 und
die Kommunikationsschnittstelle 218. Beim Beispiel des
Internet könnte
ein Server 230 einen angeforderten Code für ein Anwendungsprogramm über das
Internet 228, den ISP 226, das lokale Netz 222 und
die Kommunikationsschnittstelle 218 übertragen.
-
Der
empfangene Code kann durch den Prozessor 204 bereits beim
Empfangen ausgeführt
werden, und/oder in der Speichervorrichtung 210 oder einem
anderen nichtflüchtigen
Speicher zur späteren Ausführung gespeichert
werden. Auf diese Weise kann das Computersystem 200 Anwendungscode
in Form einer Trägerwelle
erhalten.
-
Bei
der vorhergehenden Beschreibung wurden Ausführungsformen der Erfindung
mit Bezug auf zahlreiche spezifische Details beschrieben, die von Implementierung
zu Implementierung variieren können.
Somit ist der ausschließliche
und exklusive Indikator für
das, was die Erfindung ausmacht und was in der Intention der Anmelder
diese Erfindung ausmacht, der Satz von Ansprüchen, die in dieser Anmeldung
veröffentlicht
sind, und zwar in der spezifischen Form, in der derartige Ansprüche veröffentlicht werden,
einschließlich
jeglicher nachträglicher Änderungen.
Jegliche hier ausdrücklich
dargelegte Definitionen für
in derartigen Ansprüchen
enthaltene Begriffe bestimmen die Bedeutung derartiger Begriffe, wie
in den Ansprüchen
verwendet. Somit versteht es sich, dass Einschränkungen, Elemente, Eigenschaften,
Merkmale, Vorteile oder Attribute, die nicht ausdrücklich in
einem Anspruch aufgeführt
sind, den Schutzumfang eines derartigen Anspruchs in keiner Weise
einschränken.
Die Beschreibung und die Zeichnungen verstehen sich demgemäß erläuternd und
nicht einschränkend.
-
ZUSAMMENFASSUNG
-
Der
Status von Sperren, die im flüchtigen Speicher
durch den Master für
die Ressourcen unterhalten werden, wird nach Terminierung des Masters konserviert.
Die Sperren werden durch Speichern persistenter Kopien der Sperren
konserviert. Auf die persistent gespeicherten Kopien der Sperren
kann von anderen Knoten in einem Mehrknotensystem des Masters zugegriffen
werden. Sperren, für
die in dieser Weise persistente Kopien gespeichert sind, werden
als persistente Sperren bezeichnet. Eine persistente Kopie von Daten
ist eine Kopie, die in einer Form von Speicher gespeichert ist,
welche fähig
ist, die Kopie zu speichern, nachdem der die Daten speichernde flüchtige Speicher
nicht mehr dazu fähig
ist.