DE112007002327T5 - Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit - Google Patents

Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit Download PDF

Info

Publication number
DE112007002327T5
DE112007002327T5 DE112007002327T DE112007002327T DE112007002327T5 DE 112007002327 T5 DE112007002327 T5 DE 112007002327T5 DE 112007002327 T DE112007002327 T DE 112007002327T DE 112007002327 T DE112007002327 T DE 112007002327T DE 112007002327 T5 DE112007002327 T5 DE 112007002327T5
Authority
DE
Germany
Prior art keywords
processors
node
master
readable medium
perform
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.)
Ceased
Application number
DE112007002327T
Other languages
English (en)
Inventor
Tak Fung Redwood City Wang
ANGELO Los Altos PRUSCINO
Wilson Wai Shun San Mateo Chan
Tolga Foster City Yurek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of DE112007002327T5 publication Critical patent/DE112007002327T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Abstract

Verfahren, das beinhaltet:
ein erster Knoten in einem Mehrknotensystem erlangt eine Sperre auf eine gemeinsam genutzte Ressource, auf die von anderen Knoten im Mehrknotensystem zugegriffen werden kann; und
ansprechend auf ein Erlangen der gemeinsam genutzten Ressource, Speichern einer persistenten Kopie der Sperre.

Description

  • 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.

Claims (20)

  1. Verfahren, das beinhaltet: ein erster Knoten in einem Mehrknotensystem erlangt eine Sperre auf eine gemeinsam genutzte Ressource, auf die von anderen Knoten im Mehrknotensystem zugegriffen werden kann; und ansprechend auf ein Erlangen der gemeinsam genutzten Ressource, Speichern einer persistenten Kopie der Sperre.
  2. Verfahren nach Anspruch 1, bei dem das Speichern einer persistenten Kopie beinhaltet, die persistente Kopie in einem nichtflüchtigen Speicher zu speichern.
  3. Verfahren nach Anspruch 2, bei dem das Speichern der persistenten Kopie in dem nichtflüchtigen Speicher beinhaltet, die persistente Kopie auf einer gemeinsam genutzten Platte zu speichern.
  4. Verfahren nach Anspruch 1, bei dem das Speichern einer persistenten Kopie beinhaltet, die persistente Kopie im flüchtigen Speicher eines bestimmten Satzes von einem oder mehreren Knoten zu speichern.
  5. Verfahren nach Anspruch 1, bei dem der bestimmte Satz eine Mehrzahl von Knoten beinhaltet.
  6. Verfahren nach Anspruch 1, wobei das Verfahren weiter beinhaltet, dass ein zweiter Knoten im Mehrknotensystem die persistente Kopie liest, um zu bestimmen, auf welche Ressourcen der erste Knoten eine Sperre hielt.
  7. Verfahren nach Anspruch 6, bei dem der erste Knoten der Master der Ressource ist.
  8. Verfahren nach Anspruch 1, bei dem die Sperre für eine Transaktion erhalten wird, wobei die Schritte weiter beinhalten, dass Information betreffend den Zustand der Transaktion in der Sperre gespeichert wird.
  9. Verfahren, welches die Schritte umfasst: ein Master-Knoten in einem Mehrknotensystem verwaltet einen Zugriff durch einen oder mehrere andere Knoten im Mehrknotensystem auf bestimmte gemeinsam genutzte Ressourcen, über die der Master-Knoten als Master herrscht; in einem flüchtigen Speicher des Master-Knotens speichert der Master-Knoten die bestimmten Sperren, die auf die beherrschten gemeinsam genutzten Ressourcen vom Master gehalten werden; und der Master-Knoten unterhält persistente Kopien der bestimmten Sperren.
  10. Verfahren nach Anspruch 1, bei dem die Schritte weiter beinhalten, dass Wiederherstellungsprozeduren ansprechend darauf durchgeführt werden, dass erkannt wird, dass der erste Knoten ausgefallen ist, wobei der Schritt eines Durchführens von Wiederherstellungsprozeduren beinhaltet, dass ein zweiter Knoten bestimmt, welche der gemeinsam genutzten Ressourcen basierend auf den persistenten Kopien zu sperren ist.
  11. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 1 durchzuführen.
  12. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 2 durchzuführen.
  13. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 3 durchzuführen.
  14. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 4 durchzuführen.
  15. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 5 durchzuführen.
  16. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 6 durchzuführen.
  17. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 7 durchzuführen.
  18. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 8 durchzuführen.
  19. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 9 durchzuführen.
  20. Computerlesbares Medium, das eine oder mehrere Anweisungssequenzen trägt, die, bei Ausführung durch einen oder mehrere Prozessoren, den einen oder die mehreren Prozessoren veranlasst, das Verfahren nach Anspruch 10 durchzuführen.
DE112007002327T 2006-09-28 2007-08-24 Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit Ceased DE112007002327T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/540,038 US20080082533A1 (en) 2006-09-28 2006-09-28 Persistent locks/resources for concurrency control
US11/540,038 2006-09-28
PCT/US2007/076711 WO2008039618A1 (en) 2006-09-28 2007-08-24 Persistent locks/resources for concurrency control

Publications (1)

Publication Number Publication Date
DE112007002327T5 true DE112007002327T5 (de) 2009-08-06

Family

ID=38904578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007002327T Ceased DE112007002327T5 (de) 2006-09-28 2007-08-24 Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit

Country Status (4)

Country Link
US (1) US20080082533A1 (de)
CN (1) CN101523352A (de)
DE (1) DE112007002327T5 (de)
WO (1) WO2008039618A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429657B2 (en) * 2008-04-28 2013-04-23 Oracle International Corporation Global avoidance of hang states via priority inheritance in multi-node computing system
US8868530B1 (en) * 2012-07-16 2014-10-21 Netapp, Inc. Method and system for managing locks in storage systems
US9292564B2 (en) * 2013-09-21 2016-03-22 Oracle International Corporation Mirroring, in memory, data from disk to improve query performance
US10019168B2 (en) * 2015-05-19 2018-07-10 EMC IP Holding Company LLC Method and system for multicasting data to persistent memory

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
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
US5423044A (en) * 1992-06-16 1995-06-06 International Business Machines Corporation Shared, distributed lock manager for loosely coupled processing systems
US5619675A (en) * 1994-06-14 1997-04-08 Storage Technology Corporation Method and apparatus for cache memory management using a two level scheme including a bit mapped cache buffer history table and circular cache buffer list
US5920872A (en) * 1996-06-25 1999-07-06 Oracle Corporation Resource management using resource domains
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US6247139B1 (en) * 1997-11-11 2001-06-12 Compaq Computer Corp. Filesystem failover in a single system image environment
US6253273B1 (en) * 1998-02-06 2001-06-26 Emc Corporation Lock mechanism
US6539446B1 (en) * 1999-05-07 2003-03-25 Oracle Corporation Resource locking approach
US6920454B1 (en) * 2000-01-28 2005-07-19 Oracle International Corporation Techniques for DLM optimization with transferring lock information
US6915387B1 (en) * 2000-07-20 2005-07-05 Silicon Graphics, Inc. System and method for handling updates to memory in a distributed shared memory system
US7509322B2 (en) * 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US6986003B1 (en) * 2001-08-09 2006-01-10 Unisys Corporation Method for processing communal locks
CN1302419C (zh) * 2001-09-21 2007-02-28 泛伺服公司 用于具有共享存储器的多节点环境的系统和方法
US6973549B1 (en) * 2001-12-10 2005-12-06 Incipient, Inc. Locking technique for control and synchronization
US7173929B1 (en) * 2001-12-10 2007-02-06 Incipient, Inc. Fast path for performing data operations
CA2384185A1 (en) * 2002-04-29 2003-10-29 Ibm Canada Limited-Ibm Canada Limitee Resizable cache sensitive hash table
US6898600B2 (en) * 2002-05-16 2005-05-24 International Business Machines Corporation Method, system, and program for managing database operations
US20050289143A1 (en) * 2004-06-23 2005-12-29 Exanet Ltd. Method for managing lock resources in a distributed storage system
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
US7346720B2 (en) * 2005-10-21 2008-03-18 Isilon Systems, Inc. Systems and methods for managing concurrent access requests to a shared resource

Also Published As

Publication number Publication date
US20080082533A1 (en) 2008-04-03
WO2008039618A1 (en) 2008-04-03
CN101523352A (zh) 2009-09-02

Similar Documents

Publication Publication Date Title
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE69929095T2 (de) Verwaltung eines durch eine Mehrzahl von Knoten benutzten Betriebsmittels
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE19926115B4 (de) Transaktionshandhabung in einer Konfigurationsdatenbank
DE112010004652B4 (de) Zuverlässige Replikation mit hohem Durchsatz von umgewandelten Daten in Datensystemen
EP0929864B1 (de) Koordinations-system
DE202011110895U1 (de) Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE19708021C1 (de) Verfahren zur Regelung eines Zugriffs von Rechnern auf Daten eines zentralen Rechners
DE4420451C2 (de) Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell
DE112013000465B4 (de) Verwaltung einer fernen Datenreplikation
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE602005004508T2 (de) Speichersystem und Speichersteuerverfahren
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE112012004099T5 (de) Transaktionsverarbeitungssystem, Verfahren und Programm
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
DE112014001873T5 (de) Replikation für Hot-Standby-Online-Datenbank
DE10113577A1 (de) Verfahren, Computerprogrammprodukt und Computersystem zur Unterstützung mehrerer Anwendungssysteme mittels eines einzelnen Datenbank-Systems
DE112010004947T5 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE102016204710A1 (de) Sichern und Wiederherstellen von Klondaten
DE112011101793T5 (de) Gemeinsame Datennutzung bei Dateiklonen
DE19607149A1 (de) Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE112011103367T5 (de) Replizieren von Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20121129

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final