DE69508288T2 - Reduktion von logging-vorgängen in verteilten systemen - Google Patents
Reduktion von logging-vorgängen in verteilten systemenInfo
- Publication number
- DE69508288T2 DE69508288T2 DE69508288T DE69508288T DE69508288T2 DE 69508288 T2 DE69508288 T2 DE 69508288T2 DE 69508288 T DE69508288 T DE 69508288T DE 69508288 T DE69508288 T DE 69508288T DE 69508288 T2 DE69508288 T2 DE 69508288T2
- Authority
- DE
- Germany
- Prior art keywords
- agent
- chain
- agents
- commit
- last
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000008569 process Effects 0.000 title description 8
- 238000011084 recovery Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 28
- 239000003795 chemical substances by application Substances 0.000 description 216
- 206010047571 Visual impairment Diseases 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf den Bereich der Datenverarbeitung, genauer auf verteilte Transaktions-Verarbeitungssysteme, und insbesondere auf die Verringerung der Gesamtzahl von Protokollsätzen, die von den verteilten Datenverarbeitungssystemen geschrieben werden.
- Ein Online-Datenverarbeitungssystem erfordert Mechanismen, die gemeinsam mit geeigneten Bedienungsabläufen für die automatische Wiederherstellung nach fehlerhaften Funktionen sorgen und es dem System erlauben, mit einer möglichst geringen Unterbrechung neu zu starten. Die beiden wesentlichen Wiederherstellungs-Anforderungen eines Online-Systems bestehen darin, die Datenintegrität aufrechtzuerhalten und die Auswirkung der fehlerhaften Funktionen zu minimieren.
- Aufrechterhaltung der Datenintegrität bedeutet, daß sich die Daten in der erwarteten Form befinden und nicht verfälscht wurden. Die Gesamtaufgabe der Wiederherstellungsoperationen bei Dateien, Datenbanken und ähnlichen Datenressourcen besteht darin, die Integrität der Information aufrechtzuerhalten und wiederherzustellen. Idealerweise sollte es möglich sein, die Daten nach irgendeiner fehlerhaften Funktion in einen konsistenten, bekannten Zustand zurückzuführen, durch eine Aktivierungshandlung, die einen minimalen Verlust an vorher Gültigem aufweist.
- Ein Weg, dies zu erreichen, besteht darin, eine Aufzeichnung oder ein Protokoll aller an einem Systemelement vorgenommenen Änderungen aufzubewahren, während das System normal arbeitet. Wenn eine fehlerhafte Funktion auftritt, kann die aufgezeichnete Information bei der Wiederherstellung der Daten helfen.
- Die aufgezeichnete Information kann dazu verwendet werden, unvollständige oder ungültige Änderungen an einer oder mehreren Ressourcen zurückzusetzen. Dies wird als Rückwärtswiederherstellung oder "Backout" bezeichnet. Für ein Backout ist es notwendig, die Inhalte eines Datenelementes aufzuzeichnen, bevor es geändert wird. Diese Aufzeichnungen werden als "Zuvorbilder" bezeichnet. Im allgemeinen ist Backout anwendbar auf Verarbeitungsfehler Funktionen, die verhindern, daß eine oder mehrere Transaktionen (oder ein Stapelprogramm) ausgeführt werden.
- Die aufgezeichnete Information kann verwendet werden, um Veränderungen an einer Ressource wiederherzustellen, wobei mit einer früher angefertigten Sicherheitskopie der Ressource begonnen wird. Dies wird als Vorwärtswiederherstellung bezeichnet. Für die Vorwärtswiederherstellung ist es notwendig, die Inhalte eines Datenelementes aufzuzeichnen, nachdem es geändert wurde. Diese Aufzeichnungen werden als "Danachbilder" bezeichnet. Im allgemeinen ist die Vorwärtswiederherstellung auf Datenmengenfehler oder Fehler in ähnlichen Datenressourcen anwendbar, die bewirken, daß Daten unbrauchbar werden, weil sie verfälscht wurden oder weil das physische Speichermedium beschädigt wurde.
- In einem Transaktions-Verarbeitungssystem kann mehr als eine Transaktion lesen oder Änderungen in einem einzelnen Datenbestand bewirken. Es ist wichtig, daß Transaktionen gültige Daten lesen und ihre Aktualisierungen korrekt aufgezeichnet werden, um die Integrität der Daten aufrechtzuerhalten. Um die Datenintegrität aufrechtzuerhalten, muß jede Transaktion vier Schlüsseleigenschaften besitzen, Atomarität, Kohsistenz (Consistency), Isolation und Dauerhaftigkeit, gemeinsam bekannt durch ihre Anfangsbuchstaben als ACID.
- Atomarität bedeutet, daß eine Transaktion als Ganzes oder überhaupt nicht durchgeführt wird. Wenn eine Transaktion nicht in ihrer Gesamtheit beendet werden kann, müssen alle ihre Auswirkungen zurückgenommen werden. Dies erfordert eine Backout - oder Rückwärtswiederhetstellungs-Möglichkeit in dem Transaktions- Verarbeitungssystem.
- Konsistenz bedeutet sicherzustellen, daß die Ergebnisse einer Transaktion reproduzierbar und vorhersagbar sind. Die Transaktion muß unter den gleichen Bedingungen immer das gleiche Ergebnis liefern. Dies wird durch einen entsprechenden Programm- und Codeaufbau erreicht, wobei solche Techniken wie Wiedernutzbarkeit und Wiedereintritt benutzt werden, um sicherzustellen, daß bei jedem Aufruf einer Transaktion der gleiche Code ausgeführt wird. Ein Beispiel, bei dem man besondere Vorsicht aufwenden muß, um die Konsistenz zu gewährleisten, liegt bei der Aktualisierung von zwei Datensätzen vor. Die Aktualisierung eines ersten Satzes, gefolgt von der Aktualisierung eines zweiten Satzes, muß die gleiche Wirkung haben wie die Aktualisierung des zweiten Satzes, gefolgt von der Aktualisierung des ersten Satzes, d. h. die Reihenfolge der Aktualisierungen darf die Endergebnisse, die durch die Aktualisierungen erreicht werden, nicht beeinflussen.
- Isolation bedeutet, daß keine Transaktion eine andere, gleichzeitig ablaufende Transaktion stören darf. Dies wird erreicht durch Steuerung der Parallelität. Mehrere parallel ablaufende Transaktionen können verschiedene Sätze in der gleichen Datenmenge aktualisieren. Es muß ein wirksames Mittel zur gleichzeitigen Benutzung der Datenmenge bereitgestellt werden, um die Realisierung einer solchen parallelen Aktualisierung zu erlauben. Der gleiche Satz darf nicht durch zwei Transaktionen gleichzeitig aktualisiert werden, d. h. eine Transaktion muß eine Aktualisierung eines Satzes abschließen, bevor einer anderen Transaktion erlaubt wird, eine Aktualisierung dieses Satzes zu beginnen. Die Benutzung der Verriegelung als Verfahren zur gemeinsamen Benutzung ergibt eine Steuerung der Parallelität. Ein Schlüssel ist ein Mechanismus, durch den die Verwendung einer Ressource auf den Besitzer des Schlüssels eingeschränkt wird. Eine Transaktion fordert den Schlüssel für eine Datenmenge oder für einen Satz dieser Datenmenge vom Verwalter dieser Datenmenge an. Der Mechanismus, durch den der Schlüssel realisiert wird, kann eine Markierung sein, die der Datenmenge zugeordnet ist, oder eine Markierung, die jedem Satz in der Datenmenge zugeordnet ist. Wenn eine Transaktion einmal diesen Schlüssel erhält, darf keine andere Transaktion die Datenmenge oder den Satz aktualisieren, für die der Schlüssel erhalten wurde.
- Dauerhaftigkeit bedeutet, daß die Ergebnisse einer Transaktion dauerhaft sein müssen. Dauerhaftigkeit wird durch den oben erwähnten Vorwärtswiederherstellungs-Prozeß erreicht. Wenn eine Transaktion ausgeführt wurde (d. h. dauerhaft oder nicht umkehrbar gemacht werden muß), wird ein Bild der durch die Transaktion geänderten Sätze (ein Danachbild) angelegt. Wenn eine fehlerhafte Funktion mit der Datenmenge zu einem Zeitpunkt nach der Ausführung der Transaktion auftritt, so daß eine Sicherungskopie der Datenmenge, die zu einem Zeitpunkt vor der Ausführung der Transaktion angelegt wurde, verwendet werden muß, um die verlorene Datenmenge zu ersetzen, kann das Danachbild der aktualisierten Sätze verwendet werden, um die von der Transaktion vorgenommenen Aktualisierungen wiederherzustellen.
- Festschreibung einer Änderung bedeutet, sie dauerhaft oder nicht umkehrbar zu machen. Eine einzelne Transaktion kann mehr als eine Datenmenge aktualisieren, die von einem oder mehreren Ressourcen-Verwaltern verwaltet wird. Diese Aktualisierungen hängen normalerweise logisch miteinander zusammen, und die Datenintegrität geht verloren, wenn eine Aktualisierung erfolgreich ist, während eine andere fehlschlägt. Wenn Datenintegrität aufrechterhalten werden soll, müssen die Ressourcen-Verwalter imstande sein, entweder alle die Aktualisierungen gemeinsam zu vollziehen (festzuschreiben), wenn die Transaktion einen erfolgreichen Abschluß signalisiert, oder alle Aktualisierungen zurückzusetzen, wenn die Transaktion fehlschlägt. Dies erfordert eine Festschreibungssteuerung, die ein Mittel enthält, alle von einer Transaktion durchgeführten Aktualisierungen zurückzusetzen, beispielsweise eine Rückwärtswiederherstellungsmöglichkeit, wie sie oben beschrieben wurde. Festschreibungsprozeduren können eine Einphasen-Festschreibung oder eine Zweiphasen-Festschreibung (2PC) sein. Wenn nur ein einzelner Ressourcen-Verwalter in den Festschteibungsprozeß einbezogen ist, ist nur eine einzelne Operation notwendig, um alle mit einer Transaktion verbundenen Veränderungen auszuführen.
- Wenn zwei oder mehr Ressourcen-Verwalter in eine einzelne Transaktion einbezogen werden, wird ein Festschreibungsprozeß mit zwei Phasen benutzt (Zweiphasen-Festschreibung oder 2PC) In der ersten Phase wird jeder Ressourcen-Verwalter zur Festschreibung aufgefordert; wenn in der zweiten Phase alle Ressourcen-Verwalter mitgeteilt haben, daß sie zur Festschreibung bereit sind, wird jeder Ressourcen-Verwalter zur Festschreibung aufgefordert, ansonsten wird jeder Ressourcen-Verwalter zum Rücksetzen aufgefordert. Ein Teilnehmer an einem Zweiphasen- Festschreibungsprozeß wird als "Agent" bezeichnet.
- Bestehende Realisierungen des Zweiphasen-Festschreibungsprotokolls für verteilte Datenverarbeitungssysteme, beispielsweise das in der CICS-Familie von Erzeugnissen der IBM Corporation verwendete, fordern, daß die beteiligten Ressourcen-Verwalter das Schreiben ihrer Protokollsätze auf einen nichtflüchtigen Speicher erzwingen und nicht erlauben, daß die Sätze in einem flüchtigen Pufferspeicher bleiben (IBM ist ein eingetragenes Warenzeichen und CICS ist ein Warenzeichen der IBM Corporation). Dies ist erforderlich, da die Aktualisierungen, die die Sätze protokollieren, dauerhaft sein müssen, um die Datenintegrität aufrechtzuerhalten. Dauerhaftigkeit kann nicht erreicht werden, wenn die Protokollsätze in einem flüchtigen Speicher gespeichert werden, weil im Falle eines Ausfalls die Protokollsätze verloren gehen können. Bestehende Realisierungen erfordern dies, weil die so geschriebenen Protokollsätze während eines Wiederherstellungsprozesses nach einem Ausfall gelesen werden, um die Daten in einen konsistenten Zustand zurückzuführen. Dies ist im allgemeinen bei der Realisierung einer Zweiphasen- Festschreibung ein Leistungsengpaß, weil das erzwungene Schreiben von Protokollsätzen auf einen nichtflüchtigen Speicher abgeschlossen sein muß, bevor der Festschreibungsprozeß fortgesetzt wird. Ein derartiges erzwungenes Schreiben erfordert Interaktionen mit einem nichtflüchtigen Speicher, beispielsweise mit Platteneinheiten, und derartige Interaktionen sind langsam. Infolgedessen hat ein Zweiphasen-Festschreibungsprozeß bei jeder Transaktionsverarbeitung einen beträchtlichen Leistungsaufwand zur Folge.
- CICS/ESA V4.1 Intercommunications Guide - SC33-1181-00, veröffentlicht von der IBM Corporation, stellt auf den Seiten 259- 260 ein bekanntes Verfahren dar, das als Optimierung des "letzten Agenten" bekannt ist, bei dem der letzte Agent in einer Kette keine Initialisierungssphase besitzt. Der letzte Agent schreibt fest, wenn er eine Anforderung erhält, ein Festschrei ben vorzubereiten. Dieses Verfahren wird später ausführlicher als Beispiel 1 beschrieben.
- Die US-Patentschrift 5 396 613 offenbart eine digitale Datenkommunikation in einem verteilten Client-Server-Datenverarbeitungssystem mit hintereinander angeordneten "Servern". Es werden Wiederherstellungsverfahren zur Behandlung von Nachrichten dargestellt, die während ihrer Übertragung verloren gingen. Wenn eine Nachricht von einem Server zu einem anderen in der Serverkette gesendet und eine gesendete Nachricht nicht innerhalb einer vorher festgelegten Zeit empfangen wird, zeigt ein Zeitgeber an, daß ein Problem mit einem Server oder seiner Verbindung aufgetreten ist, und der vorhergehende Server sendet seine gespeicherten Ergebnisse noch einmal.
- Dementsprechend stellt die Erfindung ein Verfahren zur Verwendung in einem Zweiphasen-Festschreibungsprotokoll zwischen einer Vielzahl von Agenten zur Verfügung, die die Anzahl erzwungener Schreibaktionen in Wiederherstellungsprotokolle verringert, wobei das Verfahren die folgenden Schritte umfaßt:
- ein erster Agent sendet eine Festschreibungsanforderung an einen nächsten Agenten in einer Kette von Agenten;
- jeder nachfolgende Agent in der Kette sendet die Festschreibungsanforderung, die er von einem vorhergehenden Agenten in der Kette erhielt, an einen nächsten Agenten in der Kette, bis ein letzter Agent erreicht wurde;
- der letzte Agent schreibt einen Festschreibungssatz in sein zugeordnetes Wiederherstellungsprotokoll, der anzeigt, daß die Änderungen festgeschrieben werden sollen;
- der letzte Agent sendet eine festgeschriebene Nachricht an einen vorhergehenden Agenten in einer Kette von Agenten;
- der Schritt des Sendens einer festgeschriebenen Nachricht wird wiederholt, bis der erste Agent in der Kette erreicht wurde;
- dadurch gekennzeichnet, daß Daten, die Festschreibungssätze darstellen, die für den ersten und nachfolgende Agenten zu protokollieren sind, vom ersten und allen nachfolgenden Agenten der Festschreibungsanforderung hinzugefügt werden, bevor die Festschreibungsanforderung, die von einem vorherigen Agenten in der Kette erhalten wurde, an einen nächsten Agenten in der Kette gesendet wird, und daß die Protokollierung der Festschreibungssätze nur vom letzten Agenten, in einem Wiederherstellungsprotokoll beendet wird, das diesem letzten Agenten zugeordnet ist.
- Bei Benutzung des Verfahrens der vorliegenden Erfindung fügen der erste und die nachfolgenden Agenten in der Kette Daten, die ihre Festschreibungssätze darstellen, zu der Festschreibungsanforderung hinzu, die dann zum nächsten Agenten in der Kette weitergeleitet wird. Bei der herkömmlichen Verfahrensweise müssen diese Daten in einem nichtflüchtigen Speicher gespeichert werden, bevor die Festschreibungsanforderung zum nächsten Agenten in der Kette weitergegeben werden kann. Das Speichern in einem nichtflüchtigen Speicher ist im Vergleich zur Verarbeitungsgeschwindigkeit in modernen Datenverarbeitungssystemen langsam. In einem typischen System, das zahlreiche Transaktionen verarbeitet, führt die Ersparnis an Zeit dadurch, daß man nicht darauf warten muß, daß auf einen nichtflüchtigen Speicher geschrieben wird, zu einer wesentlichen Leistungsverbesserung. Es ist vorteilhaft, über ein Verfahren zu verfügen, bei der das erzwungene Schreiben von Daten nur für ein einziges Protokoll erforderlich ist. Ein weiterer Vorteil eines einzigen Protokolls besteht darin, daß die Verwaltung des Systems einfacher ist.
- Die Kette von Agenten kann fortlaufend sein oder sich an einem Zwischenagenten in eine Vielzahl von Ketten aufspalten, wobei die Vielzahl von Ketten sich am letzten Agenten wieder vereinigt. Wenn sich die Kette aufspaltet, geschieht das Senden einer festgeschriebenen Nachricht an einen vorherigen Agenten in der Kette von Agenten vorzugsweise nur über eine aus der Vielzahl von Ketten.
- Die Erfindung stellt auch eine Datenverarbeitungs-Vorrichtung zur Verwendung in einem Zweiphasen-Festschreibungsprotokoll zur Verfügung, bei der die Anzahl von getrennten Nachrichten, die zwischen den Agenten gesendet werden, und die Anzahl erzwungener Schreibaktionen in Wiederherstellungsprotokolle, die den Agenten zugeordnet sind, verringert wird, wobei die Vorrichtung umfaßt:
- zwei oder mehr Agenten, die in einer Kette angeordnet sind;
- Mittel in einem ersten Agenten in der Kette zum Senden einer Festschreibungsanforderung an einen nächsten Agenten in der Kette von Agenten;
- Mittel in jedem Agenten in der Kette zum Weiterleiten der Festschreibungsanforderung, bis ein letzter Agent in der Kette erreicht wurde;
- Mittel im letzten Agenten zur Protokollierung eines Festschreibungssatzes, der angibt, daß die Änderungen festgeschrieben werden sollen;
- Mittel im letzten Agenten zum Senden einer festgeschriebenen Nachricht an einen vorherigen Agenten in einer Kette von Agenten;
- und Mittel in jedem Agenten in der Kette zum Weiterleiten der festgeschriebenen Anforderung, bis der erste Agent in der Kette erreicht wurde;
- gekennzeichnet durch Mittel, um Daten, die die Festschreibungssätze darstellen, die für den ersten bzw. die nachfolgenden Agenten zu protokollieren sind, vom ersten und jedem nachfolgenden Agenten zu der Festschreibungsanforderung vor dem Senden der Festschreibungsanforderung, die von einem vorhergehenden Agenten in der Kette erhalten wurde, an einen nächsten Agenten in der Kette von Agenten, hinzuzufügen;
- und Mittel zum Protokollieren von Festschreibungssätzen in nur einem Protokoll, das dem letzten Agenten in der Kette von Agenten zugeordnet ist.
- In Weitverkehrsnetzwerken nach dem Stand der Technik gewährleisten miteinander verbundene Maschinen die Konsistenz von Daten, die an mehreren Orten aktualisiert werden, indem ein Zweiphasen-Festschreibungsprotokoll verwendet wird, so wie es oben als Stand der Technik beschrieben wurde. Diese Protokolle erfordern, daß alle Agenten, die sich an mehreren Orten befinden, das Ergebnis einer Transaktion festhalten (sich darauf vorbereiten) und dann jedem das Ergebnis zuordnen. Dies hat das Schreiben von Protokollsätzen während der Verarbeitung des Festschreibens und die Übertragung von Nachrichten während der Verarbeitung des. Festschreibens zur Folge.
- Um die Parallelverarbeitung von Transaktionen anzuwenden, können Gruppen von Prozessoren verwendet werden. Jeder Prozessor kann einen einzelnen Agenten besitzen, der sich auf ihm befindet, oder er kann mehrere Agenten besitzen, die sich auf ihm befinden. Dies kann ein Computer mit Parallelverarbeitung sein oder eine Menge von Datenstationen, die zu einem Nahverkehrsnetzwerk verbunden wurden. Der Computer oder die vernetzten Datenstationen oder irgendeine ähnliche Kombination müssen Teil eines Netzwerkes sein, in dem es eine Verbindung von "jeder zu jedem" gibt. Eine solche Verbindung muß die Übertragung von Da ten erlauben, die Anforderungen darstellen können, die einem Zweiphasen-Festschreibungsprotokoll zugeordnet sind, oder von Daten, die zwischen den Agenten übertragen werden sollen. Die. Verbindung wird mit Hilfe eines Übertragungspuffers realisiert, wobei der Agent, der die Daten sendet, diese in einem Übertragungspuffer ablegt. Hardware oder Software, die jedem Agenten zugeordnet ist, entfernen die Daten aus dem Übertragungspuffer und senden sie zu der entsprechenden Hardware oder Software, die dem Agenten zugeordnet ist, zu dem die Daten gesendet werden sollen. Die entsprechende Hardware und/oder Software in dem empfangenden Agenten legt die Daten in einen Übertragungspuffer ab, der dem empfangenden Agenten zugeordnet ist. Mit solchen Verbindungen in einem Netzwerk ist es relativ teuer, eine Nachricht zu senden, aber das Senden einer langen Nachricht bringt im Vergleich zu einer kurzen Nachricht nur einen geringen Nachteil.
- Für das System als Ganzes ist ein gewisses Zuverlässigkeitsniveau erforderlich, weil nur ein einziges Protokoll im System die Daten enthält, die für die Wiederherstellung einer bestimmten Transaktion erforderlich sind. Mit den gegenwärtig verfügbaren Systemen würde ein Weitverkehrsnetzwerk im allgemeinen solche Zuverlässigkeitskriterien nicht erfüllen. Sollten solche Systeme mit dem notwendigen Zuverlässigkeitsniveau verfügbar werden, könnten sie mit der vorliegenden Erfindung verwendet werden.
- In einem Weitverkehrsnetzwerk nach dem Stand der Technik besitzt jeder Agent sein eigenes Protokoll und schreibt bei Bedarf während des Festschreibungsprozesses Protokollsätze für die Wiederherstellung in sein Protokoll. Es ist noch wesentlicher, daß nur dieser Agent sein Protokoll während der Wiederherstellung nach einer fehlerhaften Funktion liest, um den Zustand einer Transaktion wiederherzustellen und eine Transaktion abzuschließen oder zurückzusetzen. Dies führt zu einer größeren Unabhängigkeit zwischen den Agenten, die an der Transaktion beteiligt sind.
- Bei der vorliegenden Erfindung wird die Anzahl von erzwungenen Schreibaktionen in Wiederherstellungsprotokolle durch Agenten, die in einer Kette angeordnet sind, wobei jeder von ihnen ein zugeordnetes Wiederherstellungsprotokoll besitzt, durch den ersten Agenten in der Kette verringert, der Daten, die Festschreibungssätze darstellen, die für den ersten Agenten protokolliert werden sollen, zu der Festschreibungsanforderung vor dem Senden der Festschreibungsanforderung an den nächsten Agenten in der Kette hinzufügt. Die Festschreibungsanforderung wird dann an den nächsten Agenten in der Kette geschickt. Jeder nachfolgende Agent in der Kette fügt Daten, die Festschreibungssätze darstellen, die für den nachfolgenden Agenten protokolliert werden sollen, der Festschreibanforderung vor dem Senden der Festschreibanforderung mit den hinzugefügten Daten an einen nächsten Agenten in der Kette hinzu. Dies setzt sich fort mit jedem nachfolgenden Agenten, bis ein letzter Agent in der Kette erreicht wird. Wenn die Festschreibanforderung und die hinzugefügten Daten den letzten Agenten in der Kette von Agenten erreichen, schreibt er einen Festschreibungssatz in sein zugeordnetes Wiederherstellungsprotokoll, der die Änderungen anzeigt, die festgeschrieben werden sollen. Der Festschreibungssatz wird nur vom letzten Agenten protokolliert. Der letzte Agent sendet dann eine festgeschriebene Nachricht an einen vorhergehenden Agenten in der Kette von Agenten. Beim Empfangen der festgeschriebenen Nachricht sendet sie der vorherige Agent zu einem vorherigen Agent in der Kette von Agenten. Dieser Schritt wird wiederholt, bis der erste Agent in der Kette erreicht wird.
- In dem Protokoll der vorliegenden Erfindung fordert jeder Agent in der Kette von Agenten, der Ressourcen besitzt, die von der Transaktion beeinflußt wurden, Zugang zu dem Protokoll, das Protokollsätze enthält, die für eine spezielle Transaktion wichtig sind. Dieses Protokoll ist dem letzten Agenten in der Kette von Agenten zugeordnet, und es ist ein einziges Protokoll für alle Transaktionen, für die Protokolldaten durch diesen Agenten geschrieben werden. In einer anderen Ausführungsform kann dieses Protokoll zur Verbesserung der Verfügbarkeit und des Durchsatzes durch mehr als ein Protokoll realisiert werden, das dem letzten Agenten zugeordnet ist. Es kann für jede Transaktion ein gesondertes Protokoll vorhanden sein, oder es können gesonderte Protokolle für die Sätze bestehen, die jedem Systemelement zugeordnet sind, das von dem letzten Agenten verwaltet wird.
- Sowohl die Daten, die von jedem Agenten in der Kette von Agenten geliefert werden und in das dem letzten Agenten zugeordnete Protokoll geschrieben werden sollen, als auch die Festschreibanforderung, die, von jedem Agenten in der Kette zum nächsten Agenten in der Kette gesendet wird, werden von einem Agenten in der Kette zum nächsten Agenten in der Kette über einen einzigen Übertragungspuffer gesendet. Wie oben erwähnt, ist es relativ teuer, eine Nachricht zu senden, aber der Nachteil für das Senden einer langen Nachricht ist im Vergleich zu einer kurzen gering.
- Demzufolge werden die Zahl der Agenten, die mit dem einzelnen Protokoll, das dem letzten Agenten zugeordnet ist, zusammenarbeiten, und die Anzahl der Punkte, in denen das Protokoll die Dauerhaftigkeit der Daten garantieren muß, verringert. Infolgedessen werden weniger Übertragungen notwendig, sowohl zwischen den Agenten und ihren zugeordneten Protokollen als auch zwischen den Agenten selbst. Jede Übertragung zwischen den Agenten und ihren zugeordneten Protokollen erfordert ein Sichern von Daten in einem nichtflüchtigen Speicher, beispielsweise in einem Direktzugriffsspeicher (DASD). Ein solches Sichern von Daten ist im Vergleich zur Geschwindigkeit des Prozessors, der die Transaktion verarbeitet, sehr langsam. Jede Übertragung zwischen den Agenten selbst erfordert, daß Daten in einen Übertragungspuffer eingefügt werden, geeignete Vorsatzinformation hinzugefügt und die Verarbeitung abgeschlossen wird, um zu ermöglichen, daß die Daten vom sendenden Agenten zum empfangenden Agenten übertragen werden. Dies fügt einen beträchtlichen Aufwand hinzu, der im wesentlichen konstant ist, gleichgültig, ob ein einzelnes Datenbyte gesendet oder der Übertragungspuffer gefüllt wird. Wenn zahlreiche Transaktionen von jedem Agenten verarbeitet werden, werden die beträchtlichen zeitlichen Einsparungen durch die Verringerung der Zahl der Übertragungen zwischen Agenten und ihren zugeordneten Protokollen und zwischen den Agenten selbst für jede Transaktion multipliziert mit der Anzahl der verarbeiteten Transaktionen.
- In einer einfachsten Ausführung des Zweiphasen-Festschreibungsprotokolls wird die Entscheidung, festzuschreiben oder Aktualisierungen zurückzusetzen, getroffen, wenn eine Aktualisierung erfolgreich abgeschlossen wird oder wenn sie fehlschlägt. In einer bevorzugten Ausführung werden die Aktualisierungen so angeordnet, daß während der Ausführung der Transaktion an anderen logischen Punkten Konsistenz der Daten vorhanden ist. Alle solche Datenkonsistenzpunkte (einschließlich der Beendigung eitler Transaktion) werden Festschreibungspunkte oder Synchronisationspunkte genannt.
- Ein Synchronisationspunkt wird am Ende jeder Transaktion verwendet. Immer wenn ein Synchronisationspunkt verwendet wird, geht das System durch ein Zweiphasen-Festschreibungsprotokoll, um die Konsistenz der Daten zu gewährleisten. Eine Anwendung kann ausdrücklich fordern, daß ein Synchronisationspunkt an irgendeinem Punkt in einer Transaktion verwendet wird. Eine unterbrochene Transaktion kann von ihrem letzten Synchronisationspunkt neu gestartet werden.
- In der folgenden Erklärung einer bevorzugten Ausführung werden die folgenden Regeln auf das benutzte Protokoll angewendet.
- 1. Alle an dieser Verarbeitungsart beteiligten Agenten haben Zugriff auf das gleiche Protokoll und können es lesen, falls es für eine Wiederherstellungsverarbeitung notwendig sein sollte. Sie haben Zugriff auf das Protokoll, weil ihre Daten in dem Protokoll gespeichert sind, das dem letzten Agenten in der Kette von Agenten zugeordnet ist, auf das sie Zugriff haben. Dies trifft für Systeme auf der Grundlage von Nahverkehrsnetzen oder für parallelverarbeitende Systeme zu, da in derartigen Systemen jeder Agent eine Verbindung zu allen anderen Agenten in dem Netzwerk und infolgedessen. Zugriff auf das Protokoll hat.
- 2. Es müssen entweder keine der Daten für eine bestimmte Transaktion (für irgendeinen Agenten) oder alle Daten für eine Transaktion (für alle Agenten) in das Protokoll geschrieben werden. Diese Annähme ist für ein beliebiges Protokoll in einem Transaktions-Verarbeitungssystem erforderlich, da, falls nur ein Teil der einer Transaktion zugeordneten Daten im Protokoll vorhanden ist, es im Fall einer erforderlichen Wiederherstellung nicht möglich ist festzustellen, ob ein Teil der Daten vorhanden ist und ein Teil wegen einer fehlerhaften Funktion oder weil nicht alle Protokolldaten für eine Transaktion geschrieben werden sollten fehlt.
- 3. Wenn das Protokoll von einem bestimmten Agenten zum Zwecke der Wiederherstellung gelesen wird, sollen keine weiteren Schreibaktionen in das Protokoll für diesen oder irgendeinen anderen Agenten stattfinden. Dies verhindert die Möglichkeit, daß ein zweiter an der Transaktion beteiligter Agent in das Protokoll schreiben kann, nachdem ein erster Agent angefangen hat, es zum Zweck der Verarbeitung einer Wiederherstellung zu lesen.
- Wir betrachten das Beispiel einer Zweiphasen-Festschreibung nach dem Stand der Technik ohne Voraussetzung zwischen zwei Agenten A und B, wobei die Optimierung des letzten Agenten benutzt wird, die zu einer Festschreibung führt. Wir sehen die folgende Ereignisfolge ohne Übertragung der Protokolldaten:
- Nimm einen Synchronisationspunkt - dies kann am Ende einer Transaktion oder in irgendeinem Zwischenpunkt sein, in dem es wünschenswert ist, daß sich die Daten in einem konsistenten Zustand befinden.
- 1) Initialisiere die lokalen Ressourcen, die bereits verriegelt sind. Alle Ressourcen, die für den an der Transaktion beteiligten Agenten A lokal sind, werden vom Agenten A gegen Aktualisierungen verriegelt, die an ihnen von einer anderen Transaktion vorgenommen werden. Für eine gegebene Transaktion kann es lokale Ressourcen geben, die an der Transaktion beteiligt sind, oder es gibt keine, die an der Transaktion beteiligt sind.
- 2) Protokolliere (zwangsweise) festgeschriebenen Satz und wiederhole Daten.
- Ein Protokollsatz, der Information, daß die Transaktion festgeschrieben werden soll und einige "Danachbilder" enthält, die notwendig sind, um zu erlauben, daß die Transaktion wiederholt wird, falls die Wiederherstellung nach einer fehlerhaften Funktion erforderlich ist, wird zwangsweise in das Protokoll geschrieben, das in einem nichtflüchtigen Speicher gespeichert wird.
- 3) --- Anforderung - Festschreiben → Eine Anforderung wird mit der Anforderung, daß Agent B die Transaktion festschreibt zur Übertragung zum Agenten B in einen Übertragungspuffer geschrieben.
- 4) Initialisiere die lokalen Ressourcen, die bereits verriegelt sind. Alle Ressourcen, die für den an der Transaktion beteiligten Agenten B lokal sind, werden vom Agenten B gegen Aktualisierungen verriegelt, die an ihnen von einer anderen Transaktion vorgenommen werden.
- 6) ← Festgeschrieben ----- Eine Nachricht wird für die Übertragung zum Agenten A, die den Agenten A informiert, daß der Festschreibungssatz und zugeordnete "Danachbild"-Daten in das Protokoll geschrieben wurden und daß die Transaktion festgeschrieben wurde, in einen Übertragungspuffer gespeichert.
- 5) Ein Protokollsatz, der Information, daß die Transaktion festgeschrieben werden soll und einige "Danachbilder" enthält, die notwendig sind, um zu erlauben, daß die Transaktion wiederholt wird, falls die Wiederherstellung nach einer fehlerhaften Funktion erforderlich ist, wird zwangsweise in das Protokoll geschrieben, das in einem nichtflüchtigen Speicher gespeichert wird.
- 7) Freigeben der lokalen Ressourcen. Alle an der Transaktion beteiligten Ressourcen werden jetzt durch den Agenten B freigegeben, da jetzt Aktualisierungen von anderen Transaktionen an den Ressourcen vorgenommen werden können, ohne die Integrität der Daten zu beeinflussen.
- 8) Freigeben der lokalen Ressourcen. Alle an der Transaktion beteiligten lokalen Ressourcen werden jetzt durch den Agenten A freigegeben, da jetzt Aktualisierungen von anderen Transaktionen an den Ressourcen vorgenommen werden können, ohne die Integrität der Daten zu beeinflussen.
- 9) Die nächste normale Übertragung nach B bringt es mit sich, daß die Protokolldaten gelöscht werden können.
- Bei diesem Stand der Technik wird ein einzelnes Paar von Nachrichten zwischen Agent A und Agent B ausgetauscht, eine Nachricht von A nach B in Schritt 3 und eine Nachricht von B nach A in Schritt 6. Zwei erzwungene Schreibaktionen werden ausgeführt, die erste in Schritt 2 durch Agent A, die zweite in Schritt S durch Agent B.
- In einer Ausführungsform der vorliegenden Erfindung; können die Datenflüsse zwischen A und B wie folgt aussehen, wenn A und B Zugriff zum gleichen Protokoll haben:
- Nimm einen Synchronisationspunkt - dies kann am Ende einer Transaktion oder in irgendeinem Zwischenpunkt sein, an dem es wünschenswert ist, daß sich die Daten in einem konsistenten Zustand befinden.
- 1) Initialisiere die lokalen Ressourcen, die bereits verriegelt sind. Alle lokalen Ressourcen, die an der Transaktion beteiligt sind, Werden vom Agenten A gegen Aktualisierungen verriegelt, die an ihnen von einer anderen Transaktion vorgenommen werden. Für eine gegebene Transaktion kann es lokale Systemelemente geben, die an der Transaktion beteiligt sind, oder es gibt keine, die an der Transaktion beteiligt sind.
- 2) --- Fordere an-Schreibe fest -
- Stelle Daten wieder herschreibe Datensatz fest → Ein Protokollsatz, der Information, daß die Transaktion festgeschrieben werden soll, und einige "Danachbilder" enthält, die notwendig sind, um zu erlauben, daß die Transaktion wiederholt wird, falls die Wiederherstellung nach einer fehlerhaften Funktion erforderlich ist, wird vom Agenten A, zum Schreiben in das Protokoll, das dem letzten Agenten in der Kette von Agenten zugeordnet ist, konstruiert.
- Dieser Satz wird in einen Übertragungspuffer zur Übertragung zum Agenten B zusammen mit einer Anforderung, daß Agent B die Transaktion festschreibt, gespeichert.
- 3) Initialisiere die lokalen Ressourcen, die bereits verriegelt sind. Alle lokalen Ressourcen, die an der Transaktion beteiligt sind, werden vom Agenten B gegen Aktualisierungen verriegelt, die an ihnen von einer anderen Transaktion vorgenommen werden.
- 4) Protokolliere (zwangsweise) festgeschriebenen Satz und wiederhole Daten, und festgeschriebenen Satz und wiederhole Daten für A.
- Ein Protokollsatz, der Information enthält, daß die Transaktion festzuschreiben ist und einige "Danachbilder", die notwendig sind, um zu erlauben, daß die Transaktion wiederholt wird, falls eine Wiederherstellung nach einer fehlerhaften Funktion erforderlich ist, wird zwangsweise in das Protokoll geschrieben, das dem Agenten B zugeordnet ist und das in einem nichtflüchtigen Speicher gespeichert ist. Ein entsprechender Protokollsatz und "Danachbilder" vom Agenten A, die im Schritt 2 gesendet wurden, werden auch zwangsweise in das Protokoll geschrieben, das dem Agenten B für A zugeordnet ist.
- 5) ← Festgeschrieben ----- Eine Nachricht wird in einen Übertragungspuffer, für die Übertragung zum Agenten A, die den Agenten A informiert, daß der Festschreibungssatz und zugeordnete "Danachbild"-Daten in das Protokoll geschrieben wurden und daß die Transaktion. festgeschrieben wurde, gespeichert.
- 7) Freigeben der lokalen Ressourcen. Alle an der Transaktion beteiligten lokalen Ressourcen werden jetzt durch den Agenten A freigegeben, da jetzt Aktualisierungen von anderen Transaktionen an den Systemelementen vorgenommen werden können, ohne die Integrität der Daten zu beeinflussen.
- 8) Die nächste normale Übertragung nach B bringt es mit sich, daß die Protokollsätze gelöscht werden können.
- 6) Freigeben der lokalen Systemelemente. Alle an der Transaktion beteiligten Ressourcen werden jetzt durch den Agenten B freigegeben, da jetzt Aktualisierungen von anderen Transaktionen an den Ressourcen vorgenommen werden können, ohne die Integrität der Daten zu beeinflussen.
- In dieser Ausführung wird ein einzelnes Nachrichtenpaar zwischen Agent A und Agent B ausgetauscht, eine Nachricht von A nach B in Schritt 2 und eine Nachricht von B nach A in Schritt 5. Nur ein erzwungenes Schreiben in das Protokoll wird ausgeführt, in Schritt 4 vom Agenten B, von Daten für Agent B und von Daten für Agent A.
- In einer anderen Ausführung der Erfindung können ein einzelnes Paar von Nachrichten und ein einzelnes Protokollzwingen benutzt werden, um Daten für eine beliebige Anzahl von Agenten in einer Kette festzuschreiben. Zum Beispiel:
- Nimm einen Synchronisationspunkt.
- - RC-Wiederholdaten → Ein Festschreibsatz und alle Danachbilder werden vom Agenten A konstruiert. Diese Information wird für die Übertragung zum Agenten B in einen Übertragungspuffer gespeichert.
- - RC-Wiederholdaten → für A, B.
- Agent B konstruiert seinen Festschreibsatz und alle Danachbilder. Dies wird zu der vom Agenten A empfangenen Information hinzugefügt und für die Übertragung zum Agenten C in einen Übertragungspuffer gespeichert.
- ← Festgeschrieben ---
- Eine Nachricht wird für die Übertragung zum Agenten B in einen Übertragungspuffer geschrieben, die Agent B darüber informiert, daß die Festschreibsätze und die zugeordneten "Danachbild"-Daten für die Agenten A, B und C in das Protokoll geschrieben wurden und daß die Transaktion festgeschrieben wurde.
- Protokolliere Festschreibung und wiederhole Daten für A, B, C.
- Ein Festschreibungssatz und einige Danachbilder für den Agenten C werden in das Protokoll geschrieben, das dem Agenten C zugeordnet ist. Die vom Agenten B erhaltenen Festschreibungssätze und Danachbilder, die Information vom Agenten A und vom Agenten B enthalten, werden im Auftrag von Agent A und B in das Protokoll geschrieben, das dem Agenten C zugeordnet ist.
- ← Festgeschrieben ---
- Agent B leitet die Nachricht, die er vom Agenten C erhielt, weiter zum Agenten A, indem er die Nachricht in einen Übertragungspuffer speichert.
- Der nächste normale Fluß zwischen A und C bringt es mit sich, daß die Protokollsätze gelöscht werden können.
- Bei dieser Ausführung werden drei Agenten festgeschrieben, wobei zwei Nachrichtenpaare und ein einzelnes Protokollerzwingen benutzt wurden. Es werden zwei Nachrichtenpaare ausgetauscht, ein Paar zwischen Agent A und Agent B und ein Paar zwischen Agent B und Agent C. Nur ein erzwungenes Schreiben in das Protokoll wird vom Agenten C für sich selbst und für die Daten vom Agenten A und vom Agenten B ausgeführt.
- Wenn der Festschreibbaum keine Kette ist, muß nur ein einziges Paar von Nachrichten zwischen den Agenten gesendet werden, solange wie für alle Agenten das gleiche Protokoll benutzt wird. Zum Beispiel:
- Die nächste normale Übertragung zwischen A und B bewirkt, daß die Protokollsätze gelöscht werden können.
- Der Festschreibungsbaum spaltet sich bei B auf und vereinigt sich wieder bei E. Wie bei dem Zweiphasen-Festschreibungsprotokoll nach dem Stand der Technik müssen die Übertragungen die Information enthalten, daß E das abschließende Protokollieren ausführen wird, und daß kein Protokollieren auftritt, bevor nicht beide Teile der Übertragung in E angekommen sind. Die festgeschriebene Übertragung zwischen C und B enthält redundante Information und könnte weggelassen werden.
- Das Zusammenlaufen muß nicht am letzten Agenten geschehen, d. h. am Agenten, der tatsächlich die Anforderungen und die Danachbilder in seinem Protokoll protokolliert. Im obigen Beispiel könnte ein weiterer Agent, Agent F, enthalten sein, der die Festschreibanforderungen und Danachbilder für die Agenten A bis E erhält und diese zusammen mit seinen eigenen Daten in das zugehörige Protokoll schreibt. In diesem Falle leitet Agent E die Festschreibungsanforderung und die zugeordneten Daten zusammen mit seinen eigenen Protokolldaten erst weiter, wenn er die Festschreibungsanforderungen und die zugeordneten Daten von beiden Teilen der. Kette erhält. Entsprechend dem Stand der Technik enthalten beide Teile der Übertragung Informationen, daß die Übertragung aufgespalten wurde und daß, wenn jeder Teil beim Agenten E ankommt, Agent E die Anforderung unter Hinzufügung seiner eigenen Daten erst weiterleiten sollte, wenn beide Teile der Übertragung empfangen wurde.
- Wenn zwei Agenten an dem Zweiphasen-Festschreibungsprotokoll beteiligt sind, führt die Erfindung zu einer Einsparung in der Anzahl von Agenten, die mit dem einzigen Protokoll, das dem letzten Agenten zugeordnet ist, zu tun haben, und in der Zahl von Punkten, in denen das Protokoll die Dauerhaftigkeit der Daten garantieren muß. Die demzufolge geringere Zahl von Datenübertragungen und geringere Zahl von Situationen, in denen Daten in einen nichtflüchtigen Speicher gespeichert werden müssen, ergibt einen verbesserten Durchsatz. Wenn mehr als zwei Agenten an dem Zweiphasen-Festschreibungsprotokoll beteiligt sind, erhöht sich die von der Erfindung erhaltene Einsparung. An einem typischen Transaktions-Verarbeitungssystem sind mehr als zwei Agenten beteiligt.
- Die Erfindung ist industriell anwendbar im Bereich der Datenverarbeitung, wenn sie auf verteilte Transaktions-Verarbeitungssysteme angewendet wird, um die Gesamtzahl von Protokollsätzen zu verringern, die von einem solchen verteilten Datenverarbeitungssystem geschrieben werden.
Claims (10)
1. Verfahren zur Verwendung in einem
Zweiphasen-Festschreibungsprotokoll zwischen einer Vielzahl von Agenten zur
Verringerung der Anzahl von erzwungenen Schreibaktionen in
Wiederherstellungsprotokolle, wobei das Verfahren die
folgenden Schritte umfaßt:
ein erster Agent sendet eine Festschreibungsanforderung an
einen nächsten Agenten in einer Kette von Agenten;
jeder nachfolgende Agent in der Kette sendet eine
Festschreibungsanforderung, die er vom vorhergehenden Agenten
in der Kette erhielt, an einen nächsten Agenten in der
Kette, bis ein letzter Agent in der Kette erreicht wurde;
der letzte Agent schreibt in sein zugeordnetes
Wiederherstellungsprotokoll einen Festschreibungssatz, der anzeigt,
daß die Änderungen festzuschreiben sind;
der letzte Agent sendet eine festgeschriebene Nachricht an
einen vorherigen Agenten in einer Kette von Agenten; und
der Schritt des Sendens einer festgeschriebenen Nachricht
wird wiederholt, bis der erste Agent in der Kette erreicht
wurde;
dadurch gekennzeichnet, daß
Daten, die Festschreibungssätze darstellen, die für den
ersten und die nachfolgenden Agenten zu protokollieren
sind, jeweils von jedem der ersten und der nachfolgenden
Agenten zu der Festschreibungsanforderung hinzugefügt
wer
den, bevor die Festschreibungsanforderung, die von einem
vorhergehenden Agenten in der Kette erhalten wurde, an
einen nächsten Agenten in der Kette gesendet wird; und
daß das Protokollieren der Festschreibungssätze nur vom
letzten Agenten beendet wird, mit einem
Wiederherstellungsprotokoll, das dem letzten Agenten zugeordnet ist.
2. Verfahren wie in Anspruch 1 beansprucht, wobei der erste
Agent und jeder nachfolgende Agent vor dem Schritt des
Sendens einer Festschreibungsanforderung alle Ressourcen,
die für die jeweiligen Agenten lokal sind und bereits
verriegelt wurden, vorbereitet.
3. Verfahren wie in Anspruch 1 beansprucht, wobei, nachdem
die festgeschriebene Nachricht empfangen wurde, der erste
Agent und jeder nachfolgende Agent alle Ressourcen
freigibt, die lokal für die jeweiligen Agenten sind und
verriegelt waren.
4. Verfahren wie in Anspruch 1 beansprucht, wobei vor dem
Protokollieren eines Festschreibungssatzes durch den
letzten Agenten der letzte Agent alle lokalen Ressourcen
vorbereitet, die bereits verriegelt wurden.
5. Verfahren wie in Anspruch 1 beansprucht, wobei nach dem
Protokollieren eines Festschreibungssatzes durch den
letzten Agenten der letzte Agent lokalen Ressourcen freigibt,
die verriegelt waren.
6. Verfahren wie in einem der vorhergehenden Ansprüche
beansprucht, wobei sich die Kette von Agenten an einem
Zwischenagenten in eine Vielzahl von Ketten aufspaltet und
sich diese Vielzahl von Ketten an einem Zwischenagenten
oder an dem Letzten Agenten wieder vereinigt.
7. Methode wie in Anspruch 6 beansprucht, wobei das Senden
einer festgeschriebenen Nachricht an einen vorherigen
Agenten in der Kette von Agenten nur über eine aus det
Vielzahl von Ketten geschieht.
8. Datenverarbeitungsvorrichtung zur Verwendung in einem
Zweiphasen-Festschreibprotokoll, bei der die Zahl der
erzwungenen Schreiboperationen in
Wiederherstellungsprotokolle, die den Agenten zugeordnet sind, die an dem
Zweiphasen-Festschreibungsprotokoll beteiligt sind, verringert
wird, wobei die Vorrichtung folgendes umfaßt:
zwei oder mehr Agenten, die in einer Kette angeordnet
sind;
Mittel in einem ersten Agenten der Kette, um eine
Festschreibungsanforderung an einen nächsten Agenten in der
Kette von Agenten zu schicken;
Mittel in jedem Agenten in der Kette, um die
Festschreibungsanforderung; die von einem vorhergehenden Agenten in
der Kette empfangen wurde, an einen nächsten Agenten in
der Kette weiterzusenden, bis ein letzter Agent in der
Kette erreicht wurde;
Mittel im letzten Agenten, um einen Festschreibungssatz in
sein zugeordnetes Wiederherstellungsprotokoll zu
schreiben, das anzeigt, daß die Veränderungen festzuschreiben
sind;
Mittel im letzten Agenten, um eine festgeschriebene
Nachricht an einen vorherigen Agenten in der Kette von Agenten
zu schicken; und
Mittel in jedem Agenten der Kette, um die festgeschriebene
Anforderung an einen vorherigen Agenten in der Kette zu
senden, bis der erste Agent in der Kette erreicht wurde;
gekennzeichnet durch Mittel, um Daten, die die
Festschreibungssätze darstellen, die für den ersten und die
nachfolgenden Agenten zu protokollieren sind, jeweils von jedem
der ersten und der nachfolgenden Agenten zu der
Festschreibungsanforderung vor dem Senden der
Festschreibungsanforderung, die von einem vorhergehenden Agenten in der
Kette von Agenten erhalten wurde, an einen nächsten
Agenten in der Kette von Agenten, hinzuzufügen; und
Mittel zum Protokollieren von Festschreibungssätzen nur in
einem Protokoll, das dem letzten Agenten in der Kette von
Agenten zugeordnet ist.
9. Datenverarbeitungsvorrichtung wie in Anspruch 8
beansprucht, wobei sich die Kette von Agenten an einem
Zwischenagenten in eine Vielzahl von Ketten aufspaltet und
sich die Vielzahl von Ketten an einem Zwischenagenten oder
beim letzten Agenten wieder vereinigt.
10. Datenverarbeitungsvorrichtung wie in Anspruch 9
beansprucht, wobei das Senden einer festgeschriebenen
Nachricht an einen vorhergehenden Agenten in der Kette von
Agenten nur über eine aus der Vielzahl von Ketten
geschieht.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9511483A GB2301909A (en) | 1995-06-07 | 1995-06-07 | Reduction of logging in distributed transaction processing systems |
PCT/GB1995/002053 WO1996041262A1 (en) | 1995-06-07 | 1995-08-31 | Reduction of logging in distributed systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69508288D1 DE69508288D1 (de) | 1999-04-15 |
DE69508288T2 true DE69508288T2 (de) | 1999-10-14 |
Family
ID=10775636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69508288T Expired - Fee Related DE69508288T2 (de) | 1995-06-07 | 1995-08-31 | Reduktion von logging-vorgängen in verteilten systemen |
Country Status (6)
Country | Link |
---|---|
US (1) | US5734897A (de) |
EP (1) | EP0834127B1 (de) |
JP (1) | JP3491282B2 (de) |
DE (1) | DE69508288T2 (de) |
GB (1) | GB2301909A (de) |
WO (1) | WO1996041262A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19805518B4 (de) * | 1998-02-11 | 2013-10-24 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Analyse von Schutzsignalen für eine Anzahl von sicherheitsrelevanten Anlagenteilen einer technischen Anlage |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144989A (en) * | 1998-06-15 | 2000-11-07 | Dejima, Inc. | Adaptive agent-oriented software architecture |
GB2346985B (en) | 1999-02-19 | 2003-07-09 | Ibm | Client/server transaction data processing system with optimum selection of last agent |
GB2346990B (en) | 1999-02-20 | 2003-07-09 | Ibm | Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization |
GB2359386B (en) * | 2000-02-16 | 2004-08-04 | Data Connection Ltd | Replicated control block handles for fault-tolerant computer systems |
US6490595B1 (en) | 2000-03-30 | 2002-12-03 | International Business Machines Corporation | Method, system and program products for providing efficient syncpoint processing of distributed transactions |
US6671686B2 (en) * | 2000-11-02 | 2003-12-30 | Guy Pardon | Decentralized, distributed internet data management |
US7231343B1 (en) * | 2001-12-20 | 2007-06-12 | Ianywhere Solutions, Inc. | Synonyms mechanism for natural language systems |
US7353176B1 (en) | 2001-12-20 | 2008-04-01 | Ianywhere Solutions, Inc. | Actuation system for an agent oriented architecture |
US8738568B2 (en) | 2011-05-05 | 2014-05-27 | Oracle International Corporation | User-defined parallelization in transactional replication of in-memory database |
US7406486B1 (en) * | 2002-04-10 | 2008-07-29 | Oracle International Corporation | Transforming transactions to increase parallelism when replicating |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7418462B2 (en) * | 2003-11-24 | 2008-08-26 | Microsoft Corporation | Optimized recovery logging |
US7292978B2 (en) * | 2003-12-04 | 2007-11-06 | Toyota Infotechnology Center Co., Ltd. | Shortcut names for use in a speech recognition system |
US7890457B2 (en) * | 2006-10-20 | 2011-02-15 | Oracle International Corporation | Transactionally consistent database workload replay |
US8442962B2 (en) * | 2010-12-28 | 2013-05-14 | Sap Ag | Distributed transaction management using two-phase commit optimization |
JP2015176203A (ja) * | 2014-03-13 | 2015-10-05 | 沖電気工業株式会社 | データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント、及びデータベースクライアントプログラム |
US10942823B2 (en) | 2018-01-29 | 2021-03-09 | Guy Pardon | Transaction processing system, recovery subsystem and method for operating a recovery subsystem |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02310665A (ja) * | 1989-05-25 | 1990-12-26 | Toshiba Corp | 分散トランザクション処理システム |
GB9004116D0 (en) * | 1990-02-23 | 1990-04-18 | Digital Equipment Int | Transaction control |
JP2691081B2 (ja) * | 1990-05-16 | 1997-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・ネットワーク |
US5327532A (en) * | 1990-05-16 | 1994-07-05 | International Business Machines Corporation | Coordinated sync point management of protected resources |
US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
US5261089A (en) * | 1990-05-16 | 1993-11-09 | International Business Machines Corporation | Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary |
US5319774A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Recovery facility for incomplete sync points for distributed application |
JP2837288B2 (ja) * | 1990-09-17 | 1998-12-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法 |
DE4216871C2 (de) * | 1991-05-21 | 2001-09-06 | Digital Equipment Corp | Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen |
GB2256069B (en) * | 1991-05-23 | 1994-09-07 | Digital Equipment Int | Transaction processing |
GB2263988B (en) * | 1992-02-04 | 1996-05-22 | Digital Equipment Corp | Work flow management system and method |
JP2675968B2 (ja) * | 1992-08-20 | 1997-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 加入者分散2相コミット・プロトコルの拡張機能 |
US5396613A (en) * | 1992-11-05 | 1995-03-07 | University Of Utah Research Foundation | Method and system for error recovery for cascaded servers |
US5499364A (en) * | 1993-10-14 | 1996-03-12 | Digital Equipment Corporation | System and method for optimizing message flows between agents in distributed computations |
-
1995
- 1995-06-07 GB GB9511483A patent/GB2301909A/en not_active Withdrawn
- 1995-08-31 JP JP50019997A patent/JP3491282B2/ja not_active Expired - Fee Related
- 1995-08-31 EP EP95930599A patent/EP0834127B1/de not_active Expired - Lifetime
- 1995-08-31 DE DE69508288T patent/DE69508288T2/de not_active Expired - Fee Related
- 1995-08-31 WO PCT/GB1995/002053 patent/WO1996041262A1/en active IP Right Grant
-
1996
- 1996-06-04 US US08/655,266 patent/US5734897A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19805518B4 (de) * | 1998-02-11 | 2013-10-24 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Analyse von Schutzsignalen für eine Anzahl von sicherheitsrelevanten Anlagenteilen einer technischen Anlage |
Also Published As
Publication number | Publication date |
---|---|
WO1996041262A1 (en) | 1996-12-19 |
EP0834127A1 (de) | 1998-04-08 |
JPH10507558A (ja) | 1998-07-21 |
GB2301909A (en) | 1996-12-18 |
JP3491282B2 (ja) | 2004-01-26 |
US5734897A (en) | 1998-03-31 |
EP0834127B1 (de) | 1999-03-10 |
DE69508288D1 (de) | 1999-04-15 |
GB9511483D0 (en) | 1995-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69508288T2 (de) | Reduktion von logging-vorgängen in verteilten systemen | |
DE69703181T2 (de) | Registrierdateioptimierung in einem Client/Server-Rechnersystem | |
DE69122713T2 (de) | Fehlertolerantes rechnersystem | |
DE69718715T2 (de) | Verfahren zur geschichteter Transaktionsverarbeitung | |
DE69311797T2 (de) | Fehlertolerantes computersystem mit vorrichtung fuer die bearbeitung von externen ereignissen | |
DE69712689T2 (de) | Prüfpunktrechnersystem | |
DE69923621T2 (de) | Verfahren und Vorrichtung zu korrekten und vollständigen Übertragungen in einem fehlertoleranten verteilten Datenbanksystem | |
DE69326186T2 (de) | Verfahren und Vorrichtung um eine verteilte Transaktion in einer verteilten Datenbank auszuführen | |
DE68927705T2 (de) | Verfahren zum Entfernen unbestätigter Änderungen an gespeicherten Daten durch ein Datenbankverwaltungssystem | |
DE69410671T2 (de) | Datensicherung in einer Datenverarbeitungsanlage | |
DE60016371T2 (de) | Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten | |
DE69730449T2 (de) | Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten | |
DE69506155T2 (de) | Asynchrones Datenfernkopieren | |
DE60001460T2 (de) | Datenfernkopieren unter verwendung von potentiellen aufhebungsbefehlen | |
DE69804099T2 (de) | Initialisierung von unterteilten datenobjekten | |
DE69724846T2 (de) | Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus | |
DE3689664T2 (de) | Verfahren und Gerät zur Verwaltung von veralteten Datenobjekten. | |
DE69715537T2 (de) | Fehlertolerante verfahrensmethode | |
DE3786956T2 (de) | Verwaltung von registrierungsdaten in einem transaktionsorientierten System. | |
DE69920713T2 (de) | Datei-system bild-übertragung | |
DE69316639T2 (de) | System und verfahren zur schnittstellenbildung fur transaktion-verarbeitungssystem | |
DE69429686T2 (de) | Transaktionsverwaltung in objektorientiertem System | |
DE69635099T2 (de) | Verfahren und Vorrichtung für kontextempfindliches Pfadsende | |
DE10123067B4 (de) | Synchrone Vervielfältigung von Transaktionen in einem verteilten System | |
DE69937715T2 (de) | Verbessertes Zwei-Phasen-Bindungsprotokoll |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |