DE102007005207A1 - Software-Duplikation - Google Patents

Software-Duplikation Download PDF

Info

Publication number
DE102007005207A1
DE102007005207A1 DE102007005207A DE102007005207A DE102007005207A1 DE 102007005207 A1 DE102007005207 A1 DE 102007005207A1 DE 102007005207 A DE102007005207 A DE 102007005207A DE 102007005207 A DE102007005207 A DE 102007005207A DE 102007005207 A1 DE102007005207 A1 DE 102007005207A1
Authority
DE
Germany
Prior art keywords
memory
processing system
state
area
memory area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102007005207A
Other languages
English (en)
Inventor
Walter P. Corrales Christmas
James E. Boulder Rhodes
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.)
Avaya Technology LLC
Original Assignee
Avaya Technology LLC
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 Avaya Technology LLC filed Critical Avaya Technology LLC
Publication of DE102007005207A1 publication Critical patent/DE102007005207A1/de
Ceased 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Bei einer Ausführungsform ist die vorliegende Erfindung auf einen Software-Duplikationsprozess ausgerichtet, bei welchem Schreibfehler (204) genutzt werden, um Speicherbereiche zu verfolgen, die durch den aktiven Prozessor geändert worden sind.

Description

  • Rückverweisung auf verwandte Anmeldung
  • Die vorliegende Anmeldung beansprucht die Vorteile der provisorischen US-Anmeldung 60/764,718, eingereicht am 1. Februar 2006 mit dem gleichen Titel für Rhodes et al., welche hier durch diese Bezugnahme einbezogen wird.
  • Gebiet der Erfindung
  • Die Erfindung betrifft allgemein replizierte, hochgradig zuverlässige Verarbeitungssysteme und insbesondere Systeme mit dupliziertem Speicher.
  • Hintergrund der Erfindung
  • Hochgradig zuverlässige Verarbeitungssysteme erfordern oft eine Duplikation des Prozessors (einschließlich des Prozessorspeichers), sodass dieser keinen singulären Ausfallpunkt in dem System darstellt. Üblicherweise ist der eine Prozessor aktiv und hält das System am Laufen, und der andere Prozessor wird im "Reserve"-Modus gehalten, in welchem er kontinuierlich mit Kopien von Speicher-Schreibtransaktionen, die in dem aktiven Prozessor erfolgen, aktualisiert wird, wobei dieser Aktualisierungsprozess als "Schattenverarbeitung" bezeichnet wird. Wenn in dem aktiven Prozessor ein Fehler auftritt, schaltet das System auf den Reserveprozessor um und fährt mit den Verarbeitungsaufgaben des Systems praktisch störungsfrei fort, da es den Zustand des aktiven Prozessors zum Zeitpunkt des Ausfalls kennt.
  • Bei einem üblicherweise genutzten Schattenverarbeitungs verfahren werden alle Daten aus dem aktiven Prozessor in den Speicher des Reserveprozessors kopiert, selbst wenn nur ein Teil derselben tatsächlich benötigt wird, damit der Reserveprozessor den Betrieb des Systems im Falle eines Fehlers in dem aktiven Prozessor weiterführen kann. Dieses Verfahren der Schattenverarbeitung ist für hochleistungsfähige Verarbeitungssysteme zu einem ernsthaften Engpass geworden. Es reduziert die Gesamtleistungsfähigkeit des Systems, da es üblicherweise länger dauert, Daten von dem aktiven Prozessor zu dem Reserveprozessor zu transferieren, als es dauert, einen normalen Speicher-Schreibvorgang in dem aktiven Prozessor auszuführen.
  • Ein bekanntes Verfahren der Schattenverarbeitung wird als "hardwareunterstützte Duplikation" oder "Hardware-Duplikation" bezeichnet. Bei der Hardware-Duplikation steuert Hardware die Duplikationsvorgänge, die zwischen dem primären Prozessor und dem Reserveprozessor erfolgen. Der Applikationsprozess bemerkt seinerseits nur Zugriffe auf einen gemeinsam genutzten Speicher. Ein Duplikationsmanager bildet den Speicher auf einem Eingabe-/Ausgaberaum ab, und Hardware wickelt die Übertragung der schattenverarbeiteten Informationen zu dem Reserveprozessor ab. Obgleich es möglich ist, dass die Hardware-Duplikation einen minimalen Einfluss auf Softwareprozesse hat, ein Leistungsverhalten des Systems auf höherem Niveau bietet und sich minimal auf die Kosten der Software-Entwicklung auswirkt, sind dafür oft anwendungsspezifische Hardware-Baugruppen, eine kostspielige Hardware-Entwicklung und Aufrechterhaltung der Kompatibilität der Hardware erforderlich und es treten Einschränkungen hinsichtlich der Abbildung des Speichers auf den Eingangs-/Ausgangsbus auf.
  • Ein weiteres bekanntes Verfahren der Schattenverarbeitung wird als "transaktionsbasierte Duplikation" oder "Software-Duplikation" bezeichnet. Bei der Software-Duplikation sendet der aktive Prozossor Informationen dazu, welche Funktionen er ausführt, an den Reserveprozessor, und der Reserveprozessor dupliziert diese Funktionen und aktualisiert bei dem Prozess seinen Speicherzustand derart, dass er demjenigen des aktiven Prozessors entspricht.
  • Obgleich das Verfahren sehr geringen Einfluss auf die Hardware hat und nicht weiter von dem Server abhängig ist, als dass ein Transaktionskanal von dem aktiven Prozessor zu dem Reserveprozessor benötigt wird, liegt die Komplexität des Verfahrens in der Software. Der Grund für die Komplexität liegt darin, dass der gesamte Applikationscode in der Lage sein muss, die Duplikationsfunktion auszuführen und diese aktiv verwalten muss. Die Software-Duplikation kann beträchtliche Ressourcen der Zentraleinheit oder CPU erfordern, um alle Fassetten der Duplikationsverarbeitung auszuführen.
  • Was im Fachgebiet fehlt, ist ein Schattenverarbeitungsverfahren, das eine dynamische Verfolgung im Hinblick darauf ermöglicht, welche Teile des Speichers durch die "beschatteten", d. h. einer Schattenverarbeitung unterworfenen, Anwendungs- oder Applikationsprozesse in dem aktiven Verarbeitungssystem während eines ausgewählten Intervalls geändert worden sind.
  • Zusammenfassung der Erfindung
  • Diesen und anderen Erfordernissen wird durch die verschiedenen Ausführungsformen und Konfigurationen der vorliegenden Erfindung entsprochen. Die Erfindung ist allgemein auf ein Verfahren ausgerichtet, welches den Zustand einer Mehrzahl von ausgewählten oder designierten Speicherbereichen (z. B. Speicherstellen oder -blöcken wie etwa Seiten) kontrolliert, um Schreibvorgänge, die durch einen Applikationsprozess erfolgen, welcher einer Schatten verarbeitung unterworfen ist, zu verfolgen. Wie verständlich sein wird, bezeichnet eine "Seite" ein Speichersegment mit ausgewählter Größe, die typischerweise gleich der elementaren Größe des Hostprozessors ist. Die Größe einer Seite beträgt üblicherweise etwa 4.000 Bytes. Typischerweise verwaltet der Mikroprozessor die Speichersegmente einzeln und simuliert größere Speichereinrichtungen durch Umlagerung (Swapping) von Seiten mit Code und Daten in physische Speicher, wenn dies erforderlich ist (bei Bedarf).
  • Bei einer Konfiguration werden die Zustände aller Seiten, die dem Applikationsprozess entsprechen (oder von diesem genutzt werden), anfänglich auf einen "gesperrten" Zustand, beispielsweise einen Nur-Lese-Zustand gesetzt. Wenn der Applikationsprozess versucht, Daten auf eine der gesperrten Seiten zu schreiben, erkennt der Prozessor einen Schreibfehler. Die Fehler werden genutzt, um diejenigen Speicherbereiche zu identifizieren und zu verfolgen, die seit der letzten Synchronisation zwischen dem primären Verarbeitungssystem und dem Reserveverarbeitungssystem geändert worden sind. In Reaktion auf den Fehler wird der Status der speziellen Speicherseite auf einen Zustand "entsperrt", beispielsweise einen Lese/Schreib-Zustand geändert. Dem Applikationsprozess wird dann gestattet, die Daten auf die spezielle Speicherseite zu schreiben. Der Prozess wird Speicherseite für Speicherseite wiederholt, während der Applikationsprozess Daten oder Informationen verarbeitet.
  • In ausgewählten Intervallen werden die Informationen oder Daten bezüglich der beschriebenen oder geänderten Speicherseiten gesammelt und an das Reserveverarbeitungssystem weitergeleitet, welches dann die Änderungen an entsprechenden Stellen in seinem Speicher repliziert. Wie zu erkennen sein wird, enthält jede Speicherstelle in dem Speicher des Reserveverarbeitungssystems ein Spiegelbild der zuvor geänderter Daten in dem entsprechenden Speicherbereich des primären Verarbeitungssystems. Für jeden Speicherbereich, der sich immer noch in dem "gesperrten" Zustand befindet, erfolgt normalerweise keine Schattenverarbeitung in dem Reserveverarbeitungssystem, da er sich seit der letzten Datensynchronisation zwischen den beiden Verarbeitungssystemen nicht geändert hat.
  • Bei dieser Konfiguration werden gemäß der Erfindung die Eigenschaften eines Prozessors genutzt, die normalerweise genutzt werden, um Schutzbereiche für einen Speicher festzulegen, um einen Bereich des Speichers auf einen ersten Zustand (z. B. Nur-Lesen) zu setzen und zu veranlassen, dass der Prozessor der Schattenverarbeitungslogik eine versuchte Modifikation des Speicherbereichs meldet. Die Meldung des Prozessors stellt den Auslöser für die Schattenverarbeitung oder Replizierung des Speicherbereichs auf das Reserveverarbeitungssystem dar. Anders ausgedrückt nutzt die Erfindung genau den Mechanismus, der zur Verhinderung von Änderungen an ausgewählten Speicherbereichen ausgelegt ist, um das Gegenteil zu tun, nämlich eine Meldung bezüglich von Änderungen an Speicherbereichen zu erhalten und solche Änderungen zu gestatten. Der Schattenverarbeitungsmechanismus nutzt somit nicht nur die integrierte Speicherverwaltungsfähigkeit des Prozessors, um die Unterstützung zum Erkennen und Duplizieren von Schreibvorgängen durch das aktive Verarbeitungssystem zu bieten, sondern ist auch im Hinblick auf Operationen der Applikation transparent.
  • Die Erfindung stellt eine Form der Software-Duplikation dar und vermag ein neuartiges Verfahren zum Transferieren von Prozessordaten von einem aktiven Prozessor zu einem oder mehreren Reserveprozessoren in einer Umgebung mit duplizierten Prozessoren bereitzustellen, welches eine Kontrolle darüber ermöglicht, welche Daten transferiert werden und welche nicht. Dadurch kann die Gesamtanzahl von Schreibvorgängen in dem System reduziert werden, die auf den Reserveprozessor übertragen werden müssen, und daher ergibt sich eine unmittelbare Verbesserung des Leistungsverhaltens an dem aktiven Prozessor, indem ermöglicht wird, dynamische Änderungen an der Angabe dazu vorzunehmen, welche Speicherbereiche schattenverarbeitet werden, während gleichzeitig die notwendige Bandbreite für die Ausführung der Schattenverarbeitung vermindert wird. Im Gegensatz zur hardwareunterstützten Duplikation, bei welcher das Verarbeitungssystem kleine Transaktionen (z. B. ein Wort) beinhaltet, kann durch die Seitengröße der Software-Duplikation die Möglichkeit einer stärkeren Beeinträchtigung durch unrichtige Codierungspraktiken und große Datenmanipulation bestehen. Der Mechanismus kann außerdem das Erfassen der Häufigkeit von Schreibvorgängen in Speicherbereichen ermöglichen, wodurch teilweise oder vollständige Codepunkte oder Programmeinstiegsmöglichkeiten, so genannte "Hooks", die in den Code der schattenverarbeiteten Applikationsprozesse eingebettet sind, welche die Leistungsfähigkeit der Software-Duplikation negativ beeinflussen, entfernt werden.
  • Eine dynamische Steuerung der Schattenverarbeitung kann möglich sein. Die dynamische Steuerung der Schattenverarbeitung kann wiederum ermöglichen, dass das System solche Merkmale wie beispielsweise "sanfte" Umschaltungen unterstützt. Sanfte Umschaltvorgänge erfolgen, wenn der aktive Prozessor und der Reserveprozessor identische Speicherbilder aufweisen und der Reserveprozessor beginnt, Anweisungen auszuführen, unmittelbar nachdem der aktive Prozessor die Steuerung dem neu aktivierten (zuvor Reserve-) Prozessor überlassen hat. Dadurch kann eine nahtlose Übertragung der Systemsteuerung von einem Prozessor auf einen anderen möglich sein.
  • Wenn ein Bereich des Speichers einer Entität (z. B. einem Programm) zugeordnet wird (z. B. durch das Betriebssystem des aktiven Prozessors), kann festgestellt werden, ob der Speicherbereich, welcher der Entität zugeordnet worden ist, schattenverarbeitet werden soll. Diese Feststellung wird bewirken, dass der Speicherbereich anfangs in den gesperrten Zustand (falls er schattenverarbeitet werden soll) oder in den entsperrten Zustand (falls er nicht schattenverarbeitet werden soll) gesetzt wird.
  • Gemäß der Erfindung kann die gesamte Software, außer ein Duplikationssystem (welches die Zustände der Speicherbereiche steuert) von der Kenntnis abgeschirmt werden, wie die Schattenverarbeitung erfolgt. Die Echtzeit-Anforderungen an den aktiven Prozessor können somit reduziert werden, welcher ansonsten transaktionsbasierte Duplikationsnachrichten für alle Funktionen, die eine Duplikation erfordern, generieren müsste. Darüber hinaus werden Schattenverarbeitungsentscheidungen vor den Entwicklern von Applikationsprozessen "versteckt", da mittels des Zustands der Speicherbereiche verfolgt wird, welche Bereiche des Speichers schattenverarbeitet werden und welche nicht. Damit verbessert sich die Markteinführungszeit durch Reduzierung der Systemcode-Entwicklung, da der Code des Applikationsprozesses nicht im Hinblick darauf geschrieben zu werden braucht, dass er Duplikationstransaktionen ausführen und diese korrekt abwickeln können muss. Darüber hinaus kann es bei der Abwicklung von Schattenverarbeitungsentscheidungen unter Nutzung des Zustands der Speicherbereiche zu Echtzeit-Einsparungen kommen, da kein Applikationsprozess-Code ausgeführt zu werden braucht, um transaktionsbasierte Datenduplikationsnachrichten zu generieren und abzuwickeln.
  • Die Erfindung kann eine End-zu-End-TCP(Transport Control Protocol)-Verbindung nutzen, um eine Übermittlung von Duplikationsinformationen zwischen dem aktiven oder primären Verarbeitungssystem und dem Reserveverarbeitungssystem auszuführen. Mit dieser Art von Verbindung kann ein routingfähiger, reproduzierbarer und remotefähiger Standard bereitgestellt werden. Die Verbindung kann ferner durch Nutzung verschiedener Verschlüsselungsprotokolle, beispielsweise dem Advanced Encryption Standard oder AES, welche zu der TCP/IP-Protokollfamilie kompatibel sind, Sicherheit bieten.
  • Diese und andere Vorteile werden anhand der Offenbarung der vorliegend enthaltenen Erfindung(en) offensichtlich werden.
  • Die Ausdrücke "zumindest eines", "eines oder mehrere" und "und/oder" sind offene Ausdrücke, die in ihrer Anwendung sowohl konjunktiv als auch disjunktiv zu verstehen sind. Beispielsweise bedeutet jeder der Ausdrücke "zumindest eines der Elemente A, B und C", "zumindest eines der Elemente A, B oder C", "eines oder mehrere der Elemente A, B und C, "eines oder mehrere der Elemente A, B oder C" und "A, B und/oder C" A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen.
  • Die vorstehend beschriebenen Ausführungsformen und Konfigurationen sind weder vollständig noch erschöpfend. Wie zu erkennen sein wird, sind andere Ausführungsformen der Erfindung möglich, bei denen allein oder in Kombination eines oder mehrere der vorstehend angegebenen oder nachstehend im Detail beschriebenen Merkmale zur Anwendung kommen.
  • Kurze Beschreibung der Zeichnungen
  • 1 stellt ein Blockdiagramm von duplizierten Verarbeitungssystemen entsprechend einer Ausführungsform der vorliegenden Erfindung dar;
  • 2 ist ein Signalflussdiagramm, das die verschiedenen Signale darstellt, die zwischen den Logikbauelementen entsprechend einer Ausführungsform der vorliegenden Erfindung ausgetauscht werden;
  • 3 stellt eine Mehrzahl von Speicherbereichen mit unterschiedlichen Zuständen entsprechend einer Ausführungsform der vorliegenden Erfindung dar; und
  • 4 ist ein Blockdiagramm eines Satzes von Speicherbereichen entsprechend einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • 1 zeigt ein System 100 mit duplizierter Verarbeitung, welches ein erstes, ein zweites, ein drittes und ein n-tes Verarbeitungssystem 104a–n umfasst, die durch eine Mehrzahl von Duplikationsverbindungen 106a–m verbunden sind. Das System 100 arbeitet normalerweise in einer Konfiguration aktiv/Reserve, wobei das erste Verarbeitungssystem 104a aktiv ist und sich das zweite ... n-te Verarbeitungssystem in Reserve befindet. Obgleich mehrere Reserveverarbeitungssysteme gezeigt sind, sollte verstanden werden, dass auch nur ein Reserveverarbeitungssystem verwendet werden kann, wobei die Anzahl von dem speziellen Applikationsprozess abhängt. Wie zu erkennen sein wird, führt das aktive Verarbeitungssystem die Verarbeitungsaufgaben des Systems aus, und das inaktive Verarbeitungssystem bildet eine Reserve, um zu dem aktiven Verarbeitungssystem zu werden, falls das momentan aktive Verarbeitungssystem ausfallen sollte.
  • Jedes Verarbeitungssystem 104 umfasst einen Speicher 108 und einen Prozessor 112. Als Speicher 108 wird der adressierbare Speicherplatz sowie andere interne Speicher, die zur Ausführung von Anweisungen genutzt werden, bezeichnet. Er stellt normalerweise eine Kombination aus Nur-Lese- und beschreibbarem Speicher dar. Der Prozessor 108 stellt eine Funktionseinheit dar, welche Anweisungen interpretiert und ausführt. Er umfasst normalerweise eine oder mehrere Anweisungssteuereinheiten sowie eine Arithmetik- und Logik-Einheit. Vorzugsweise ist der Prozessor einstandardmäßiger Mikroprozessor, wie etwa ein PentiumTM-Mikroprozessor.
  • Der Speicher 108 umfasst ferner eine Mehrzahl von Applikationsprozessen 116a–y zum Ausführen spezifizierter Sätze von Operationen in Form von Transaktionen sowie eine entsprechende Mehrzahl primärer Sätze von Speicherbereichen 120a–y, um die Ausgaben der Operationen zu empfangen und zu speichern, ein Betriebssystem 124 zur Steuerung der Ausführung von Programmen und zum Bereitstellen solcher Dienste wie Ressourcenzuweisung, Terminierung, Eingabe/Ausgabe-Steuerung und Datenverwaltung, ein Duplikationssystem 128 zum Steuern der Zustände der Speicherbereiche 120a–y und zur Steuerung von Schattenverarbeitungsvorgängen, sekundäre Sätze von Speicherbereichen 132a–y (welche die primären Sätze von Speicherbereichen 120a–y duplizieren können und diesen entsprechen können) zum Empfangen und Speichern von Daten aus einem entsprechenden Speicherbereich 120a–y, eine Vergleichseinrichtung 126 zum Vergleichen der Daten oder Informationen in den primären Sätzen von Speicherbereichen zu einem ersten ausgewählten Zeitpunkt mit den Daten oder Informationen in den primären Sätzen von Speicherbereichen zu einem zweiten (späteren) ausgewählten Zeitpunkt, um Unterschiede oder Änderungen an den Daten festzustellen, und eine Schnittstelle 150 zum Lesen von Sätzen geänderter Daten aus der Vergleichseinrichtung 126 zum Zusammensetzen und Paketieren der geänderten Daten zu einem seriellen Datenstrom und zum Übermitteln der paketierten Daten, mit eingeschlossenen geeigneten Fehlerprüfdaten (z. B. zyklische Redundanzprüfung oder CRC (Cyclic Redundancy Check) und dergleichen), und zwar gleichzeitig oder zu unterschiedlichen Zeitpunkten, zu jedem der Reserveverarbeitungssysteme. Bei einer Konfiguration umfasst der Speicher einen gemeinsam genutzten Speicherraum (welcher Teil des zweiten Satzes von Speicherbereichen sein kann), welcher Daten bezüglich jedes Applikationsprozesses, der ein Client für das Duplikationssystem 128 ist, Daten bezüglich jedes Speicherbereichs, der dupliziert wird, sowie Warteschlangenköpfe und Einträge von Schattenverarbeitungspuffern zum Halten der Daten in jedem geänderten Speicherbereich umfasst. Die sekundären Sätze von Speicherbereichen 132a–y können als Puffer implementiert sein und brauchen keine Eins-zu-eins-Entsprechung zu den primären Sätzen von Speicherbereichen zu haben.
  • Wie zu erkennen sein wird, beinhaltet die Software-Duplikation zwei Hauptaktivitäten, nämlich die Schattenverarbeitung und die Auffrischung von Daten. Eine Auffrischung stellt den Prozess des Kopierens aller duplizierten Speicherseiten von dem aktiven Verarbeitungssystem in das Reserveverarbeitungssystem dar, um den Speicher des Reserveverarbeitungssystems in Synchronisation mit dem Speicher des aktiven Verarbeitungssystems zu bringen. Eine Auffrischung erfolgt, bevor eine Schattenverarbeitung der Daten beginnt. Dies geschieht, um sicherzustellen, dass alle Daten in dem Reserveverarbeitungssystem vollständig synchron mit dem aktiven Verarbeitungssystem sind. Vor der Auffrischung sind die beiden Systeme (das aktive und das Reserve-) nicht synchronisiert, und der gesamte Speicher in dem aktiven Verarbeitungssystem befindet sich im Lese/Schreib-Zustand. Alle Daten in dem Reserveverarbeitungssystem werden als ungültig betrachtet. Bei einer Konfiguration wird die Auffrischung initiiert, indem für jedes Speichersegment, das dupliziert werden soll, nacheinander der Nur-Lese-Zustand markiert wird und erzwungen wird, dass alle Seiten dieses Segments auf das Reserveverarbeitungssystem dupliziert werden. Wenn ein jeweiliges Segment dupliziert ist, beginnt es mit der normalen Erkennung von Schreibvorgängen durch die Applikation und der Schattenverarbeitung dieser Daten auf das Reservesystem. Somit kann die Auffrischung erfolgen, während die Applikation Daten verarbeitet und kann auch segmentweise der Reihe nach erfolgen, sodass die Verarbeitung in dem aktiven Verarbeitungssystem nicht beeinträchtigt wird. Das Reservesystem wird als synchron betrachtet, wenn alle Segmente des Speichers in dem aktiven System aufgefrischt worden sind und einer Schattenverarbeitung zu dem Reserveverarbeitungssystem unterworfen sind.
  • Die Schattenverarbeitung der Daten stellt den fortlaufenden Prozess des Synchronhaltens des aktiven Verarbeitungssystems und des Reserveverarbeitungssystems durch Senden neu geänderter Speicherseiten an das Reserveverarbeitungssystem, wenn Änderungen auftreten, dar. Der Eintritt in diesen Modus erfolgt, nachdem der Auffrischungsmodus ausgeführt worden ist und für alle Sätze von primären Speicherbereichen in dem Reserveverarbeitungssystem angenommen wird, dass diese einen gültigen Zustand aufweisen.
  • 3 stellt eine spezielle Konfiguration der Erfindung dar. In der Konfiguration entsprechen die Speicherbereiche Speicherseiten. Wie erwähnt weist der primäre Satz von Speicherseiten verschiedene Zustände auf. Also liegt jede Speicherseite in einem von zwei Binärzuständen vor, entweder dem gesperrten (L – Locked) oder dem ungesperrten (U – Unlocked). In 3 befinden sich die Speicherseiten 300a, b, d, h, i, l und n im gesperrten (oder ungeänderten) Zustand), während sich die Seiten 300c, e, f, g, j, k, m und o im ungesperrten (oder geänderten) Zustand befinden.
  • Bei dieser Konfiguration wird, wenn von dem Duplikationssystem 128 ein Schreibfehler empfangen wird, diejenige Seite, auf welcher der Schreibfehler auftritt, als "schmutzig" markiert. Eine Kopie der "sauberen" Seite (oder der Seite, bevor irgendwelche Änderungen in Reaktion auf den Schreibbefehl erfolgen) wird in einer Duplikationsdatei oder einem der sekundären Sätze von Speicherbereichen 132 gespeichert und als die "saubere" Version markiert. Die Seite wird dann als lesbar/beschreibbar markiert und der Schreibvorgang wird gestattet. Am Ende einer Transaktion werden alle Seiten, die als "schmutzig" markiert sind, erneut als Nur-Lese-Bereiche markiert und mit der "sauberen" Version der entsprechenden Seite, die in einer Duplikationsdatei gespeichert ist, verglichen. Die Unterschiede werden dann in das Reserveverarbeitungssystem geschrieben. Wie zu erkennen sein wird, ist der Auslöser zur Verarbeitung der schmutzigen Seiten und zur Weiterleitung der Unterschiede an das Reserveverarbeitungssystem nicht auf den Abschluss einer Transaktion beschränkt. Andere mögliche Auslöser sind das Vergehen einer ausgewählten Zeitspanne, Kapazitätsgrenzen des Schattenpuffers und/oder des sekundären Satzes von Speicherbereichen, ein Zahlenwert für die Anzahl geänderter Speicherbereiche, eine Programmeinstiegsmöglichkeit (Hook) und Kombinationen dieser.
  • 2 veranschaulicht die Funktionsweise des Daten-Schattenverarbeitungsmechanismus entsprechend einer Ausführungsform der Erfindung. Die Signale aus 2 werden Applikationsprozess für Applikationsprozess parallel übertragen. Bevor die dargestellten Signale von den Komponenten ausgetauscht werden, werden die primären Sätze von Speicherbereichen 120a–y (auf welche die Applikationsprozesse zugreifen und die von dem Reserveverarbeitungssystem schattenverarbeitet oder dupliziert werden sollen) in den gesperrten oder Nur-Lese-Zustand gesetzt. Ferner werden die Applikationsprozesse von dem Duplikationssystem 128 als Clients registriert und erhalten Zugriff auf den für die Duplikation gemeinsam genutzten Speicherbereich, und das Duplikationssystem nutzt Informationen, die in dem Applikationsprozess kompiliert sind, um die Bereiche des Speichers (oder den ausgewählten jeweiligen primären Speicherbereichssatz des Applikationsprozesses) festzustellen, die dupliziert werden, und welches die Charakteristiken jedes Bereichs sind. Wie zu erkennen sein wird, sind für jeden Applikationsprozess üblicherweise Codepunkte definiert oder ausgewählt, welche den Beginn und das Ende einer Transaktion definieren.
  • Was einen ausgewählten Applikationsprozess betrifft, so wird der Prozess initiiert, wenn der Applikationsprozess 116 einen Schreibbefehl 200 an die Schnittstelle des Speichers zum Schreiben in einen ausgewählten Speicherbereich (z. B. auf eine Speicherseite) weiterleitet. Da der ausgewählte Speicherbereich gesperrt ist, führt jeder Versuch, in den Speicherbereich zu schreiben, zu einem Schreibfehler, der von dem Prozessor 112 erkannt wird. Beispielsweise stellt der Fehler bei einer bestimmten Konfiguration ein Segmentierungsverletzungssignal dar, welches den spezifischen Code aufweist, dass die Speicherseite in einer Nur-Lese-Umgebung beschrieben wird. In Reaktion darauf leitet der Prozessor 112 eine Fehlernachricht 204, welche die Art des Fehlers angibt, an das Betriebssystem 124 weiter, und diese enthält eine Speicherkennung, die den betroffenen Speicherbereich identifiziert. Ein Beispiel für eine Speicherkennung ist eine Speicheradresse. Das Betriebssystem 124 leitet dann einen Interruptbefehl 208 an den Applikationsprozess weiter, welcher einen Aufruf 210 zu dem Duplikationssystem 128 ausführt, der das Vorhandensein und die Art eines Fehlers anzeigt und die Speicherseite identifiziert, typischerweise mit Hilfe der Speicheradresse.
  • In Reaktion darauf stellt das Duplikationssystem 128 zunächst die Antworten auf zwei Anfragen fest, nämlich:
    • a) Beruhte der Fehler auf einer Berechtigungsverletzung?
    • b) Lag der Bereich des betroffenen Speichers im Adressbereich eines duplizierten Segments für diesen Applikationsprozess?
  • Wenn die Antwort auf entweder a) oder b) NEIN lautet, beruht der Fehler nicht auf einem Versuch, auf eine gesperrte Seite zu schreiben, und der normale Fehlermechanismus des Applikationsprozesses wird fortgeführt. Wenn die Antwort auf sowohl a) als auch b) JA lautet, protokolliert das Duplikationssystem 128 in dem (nachstehend aufgezeigten) entsprechenden Schattenverarbeitungspuffer des Applikationsprozesses in dem gemeinsam genutzten Speicherraum die Speicheradresse des Speicherbereichs, in welchem der Schreibfehler aufgetreten ist, und leitet eine Lesenachricht 216 an die (nicht gezeigte) Speicherschnittstelle des Speichers weiter, um den (ungeänderten) Inhalt des Speicherbereichs, in dem der Fehler aufgetreten ist, zu lesen. Die Speicherschnittstelle sendet 220 den Inhalt des Speicherbereichs an das Duplikationssystem 128 zurück, welches dann der Schnittstelle den Befehl 224 gibt, den Inhalt in einen geeigneten Speicherbereich in einem jeweiligen sekundären Satz von Speicherbereichen 132a–y zu schreiben.
  • 4 zeigt einen Schattenverarbeitungspuffer oder eine Tabelle 400, die von dem Duplikationssystem 128 unterhalten wird. Jedes Mal, wenn ein Schreibfehler empfangen wird, fügt das Duplikationssystem 128 an die Liste eine Speicher bereichskennung an (welche typischerweise eine Speicheradresse darstellt, die dem Speicherbereich zugeordnet ist, in welchem der Fehler aufgetreten ist) sowie, optional, Attribute des Speicherbereichs. Bei einer weiteren Konfiguration enthält die Tabelle 400 eine Auflistung aller Speicherbereichskennungen, die von einer ausgewählten Applikation genutzt werden. Immer wenn ein Schreibfehler für einen Speicherbereich empfangen wird, wird ein Indikatormerker gesetzt, um zu zeigen, dass der Speicherbereich seit der letzten Datensynchronisation geändert worden ist.
  • Kehren wir zu 2 zurück, so wird das Duplikationssystem 128 danach das Betriebssystem 124 anweisen 228, den Speicherbereich in den ungesperrten Zustand zu setzen, wodurch ein Schreiben in diesem ermöglicht wird. Das Betriebssystem 124 wird in Reaktion darauf die Speicherschnittstelle anweisen 232, den Zustand des Speicherbereichs auf "ungesperrt" zu setzen. Das bedeutet, dass alle weiteren Schreibvorgänge auf die jetzt entsperrte (schmutzige) Seite mit normaler Geschwindigkeit erfolgen werden, bis der Zustand der Seite zurück auf "gesperrt" geändert wird.
  • Nachdem der Schreibbefehl des Applikationsprozesses fehlgeschlagen ist, gibt der Applikationsprozess erneut den Schreibbefehl 236 für den jetzt ungesperrten Speicherbereich aus. Da der Speicherbereich jetzt ungesperrt ist, kann der Applikationsprozess die gewünschten Daten in den Speicherbereich schreiben.
  • Die vorstehenden Schritte werden für den ausgewählten Applikationsprozess Schreibbefehl für Schreibbefehl wiederholt, bis zu einem ausgewählten Zeitpunkt oder dem Eintreten eines ersten Ereignisses, an dem eine Datensynchronisation mit dem schattenverarbeitenden Reserveverarbeitungssystem ausgeführt werden soll. Der ausgewählte Zeitpunkt kann auf einer Reihe von Ereignissen basieren, darunter der Einstellung einer Uhr, einem Zahlenwert für einen ausgewählten Parameter (z. B. eine Anzahl von geänderten Seiten, eine Anzahl von Änderungen und dergleichen), einer verfügbare Kapazität des sekundären Speichers und dergleichen. Bei einer Konfiguration wird der Applikationsprozess, wenn er das Ende einer Transaktion erreicht, eine Funktion in dem Duplikationssystem aufrufen, um alle schmutzigen Seiten zu verarbeiten, und wird den Prozess in einen stabilen Zustand zurückführen. Die Funktion durchläuft in einer Schleife alle in dem Schattenverarbeitungspuffer gespeicherten schmutzigen Seiten.
  • Wenn der ausgewählte Zeitpunkt erreicht ist, gibt das Duplikationssystem 128 einen Befehl 240 "fertig" an den ausgewählten Applikationsprozess aus, um temporär die Ausgabe an den entsprechenden primären Satz von Speicherbereichen auszusetzen, weist das Betriebssystem 124 an, den Zustand der Speicherbereiche in dem entsprechenden primären Satz von Speicherbereichen auf "gesperrt" oder die Seite auf "sauber" zu setzen 244, und weist die Vergleichseinrichtung 126 an, den Inhalt oder die Speicherbilder eines oder mehrerer sekundärer Sätze von Speicherbereichen 132 auszulesen und die Speicherbilder Speicherbereich für Speicherbereich mit den Speicherbildern des entsprechenden primären Satzes von Speicherbereichen 120 zu vergleichen 248, um die Differenz oder die Daten, die sich geändert haben, zu bestimmen. Im gesperrten Zustand befindliche Speicherbereiche werdennormalerweise nicht ausgelesen, da sie sich seit der vorhergehenden Synchronisation nicht geändert haben.
  • Die Vergleichseinrichtung 126 liefert 252 einen Satz von geänderten Daten von jeder Speicherseite an die Schnittstelle 150. Die geänderten Daten bestehen normalerweise in einem Versatz und einem Wert für das momentane Speicherbild des Speicherbereichs. Bei einer bestimmten Konfiguration wird, wenn die Vergleichseinrichtung die Speicherbereiche bearbeitet, das ursprüngliche Bild jedes Speicherbereichs in dem sekundären Satz von Speicherbereichen durch die Daten aus dem momentanen Speicherbild des Speicherbereichs und einer Liste der zwischen dem ursprünglichen und dem geänderten Bild erkannten Unterschiede ersetzt. Bei einer anderen Konfiguration wird der gesamte Inhalt der schmutzigen Seite an das Reserveverarbeitungssystem gesendet, wenn die Anzahl der Unterschiede zwischen der ursprünglichen (ungeänderten) Seite in dem sekundären Satz von Speicherbereichen und der schmutzigen Seite in dem primären Satz von Speicherbereichen einen ausgewählten Schwellwert übersteigt.
  • Nachdem die gesamte Verarbeitung in den sekundären Sätzen von Speicherbereichen durch die Vergleichseinrichtung abgeschlossen ist, werden die Speicherbilder in den Speicherbereichen verschoben; beispielsweise an das Ende einer abgehenden Warteschlange, die von der Schnittstelle 150 unterhalten wird, angekoppelt. Es wird ein neuer Satz von sekundären Speicherbereichen für den Applikationsprozess erhalten, und es wird gestattet, dass der Prozess mit einer weiteren Transaktion fortfährt. Die Schnittstelle 150 setzt die geänderten Informationen und/oder, in Abhängigkeit von der Konfiguration, den vollständigen Inhalt der schmutzigen Seite selbst zu einem seriellen Daten- oder Informationsstrom zusammen und paketiert diesen und übermittelt die paketierten Daten über eine Duplikationsverbindung 106, typischerweise in einem verschlüsselten Kommunikationsvorgang und mit eingeschlossenen geeigneten Fehlerprüfdaten (z. B. zyklische Redundanzprüfung oder CRC, rollende Prüfsumme und dergleichen), an das entsprechende Reserveverarbeitungssystem oder an mehrere Reserveverarbeitungssysteme. Das Reserveverarbeitungssystem vergleicht die Fehlerprüfdaten mit den Fehlerprüfdaten für die gleiche Seite in dem Reserveverarbeitungssystem, nachdem die geänderten Daten auf dieser Seite Anwendung gefunden haben. Wenn der Fehlerprüfmechanismus einen Fehler erkennt – z. B. die rollende Prüfsumme nicht mit dem Wert für die rollende Prüfsumme, die für die gleiche Seite in dem Reserveverarbeitungssystem erzeugt worden ist, nachdem die Unterschiede Anwendung gefunden haben, übereinstimmt, wird angenommen, dass der Speicherbereich, oder die Seite, nicht mehr synchronisiert ist. In diesem Fall kann eine Auffrischung erfolgen, um die Speicherbereiche erneut in Synchronisation zu bringen. Bei einer Konfiguration werden durch das Reserveverarbeitungssystem Aktualisierungen einzelner Seiten angefordert, und ein Rückgriff auf eine vollständige Auffrischung erfolgt nur, wenn in irgendeinem Intervall eine beträchtliche Anzahl von Fehlern vorliegt.
  • Da alle Speicherbereiche in dem primären Satz von Speicherbereichen auf den ersten Zustand zurückgesetzt worden sind, wiederholt das Duplikationssystem 128 danach die Vorgänge 216, 224 und 228 Speicherseite für Speicherseite, bis ein ausgewähltes Ereignis oder ein Auslöser eintritt, welches/welcher bewirkt, dass die Änderungen an den Daten in dem primären Satz von Speicherbereichen erneut an das (die) Reserveprozessorsystem(e) gesendet werden.
  • Bei einer alternativen Ausführungsform speichert das Duplikationssystem 128 die Adressen jedes der geänderten Speicherbereiche und sendet den vollständigen Inhalt jedes geänderten Speicherbereichs an das Reserveverarbeitungssystem. Diese Ausführungsform ist sinnvoll, wenn die verfügbare Bandbreite der Duplikationsverbindung 106 keine Rolle spielt.
  • Das Reserveverarbeitungssystem empfängt die Duplikationsdaten, entweder in Form von Unterschieden zwischen Seiten oder in Form von vollständigen Seiten, aktualisiert die momentanen Speicherbilder jeder Seite in seinem primären Satz von Speicherbereichen und speichert die aktualisierten Speicherbilder temporär in seinem sekundären Satz von Speicherbereichen. Erst nachdem der Fehlerprüfmechanismus bestätigt hat, dass alle aktualisierten und temporär gespeicherten Seiten mit den entsprechenden Seiten in dem primären Verarbeitungssystem synchronisiert sind, werden die aktualisierten Seiten in den primären Satz von Speicherbereichen des Reserveverarbeitungssystems kopiert. Durch diese verzögerte Aktualisierung des primären Satzes von Speicherbereichen des Reserveverarbeitungssystems wird sichergestellt, dass das Reserveverarbeitungssystem zu jedem beliebigen Zeitpunkt einen gültigen Satz von Speicherbildern in seinem primären Satz von Speicherbereichen besitzt oder, anders ausgedrückt, dass die Daten in seinem primären Satz von Speicherbereichen exakt mit den Daten in dem primären Satz von Speicherbereichen des primären Reserveverarbeitungssystems zu einem gewissen früheren Zeitpunkt übereinstimmen.
  • Es können auch eine Reihe von Varianten und Modifikationen der Erfindung genutzt werden. Es wäre möglich, gewisse Merkmale der Erfindung zu ermöglichen, ohne dass andere bereitgestellt werden.
  • Beispielsweise wird die Erfindung bei einer alternativen Ausführungsform nicht nur in Verarbeitungsarchitekturen verwendet, die ein primäres Verarbeitungssystem und N Reserveverarbeitungssysteme nutzen, sondern auch in Architekturen, die N primäre Verarbeitungssysteme und M Reserveverarbeitungssysteme nutzen, oder die N primäre und ein Reserveverarbeitungssystem nutzen.
  • Bei einer weiteren alternativen Ausführungsform wird die Erfindung zur Erstellung eines Profils des Funktionsverhaltens genutzt, um das Funktionsverhalten eines Verarbeitungssystems zu verfolgen oder zu überwachen. Die Erfindung ermöglicht, dass das Überwachungssystem all das verfolgt, was das überwachte Verarbeitungssystem in dem Speicher tut.
  • Bei einer weiteren alternativen Ausführungsform wird der primäre Satz von Speicherbereichen auf den ersten Zustand gesetzt, wenn die Speicherbilder in die Bereiche geladen werden, und/oder wenn das Verarbeitungssystem hochgefahren wird, bewirkt die Firmware, dass die Speicherbereiche auf den ersten Zustand gesetzt werden. In jedem Fall steuert das Duplikationssystem nicht selbst die Einstellung des Anfangszustands des primären Satzes von Speicherbereichen.
  • Bei einer weiteren alternativen Ausführungsform weist das primäre Verarbeitungssystem mehr als einen Prozessor auf. Aufgrund der Zunahme der Verarbeitungsressourcen können die Aktualisierungen häufiger an das (die) Verarbeitungssystem e) gesendet werden. Jeder Prozessor kann eine Teilmenge der vorstehend beschriebenen Vorgänge ausführen.
  • Bei einer noch anderen alternativen Ausführungsform können speziell ausgelegte Hardware-Implementierungen, darunter, aber nicht ausschließlich, anwendungsspezifische integrierte Schaltungen oder ASICs, programmierbare Logik-Gatter und andere Hardware-Bauelemente gleichfalls dafür ausgelegt werden, die vorliegend beschriebenen Verfahren zu implementieren. Ferner können auch alternative Software-Implementierungen, darunter, aber nicht ausschließlich, eine verteilte Verarbeitung oder verteilte Komponenten/Objekt-Verarbeitung, eine parallele Verarbeitung oder eine Verarbeitung durch eine virtuelle Maschine ebenfalls dafür ausgelegt werden, die vorliegend beschriebenen Verfahren zu implementieren.
  • Es sei außerdem angemerkt, dass die Software-Implementierungen gemäß der vorliegenden Erfindung optional auf einem konkreten Speichermedium, beispielsweise einem magnetischen Medium wie einer Platte oder einem Band, einem magneto-optischen oder optischen Medium wie einer Platte oder auf einem Halbleitermedium wie einer Speicherkarte oder einer anderen Baugruppe, in der ein oder mehrere (nichtflüchtige) Nur-Lese-Speicher enthalten sind, gespeichert ist. Ein E-Mail-Anhang in Form einer digitalen Datei oder ein anderes in sich abgeschlossenes Informationsarchiv oder ein Satz von Archiven wird als ein Verteilungsmedium betrachtet, das einem konkreten Speichermedium äquivalent ist. Dementsprechend werden ein konkretes Speichermedium oder ein Verteilungsmedium und anerkanntermaßen dem Stand der Technik entsprechende Äquivalente sowie Nachfolgermedien, auf welchen die Software-Implementierungen der vorliegenden Erfindung gespeichert sind, als von der Erfindung umfasst erachtet.
  • Obgleich die vorliegende Erfindung Komponenten und Funktionen, die in den Ausführungsformen realisiert sind, mit Bezug auf bestimmte Standards und Protokolle beschreibt, ist die Erfindung nicht auf diese Standards und Protokolle beschränkt. Andere ähnliche Standards und Protokolle, die vorliegend nicht erwähnt sind, sind vorhanden und werden als in die vorliegende Erfindung einbezogen betrachtet. Zudem werden die vorliegend erwähnten Standards und Protokolle sowie andere, ähnliche Standards und Protokolle, die vorliegend nicht erwähnt sind, periodisch durch schnellere oder effizientere Äquivalente abgelöst, die im Wesentlichen die gleichen Funktionen haben. Solche Ersatzstandards und -protokolle mit den gleichen Funktionen werden als Äquivalente betrachtet, die in der vorliegenden Erfindung eingeschlossen sind.
  • Die vorliegende Erfindung umfasst in ihren verschiedenen Ausführungsformen Komponenten, Verfahren, Prozesse, Systeme und/oder Vorrichtungen im Wesentlichen so, wie sie vorliegend dargestellt und beschrieben worden sind, einschließlich verschiedener Ausführungsformen, Teilkombinationen und Teilgruppen derselben. Für Fachleute auf dem Gebiet wird nach dem Verstehen der vorliegenden Offenbarung klar sein, wie die vorliegende Erfindung auszuführen und zu nutzen ist. Die vorliegende Erfindung umfasst in verschiedenen Ausführungsformen das Bereitstellen von Einrichtungen und Prozessen ohne solche Elemente, die vorliegend oder in verschiedenen Ausführungsformen des Vorstehenden nicht dargestellt und/oder beschrieben worden sind, darunter ohne solche Elemente, die möglicherweise bei früheren Einrichtungen oder Prozessen verwendet worden sind, z. B. um das Funktionsverhalten zu verbessern, eine einfache Realisierung zu erreichen und/oder die Kosten der Realisierung zu reduzieren.
  • Die vorstehende Diskussion der Erfindung wurde zum Zwecke der Veranschaulichung und der Beschreibung dargeboten. Mit dem Vorstehenden wird nicht beabsichtigt, die Erfindung auf die vorliegend offenbarte(n) Form oder Formen einzuschränken. In der vorstehenden detaillierten Beschreibung sind beispielsweise zum Zwecke der flüssigeren Offenbarung verschiedene Merkmale der Erfindung in einer oder mehreren Ausführungsformen zusammengefasst. Diese Methode der Offenbarung darf nicht dahingehend interpretiert werden, dass sie eine Intension widerspiegelt, dass die beanspruchte Erfindung mehr Merkmale erfordere, als explizit in jedem Anspruch angeführt sind. Wie die folgenden Ansprüche reflektieren, beruhen die erfindungsgemäßen Aspekte vielmehr auf weniger als allen Merkmalen einer einzigen vorstehend offenbarten Ausführungsform. Die folgenden Ansprüche seien hiermit also in diese detaillierte Beschreibung einbezogen, wobei jeder Anspruch für sich allein für eine separate bevorzugte Ausführungsform der Erfindung steht.
  • Obgleich darüber hinaus die Beschreibung der Erfindung die Beschreibung einer oder mehrerer Ausführungsformen und bestimmter Varianten und Modifikationen umfasste, liegen auch andere Varianten und Modifikationen innerhalb des Schutzumfangs der Erfindung, wie sie zum Beispiel nach dem Verstehen der vorliegenden Offenbarung im Rahmen der Fertigkeiten und Kenntnisse von Fachleuten auf dem Gebiet liegen werden. Es ist beabsichtigt, Rechte zu erlangen, die alternative Ausführungsformen in dem gestatteten Umfang einschließen, darunter alternative, austauschbare und/oder äquivalente Strukturen, Funktionen, Bereiche oder Schritte zu den beanspruchten, egal ob diese alternativen, gegeneinander austauschbaren und/oder äquivalenten Strukturen, Funktionen, Bereiche oder Schritte vorliegend offenbart sind oder nicht, und ohne die Absicht, etwaig patentierbare Erfindungsmerkmale öffentlich zu überlassen.

Claims (14)

  1. Duplikationsverfahren, umfassend: (a) Setzen zumindest eines Speicherbereichs (120) auf einen ersten Zustand, bei welchem sich der zumindest eine Speicherbereich im Nur-Lese-Zustand befindet; (b) unter Ansprechen auf einen Versuch, in den zumindest einen Speicherbereich zu schreiben (200), Empfangen einer Meldung (204), dass ein Schreibfehler aufgetreten ist; (c) Ändern (228) des ersten Zustands des zumindest einen Speicherbereichs in einen zweiten Zustand, in welchem der zumindest eine Speicherbereich beschreibbar ist; und (d) Bereitstellen (248, 252, 256) zumindest einiger der an dem zumindest einen Speicherbereich erfolgten Änderungen einem Reserveverarbeitungssystem zur Replikation.
  2. Verfahren nach Anspruch 1, bei welchem der zumindest eine Speicherbereich eine Mehrzahl von Speicherbereichen (120a–y) umfasst, wobei jeder Speicherbereich eine eindeutige Speicherkennung aufweist, und ferner umfassend: (e) Angeben der Speicherkennungen aller Speicherbereiche, die in den zweiten Zustand geändert worden sind, wobei beim Schritt (d) des Bereitstellens Inhalte der Speicherbereiche, die sich noch im ersten Zustand befinden, nicht an das Reserveverarbeitungssystem geliefert werden.
  3. Verfahren nach Anspruch 1, bei welchem der zumindest eine Speicherbereich eine Mehrzahl von Speicherbereichen umfasst, ferner umfassend: (e) nach Schritt (d), Zurücksetzen (244) aller im zweiten Zustand befindlichen Speicherbereiche auf den ersten Zustand; und Wiederholen der Schritte (a) bis (d).
  4. Verfahren nach Anspruch 1, ferner umfassend: (e) Identifizieren eines Satzes von Speicherbereichen, der zu duplizieren ist, sowie zumindest einer Charakteristik jedes Bereichs in dem Satz auf Basis von Informationen, die in einem Applikationsprozess kompiliert sind; (f) wenn die Meldung (204) empfangen wird, Feststellen, ob der Fehler auf einer Berechtigungsverletzung beruht und ob der zumindest eine Bereich im Speicherbereichssatz liegt; (g) wenn der Fehler nicht auf einer Berechtigungsverletzung beruht und der zumindest eine Bereich ein Element des Speicherbereichssatzes darstellt, Ausführen der Schritte (c) und (d) in Bezug auf den zumindest einen Speicherbereich; und (h) wenn der Fehler auf einer Berechtigungsverletzung beruht oder der zumindest eine Bereich kein Element des Speicherbereichssatzes ist, kein Ausführen der Schritte (c) und (d) in Bezug auf den Schreibfehler.
  5. Verfahren nach Anspruch 1, wobei Schritt (c) folgende Teilschritte umfasst: (c1) Anzeigen (210), dass der zumindest eine Speicherbereich geändert worden ist, und zwar an einer ersten ausgewählten Speicherstelle; (c2) Aufzeichnen (224) des ursprünglichen Inhalts des zumindest einen Speicherbereichs an einer zweiten ausgewählten Speicherstelle; und (c3) danach, Ändern (228) des ersten Zustands des zumindest einen Speicherbereichs in einen zweiten Zustand, in welchem der zumindest eine Speicherbereich beschreibbar ist; und wobei bei Eintreten eines ersten Ereignisses Schritt (d) ausgeführt wird, und wobei der Schritt (d) folgende Teilschritte umfasst: (d1) Feststellen (248) der Unterschiede zwischen dem ursprünglichen Inhalt des zumindest einen Speicherbereichs und dem momentanen Inhalt des zumindest einen Speicherbereichs, wobei die Unterschiede die Änderungen darstellen, (d2) Bereitstellen der Änderungen (252) dem Reserveverarbeitungssystem; und (d3) Zurücksetzen (244) des zumindest einen Speicherbereichs auf den ersten Zustand; wobei das erste Ereignis zumindest entweder eine Uhreinstellung, ein Zahlenwert eines ausgewählten Parameters, eine verfügbare Kapazität zumindest eines Speichersegments, ein Synchronisationsverlust zwischen einem primären Verarbeitungssystem und dem Reserveverarbeitungssystem oder der Abschluss einer Transaktion ist.
  6. Verfahren nach Anspruch 1, bei welchem das Reserveverarbeitungssystem zumindest einen Reservespeicherbereich aufweist, der eine frühere Version der momentan in dem zumindest einen Speicherbereich befindlichen Informationen umfasst, und wobei das Reserveverarbeitungssystem mit den zumindest einigen Änderungen eine Prüfsumme empfängt, die der momentanen Information des zumindest einen Speicherbereichs zugeordnet ist, und ferner umfassend: (e) Anwenden, durch das Reserveverarbeitungssystem, der zumindest einigen Änderungen auf die frühere Version der Informationen, um aktualisierte Informationen zu bilden; (f) Feststellen, durch das Reserveverarbeitungssystem, ob die Prüfsumme für die aktualisierte Information gilt; (g) wenn die Prüfsumme für die aktualisierte Information nicht gilt, Initiieren einer Auffrischung des Inhalts des zumindest einen Reservespeicherbereichs; und (h) wenn die Prüfsumme für die aktualisierte Information gilt, Kopieren der aktualisierten Information in den zumindest einen Reservespeicherbereich.
  7. Verfahren nach Anspruch 1, ferner umfassend: (e) Verfolgen, welcher der Mehrzahl von Speicherbereichen in den zweiten Zustand geändert worden ist, um den Betrieb des Applikationsprozesses zu überwachen, wobei jeder der Speicherbereiche eine eindeutige Speicherkennung aufweist; und wobei der Schritt (e) des Verfolgens folgende Teilschritte umfasst: (e1) Angeben der Speicherkennungen aller Speicherbereiche, die in den zweiten Zustand geändert worden sind; (e2) Bereitstellen zumindest einiger der Änderungen an jedem der geänderten Speicherbereiche einem Reserveverarbeitungssystem zur Replikation, wobei die Inhalte von Speicherbereichen, die sich noch in dem ersten Zustand befinden, nicht an dem Reserveverarbeitungssystem bereitgestellt werden; (e3) Aufzeichnen des ursprünglichen Inhalts des ersten Speicherbereichs an einer ausgewählten Speicherstelle; und (e4) danach, Ändern des ersten Zustands des ersten Speicherbereichs in einen zweiten Zustand, in welchem der zumindest eine Speicherbereich beschreibbar ist; wobei bei Eintreten eines ersten Ereignisses Schritt (e2) ausgeführt wird und wobei Schritt (e2) folgende Teilschritte umfasst: (e2A) Feststellen der Unterschiede zwischen dem ursprünglichen Inhalt des ersten Speicherbereichs und dem momentanen Inhalt des ersten Speicherbereichs, wobei die Unterschiede die Änderungen darstellen; und (e2B) Bereitstellen der Änderungen dem Reserveverarbeitungssystem, wobei das erste Ereignis zumindest entweder eine Uhreinstellung, ein Zahlenwert eines ausgewählten Parameters, eine verfügbare Kapazität zumindest eines Speichersegments, ein Synchronisationsverlust zwischen einem primären Verarbeitungssystem und dem Reserveverarbeitungssystem oder der Abschluss einer Transaktion ist.
  8. Computerlesbares Medium, welches von einem Prozessor ausführbare Anweisungen zur Ausführung der Schritte gemäß einem der Ansprüche 1 bis 7 umfasst.
  9. Dupliziertes Verarbeitungssystem, umfassend: (a) ein aktives Verarbeitungssystem (104a), wobei das aktive Verarbeitungssystem umfasst: (i) eine Prozessoreinrichtung (112); (ii) eine Speichereinrichtung (108), die zumindest einen Speicherbereich (120) sowie einen Applikationsprozess (116), der auf den zumindest einen Speicherbereich (120) zugreift, umfasst; sowie (iii) eine Duplikationseinrichtung (128); und (b) ein Reserveverarbeitungssystem (104b–n), welches dazu dient, für den Fall, dass das aktive Verarbeitungssystem eine Fehlfunktion aufweist, die Funktionen des aktiven Verarbeitungssystems auszuführen, wobei die Duplikationseinrichtung (128) dazu dient: den zumindest einen Speicherbereich (120) auf einen ersten Zustand zu setzen, in welchem sich der zumindest eine Speicherbereich im Nur-Lese-Zustand befindet; unter Ansprechen auf einen Versuch (200), in den zumindest einen Speicherbereich zu schreiben, eine Meldung (204) zu empfangen, dass ein Schreibfehler aufgetreten ist; den ersten Zustand des zumindest einen Speicherbereichs in einen zweiten Zustand zu ändern (228, 232), in welchem der zumindest eine Speicherbereich beschreibbar ist; und dem Reserveverarbeitungssystem zumindest einige der an dem zumindest einen Speicherbereich erfolgten Änderungen (252) zur Replikation zur Verfügung zu stellen (256).
  10. System nach Anspruch 9, bei welchem der zumindest eine Speicherbereich eine Mehrzahl von Speicherbereichen (120a–y) umfasst, wobei jeder Speicherbereich eine eindeutige Speicherkennung aufweist, wobei die Duplikationseinrichtung (128) dazu dient, die Speicherkennungen aller Speicherbereiche, die in den zweiten Zustand geändert worden sind, anzugeben, und wobei die Inhalte der Speicherbereiche, die sich noch in dem ersten Zustand befinden, nicht dem Reserveverarbeitungssystem bereitgestellt werden.
  11. System nach Anspruch 9, bei welchem der zumindest eine Speicherbereich eine Mehrzahl von Speicherbereichen (120a–y) umfasst und wobei die Duplikationseinrichtung (128) jeden der in dem zweiten Zustand befindlichen Speicherbereiche in den ersten Zustand zurücksetzt (244), nachdem die Änderungen dem Reserveverarbeitungssystem zur Verfügung gestellt worden sind, und die Vorgänge gemäß Anspruch 9 wiederholt.
  12. System nach Anspruch 9, bei welchem die Duplikationseinrichtung (128) ferner: auf Basis von Informationen, die in einem Applikationsprozess kompiliert sind, einen Satz von Speicherbereichen, die zu duplizieren sind, sowie zumindest eine Charakteristik jedes Bereichs in dem Satz identifiziert; wenn die Meldung (204) empfangen wird, feststellt, ob der Fehler auf einer Berechtigungsverletzung beruht und ob der zumindest eine Bereich im Speicherbereichssatz liegt; wenn der Fehler nicht auf einer Berechtigungsverletzung beruht und der zumindest eine Speicherbereich ein Element des Speicherbereichssatzes darstellt, den ersten Zustand des zumindest einen Speicherbereichs in den zweiten Zustand ändert und die Änderungen dem Reserveverarbeitungssystem zur Verfügung stellt; und wenn der Fehler auf einer Berechtigungsverletzung beruht oder der zumindest ein Bereich kein Element des Speicherbereichssatzes ist, weder den ersten Zustand des zumindest einen Bereichs in den zweiten Zustand ändert noch die Änderungen mit Bezug auf den Schreibfehler an das Reserveverarbeitungssystem liefert.
  13. System nach Anspruch 9, bei welchem die Duplikationseinrichtung (128): an einer ersten ausgewählten Speicherstelle angibt, dass der zumindest eine Speicherbereich geändert worden ist; den ursprünglichen Inhalt des zumindest einen Speicherbereichs an einer zweiten ausgewählten Speicherstelle aufzeichnet; und danach den ersten Zustand des zumindest einen Speicherbereichs in einen zweiten Zustand ändert, in welchem der zumindest eine Speicherbereich beschreibbar ist, wobei die Änderungen bei Eintreten eines ersten Ereignisses dem Reservesystem zur Verfügung gestellt werden, wobei die Duplikationseinrichtung die Unterschiede zwischen dem ursprünglichen Inhalt des zumindest einen Speicherbereichs und dem momentanen Inhalt des zumindest einen Speicherbereichs feststellt, wobei die Unterschiede die Änderungen darstellen, ferner die Änderungen dem Reserveverarbeitungssystem zur v Verfügung gestellt und den zumindest einen Speicherbereich in den ersten Zustand zurücksetzt; und wobei das erste Ereignis zumindest entweder eine Uhreinstellung, ein Zahlenwert eines ausgewählten Parameters, eine verfügbare Kapazität zumindest eines Speichersegments, ein Synchronisationsverlust zwischen dem aktiven Verarbeitungssystem und dem Reserveverarbeitungssystem oder der Abschluss einer Transaktion ist.
  14. System nach Anspruch 9, bei welchem das Reserveverarbeitungssystem zumindest einen Reservespeicherbereich aufweist, der eine frühere Version der momentan in dem zumindest einen Speicherbereich enthaltenen Daten umfasst, und wobei das Reserveverarbeitungssystem zusammen mit den zumindest einigen Änderungen eine Prüfsumme empfängt, die den momentanen Daten des zumindest einen Speicherbereichs zugeordnet ist, und wobei das Reserveverarbeitungssystem die zumindest einigen Änderungen auf die frühere Version der Daten anwendet, um aktualisierte Daten zu bilden, feststellt, ob die Prüfsumme für die aktualisierten Daten gültig ist, wenn die Prüfsumme für die aktualisierten Daten nicht gültig ist, eine Auffrischung des Inhalts des zumindest einen Reservespeicherbereichs initiiert und, wenn die Prüfsumme für die aktualisierten Daten gültig ist, die aktualisierten Daten an den zumindest einen Reservespeicherbereich kopiert.
