DE69508288T2 - Reduktion von logging-vorgängen in verteilten systemen - Google Patents

Reduktion von logging-vorgängen in verteilten systemen

Info

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
Application number
DE69508288T
Other languages
English (en)
Other versions
DE69508288D1 (de
Inventor
Andrew Banks
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69508288D1 publication Critical patent/DE69508288D1/de
Application granted granted Critical
Publication of DE69508288T2 publication Critical patent/DE69508288T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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)
  • 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

    Bereich der Erfindung
  • 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.
  • Hintergrundwissen
  • 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.
  • Darstellung der Erfindung
  • 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.
  • Beste Möglichkeiten zur Realisierung der Erfindung
  • 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.
  • BEISPIEL 1
  • 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:
  • Agent A
  • 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.
  • Agent B Agent A
  • 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.
  • AGENT B
  • 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.
  • Agent A
  • 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.
  • AGENT B
  • 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.
  • Agent A
  • 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.
  • AGENT B
  • 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:
  • Agent A
  • 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.
  • Agent B Agent A
  • 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.
  • AGENT B
  • 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.
  • Agent A AGENT B
  • 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.
  • Agent A
  • 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.
  • AGENT B
  • 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:
  • Agent A
  • 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.
  • Agent B
  • - 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.
  • Agent C Agent A Agent B
  • ← 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.
  • Agent C
  • 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.
  • Agent A
  • ← 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.
  • Agent B Agent C
  • 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.
  • Industrielle Anwendbarkeit
  • 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.
DE69508288T 1995-06-07 1995-08-31 Reduktion von logging-vorgängen in verteilten systemen Expired - Fee Related DE69508288T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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