DE69937715T2 - Verbessertes Zwei-Phasen-Bindungsprotokoll - Google Patents

Verbessertes Zwei-Phasen-Bindungsprotokoll Download PDF

Info

Publication number
DE69937715T2
DE69937715T2 DE69937715T DE69937715T DE69937715T2 DE 69937715 T2 DE69937715 T2 DE 69937715T2 DE 69937715 T DE69937715 T DE 69937715T DE 69937715 T DE69937715 T DE 69937715T DE 69937715 T2 DE69937715 T2 DE 69937715T2
Authority
DE
Germany
Prior art keywords
transaction
data sources
status
data
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69937715T
Other languages
English (en)
Other versions
DE69937715D1 (de
Inventor
Muhammad Escondido Yahya
Devin Lyle San Diego Barnhart
Jerry C. Vista Lee
Thomas J. San Diego Jorgensen
Richard G. Jr. Poway Stellwagen
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.)
Teradata US Inc
Original Assignee
NCR International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NCR International Inc filed Critical NCR International Inc
Application granted granted Critical
Publication of DE69937715D1 publication Critical patent/DE69937715D1/de
Publication of DE69937715T2 publication Critical patent/DE69937715T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/466Transaction processing
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Description

  • Die Erfindung betrifft allgemein Computersysteme und genauer ein erweitertes zweiphasiges Speicherprotokoll (commit protocol) für verteilte Datenverarbeitungsumgebungen.
  • In verteilten Datenverarbeitungsumgebungen werden zweiphasige Speicherprotokolle verwendet, um Transaktionen gegenüber einer oder mehreren Datenquellen zu koordinieren. Transaktionen müssen mit anderen Datenquellen in dem Netzwerk oder System koordiniert werden, um sicherzustellen, dass die Datenquellen aktuelle Informationen aufweisen.
  • Diese Datenquellen können mehrere über verschiedene Orte verteilte Datenbanken umfassen. In einer Ausführungsform eines zweiphasigen Speicherprotokolls überprüft das System zuerst, ob alle Datenquellen verfügbar sind, und, falls ja, fährt es fort, um die Transaktion zu vervollständigen. Falls eine oder mehrere der Datenquellen unerreichbar sind oder nicht fähig sind, die Transaktion zu vervollständigen, wird die Transaktion storniert oder "nicht ausgeführt" ("undone") bis die Datenquelle (auch als Teilnehmer bezeichnet) fähig ist, die Transaktion zu vervollständigen oder die Transaktion wird aufgeschoben, bis alle Teilnehmer erreichbar sind, um die Transaktion zu vervollständigen. Das zweiphasige Speicherprotokoll ist notwendig für Datenumgebungen, welche hohe Genauigkeitsgrade über eine große Anzahl von verteilten Computersystemen benötigen, beispielsweise Banksysteme, Kreditkartenverifikationssysteme, Datenbanken für Statistiken der Bevölkerung etc.
  • Obwohl das zweiphasige Speicherprotokoll hilfreich ist, um die Datenintegrität sicherzustellen, beschränkt die Begrenzung, alle Teilnehmer in einem Zustand zu benötigen, in dem sie fähig sind, die Transaktion durchzuführen, die Verwendbarkeit des zweiphasigen Speicherprotokolls. Da es außerdem häufig vorkommt, dass eine Datenquelle oder ein anderer Teilnehmer nicht fähig sein können, die Transaktion aufgrund von Hardware- oder Software-Fehlfunktionen, vorbeugender Wartung, einer Rekonfiguration von Systemen etc. anzunehmen oder zu verarbeiten, weist das zweiphasige Speicherprotokoll sogar eine noch geringere Verwendbarkeit auf.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein zweiphasiges Speicherprotokoll bereitzustellen, das verwendet werden kann, wenn einer oder mehrere Teilnehmer nicht fähig sind, die Transaktion zu verarbeiten. Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein zweiphasiges Speicherprotokoll bereitzustellen, das es den Teilnehmern ermöglicht, die nicht fähig sind, bei der anfänglichen Datenbankaktualisierung teilzunehmen, aktualisiert zu werden, wenn der Teilnehmer wieder fähig ist, an dem Transaktionsprozess teilzunehmen.
  • Der in der vorliegenden Erfindung verwendete Ansatz ermöglicht eine breite Anwendung des zweiphasigen Speicherprotokolls für Netzwerke, welche die Genauigkeit und Präzision benötigen, welche das zweiphasige Speicherprotokoll bietet.
  • Mills J. A. "Large scale interoperability and distributed transaktion processing" SYSTEM INTEGRATION 1992. ICSI '92, PROCEEDINGS IN THE SECOND INTERNATIONAL CONFERENCE ON MORRISTOWN, NJ USA 15–18 JUNI 1992, LOS ALAMITOS. CA, USA, IEEE COMPUT. SOC, US, 15 JUNI 1992 (1992-06-15), Seiten 392–400, XP010027457 ISBN: 0-8186-2697-6 offenbart ein Verfahren zum Ausführen eines zweiphasigen Speicherprotokolls mit einem vereinheitlichten Modell einer Interoperabilität auf einer großen Skala und einer verteilten Transaktionsverarbeitung.
  • Die US-A-5 095 421 offenbart ein Verfahren zum Ausführen eines zweiphasigen Speicherprotokolls in einem System mit einer Mehrzahl von Datenquellen wie in dem Oberbegriff der unabhängigen Ansprüche hierin beschrieben wird.
  • Ein erster Aspekt der vorliegenden Erfindung betrifft ein Verfahren zum Ausführen eines zweiphasigen Speicherprotokolls für eine Transaktion, wie in Anspruch 1 beschrieben.
  • Ein zweite Aspekt der vorliegenden Erfindung betrifft eine computerkontrollierte Vorrichtung, wie in Anspruch 8 beschrieben.
  • Ein dritter Aspekt der vorliegenden Erfindung betrifft eine Programmspeichervorrichtung, die durch einen Computer lesbar ist, wie in Anspruch 9 beschrieben.
  • In einer verteilten Datenverarbeitungsumgebung wird ein zweiphasiges Speicherprotokoll verwendet, um Transaktionen zwischen mehreren Datenquellen zu koordinieren. Üblicherweise findet die Koordination zwischen Datenbanken statt und die Koordination wird durch einen Transaktions-Verwalter durchgeführt. Das zweiphasige Speicherprotokoll arbeitet mit einem "Alles-oder-Nichts" („all-or-nothing")-Ansatz; falls eine der Datenbanken (Datenquellen) unerreichbar ist, um die Transaktion zu vervollständigen, wird die Transaktion nicht durchgeführt oder wird für eine Vervollständigung zu einer späteren Zeit gespeichert.
  • Für große Systeme, welche viele Datenquellen aufweisen, ist die Verwendbarkeit des zweiphasigen Speicherprotokolls begrenzt, da üblicherweise zu einer beliebigen gegebenen Zeit eine oder mehrere der Datenquellen nicht erreichbar ist/sind. Dementsprechend kann eine Transaktion, welche dazu vorgesehen ist, zu einer Zeit stattzufinden, wenn eine der Datenquellen nicht erreichbar ist, unter Verwendung eines zweiphasigen Speicherprotokolls nicht stattfinden, bis die nicht erreichbare Datenquelle erreichbar wird.
  • Die vorliegende Erfindung verbessert den Ansatz des zweiphasigen Speicherprotokolls, indem es diesen Datenquellen (auch bekannt als Teilnehmer), die erreichbar sind, ermöglicht, die Transaktion zu vervollständigen und die Transaktion für einen Abschluss durch die unerreichbaren Teilnehmer zu speichern, wenn diese erreichbar werden. Der Transaktionsverwalter verwendet das logische Äquivalent eines FIFO-Verfahrens (First In First Out, FIFO, Queue), um sicherzustellen, dass alle Transaktionen in derselben Weise an allen Datenquellen innerhalb des Computersystems durchgeführt werden. Die vorliegende Erfindung ermöglicht es durch die Verwendung der logischen FIFO-Konstruktion, dass die Datenquellen in Bezug auf Transaktionsaufträge synchronisiert sind.
  • Eine Ausführungsform der Erfindung wird nun exemplarisch unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, die zeigen:
  • 1 ist ein Blockdiagramm, welches eine beispielhafte Hardwareumgebung zeigt, welche mit der vorliegenden Erfindung verwendet werden kann; und
  • 2A2C sind Flussdiagramme, welche eine beispielhafte Logik zeigen, die durch den Controller in Obereinstimmung mit der vorliegenden Erfindung ausgeführt wird.
  • Hardwareumgebung
  • 1 zeigt eine exemplarische Hardwareumgebung, die verwendet wird, um die bevorzugte Ausführungsform der Erfindung zu implementieren. Die vorliegende Erfindung wird üblicherweise unter Verwendung eines Computers 100 implementiert, der üblicherweise unter anderem einen Prozessor, einen Schreib-/Lese-Speicher (random access memory, RAM), Datenspeichervorrichtungen 102, 104 und 106 (beispielsweise ein Festplattenlaufwerk, ein Floppy-Laufwerk und/oder ein CD-ROM-Laufwerk etc.) umfasst. Der Computer 100 ist mit anderen Computern und/oder Datenquellen über ein Netzwerk 108 unter Verwendung von Datenkommunikationsvorrichtungen (beispielsweise Modems, Netzwerkschnittstellen etc.) verbunden.
  • Durch das Netzwerk 108 ist der Computer 100 mit Computern 110, 112, 114, 116 und 118 und Datenquellen 120, 122, 124, 126 und 128 verbunden und kann mit diesen kommunizieren. Die vorliegende Erfindung ist nicht begrenzt auf fünf Datenquellen; es kann eine größere oder kleinere Anzahl von Datenquellen innerhalb des Systems vorhanden sein.
  • Der Computer 100 führt den Transaktionskoordinator 130 und den Datenverwalter 132 aus. Der Transaktionskoordinator 130 und der Datenverwalter 132 umfassen üblicherweise Daten und/oder Anweisungen, welche, wenn sie durch den Computer 100 gelesen und ausgeführt werden, den Computer 100 dazu veranlassen, die Schritte zum Ausführen und/oder Verwenden der vorliegenden Erfindung auszuführen. Allgemein sind die Daten und/oder Anweisungen enthalten in und/oder lesbar von einer Vorrichtung, einem Träger und/oder einem Medium. Beispielsweise können die Daten und/oder die Instruktionen aufgenommen sein in und/oder lesbar sein von einem Speicher, einer Datenspeichervorrichtung, entfernten Vorrichtungen, welche mit dem Computer durch eine Datenkommunikationsvorrichtung zum Herunterladen einer Datei von einem Netzwerk zu dem Computer verbunden sind, wie es bei kleinen Server-Architekturen und im Internet ausgeführt wird, Floppy-Disketten, CD-ROM-Platten oder anderen magnetischen, optischen, elektronischen oder anderen Speichermedien oder -Vorrichtungen, welche mit dem Computer verbunden werden können oder durch den Computer interpretiert werden können.
  • Dementsprechend kann die vorliegende Erfindung als ein Verfahren, ein Apparat oder ein Herstellungsartikel unter Verwendung von Standard-Programmier- und/oder Konstruktions-Techniken, um Software, Firmware, Hardware oder beliebige Kombination davon zu erzeugen, implementiert sein. Der Ausdruck "Herstellungsartikel" (oder alternativ "Computerprogrammprodukt"), wie hierin verwendet, ist dazu vorgesehen, ein Computerprogramm einzuschließen, das von einer beliebigen computerlesbaren Vorrichtung, einem Träger oder einem Medium lesbar ist. Viele Modifikationen können an dieser Konfiguration ohne Verlassen des Umfangs der vorliegenden Erfindung vorgenommen werden.
  • Die vorliegende Erfindung lehrt auch, dass eine beliebige Kombination der obigen Komponenten oder einer beliebigen Anzahl von verschiedenen Komponenten einschließlich Computerprogrammen, Peripheriegeräten und anderen Vorrichtungen verwendet werden kann, um die vorliegende Erfindung zu implementieren, solange ähnliche Funktionen dabei ausgeführt werden. Die Präsentation des Computersystems, wie in der 1 be schrieben, ist nicht dazu vorgesehen, den Umfang der vorliegenden Erfindung zu begrenzen, sondern ist dazu vorgesehen, eine mögliche Ausführungsform der vorliegenden Erfindung zu illustrieren.
  • Beziehungen und Betrieb
  • Wie in der 1 gezeigt, sind die Datenquellen 120 bis 128 mit dem Netzwerk 108 verbunden. In dieser Konfiguration können die Datenquellen 120 bis 128 Daten teilen (share) und Datenbanken zur Einheitlichkeit synchronisieren. Als ein Beispiel können die Datenquellen 120 bis 128 lokale Datenbanken für ein Banksystem sein. Eine Transaktion in dem Banksystem, beispielsweise ein Abheben von Geld von einem Konto, muss nicht nur in der Datenbank gespeichert werden, die dem geografischen Punkt des Abhebens am nächsten ist; sie muss auf allen Datenbanken innerhalb des Banksystems gespeichert werden, um sicherzustellen, dass das Konto nicht an einem anderen Ort überzogen wird. Während die Abhebung stattfindet, ermöglicht die vorliegende Erfindung es für einige Datenquellen 120 bis 128, egal ob sie eine lokale Datenquelle oder nicht ist, für eine Aktualisierung nicht erreichbar zu sein. Diese Situation kann auftreten, beispielsweise wenn in einem bestimmten geografischen Bereich ein Stromversorgungsausfall ist, wenn eine der Datenquellen 120 bis 128 gewartet werden muss oder aus einem anderen Grund. Die Unerreichbarkeit von genau einer Datenquelle, Datenquelle 120, ist mit einer strichlierten Linie in der 1 gezeigt. Zu illustrativen Zwecken bezieht sich die Beschreibung hierin auf genau eine Datenquelle 120, die nicht erreichbar ist; die vorliegende Erfindung sieht jedoch vor, dass eine oder mehrere Datenquellen 120 bis 128 für eine beliebige gegebene Transaktion nicht erreichbar sind. Die Beschreibung hierin ist erweiterbar, um eine beliebige Anzahl von Datenquellen 120 bis 128 einzu schließen, welche innerhalb des Systems nicht erreichbar sind.
  • Wenn eine Transaktion stattfindet, wird das zweiphasige Speicherprotokoll der vorliegenden Erfindung durch den Transaktionskoordinator 130 und den Datenverwalter 132 ausgeführt. Der Transaktionskoordinator 130 überprüft die Erreichbarkeit der Datenquellen 120 bis 128. In dem Beispiel der 1 ist die Datenquelle 120 nicht erreichbar. Der Transaktionskoordinator 130 ermöglicht, dass die Transaktion auf den Datenquellen 122, 124, 126 und 128 ausgeführt wird und der Datenverwalter 132 speichert die Transaktion auf der Speichervorrichtung 102. Der Datenverwalter 132 identifiziert in Verbindung mit dem Transaktionskoordinator 130 auch, welche der Datenquellen 120 bis 128 nicht erreichbar waren. In dem in der 1 gezeigten Beispiel war lediglich die Datenquelle 120 nicht erreichbar, der Datenverwalter 132 kann jedoch jede beliebige Anzahl von Transaktionen und jede beliebige Anzahl von Datenquellen, welche für die Datenspeichervorrichtung 102 nicht erreichbar sind, protokollieren, wobei dies als das Datenprotokoll (data log) bezeichnet wird. Die Speichervorrichtung 102 speichert dann die Transaktion in einer Weise, die mit einem FIFO-Verfahren konsistent ist, um zu ermöglichen, dass die Transaktion zeitlich richtig eingeordnet wird.
  • Wenn die Datenquelle 120 erreichbar wird, sendet der Datenkoordinator 130 ein Signal an den Datenverwalter 132, welcher die Datenspeichervorrichtung 102 überprüft, um zu sehen, ob dort irgendeine beliebige Transaktion ist, die in der Datenquelle 120 aufzunehmen ist. Falls ja, leitet der Datenverwalter 132 die in der Speichervorrichtung 102 gespeicherten Transaktionen in einer zeitlich richtig geordneten Weise zu der Datenquelle 120. Diese Aktion des Sendens der aufgenomme nen Transaktion synchronisiert die Datenquelle 120 mit den Datenquellen 122 bis 128.
  • Logik des Datenbankreplikators
  • Die 2A bis 2C sind Flussdiagramme, welche eine beispielhafte Logik zeigen, die durch den Transaktionskoordinator 130 und den Datenverwalter 132 in Übereinstimmung mit der vorliegenden Erfindung ausgeführt werden.
  • Der Block 200 gibt den Computer 100 beim Warten auf ein Ereignis wieder. Falls das Ereignis eine Transaktion ist, verwendet der Computer 100 die beispielhafte Logik der 2A bis 2C; ansonsten werden andere Funktionen und/oder eine andere Logik durch den Computer 100 ausgeführt.
  • Ein Block 202 gibt den Transaktionskoordinator 130 beim Empfang einer "Starte-Transaktion"-Anfrage von einer Datenquelle 120 bis 128 wieder. Die Kontrolle geht dann zu einem Block 204, welcher den Transaktionskoordinator 130 beim Markieren der Transaktion als beginnend wiedergibt. Die Kontrolle geht dann zu einem Block 206, welcher den Transaktionskoordinator 130 zum Überprüfen des Status von allen Teilnehmern in dem System wiedergibt. Der Status von allen Teilnehmern wird durch den Transaktionskoordinator erfasst und aufgenommen. Der Rest der Flussdiagramme der 2A bis 2C sind abhängig von dem für jede Datenquelle 120 bis 128 aufgenommenen Status. Die Beschreibung betreffend den Rest der 2A bis 2C ist eine Baumstruktur, um zu ermöglichen, dass der Transaktionskoordinator 130 alle Datenquellen 120 bis 128 markiert und das Flussdiagramm in einer parallelen und/oder seriellen Weise durchläuft.
  • Nachdem der Transaktionskoordinator 130 den Status von allen Datenquellen 120 bis 128 aufgenommen hat, gelangt die Kontrolle zu einem Block 208, welcher ein Entscheidungsblock ist, der den Transaktionskoordinator 130 beim Überprüfen des Status von allen Datenquellen 120 und 128 wiedergibt. Für die Datenquellen 120 bis 128, welche in dem "Aktiv"-Zustand sind, geht die Kontrolle zu einem Block 210. Für die Datenquellen 120 bis 128, die nicht aktiv sind, geht die Kontrolle zu einem Block 212. Der Block 210 gibt den Transaktionskoordinator 130 beim Senden einer "Beginn-Transaktion"-Mitteilung zu allen aktiven Datenquellen 120 bis 128 wieder. Die Kontrolle geht dann zu einem Entscheidungsblock 214.
  • Der Block 212 gibt den Transaktionskoordinator 130 beim Markieren des Status von nichtaktiven Datenquellen 120 bis 128 als "protokolliert" wieder. In dem Beispiel der 1 würde die Datenquelle 120 als einen aufgezeichneten Status habend markiert werden. Die Kontrolle geht dann zu einem Punkt A 216.
  • Der Block 214 ist ein Entscheidungsblock, welcher den Transaktionskoordinator 130 beim Bestimmen wiedergibt, ob die Datenquellen 120 bis 128 während der in dem Block 210 begonnenen Transaktionsbeginnsequenz ausgefallen sind. Falls die Datenquellen 120 bis 128 dem Transaktionskoordinator 130 mitteilen, dass sie ausgefallen sind, geht die Kontrolle dann für die Datenquellen 120 bis 128, die ausgefallen sind, zu einem Block 218 und der Transaktionskoordinator 130 markiert die Datenquellen 120 bis 128 als einen "Ausgefallen"-("failed")-Status habend. Die Kontrolle geht dann zu dem Punkt A 216.
  • Für die Datenquellen 120 bis 128, die nicht während der Transaktionsbeginnsequenz des Blocks 210 ausgefallen sind, geht die Kontrolle zu einem Block 220, welcher den Datenmanager 132 beim Empfang von Transaktionsdaten wiedergibt. Die Kontrolle geht dann zu einem Block 222, welcher den Datenverwalter 132 beim Senden der Transaktionsdaten zu den aktiven Datenquellen 120 bis 128 wiedergibt. Die Kontrolle geht dann zu einem Block 224.
  • Der Block 224 ist ein Entscheidungsblock, welcher den Transaktionskoordinator 130 beim Bestimmen wiedergibt, ob irgendeine der Datenquellen 120 bis 128 während der Datenübertragungssequenz der Blöcke 220 und 222 ausgefallen ist. Falls eine der Datenquellen 120 bis 128 ausgefallen ist, geht die Kontrolle zu dem Block 218, wo die ausgefallenen Datenquellen 120 bis 128 als ausgefallen markiert werden. Falls keine der Datenquellen 120 bis 128 ausgefallen ist, geht die Kontrolle zu einem Punkt B 226.
  • Unter Bezugnahme jetzt auf die 2B, geht die Kontrolle von dem Punkt B 226 zu einem Block 228, wo der Transaktionskoordinator ein Speichertransaktionspaketkommando (commit transaction parcel command) empfängt und ein Vorbereitungstransaktionspaket (prepar transaction parcel) an die aktiven Teilnehmer in dem Netzwerk sendet. Die Kontrolle geht dann zu einem Entscheidungsblock 230.
  • Der Entscheidungsblock 230 ist ein Entscheidungsblock, welcher den Computer beim Bestimmen wiedergibt, ob einer der Teilnehmer 120 bis 128 während der Vorbereitungspaketverarbeitung unerreichbar wurde. Falls ja, werden die Teilnehmer 120 bis 128, welche unerreichbar wurden, als ausgefallen in einem Block 232 markiert und die Kontrolle geht zu dem Punkt A 216. Falls nicht, empfängt der Transaktionskoordinator Vorbereitungsbestätigungspakete von den aktiven Teilnehmern. Die Kontrolle geht dann zu einem Entscheidungsblock 236.
  • Der Entscheidungsblock 236 ist ein Entscheidungsblock, welcher den Transaktionskoordinator 130 beim Bestimmen wiedergibt, ob einer der Teilnehmer während der Vorbereitungstransaktionspaketverarbeitung einen Ausgefallen-Status gesendet hat. Falls ja, geht die Kontrolle zu einem Block 238, wo der Transaktioskoordinator die Transaktion abbricht. Die Kontrolle geht dann zu einem Block 240, wo der Transaktionskoordinator 130 einen Ausgefallen-Status zu dem Quellsystem 100 sendet. Die Kontrolle geht dann zu einem Block 242, wo der Transaktionskoordinator 130 auf zusätzliche Eingaben wartet.
  • Falls in dem Block 236 kein Ausgefallen-Status erfasst wurde, geht die Kontrolle zu einem Block 244, wo der Transaktionskoordinator 130 die Transaktion als abgespeichert markiert. Die Kontrolle geht dann zu einem Block 246, wo der Transaktionskoordinator 130 das Speichertransaktionspaket zu den aktiven Teilnehmern 120 bis 128 sendet. Die Kontrolle geht dann zu einem Block 248, wo der Transaktionskoordinator 130 mit einem Erfolgreich-Status-Paket an das Quellsystem 100 antwortet und dann geht die Kontrolle zu dem Block 242, wo der Transaktionskoordinator 130 auf zusätzliche Eingaben wartet.
  • Unter Bezugnahme jetzt auf die 2C bringt der Punkt A 216 die Kontrolle zu einem Block 250, welche den Datenverwalter 123 beim Protokollieren von Transaktionsdaten für die Teilnehmer 120 bis 128, die nicht erreichbar sind, wiedergibt. Die Kontrolle geht dann zu einem Block 252, wo der Datenverwalter 132 die Transaktionsdaten in einem Datenblock für die Teilnehmer 120 bis 128 speichert, welche nicht erreichbar sind. Die Kontrolle geht dann zu einem Block 254, welche den Datenverwalter 132 beim Bestimmen wiedergibt, ob ein Teilnehmer 120 bis 128, der zuvor unerreichbar war, jetzt erreichbar ist, um ihm die Transaktionsdaten zu senden. Falls keine neuen Teilnehmer 120 bis 128 vorhanden sind, kehrt die Kontrolle zu dem Block 254 zurück. Falls ein neuer Teilnehmer 120 bis 128 vorhanden ist, geht die Kontrolle zu einem Block 256, wo der Datenverwalter 132 bestimmt, ob der Status des neuen Teilnehmers 120 bis 128 als protokolliert markiert ist. Falls ja, geht die Kontrolle zu einem Block 258, wo der Datenverwalter 132 das Datenprotokoll an den Teilnehmer 120 bis 128 übergibt. Die Kontrolle geht dann zu dem Block 242, wo der Datenverwalter 132 auf zusätzliche Eingaben wartet.
  • Falls der Zustand des neuen Teilnehmers 120 bis 128 nicht protokolliert war, geht die Kontrolle zu einem Entscheidungsblock 260, wo der Datenverwalter 132 bestimmt, ob die Transaktion als abgespeichert markiert wurde. Falls ja, geht die Kontrolle zu einem Block 262, wo der Datenverwalter 132 das Speichertransaktionspaket zu dem neuen Teilnehmer 120 bis 128 sendet. Falls nicht, geht die Kontrolle zu einem Block 264, wo der Datenverwalter 132 das Abbruchtransaktionspaket zu dem neuen Teilnehmer 120 bis 128 sendet. Die Kontrolle geht dann von den Blöcken 162 und 264 zu dem Block 242.
  • Es sollte klar sein, dass die vorliegende Erfindung mittels alternativer Ausführungsformen ausgeführt werden kann. Beispielsweise kann ein beliebiger Typ von Computer, wie beispielsweise ein Mainframe, ein Minicomputer oder ein Personal Computer mit der vorliegenden Erfindung verwendet werden. Zusätzlich kann ein Softwareprogramm, welches eine Datenbank verwendet (entweder teilweise oder komplett) von der vorliegenden Erfindung profitieren.
  • Die vorhergehende Beschreibung der bevorzugten Ausführungsformen der Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung angegeben. Sie ist nicht dazu vorgesehen, erschöpfend zu sein oder die Erfindung auf die genaue offen barte Form zu begrenzen. Viele Modifikationen und Variationen sind in dem Lichte der obigen Lehre möglich. Es ist beabsichtigt, dass der Umfang der Erfindung nicht durch diese detaillierte Beschreibung sondern durch die angehängten Ansprüche begrenzt wird.

Claims (9)

  1. Verfahren zum Ausführen eines zweiphasigen Speicherprotokolls für eine Transaktion in einem System mit einer Mehrzahl von Datenquellen (120 bis 128) mit den folgenden Schritten: Verifizieren eines Status der Datenquellen beim Beginnen der Transaktion (204), (206); Fortfahren mit dem zweiphasigen Speicherprotokoll für die Transaktion mit einem Transaktionscontroller (130) für die Datenquellen, welche mit einem erreichbaren Status zu der Zeit der Verifizierung (208) antworten; und Protokollieren der Transaktion für die Datenquellen, welche nicht zu der Zeit der Überprüfung aktiv sind (250), dadurch gekennzeichnet, dass das zweiphasige Speicherprotokoll fortgesetzt wird, um die Transaktion für die Datenquellen zu vervollständigen, welche mit einem erreichbaren Status (228) antworten, und wobei der Transaktionskoordinator mit einem erfolgreichen Status an das Quellsystem (248) antwortet, und wobei die Transaktion für unerreichbare Datenquellen vervollständigt wird, wenn die Datenquellen, welche einen unerreichbaren Status haben, später in einen erreichbaren Status übergehen.
  2. Verfahren nach Anspruch 1, wobei die Datenquelle eine Datenbank ist.
  3. Verfahren nach Anspruch 1, weiterhin umfassend den Schritt des Vervollständigens der Transaktion für unerreichbare Datenquellen, wenn die unerreichbaren Datenquellen erreichbare Datenquellen werden.
  4. Verfahren nach Anspruch 3, wobei der Schritt des Vervollständigens weiterhin den Schritt des Vervollständigens der Transaktion in einer zeitlich geordneten Sequenz umfasst.
  5. Verfahren nach Anspruch 1, weiterhin umfassend die Schritte Reverifizieren des Status einer Datenquelle, die zuvor als den erreichbaren Status aufweisend geantwortet hat, jedoch mit einem unerreichbaren Status zu der Zeit der Reverifikation antwortet; und Protokollieren eines Restes der Transaktion für die Datenquelle, welche mit einem unerreichbaren Status zu der Zeit der Reverifikation antwortet.
  6. Verfahren nach Anspruch 1, wobei der Schritt des Protokollierens durch einen Datenmanager ausgeführt wird.
  7. Verfahren nach Anspruch 1, wobei der Schritt des Protokollierens weiterhin den Schritt des Speicherns der Transaktion in einem Datenprotokoll umfasst.
  8. Computerkontrollierte Vorrichtung (100) zum kontinuierlichen Zugriff auf eine Datenbank, die mit einer Mehrzahl von vernetzten Datenquellen (120 bis 128) verbunden ist, umfassend: (a) ein durch den Computer ausgeführtes Mittel zum Verifizieren eines Status der Datenquellen beim Beginnen der Transaktion (204), (206); (b) ein durch den Computer ausgeführtes Mittel zum Vervollständigen des zweiphasigen Speicherprotokolls für die Transaktion mit den Datenquellen, welche einen erreichbaren Status zu der Zeit der Verifikation aufweisen (208); und (c) ein durch den Computer ausgeführtes Mittel zum Protokollieren der Transaktion für Datenquellen, welche nicht zu der Zeit der Verifikation aktiv sind (250), dadurch gekenn zeichnet, dass das zweiphasige Speicherprotokoll dazu eingerichtet ist, für die Datenquellen, welche mit einem erreichbaren Status antworten (228), die Transaktion zu vervollständigen, und wobei der Transaktionskoordinator dazu eingerichtet ist, mit einem erfolgreichen Status an das Quellsystem (248) zu antworten, und wobei die Transaktion dazu eingerichtet ist, für unerreichbare Datenquellen vervollständigt zu werden, wenn die Datenquellen, welche einen unerreichbaren Status aufweisen, später in einen erreichbaren Status übergehen.
  9. Programmspeichervorrichtung, die durch einen Computer lesbar ist, greifbar enthaltend eines oder mehrere Programme von Anweisungen, wobei die Anweisungen, wenn sie durch den Computer ausgeführt werden, angepasst sind, um Verfahrensschritte nach einem der Ansprüche 1 bis 7 auszuführen.
DE69937715T 1998-10-05 1999-10-01 Verbessertes Zwei-Phasen-Bindungsprotokoll Expired - Lifetime DE69937715T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/166,690 US6363401B2 (en) 1998-10-05 1998-10-05 Enhanced two-phase commit protocol
US166690 1998-10-05

Publications (2)

Publication Number Publication Date
DE69937715D1 DE69937715D1 (de) 2008-01-24
DE69937715T2 true DE69937715T2 (de) 2008-12-11

Family

ID=22604317

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937715T Expired - Lifetime DE69937715T2 (de) 1998-10-05 1999-10-01 Verbessertes Zwei-Phasen-Bindungsprotokoll

Country Status (3)

Country Link
US (1) US6363401B2 (de)
EP (1) EP0992901B1 (de)
DE (1) DE69937715T2 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177866B2 (en) 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US20020138790A1 (en) * 2001-03-26 2002-09-26 Satyanarayana Nishtala Apparatus and method for managing errors on a point-to-point interconnect
US20030014441A1 (en) * 2001-06-29 2003-01-16 Akira Suzuki Document data structure, information recording medium, information processing apparatus, information processing system and information processing method
US7028219B2 (en) * 2002-04-25 2006-04-11 Hewlett-Packard Development Company, L.P. Hybrid method for flushing transaction state in a fault-tolerant clustered database
US7640535B2 (en) * 2003-01-24 2009-12-29 Bea Systems, Inc. Method for transaction processing with parallel execution
US7346905B2 (en) * 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
TWI416901B (zh) * 2005-11-30 2013-11-21 Ibm 故障容忍之異動處理系統
US7475117B1 (en) * 2005-12-15 2009-01-06 Teradata Us, Inc. Two-phase commit electronic mail delivery
US7631057B2 (en) * 2006-04-21 2009-12-08 Bea Systems, Inc. Two-phase deployment framework
US7617421B2 (en) * 2006-07-27 2009-11-10 Sun Microsystems, Inc. Method and apparatus for reporting failure conditions during transactional execution
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
US8892558B2 (en) * 2007-09-26 2014-11-18 International Business Machines Corporation Inserting data into an in-memory distributed nodal database
US8027996B2 (en) * 2007-11-29 2011-09-27 International Business Machines Corporation Commitment control for less than an entire record in an in-memory database in a parallel computer system
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
TW201032535A (en) 2008-10-14 2010-09-01 Ibm A method of handling a message
US8629646B2 (en) * 2009-01-09 2014-01-14 Solar Components Llc Generation of renewable energy certificates from distributed procedures
US20100176760A1 (en) * 2009-01-09 2010-07-15 Bullen M James System for photovoltaic power and charge management
US8995260B2 (en) 2012-08-09 2015-03-31 Blackberry Limited Method and apparatus for managing load in a communication network
US8976648B2 (en) * 2012-08-09 2015-03-10 Blackberry Limited Method and apparatus for managing load on service devices in a communication network
US20140214886A1 (en) 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US20140222698A1 (en) * 2013-01-31 2014-08-07 EM Biofuels, LLC Systems and Methods for Tracking Renewable Energy Credits
US20160063029A1 (en) 2014-08-29 2016-03-03 Netapp, Inc. Clustered storage system synchronization
CN104462497B (zh) * 2014-12-19 2018-07-10 深圳中兴网信科技有限公司 基于关系型数据库的跨库事务处理方法和***

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412287A (en) 1975-05-29 1983-10-25 Braddock Iii Walter D Automated stock exchange
US5095421A (en) 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
US5301320A (en) 1991-06-28 1994-04-05 Digital Equipment Corporation Workflow management and control system
US5452445A (en) 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5530848A (en) 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5455952A (en) 1993-11-03 1995-10-03 Cardinal Vision, Inc. Method of computing based on networks of dependent objects
US5850507A (en) 1996-03-19 1998-12-15 Oracle Corporation Method and apparatus for improved transaction recovery
US6105147A (en) 1997-04-16 2000-08-15 Compaq Computer Corporation Using process pairs as transaction-coordinated resource managers
US6154849A (en) * 1998-06-30 2000-11-28 Sun Microsystems, Inc. Method and apparatus for resource dependency relaxation

Also Published As

Publication number Publication date
DE69937715D1 (de) 2008-01-24
US6363401B2 (en) 2002-03-26
US20010042072A1 (en) 2001-11-15
EP0992901B1 (de) 2007-12-12
EP0992901A2 (de) 2000-04-12
EP0992901A3 (de) 2003-11-12

Similar Documents

Publication Publication Date Title
DE69937715T2 (de) Verbessertes Zwei-Phasen-Bindungsprotokoll
DE3908459C2 (de) Netzwerkserver
DE102005053727B4 (de) Verteilte Verriegelung
DE3879947T2 (de) Verteilte dateiserver-architektur.
DE68927508T2 (de) Zeitweilige Zustandsbewahrung für einen verteilten Dateidienst
DE10134492B4 (de) Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster
DE69029759T2 (de) Flexible Schnittstelle für Beglaubigungsdienste in einem verteilten Datenverarbeitungssystem
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE68928311T2 (de) Fern-Urlader
EP0807883B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE68924061T2 (de) Versionskontrolle in einem Datenverarbeitungssystem.
DE2856483C2 (de)
DE60306932T2 (de) Schnelle Datenbankreplikation
DE602005004508T2 (de) Speichersystem und Speichersteuerverfahren
DE4216871A1 (de) Ausfuehrungsordnen zum sicherstellen der serienherstellbarkeit verteilter transaktionen
DE19708021C1 (de) Verfahren zur Regelung eines Zugriffs von Rechnern auf Daten eines zentralen Rechners
DE112014001873T5 (de) Replikation für Hot-Standby-Online-Datenbank
DE4420451A1 (de) Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell
DE10123067A1 (de) Synchrone Vervielfältigung von Transaktionen in einem verteilten System
DE10119876A1 (de) Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung
DE69914568T2 (de) Vorrichtung, Verfahren und System zur Dateisynchronisierung in einem Fehlertoleranten Netzwerk
DE112018001561B4 (de) Verteiltes speichernetzwerk
DE69120362T2 (de) Speicherverwaltung in einem Datenverarbeitungsnetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: TERADATA US, INC., MIAMISBURG, OHIO, US