DE102007005207A 2006-02-01 2007-01-29 Software-Duplikation Ceased DE102007005207A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US76471806P 2006-02-01 2006-02-01
US60/764,718 2006-02-01
US11/480,173 US20070180312A1 (en) 2006-02-01 2006-06-30 Software duplication
US11/480,173 2006-06-30

Publications (1)

Publication Number Publication Date
DE102007005207A1 true DE102007005207A1 (de) 2007-10-11

Family

ID=37846686

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007005207A Ceased DE102007005207A1 (de) 2006-02-01 2007-01-29 Software-Duplikation

Country Status (4)

Country Link
US (1) US20070180312A1 (de)
JP (1) JP4563412B2 (de)
DE (1) DE102007005207A1 (de)
GB (1) GB2434890A (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2465772A (en) * 2008-11-27 2010-06-02 Sony Comp Entertainment Europe Analysing memory accessed by an application
JP5484117B2 (ja) * 2010-02-17 2014-05-07 株式会社日立製作所 ハイパーバイザ及びサーバ装置
US9875026B2 (en) * 2011-06-29 2018-01-23 Hewlett Packard Enterprise Development Lp Access commands including expected media positions
CN105830061B (zh) 2014-01-02 2019-06-28 华为技术有限公司 维护数据库系统中用于联机分析处理的数据的方法和装置
US10776267B2 (en) * 2017-12-11 2020-09-15 Red Hat, Inc. Mirrored byte addressable storage

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
JP2846047B2 (ja) * 1990-03-29 1999-01-13 株式会社東芝 シャドウプロセス生成方式
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
DE69506404T2 (de) * 1994-06-10 1999-05-27 Texas Micro Inc Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem
JPH08149145A (ja) * 1994-11-17 1996-06-07 Fujitsu Ltd Lanシステム
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
JPH08329027A (ja) * 1995-06-01 1996-12-13 Nec Corp 中央処理二重化システムにおけるクロスコールディスクアクセス方法とその方式
JP2850808B2 (ja) * 1995-10-31 1999-01-27 日本電気株式会社 データ処理装置およびデータ処理方法
US5787485A (en) * 1996-09-17 1998-07-28 Marathon Technologies Corporation Producing a mirrored copy using reference labels
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5958062A (en) * 1997-03-19 1999-09-28 Fujitsu Limited Client/server system and computer system
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
JP3715439B2 (ja) * 1998-07-31 2005-11-09 富士通株式会社 ファイルアクセスシステムおよびファイル制御装置
US6449733B1 (en) * 1998-12-07 2002-09-10 Compaq Computer Corporation On-line replacement of process pairs in a clustered processor architecture
US6275915B1 (en) * 1999-04-09 2001-08-14 Avaya Technology Corp. Selective memory duplication arrangement
US6622263B1 (en) * 1999-06-30 2003-09-16 Jack Justin Stiffler Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US6311232B1 (en) * 1999-07-29 2001-10-30 Compaq Computer Corporation Method and apparatus for configuring storage devices
US6687849B1 (en) * 2000-06-30 2004-02-03 Cisco Technology, Inc. Method and apparatus for implementing fault-tolerant processing without duplicating working process
JP3998405B2 (ja) * 2000-07-28 2007-10-24 富士通株式会社 アクセス制御方法及びこれを用いる記憶装置
JP2002334048A (ja) * 2001-05-11 2002-11-22 Hitachi Ltd 記憶サブシステムの制御方法および記憶サブシステム
KR100441712B1 (ko) * 2001-12-29 2004-07-27 엘지전자 주식회사 확장 가능형 다중 처리 시스템 및 그의 메모리 복제 방법
US6961870B2 (en) * 2002-03-13 2005-11-01 Inventec Corporation Data exchange update and back-up system and method between dual operating systems of a computer
DE60334752D1 (de) * 2002-03-19 2010-12-16 Network Appliance Inc System und Verfahren zur Bestimmung und Übertragung von Änderungen in Schnappschüssen
JP2004318828A (ja) * 2003-03-31 2004-11-11 Seiko Epson Corp データバックアップシステム及びデータバックアップ方法、装着可能なコンピュータ、メール送信システム、画像情報送信システム並びにデータバックアッププログラム
US7246211B1 (en) * 2003-07-22 2007-07-17 Swsoft Holdings, Ltd. System and method for using file system snapshots for online data backup
US7047380B2 (en) * 2003-07-22 2006-05-16 Acronis Inc. System and method for using file system snapshots for online data backup
US7440553B2 (en) * 2004-02-04 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for checkpointing a half-call model in redundant call application nodes
WO2006026403A2 (en) * 2004-08-26 2006-03-09 Availigent, Inc. Method and system for providing transparent incremental and multiprocess checkpointing to computer applications
US7284150B2 (en) * 2004-09-22 2007-10-16 International Business Machines Corporation System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data
JP4588486B2 (ja) * 2005-02-24 2010-12-01 株式会社日立製作所 計算機システム及び管理計算機とホスト計算機並びにボリューム管理方法
US20070027936A1 (en) * 2005-07-28 2007-02-01 Stakutis Christopher J Determining changes made to a source file to transmit to a target location providing a mirror copy of the source file
US20070226005A1 (en) * 2006-01-06 2007-09-27 Kevin Smith Totaldentist

Also Published As

Publication number Publication date
US20070180312A1 (en) 2007-08-02
JP2007207250A (ja) 2007-08-16
GB0701103D0 (en) 2007-02-28
GB2434890A (en) 2007-08-08
JP4563412B2 (ja) 2010-10-13

Similar Documents

Publication Publication Date Title
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE69937715T2 (de) Verbessertes Zwei-Phasen-Bindungsprotokoll
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE69729011T2 (de) System und verfahren zum unterhalten eines logisch konsistenten backups unter verwednung von minimalen daten-transfer
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE60313468T2 (de) Speicherdienste und -systeme
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE60224598T2 (de) Umkehr eines Kommunikationspfades zwischen Speichergeräten
DE60220263T2 (de) Server-duplexverfahren und geduplextes serversystem
DE112011100112T5 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
DE10134492A1 (de) Kaskadierte Ausfallübernahme einer Datenverwaltungsanwendung für gemeinsam genutzte Plattenspeichersysteme in lose verbundenen Knotengruppierungen
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE69913375T2 (de) Anzeige eines fehlers in einem transaktionsverarbeitungssystem
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE10297430T5 (de) Datenspiegelung unter Anwendung von shared Bussen
EP0807883B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE4216871A1 (de) Ausfuehrungsordnen zum sicherstellen der serienherstellbarkeit verteilter transaktionen
DE112010004947T5 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
EP1821498B1 (de) Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection