DE69610785T2 - Verbesserter Wiederherstellungsprozess - Google Patents

Verbesserter Wiederherstellungsprozess

Info

Publication number
DE69610785T2
DE69610785T2 DE69610785T DE69610785T DE69610785T2 DE 69610785 T2 DE69610785 T2 DE 69610785T2 DE 69610785 T DE69610785 T DE 69610785T DE 69610785 T DE69610785 T DE 69610785T DE 69610785 T2 DE69610785 T2 DE 69610785T2
Authority
DE
Germany
Prior art keywords
record
log
audit
undo
recovery
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
DE69610785T
Other languages
English (en)
Other versions
DE69610785D1 (de
Inventor
James A. Lyon
Steven R. Pearson
Franco Potzolu
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tandem Computers Inc filed Critical Tandem Computers Inc
Application granted granted Critical
Publication of DE69610785D1 publication Critical patent/DE69610785D1/de
Publication of DE69610785T2 publication Critical patent/DE69610785T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Transaktions- und Datenbank-(oder "Ressourcen"-) Manager kooperieren, um Datenbank-Wiederherstellungsverfahren bereitzustellen. Diese Verfahren machen Wirkungen von Transaktionen, die scheitern, rückgängig, stellen sicher, dass die Datenbank während System- oder Ressourcen-Manager-Neustarts konsistent ist, und stellen eine Wiederherstellung von anderen Ereignissen bereit, wie Medienversagen.
  • Es gibt einige verschiedene Ansätze für dieses Wiederherstellen. Die üblichsten Ansätze verwenden einen Protokoll- oder Prüfpfad, der die Änderungen aufzeichnet, die Transaktionen an der Datenbank ausführen. Die Wiederherstellungsverfahren lesen normalerweise das Protokoll und verwenden die darin aufgezeichnete Historie, um die Wiederholung- und Rückgängig-Operationen auszuführen, die erforderlich sind, um die Datenbank in den richtigen Zustand zu versetzen.
  • Viele Systeme verwenden Datenbank-Wiederherstellungsverfahren, die "physikalische" (oder "seitenorientierte") Wiederholungsoperationen und "logische" (oder "aufzeichnungsorientierte") Rückgängig-Operationen auszuführen. Dieser Ansatz erfordert, dass Rückgänig-Operationen selbst Prüfaufzeichnungen (typischerweise bezeichnet als "kompensierende Prüfaufzeichnungen" oder "CLRs") erzeugen, die in dem Protokoll aufgezeichnet werden. Die Einzelheiten und Vorteile dieses Ansatzes sind in einem Artikel von Mohan et al. mit dem Titel ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging, IBM Research Report RJ6649, San Jose, CA, 1989, beschrieben sind.
  • Ein Ergebnis des Erzeugens von CLRs während eines Rückgängigmachens ist, dass, falls ein Versagen während des Rückgängigmachens auftritt, das einfachste Rückgängig-Verfahren einer gesonderten Rückgängig-Arbeit während eines Neu versuchs gegenübersteht; es muß die Prüfaufzeichnungen, die aus einem früheren Rückgängig-Durchgang resultierten, neu vorlegen, damit sie selbst rückgängig gemacht werden. Im schlimmsten Fall mehrerer erfolgloser Wiederherstellungsversuche kann der Umfang von gesonderter Arbeit (gesonderte Prüfung zum Lesen und gesonderte Rückgängig-Operationen zum Ausführen) sich mit jedem Versuch verdoppeln.
  • Ein bekanntes Verfahren, das gesonderte Rückgängigmachen zu vermeiden, beinhaltet die Verwendung von rückwärtsverknüpften Zeigern, die alle Prüfaufzeichnungen in einer gegebenen Transaktion miteinander verbinden. Wenn eine Prüfaufzeichnung zum Rückgängigmachen verarbeitet wird, enthält die erzeugte Prüfung einen Zeiger zu dem Ort der früheren Prüfaufzeichnung für die Transaktion. Nachfolgende Rückgängig-Wiederherstellungsphasen können die Zeiger verwenden, die sowohl die "Ausführung"-, als auch die "Rückgängig"-Prüfung für alle Operationen überspringen, die früher rückgängig gemacht wurden. Die Rückwärtsverknüpfung, die oben angegeben ist, wird ausgeführt durch das, was in der Literatur als "Protokollsequenznummern" oder "LSNs" bezeichnet wird.
  • LSNs stellen einen Mechanismus bereit, durch welchen ein Ressourcenmanager oder Wiederherstellungsmanager den Zustand einer Datenbankseite bezüglich einer gegebenen Prüfaufzeichnung vergleichen kann. Insbesondere kann die Kennzeichnung von Prüfaufzeichnungen und Datenbankseiten mit LSNs verwendet werden, um bestimmte seitenorientierte Wiederholung- und Rückgängig- Operationen zu vermeiden, wenn die Änderung bereits auf die Datenbank während einer normalen Verarbeitung oder durch einige frühere Wiederherstellungsprozesse angewandt wurde. Für LSNs ist es erforderlich, dass es monoton zunehmende, einheitliche Werte sind, um diese Rolle zu erfüllen.
  • Die Fig. 6 und 7 stellen dar, wie die Verwendung von Zeigern das Erfordernis einer gesonderten Rückgängigmachung während eines Neuversuchs eliminiert. In den Figuren repräsentiert ein Kasten, der eine einfache Zahl enthält, eine Prüfaufzeichnung, die mit einer originalen Aktualisierung verbunden ist, die durch eine Transaktion durchgeführt wurde. Zum Beispiel repräsentiert [1] die erste solche Aktualisierung in der Serie. Ein Kasten, der eine Zahl und ein "Prime"-Symbol (z. B. [1']) enthält, repräsentiert die CLR, die durch Rückgängigmachen der damit verbundenen originalen Aktualisierung erzeugt wurde. Ein Kasten, der eine Zahl und ein "Doppelprime"-Symbol (z. B. [1"]) enthält, repräsentiert die Rückgängigmachung der CLR, die erzeugt wurde, wenn die damit verbundene originale Aktualisierung rückgängig gemacht wurde.
  • Die Fig. 6 zeigt den Satz von Prüfaufzeichnungen, die für eine Transaktion erzeugt wurden, die ein gegebenes Objekt 4 mal aktualisiert, abbricht und durch wiederholtes Versagen an dem Punkt geplagt wird, wo der Wiederherstellungsprozeß versucht, die Operation [1] rückgängig zu machen.
  • Wenn die Transaktion abbricht macht der anfängliche Wiederherstellungsdurchgang Operationen [4], [3] und [2] rückgängig, schreibt die zugehörigen CLRs [4'], [3'] und [2'] in chronologischer Vorwärtsreihenfolge zum Protokoll und versagt dann. Der nächste Wiederherstellungsversuch tastet den Prüfpfad rückwärts ab. Die erste Prüfaufzeichnung, die er findet, ist [2']. Er führt Rückgängig-Operationen unter Verwendung der CLRs, die durch den ersten versagenden Wiederherstellungsversuch erzeugt wurden, und Erzeugen von [2"], [3"] und [4"] aus. Beim weiteren Rückwärtsgehen in dem Protokoll macht es die letzte originale Aktualisierung ([4]) wieder rückgängig. Dann werden [3] und [2] rückgängig gemacht, gefolgt von dem Versagen des zweiten Wiederherstellungsversuchs.
  • Die erste Prüfaufzeichnung, auf die der dritte Wiederherstellungsversuch trifft, ist die [2'], die durch den zweiten Versuch erzeugt wurde. Der Wiederherstellungsprozeß macht [2'], [3'], [4'] rückgängig, erzeugt CLRs [2"], [3"], [4"], und so weiter.
  • In vielen existierenden Systemen sind LSNs die Adressen von Prüfaufzeichnungen in dem Protokoll, und sind die nächsten Rückgängig-LSNs Rückwärtszeiger, die einen Wert enthalten, der die Adresse einer Prüfaufzeichnung in dem Protokoll ist. Veröffentlichte Wiederherstellungsverfahren nutzen routinemäßig die Tatsa che, dass LSNs Protokolladressen enthalten, die ihre Verwendung beim ARIES- Verfahren enthalten, das in dem oben angegebenen Artikel beschrieben wurde, um Rückgängig-CLRs zu vermeiden.
  • Die Fig. 7 stellt eine Rückwärtsverknüpfung dar, wenn jede CLR zusätzlich zu einer Beschreibung der kompensierenden Aktion einen Zeiger zur Protokollaufzeichnung jener Transaktion enthält, die derjenigen vorangeht, die die gegebene CLR kompensiert. Wenn der Wiederherstellungsversuch nach einem Kompensieren von [2] versagt, liest der nächste Wiederholungsversuch somit den Zeiger in [2'] und geht direkt zu [1], der nächsten Aktualisierung, die nicht durch den vorherigen Wiederherstellungsversuch kompensiert wurde.
  • Unglücklicherweise ist eine Rückwärtsverknüpfung von LSNs in der Form von Adressen zu Einträgen in dem Protokoll, um ein Rückgängigmachen von CLRs zu vermeiden, nicht adäquat für Systeme, die eine "verteilte" Erzeugung von Prüfungen für eine gegebene Transaktion enthalten, die für einen einzelnen logischen Prüfpfad bestimmt ist.
  • Wenn sich mehrfache unabhängige Ressourcenmanager Transaktionen und ein einzelnes Protokoll teilen, ist es nicht praktikabel, die LSNs der gesamten Prüfung für eine Transaktion rückwärts zu verknüpfen. Die Ressourcenmanager erzeugen ihre Prüfprotokolle unabhängig, und ihre Prüfprotokolle werden später mit den Prüfprotokollen anderer Ressourcenmanager in dem einzelnen geteilten gemeinsamen Protokoll zusammengelegt. In einem solchen Fall kann das Konstrukt, das von dem Ressourcenmanager verwendet wird, um die "Seitenzustand"-Rolle einer LSN zu füllen, nicht für alle praktischen Zwecke die Adresse einer Prüfaufzeichnung in dem Protokoll sein.
  • Dies liegt daran, dass der Ressourcenmanager nicht wissen kann, was die Protokolladresse einer Prüfaufzeichnung zu der Zeit, zu der eine Datenbankaktualisierung ausgeführt wird und die Prüfaufzeichnung erzeugt wird, sein wird. Um eine Protokolladresse als die LSN zu verwenden, müsste der Ressourcenmanager ge eignet sein, irgendwie alle Prüfaufzeichnungen und alle modifizierten Datenbankseiten unterzubringen, nachdem er einen Prüfungspuffer zum gemeinsamen Protokoll geräumt hat. Dieser Ansatz ist aufgrund der starken Leistungseinbußen die er impliziert, sowie der Komplikation, die er den "Seitenzustand"-Mechanismen, die von der LSN abhängen, hinzufügt, kontraindiziert.
  • Die Verwendung von rückwärtsverknüpften LSNs, wie in dem Mohan-Artikel beschrieben ist, kann auch für Transaktionssysteme, die Prüfaufzeichnungen von ihren ursprünglichen Protokollorten zu einigen anderen Orten kopieren, weniger praktikabel sein. Beispiele davon enthalten dynamische Protokollier- und protokollbasierende Datenreplikationsschemen.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung ist ein Verfahren zum Bereitstellen einer Wiederherstellung von einem Versagen in einem System, das eine verteilte Prüfung verwendet. Das System verringert die Menge an gesonderten Rückgängig-Operationen, die durch Versagen verursacht werden, die während des Wiederherstellungsprozesses auftreten.
  • Gemäß einem Aspekt der Erfindung erzeugt jeder unabhängige Ressourcenmanager sein eigenes Protokoll in chronologischer Vorwärtsreihenfolge und enthält jede Protokollaufzeichnung eine monoton zunehmende Protokollsequenznummer und Ressourcenmanager-ID. Ein gemeinsames geteiltes Protokoll wird gebildet durch Zusammenlegen der unabhängigen Ressourcenmanagerprotokolle.
  • Gemäß einem anderen Aspekt der Erfindung wird während einer Wiederherstellung das Protokoll in umgekehrter Reihenfolge abgetastet, wird ein Zählwert jedesmal inkrementiert, wenn eine Kompensationsaktion ausgeführt wird, und wird ein Kompensationsprotokolleintrag zu dem Protokoll in Vorwärtsreihenfolge geschrieben. Wenn der Zählwert gleich einem voreingestellten Wert ist, dann wird eine Nächste-Rückgängig-Aufzeichnung zu dem Protokoll in Vorwärtsreihenfolge geschrieben, die eine Aufzeichnungs-ID einer gegenwärtigen Protokollaufzeichnung enthält, die kompensiert wird.
  • Wenn eine Nächste-Rückgängig-Aufzeichnung während der Rückwärtsabtastung gelesen wird, dann werden alle Aufzeichnungen ignoriert, bis die Aufzeichnung, die die Aufzeichnungs-ID hat, die in der Nächste-Rückgängig-Aufzeichnung enthalten ist, gelesen wird. Somit tauchen Kompensierprotokolleinträge von Aufzeichnungen, die bereits rückgängig gemacht wurden, auf, bevor die Nächste- Rückgängig-Aufzeichnung in dem Protokoll ignoriert wird, und übermäßige Rückgängig-Operationen werden vermieden.
  • Andere Aspekte, Merkmale und Vorteile der Erfindung werden im Hinblick auf die folgende genaue Beschreibung und angefügten Zeichnungen deutlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm eines Verarbeitungssystems, das einen verteilten Prüfpfad erzeugt,
  • Fig. 2 und 3 sind schematische Diagramme von Wiederherstellungsprozessen, die Nächste-Rückgängig-Aufzeichnungen verwenden,
  • Fig. 4 und 5 sind Flussdiagramme, die die Operation einer bevorzugten Ausführung illustrieren, und
  • Fig. 6 und 7 sind schematische Diagramme von Wiederherstellungsprozessen des Standes der Technik, die eine Rückwärtsverknüpfung von LSNs verwenden.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNG
  • Die Fig. 1 stellt ein System dar, das mehrere Ressourcen und Ressourcenmanager enthält, die sich Transaktionen und ein gemeinsames Protokoll teilen, die eine "verteilte" Erzeugung einer Prüfung für eine einzelne Transaktion umfassen. Das gemeinsame Protokoll kann auf eine Platte geschrieben werden und wird durch Zusammenlegen von Protokollen gebildet, die bei jedem der Ressourcenmanager erzeugt werden. Zum Zwecke der Beschreibung der Erfindung wird die Konvention verwendet, dass die Daten auf die Platte in Vorwärtsreihenfolge geschrieben und von der Platte rückwärts oder in umgekehrter Reihenfolge gelesen werden.
  • Jeder Ressourcenmanager identifiziert, wenn er sein Protokoll erzeugt, jede Prüfaufzeichnung mit einer monoton ansteigenden Aufzeichnungs-ID. Bei der bevorzugten Ausführung enthält diese Markierung eine Volumensequenznummer (VSN), die eine ansteigende ganze Zahl mit 48 Bit ist, und eine Ressourcenmanager-ID, die den Ressourcenmanager identifiziert, der die Prüfaufzeichnung erzeugt. Die Aufzeichnungs-IDs führen die "Seitenzustand"-Funktion während einer Wiederherstellungsoperation aus.
  • Das Wiederherstellungssystem der vorliegenden Erfindung verwendet diese Aufzeichnungs-IDs, um die Anzahl von Rückgängigmachungen zu beschränken, die wiederholt werden müssen, wenn während einer Wiederherstellung ein Versagen auftritt. Bei diesem Verfahren erzeugt der Wiederherstellungsmanager eine Nächste-Rückgängig-Aufzeichnung bei der Prüfung jedesmal, die bei jeglichen nachfolgenden Wiederherstellungsversuchen verwendet wird, um eine Anzahl von Rückgängig-Operationen zu überspringen, die früher abgeschlossen wurden.
  • Nach Ausführung von N, wobei N eine vorgegebene ganze Zahl ist, Rückgängig- Operationen für eine gegebene Transaktion gegenüber einem gegebenen Ressourcenmanager oder Objekt veranlasst der Wiederherstellungsprozeß, dass eine Nächste-Rückgängig-Aufzeichnung zu dem Protokoll geschrieben wird. Diese Nächste-Rückgängig-Aufzeichnung wird genau eingefügt, bevor der Wiederherstellungsmanager versucht, die N + 1. Rückgängig-Operation auszuführen. Diese Aufzeichnung, die eine Nächste-Rückgängig-VSN-Aufzeichnung bei einer bevorzugten Ausführung genannten wird, enthält die einheitliche Aufzeichnungs-ID der Prüfaufzeichnung, die mit der Rückgängig-Operation zusammenhängt, die der Wiederherstellungsprozeß gerade versucht.
  • Die Nächste-Rückgängig-VSN-Aufzeichnung muß in dem Protokoll nur aufgezeichnet werden, wenn für die früheren N Rückgängig-Operationen garantiert ist, dass sie permanent gemacht werden. Bei einem typischen System, das eine vorwärtsschreibende Protokollierung und physikalische Wiederholung während eines Ressourcenmanager-Neustarts verwendet, ist es ausreichend, dass die CLRs, die mit den N Rückgängig-Operationen zusammenhängen, in dem Protokoll auf stabilem Speicher sind, bevor die Nächste-Rückgängig-VSN-Aufzeichnung dem Protokoll hinzugefügt wird.
  • Wenn ein Wiederherstellungsversuch während einer Rückgängig-Phase versagt, wird ein nachfolgender Wiederherstellungsversuch die Nächste-Rückgängig-VSN- Aufzeichnung während seiner Rückgängig-Phase lesen. Er wird sich dann erinnern, alle Prüfaufzeichnungen für das spezifizierte Paar (Objekt X Transaktion) zu ignorieren, bis er die Aufzeichnung erreicht, die durch die Nächste-Rückgängig- VSN-Aufzeichnung identifiziert (darauf gezeigt) wird.
  • Zu beachten ist, dass, wenn N = 0, das Ergebnis ist, dass eine Nächste- Rückgängig-VSN vor jeder Rückgängig-Operation erzeugt wird, und CLRs nie rückgängig gemacht werden. Jedoch verwendet eine bevorzugte Ausführung N = 10. Immer nach 10 Rückgängig-Operationen wird eine Nächste-Rückgängig- VSN-Aufzeichnung eingefügt, die den Wiederherstellungsprozeß daran hindert, 20 logische Rückgängig-Operationen zu sehen und rückgängig zu machen, wenn ein Versagen eine Wiederholung erzwingt (10 Aufzeichnungen, die der Wiederherstellungsprozeß gelesen hat und wofür Rückgängig ausgeführt wurde, plus die 10 CLRs, die damit verbunden sind). Eine Verwendung dieses Wertes N verringert auch die Kosten dieses Verfahrens: Sie verringert die Menge an Prüfraum, der durch Nächste-Rückgängig-VSN-Aufzeichnungen verbraucht wird, und sie verringert die Menge an CPU-Ressourcen, die bei ihrer Erzeugung verbraucht werden.
  • Auch wird, wenn der Ressourcenmanager verzögert wird, bevor er die Zeigeraufzeichnung erzeugt, ein größerer Wert von N helfen, die Leistungseinbußen zu verringern, die dieses Verfahren dem Wiederherstellungsprozeß auferlegt.
  • Die Fig. 2 und 3 illustrieren die Nächste-Rückgängig-VSN-Prüfaufzeichnungen, die mit diesem Verfahren erzeugt werden, und ihre Beziehung zu der Originalprüfung und CLRs von Beispielstransaktionen. Zu Zwecken der Darstellung ist nur die Prüfung, die mit einer einzelnen (Objekt X Transaktion) zusammenhängt, gezeigt.
  • In den Figuren repräsentiert ein Kasten, der eine einfache Zahl enthält, eine Prüfaufzeichnung, die mit einer originalen Aktualisierung verbunden ist, die durch eine Transaktion ausgeführt wurde. Zum Beispiel repräsentiert [1] die erste solche Aktualisierung in der Serie. Ein Kasten, der eine Zahl und ein "Prime"-Symbol (z. B. [1']) enthält, repräsentiert die CLR, die durch Rückgängigmachen der zugehörigen originalen Aktualisierung erzeugt wurde. Ein Kasten, der eine Zahl und ein "Doppelprime"-Symbol (z. B. [1"]) enthält, repräsentiert das Rückgängigmachen der CLR, die erzeugt wurde, wenn die zugehörige originale Aktualisierung rückgängig gemacht wurde. Ein Kasten, der "NU" enthält, repräsentiert eine Nächste- Rückgängig-VSN-Aufzeichnung, und der zugehörige Pfeil gibt die Prüfaufzeichnung an, deren einheitliche Aufzeichnungs-ID darin gespeichert ist.
  • Die Prüfaufzeichnungen (Kästen) in den Figuren sind gruppiert, so dass originale Aktualisierungen zusammen erscheinen und von Gruppen von Prüfungen getrennt sind, die durch Rückgängig-Verarbeitung erzeugt wurden. Der zweite Satz von Prüfaufzeichnungen repräsentiert die Prüfung des ersten Rückgängig- Durchgangs, die dritte Gruppe repräsentiert die Prüfung des zweiten Rückgängig- Durchgangs, und so weiter. Zu beachten ist, dass während einer Wiederherstellung existierende Prüfaufzeichnungen in dem Protokoll rückwärts abgetastet werden (nach links in den Figuren) und die erzeugten CLRs zum Protokoll in der Vorwärtsrichtung (nach rechts in den Figuren) geschrieben werden.
  • Die Fig. 2 illustriert den Satz von Prüfaufzeichnungen, die für eine Transaktion erzeugt wurden, die ein gegebenes Objekt 6 mal aktualisiert, scheitert und erfolgreich rückgängig gemacht wird. Die Anzahl von Rückgängig-Operationen (N) die ausgeführt wird, bevor jede Nächste-Rückgängig-VSN-Aufzeichnung erzeugt wird, ist in diesem Fall 2.
  • Wenn die Transaktion scheitert, tastet der Wiederherstellungsprozeß das Protokoll rückwärts ab. Die erste Prüfaufzeichnung, auf die er trifft, ist [6]. [6] und [5] werden rückgängig gemacht, was zur Erzeugung der zugehörigen CLRs führt. Da N = 2 ist, bevor die dritte Rückgängigmachung (von [4]) ausgeführt wird, erzeugt der Wiederherstellungsprozeß eine Nächste-Rückgängig-VSN-Aufzeichnung, die die einheitliche Aufzeichnungs-ID von [4] enthält, und setzt seine Zahl von Rückgängigmachungen, die ausgeführt wurden, auf Null. Er geht dann weiter, um [4] und [3] rückgängig zu machen, eine andere Nächste-Rückgängig-VSN- Aufzeichnung einzufügen, die [2] angibt, und macht schließlich [2] und [1] rückgängig.
  • Zu beachten ist, dass, wenn zum Beispiel der Wiederherstellungsprozeß nach dem Rückgängigmachen von [4] versagte, die Nächste-Rückgängig-VSN- Aufzeichnung, die [5'] folgt, den nächsten Wiederherstellungsversuch wissen lassen würde, dass er sowohl das "Ausführen", als auch das "Rückgängigmachen" der originalen Operationen [5] und [6] überspringen könnte.
  • Die Fig. 3 zeigt den Satz von Prüfaufzeichnungen, die für eine Transaktion erzeugt wurden, die ein gegebenes Objekt 4 mal aktualisiert, scheitert und durch wiederholtes Scheitern an dem Punkt geplagt wird, wo der Wiederherstellungsprozeß versucht, die Operation [1] rückgängig zu machen. Bei dieser Darstellung ist die Anzahl von Rückgängig-Operationen (N), die ausgeführt wird, bevor jede Nächste-Rückgängig-VSN-Aufzeichnung erzeugt wird, 4.
  • Wenn die Transaktion scheitert, macht der anfängliche Wiederherstellungsdurchgang die Operationen [4], [3] und [2] rückgängig. Dann versagt er nach einem Erzeugen der zugehörigen CLRs, aber keiner Nächste-Rückgängig-VSN- Aufzeichnungen.
  • Der nächste Wiederherstellungsversuch tastet den Prüfpfad rückwärts ab. Die erste Prüfaufzeichnung, die er findet, ist [2']. Er führt Rückgängig-Operationen unter Verwendung der CLRs, die durch den ersten versagenden Wiederherstellungsversuch erzeugt wurden, und Erzeugung von [2"], [3"] und [4"] aus. Beim fortgesetzten Zurückgehen im Protokoll macht er die letzte originale Aktualisierung ([4]) wieder rückgängig. Vor einem Rückgängigmachen von [3] wird eine Nächste- Rückgängig-VSN-Aufzeichnung erzeugt, die die Aufzeichnungs-ID der nächsten Operation enthält, die rückgängig gemacht werden soll, d. h. [3], da N = 4, und der Wiederherstellungsprozeß ist dabei, die fünfte Rückgängig-Operation auszuführen. [3] und [2] werden dann rückgängig gemacht, gefolgt von dem Versagen des zweiten Wiederherstellungsversuchs.
  • Die erste Prüfaufzeichnung, auf die der dritte Wiederherstellungsversuch trifft, ist die [2"], die von dem zweiten Versuch erzeugt wurde. Der Wiederherstellungsprozeß macht [2'] und [3'] rückgängig. Er entdeckt dann die Nächste-Rückgängig- VSN-Aufzeichnung, die während des zweiten Wiederherstellungsversuchs erzeugt wurde. Der Wiederherstellungsprozeß zeichnet die darin enthaltene einheitliche Aufzeichnungs-ID auf, die die originale Operation [3] bezeichnet. So wie der Wiederherstellungsprozeß fortfährt, rückwärts durch das Protokoll zu lesen, ignoriert er die Prüfaufzeichnungen für das gegebene Objekt und die Transaktion, bis er auf die bezeichnete Operation trifft. Der Wiederherstellungsprozeß geht dann zum Rückgängigmachen von [3] und [2] weiter. Da er nun N (4) Rückgängig- Operationen ausgeführt hat, wird er eine Nächste-Rückgängig-VSN-Aufzeichnung erzeugen, die [1] angibt, bevor versucht wird, [1] rückgängig zu machen.
  • Jegliche zukünftigen Wiederherstellungsversuche werden nun alle "Ausführen"- und "Rückgängigmachen"-Prüfungen überspringen, die mit den originalen Opera tionen [2], [3] und [4] zusammenhängen. Die erste Aufzeichnung, für welche ein Rückgängigmachen versucht würde, ist [1].
  • Die Fig. 3 illustriert, wie dieses Verfahren das Zunehmen der gesonderten Arbeit beschränkt, selbst wenn eine Nächste-Rückgängig-VSN-Aufzeichnung etwas weniger häufig erzeugt wird, als Versagen auftreten. Obwohl es pathologische Fälle geben kann, bei denen das Verfahren nicht zu einem Zustand konvergiert, in dem keine gesonderte Arbeit getan wird, beschränkt es die Anzahl von gesonderten Rückgängig-Operationen, die ein gegebener Rückgängig-Versuch für den nächsten Wiederherstellungsversuch erzeugt, auf N oder weniger. Dies ist dem ungeprüften exponentiellen Wachsen weit überlegen, das bei der Abwesenheit eines Rückgängig-Übespringungsverfahrens auftreten kann.
  • Die Fig. 4 und 5 sind Flussdiagramme auf hohem Niveau, die illustrieren, wie das oben beschriebene Verfahren in den Rückgängig-Mechanismus des Wiederherstellungsprozesses integriert ist. Wenn von einem Versagen wiederhergestellt wird, werden bei 30 die Parameter Zählen, Ignorieren und Gespeichert- Aufzeichnungs-ID initialisiert auf 0, falsch bzw. NIL. Das Protokoll wird dann rückwärts abgetastet, und eine Prüfaufzeichnung wird gelesen bei 32 von dem Protokoll und wird die gegenwärtige Prüfaufzeichnung. Die gegenwärtige Prüfaufzeichnung wird bei 34 geprüft, um zu sehen, wenn der Wiederherstellungsprozeß erledigt ist 34, geprüft bei 36, um zu sehen, ob andere Wiederherstellungskriterien erfüllt sind 36, und wird der Ignorieren-Wert getestet 38.
  • In dem Fall, in dem Ignorieren falsch ist, wird die gegenwärtige Prüfaufzeichnung geprüft 40, um zu sehen, ob die gegenwärtige Prüfaufzeichnung eine Nächste- Rückgängig-Aufzeichnung ist, und, falls nicht, wird der Zählwert getestet 41, um zu bestimmen, ob Zählen = N ist. In dem Fall, in dem Zählen nicht gleich zu N ist, wird die Rückgängigmachung 42 der Operation, die in der gegenwärtigen Prüfaufzeichnung beschrieben ist, ausgeführt, wird der Zählwert inkrementiert 44, und wird eine CLR für die gegenwärtige Prüfaufzeichnung zum Protokoll geschrieben 46. Der Wiederherstellungsprozeß liest dann bei 32 eine neue Prüfaufzeichnung von dem Protokoll, die die gegenwärtige Prüfaufzeichnung wird.
  • Unter Rückkehr zum Schritt 40 des Prüfens, ob die gegenwärtige Aufzeichnung eine Nächste-Rückgängig-Aufzeichnung ist, erhält, wenn sie es ist, dann der gespeicherte Aufzeichnungsparameter bei 47 den Wert der eindeutigen Aufzeichnungs-ID, die in der Nächste-Rückgängig-Aufzeichnung enthalten ist, und erhält der Ignorieren-Parameter einen Wahr-Wert. Die nächste Aufzeichnung wird dann bei 32 von dem Protokoll gelesen, und dann wird bestimmt, dass der Ignorieren- Wert wahr ist, wenn er getestet ist 38.
  • Der Wert der Aufzeichnungs-ID der gegenwärtigen Prüfaufzeichnung wird bei 50 mit dem Wert der Gespeichert-Aufzeichnungs-ID verglichen. Wenn die Werte nicht gleich sind, dann wird die nächste Prüfaufzeichnung bei 32 von dem Protokoll gelesen und eine gegenwärtige Prüfaufzeichnung verarbeitet. Andererseits wird, wenn der Wert der Aufzeichnungs-ID der gegenwärtigen Aufzeichnung gleich mit dem Wert der Gespeichert-Aufzeichnungs-ID ist, dann der Wert des Ignorieren-Parameters bei 52 auf falsch geändert, und ein Verarbeiten der gegenwärtigen Prüfaufzeichnung wird fortgesetzt.
  • Somit werden alle Prüfaufzeichnungen in dem Protokoll ignoriert, bis die Prüfaufzeichnung, die einen Aufzeichnungs-ID-Wert hat, der gleich dem Gespeichert- Aufzeichnungs-ID-Wert ist, von dem Protokoll gelesen wird. Das Rückgängigmachen der Operationen, die in dem Protokoll beschrieben sind, wird dann von diesem Punkt fortgesetzt.
  • Unter Bezugnahme zurück zum Schritt 40 des Prüfens, ob der Zählen-Wert gleich N ist, werden, wenn ein Wert des Zählen-Parameters gleich N ist, dann eine Nächste-Rückgängig-Aufzeichnung bei 54 erzeugt, die die eindeutige Aufzeichnungs-ID der gegenwärtigen Prüfaufzeichnung enthält, und der Zählen-Wert auf Null zurückgesetzt. Das Verarbeiten der gegenwärtigen Aufzeichnung wird dann fortgesetzt.
  • Somit wird eine Nächste-Rückgängig-Aufzeichnung erzeugt, nachdem der Prozeß N Prüfaufzeichnungen von dem Protokoll gelesen hat.
  • Wie oben angegeben ist, kann das vorliegende Verfahren verwendet werden, um eine Rückgängig-Verarbeitung zu verringern, wenn die Verwendung von rückwärts verknüpften LSNs unmöglich ist, schwierig ist und/oder irgendeine oder alle der folgenden Bedingungen vorliegt:
  • (a) Es ist unmöglich oder unerwünscht, die Wiederholen-/Rückgängig- Verfahren des/der enthaltenen Ressourcenmanager(s) und/oder das Format der Prüfaufzeichnungen, die sie erzeugen, zu modifizieren, aber die Wiederherstellungsmanagerlogik kann modifiziert werden.
  • (b) Es ist unmöglich oder unerwünscht, das Format der CLRs durch den/die enthaltenen Ressourcenmanager zu modifizieren, und jene CLRs enthalten nicht bereits einen oder gestatten nicht die Inklusion eines Zeiger(s) in/zu der Prüfaufzeichnung, die jener der rückgängig gemachten Operation vorangeht.
  • Die Erfindung wurde nun unter Bezugnahme auf die bevorzugten Ausführungen beschrieben. Alternativen und Substitutionen sind Fachleuten nun deutlich.

Claims (1)

1. Datenverarbeitungssystem, enthaltend eine Mehrzahl von unabhängigen Ressourcenmanagern, die sich Transaktionen und ein gemeinsames Protokoll teilen, wobei eine Transaktion eine oder eine Mehrzahl von begrenzten Aktionen enthält, wobei ein Prozeß von einem Wiederherstellungsmanager ausgeführt wird, um Prüfaufzeichnungen in dem gemeinsamen Protokoll zu verarbeiten, um eine Wiederherstellung von einem Fehler auszuführen, welcher Prozeß eine vorwärtsgeschriebene Protokollierung und ein physikalisches Wiederholen während eines Ressourcenmanagerneustarts verwendet und die Schritte enthält:
bei jedem unabhängigen Ressourcenmanager Erzeugen eines Prüfprotokolls, das Prüfaufzeichnungen enthält, die zum Prüfprotokoll in chronologischer Vorwärtsreihenfolge geschrieben werden, für jede Aktion, die ausgeführt wird, wobei jede Prüfaufzeichnung durch eine Aufzeichnungs-ID identifiziert ist, die eine monoton zunehmende Sequenznummer (SN), die von dem Ressourcenmanager in chronologischer Vorwärtsreihenfolge erzeugt wird, und eine Ressourcenmanager-ID enthält,
Zusammenlegen der Prüfaufzeichnungen von jedem unabhängigen Ressourcenmanager in das gemeinsame Protokoll,
im Falle eines Versagens Ausführen eines Wiederherstellungsprozesses, der von einem Wiederherstellungsmanager ausgeführt wird, enthaltend die Schritte des Initialisierens eines Zählwertes, der jedesmal inkrementiert wird, wenn eine Kompensationsaktion ausgeführt wird, und eines Gespeichert-Aufzeichnungs-ID-Wertes, des auf falsch Setzens, eines Ignorieren- Wertes und des rückwärts Abtastens der Prüfaufzeichnungen einer gescheiterten Transaktion von dem gemeinsamen Protokoll, und Schreiben des gemeinsamen Protokolls in Vorwärtsreihenfolge unter Kompensation von Protokolleinträgen entsprechend jeder Prüfaufzeichnung, die in rück wärtiger Reihenfolge abgetastet wurde, und für eine gegenwärtige Prüfaufzeichnung, die von dem Protokoll abgetastet wurde:
(a) Wenn die gegenwärtige Prüfaufzeichnung nicht eine Nächste- Rückgängig-Aufzeichnung ist, der Zählwert weniger als ein vorgegebener ganzzahliger Wert N ist, und der Ignorieren-Wert falsch ist:
Ausführen einer Kompensationsaktion für die Aktion, die in der gegenwärtigen Prüfaufzeichnung beschrieben ist,
Erzeugen einer Kompensationsprotokollaufzeichnung für die Kompensationsaktion, einschließlich einer Aufzeichnungs-ID, die eine monoton ansteigende Sequenznummer, die von dem Wiederherstellungsprozessor in Vorwärtsreihenfolge erzeugt wird, und Daten enthält, die die Kompensationsaktion beschreiben,
Schreiben der Kompensationsprotokollaufzeichnung zum gemeinsamen Protokoll in Vorwärtsreihenfolge,
Inkrementieren des Zählwertes, und
Lesen der nächsten Prüfaufzeichnung von dem Protokoll in rückwärtiger Reihenfolge und Verarbeiten der nächsten Prüfaufzeichnung als eine gegenwärtige Prüfaufzeichnung,
(b) Wenn die gegenwärtige Prüfaufzeichnung nicht eine Nächste- Rückgängig-Aufzeichnung ist, der Zählwert gleich N ist, und der Ignorieren- Wert falsch ist:
Erzeugen einer Nächste-Rückgängig-Aufzeichnung, die eine Aufzeichnungs-ID, die eine monoton zunehmende Sequenznummer enthält, die von dem Wiederherstellungsprozessor in Vorwärtsreihenfolge erzeugt wird, und eine Nächste-Rückgängig-Aufzeichnungs-ID enthält, die gleich der Aufzeichnungs-ID der gegenwärtigen Prüfaufzeichnung ist,
Schreiben der Nächste-Rückgängig-Aufzeichnung zum Protokoll in Vorwärtsreihenfolge,
Initialisieren des Zählwertes,
Ausführen einer Kompensationsaktion für die Aktion, die in der gegenwärtigen Prüfaufzeichnung beschrieben ist,
Erzeugen einer Kompensationsprotokollaufzeichnung für die Kompensationsaktion, die eine Aufzeichnungs-ID, die eine monoton zunehmende Se quenznummer enthält, die von dem Wiederherstellungsprozessor in Vorwärtsreihenfolge erzeugt wird, und Daten enthält, die die Kompensationsaktion beschreiben,
Schreiben der Kompensationsprotokollaufzeichnung zum gemeinsamen Protokoll in Vorwärtsreihenfolge,
Inkrementieren des Zählwertes, und
Lesen der nächsten Prüfaufzeichnung von dem Protokoll in umgekehrter Reihenfolge und Verarbeiten der nächsten Prüfaufzeichnung als eine gegenwärtige Prüfaufzeichnung,
(c) Wenn die gegenwärtige Prüfaufzeichnung eine Nächste-Rückgängig-Aufzeichnung ist:
Angeben des Wertes der Nächste-Rückgängig-Aufzeichnungs-ID, die in der Nächste-Rückgängig-Aufzeichnung enthalten ist, als der Gespeichert- Aufzeichnungs-ID-Wert,
Ändern des Ignorieren-Wertes auf wahr, und
Lesen einer zweiten Prüfaufzeichnung, die der gegenwärtigen Prüfaufzeichnung vorangeht, von dem gemeinsamen Protokoll in umgekehrter Reihenfolge, und
(i) wenn die Aufzeichnungs-ID der zweiten Prüfaufzeichnung nicht gleich der Gespeichert-Aufzeichnungs-ID ist:
Nichtausführen einer Aktion, die die Aktion kompensiert, die in der zweiten Prüfaufzeichnung beschrieben ist, und
Lesen einer dritten Prüfaufzeichnung, die der zweiten Prüfaufzeichnung vorangeht, von dem gemeinsamen Protokoll in umgekehrter Reihenfolge, und
Verarbeiten der dritten Prüfaufzeichnung als eine gegenwärtige Prüfaufzeichnung, oder
(ii) wenn die Aufzeichnungs-ID der zweiten Prüfaufzeichnung gleich der Gespeichert-Aufzeichnungs-ID ist:
Ändern des Ignorieren-Wertes auf falsch, und
Verarbeiten der zweiten Prüfaufzeichnung als eine gegenwärtige Prüfaufzeichnung.
DE69610785T 1995-01-23 1996-01-15 Verbesserter Wiederherstellungsprozess Expired - Fee Related DE69610785T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/377,381 US5832203A (en) 1995-01-23 1995-01-23 Method for providing recovery from a failure in a system utilizing distributed audit

Publications (2)

Publication Number Publication Date
DE69610785D1 DE69610785D1 (de) 2000-12-07
DE69610785T2 true DE69610785T2 (de) 2001-03-29

Family

ID=23488893

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69610785T Expired - Fee Related DE69610785T2 (de) 1995-01-23 1996-01-15 Verbesserter Wiederherstellungsprozess

Country Status (4)

Country Link
US (1) US5832203A (de)
EP (1) EP0725347B1 (de)
CA (1) CA2167794A1 (de)
DE (1) DE69610785T2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4094752B2 (ja) * 1998-11-27 2008-06-04 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US6584477B1 (en) * 1999-02-04 2003-06-24 Hewlett Packard Development Company, L.P. High speed system and method for replicating a large database at a remote location
US6122630A (en) * 1999-06-08 2000-09-19 Iti, Inc. Bidirectional database replication scheme for controlling ping-ponging
US6874104B1 (en) 1999-06-11 2005-03-29 International Business Machines Corporation Assigning recoverable unique sequence numbers in a transaction processing system
US7177866B2 (en) * 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US6662196B2 (en) 2001-03-16 2003-12-09 Iti, Inc. Collision avoidance in bidirectional database replication
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US20080300928A1 (en) * 2001-03-30 2008-12-04 Racca Felix G Publishing and deploying business processes
US6785696B2 (en) 2001-06-01 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for replication of distributed databases that span multiple primary nodes
US20040100900A1 (en) * 2002-11-25 2004-05-27 Fulcrum Microsystems, Inc. Message transfer system
WO2005050404A2 (en) 2003-11-17 2005-06-02 Virginia Tech Intellectual Properties, Inc. Transparent checkpointing and process migration in a distributed system
US20060218204A1 (en) * 2005-03-25 2006-09-28 International Business Machines Corporation Log stream validation in log shipping data replication systems
US7761732B2 (en) * 2005-12-07 2010-07-20 International Business Machines Corporation Data protection in storage systems
US8856083B2 (en) * 2006-06-09 2014-10-07 Oracle International Corporation Framework to optimize delete all row operations on database objects to improve throughput, query ability and flashback
JP2011141701A (ja) * 2010-01-06 2011-07-21 Fujitsu Ltd データ編集方法、データ編集プログラムおよびデータ編集装置
CN111342994A (zh) * 2020-02-03 2020-06-26 杭州迪普科技股份有限公司 网络管理系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4878167A (en) * 1986-06-30 1989-10-31 International Business Machines Corporation Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
JPS63307551A (ja) * 1987-06-08 1988-12-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 先書きロギング型のトランザクシヨン向けシステム中のロールバツク方法
DE69126066T2 (de) * 1990-06-29 1997-09-25 Oracle Corp Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
DE69126067T2 (de) * 1990-06-29 1997-10-02 Oracle Corp Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung
US5333303A (en) * 1991-03-28 1994-07-26 International Business Machines Corporation Method for providing data availability in a transaction-oriented system during restart after a failure
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
US5499367A (en) * 1991-11-15 1996-03-12 Oracle Corporation System for database integrity with multiple logs assigned to client subsets
US5278982A (en) * 1991-12-23 1994-01-11 International Business Machines Corporation Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures
US5561795A (en) * 1994-05-13 1996-10-01 Unisys Corporation Method and apparatus for audit trail logging and data base recovery

Also Published As

Publication number Publication date
CA2167794A1 (en) 1996-07-24
EP0725347A1 (de) 1996-08-07
EP0725347B1 (de) 2000-11-02
US5832203A (en) 1998-11-03
DE69610785D1 (de) 2000-12-07

Similar Documents

Publication Publication Date Title
DE69610785T2 (de) Verbesserter Wiederherstellungsprozess
DE69126067T2 (de) Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung
DE69804099T2 (de) Initialisierung von unterteilten datenobjekten
DE3784190T2 (de) Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung.
DE602004006404T2 (de) Flashback-datenbank
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69126066T2 (de) Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
DE602005001041T2 (de) Speicherauszugssystem
DE3786956T2 (de) Verwaltung von registrierungsdaten in einem transaktionsorientierten System.
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE69025507T2 (de) Gerät zur Sicherung und Wiederherstellung für Digitalrechner
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE69428392T2 (de) Verfahren und Anordnung zur Klassifizierung und Erfassung von den Protokolldaten
DE60025043T2 (de) Vorrichtung und verfahren mit verwendung von anwendungabhängigkeitsinformation für eine sicherungskopieherstellung in einem computersystem
DE69804209T2 (de) Verfahren um die speicherkapazität von level fünf raid plattenanordnung zu vergrössern und expandierte matrize hergestellt durch solch ein verfahren
DE69622238T2 (de) Verfahren und Vorrichtung zur Sicherungsablaufplanung mit verstellbarem Niveau
DE19740525C1 (de) Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
DE69714344T2 (de) Vorrichtung und Verfahren für die Verfügbarkeit und Wiedergewinnung von Dateien unter Verwendung von Sammlungen von Kopierspeicher
DE69131545T2 (de) Verfahren für den Zugriff auf gemeinsame Daten
DE60019173T2 (de) Verfahren und system zum hochparallelen protokollierungs- und wiederherstellungsbetrieb in hauptspeicher-transaktionsverarbeitungssystemen
DE4220198C2 (de) Transaktionsverarbeitungsverfahren für einen digitalen Computer und Transaktionsverarbeitungssystem
DE69031538T2 (de) System und Verfahren zur Sammlung von Softwareanwendungsereignissen
DE68927705T2 (de) Verfahren zum Entfernen unbestätigter Änderungen an gespeicherten Daten durch ein Datenbankverwaltungssystem
DE69913375T2 (de) Anzeige eines fehlers in einem transaktionsverarbeitungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee