-
HINTERGRUND
DER ERFINDUNG
-
Technisches
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein dezentralisiertes, direktes Verarbeitungssystem,
und im Einzelnen ein System und ein Verfahren zum Replizieren von
Daten in einer dezentralisierten Datenbank.
-
Hintergrund
und Aufgaben der Erfindung
-
Heutzutage
verwenden viele Rechnersysteme, wie etwa dezentralisierte, direkte
Verarbeitungssysteme, einen Cache-Speicher, um die Verarbeitungsgeschwindigkeit
zu steigern. Ein Cache kann typischerweise einen Direktzugriffsspeicher
(RAM) und ein Register aufweisen, das auf einen Speicherort in der
RAM hinweist, wo sich zuvor gespeicherte Daten befinden. Der Cache-Speicher
kann ein Teil der Größe des Hauptspeichers
sein. Indem die Daten, auf die am häufigsten zugegriffen werden,
in dem Cache gehalten werden, nähert
sich die Zugriffszeit auf den Speicher der Zugriffszeit des Cache-Speichers an.
-
Direkte
Hochleistungs-Verarbeitungssysteme verfügen typischerweise über relativ
hohe Datenübertragungsraten
und hohe Datenverfügbarkeitseigenschaften.
Diese erforderlichen Systemeigenschaften haben zu der Architektur
von Systemdatenbanken geführt,
sowohl um einen Cache-Speicher zum Erzielen der hohen Datenübertragungsraten einzusetzen,
als auch um freigesetzte Speichervorrichtungen zum besseren Sicherstellen,
dass die Daten für
den Rest des Systems im Wesentlichen und konsistent zugänglich sind,
zu verwenden. Beispielsweise wurden in bekannten Systemen ein Paar
von Cache-Speicher verwendet, die als Primary-Cache und Secondary-Cache
bezeichnet werden. Die aus dem Stand der Technik bekannten Systeme
verwenden zusätzlich
ein Paar von Disk-Speicher, die als Primary-Disk-Speicher und als
Secondary-Disk-Speicher bezeichnet werden.
-
Ein
im Zusammenhang mit Systemen, die freigesetzte Speichervorrichtungen
verwenden, zugehöriges
Problem betrifft die Datenreplikation, d. h. die Beibehaltung der
Konsistenz über
den gesamten Datenbankspeicher während
des Betriebes des Systems. Frühere,
direkte Verarbeitungssysteme schlossen verschiedene Synchronprotokolle
ein, um Daten zwischen den Speichervorrichtungen zu replizieren. Ein
solches Synchronprotokoll, eine Zwei-Phasen-Einspeicherungs- bzw.
Commit-Prozedur, verursacht häufig,
dass, wenn ein Zugriff auf eine Speichervorrichtung fehlschlägt, die
Datenbank und das System hängenbleibt.
Daraus resultiert, dass ein Bedarf nach einer verbesserten Datenreplikationsprozedur
zur Verwendung in einem direkten Verarbeitungssystem besteht.
-
Das
Dokument US-A-4 916 605 offenbart ein Verarbeitungssystem, welches
eine Vielzahl von Disk-Speicher und einen Controller mit einem Cache-Speicher
und einem spannungsunabhängigen Speicher
aufweist.
-
Eine
Aufgabe der vorliegenden Erfindung liegt darin, ein Verfahren zum
Replizieren von Daten in einem dezentralisierten, direkten Verarbeitungssystem
bereitzustellen.
-
Eine
weitere Aufgabe der vorliegenden Erfindung liegt darin, ein solches
Verfahren anzugeben, welches eine bessere Datenbankverfügbarkeit
trotz einer Speichervorrichtungsfehlfunktion aufrecht erhält.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung, wie sie mittels der unabhängigen Patentansprüche definiert
wird, überwindet
die Nachteile in bestehenden direkten Verarbeitungssystemen und
befriedigt einen deutlichen Bedarf nach einem System und einem Verfahren
zum Replizieren von Daten, während
hohe Verfügbarkeits-
und Leistungspegel beibehalten werden.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung wird ein System und ein Verfahren für ein dezentralisiertes,
direktes Verarbeitungssystem angegeben. Das System weist eine dezentralisierte
Datenbank auf, die eine Schnittstelle zu einer Anzahl von dienstanfordernden
Geräten
bzw. Clienten bereitstellt. Die dezentralisierte Datenbank weist
zwei Speicherknoten auf. Jeder Speicherknoten weist einen Cache-Speicher
und einen Platten- bzw. Disk-Speicher
auf. Ein Cache-Speicher ist als Primary-Cache und der andere als
Secondary-Cache ausersehen. Auf ähnliche
Weise ist ein Plattenspeicher als Primary-Disk und der andere als
Secondary-Disk ausersehen. Jeder Cache- und jeder Disk-Speicher weist in
bevorzugter Weise jeweils einen hiermit zugehören Cache-Manager-Prozessor bzw.
Disk-Manager-Prozessor auf. Der Cache-Speicher, Cache-Manager-Prozessor,
Disk-Speicher- und Disk-Manager-Prozessor
sind ausgelegt, neben anderen Aufgaben, die Datenreplikation innerhalb
der Datenbank durchzuführen.
-
Wenn
ein dienstanforderndes Gerät
bzw. Client, das bzw. der zu der Datenbank zugehört, eine Transaktion hierzu
aufzeigt, wie etwa eine Anforderung, die Datenbank mit einem Datenobjekt
zu aktualisieren, dann versucht das System zunächst, den Primary-Cache-Speicher
mit dem Datenobjekt zu aktualisieren, was von dem Versuch gefolgt
wird, den Secondary-Cache-Speicher zu aktualisieren. Als nächstes wird
ein versuch gemacht, den Primary-Disk-Speicher mit dem Datenobjekt
zu aktualisieren. Dann versucht das System, den Secondary-Disk-Speicher
mit dem Datenobjekt zu aktualisieren. Ein zu dem dienstanfordernden
Gerät zugehöriger Prozess
zeigt den Erfolg eines jeden Versuches, die Speichervorrichtungen
zu aktualisieren, an und erzeugt eine Antwort hierauf.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Verfahren zur Verwaltung von
Daten in einer Datenbank eines Verarbeitungssystems angegeben, wobei
die Datenbank einen Primary-Cache-Speicher, einen Secondary-Cache-Speicher,
einen Primary-Disk-Speicher und einen Secondary-Disk-Speicher aufweist,
und wobei das Verfahren die folgenden Verfahrensschritte aufweist:
Empfang
einer Anforderung von einem dienstanfordernden Gerät bzw. Clienten,
ein Datenobjekt in die Datenbank zu schreiben;
Versuch, das
Datenobjekt in den Primary-Cache-Speicher und in den Secondary-Cache-Speicher in
Erwiderung auf den Verfahrensschritt des Empfangen der Anforderung
zu schreiben;
Versuch, das Datenobjekt in den Primary-Disk-Speicher
und in den Secondary-Disk-Speicher zu schreiben, dem Verfahrensschritt
des Versuchs, in die Cache-Speicher zu schreiben, folgend;
Prüfen eines
erfolgreichen Schreibens des Datenobjekts in jeden der Primary-Cache-Speicher,
Secondary-Cache-Speicher, Primary-Disk-Speicher und Secondary-Disk-Speicher;
Bestätigen dem
dienstanfordernden Gerät
bzw. Clienten hinsichtlich eines erfolgreichen Schreibens des Datenobjekts bei
einer bestätigenden
Ermittlung, dass das Datenobjekt erfolgreich in den Primary-Cache-Speicher
und in zumindest einen der Primary-Disk-Speicher und Secondary-Disk-Speicher
geschrieben wurde, und Kennzeichnen der Cache- und Disk-Speicher als nicht
harmonierend bzw. nicht synchronisiert, in welche das Datenobjekt,
wie es während
des Verfahrensschritt des Prüfen
ermittelt wurde, nicht erfolgreich geschrieben wurde;
nachfolgendes
Ermitteln eines nicht erfolgreichen Schreibens des Datenobjekts,
nachfolgender Versuch, das Datenobjekt in jedem der Primary-Cache-Speicher,
Secondary-Cache-Speicher, Primary-Disk-Speicher und Secondary-Disk-Speicher,
in welchen das Datenobjekt erfolgreich geschrieben wurde, zu löschen, und
nachfolgendes Warnen des dienstanfordernden Geräts bzw. Clienten hinsichtlich eines
fehlerhaften Versuches, das Datenobjekt in die Datenbank zu schreiben.
-
Gemäß einem
zweiten Aspekt der Erfindung wird eine Datenbank für ein direktes
Verarbeitungssystem bereitgestellt, welche folgendes aufweist:
einen
Primary-Cache-Speicher;
einen Secondary-Cache-Speicher;
einen
Primary-Disk-Speicher;
einen Secondary-Disk-Speicher;
einen
Steuerprozessor, um eine Anforderung von einem dienstanfordernden
Gerät bzw.
Clienten zu empfangen, ein Datenobjekt in die Datenbank zu schreiben;
um zu versuchen, das Datenobjekt in den Primary-Cache-Speicher,
in den Secondary-Cache-Speicher, in den Primary-Disk-Speicher und
in den Secondary-Disk-Speicher in Erwiderung auf den Empfang der Anforderung
zu schreiben; um zu prüfen,
ob das Datenobjekt erfolgreich in jeden der Primary-Cache-Speicher,
Secondary-Cache-Speicher, Primary-Disk-Speicher
und Secondary-Disk-Speicher
geschrieben wurde; um dem dienstanfordernden Gerät bzw. Clienten zu bestätigen, dass
das Datenobjekt erfolgreich geschrieben wurde, wenn bestätigend ermittelt
wird, dass das Datenobjekt erfolgreich in den Primary-Cache-Speicher
und in zumindest einen der Primary-Disk-Speicher und Secondary-Disk-Speicher geschrieben
wurde; um den Cache- und Disk-Speicher, in welche das Datenobjekt
nicht erfolgreich geschrieben wurde, als nicht harmonierend bzw.
nicht synchronisiert zu kennzeichnen; und um nachfolgend zu ermitteln,
dass das Datenobjekt nicht erfolgreich geschrieben wurde; um nachfolgend zu
versuchen, das Datenobjekt in jedem der Primary-Cache-Speicher,
Secondary-Cache-Speicher, Primary-Disk-Speicher und Secondary-Disk-Speicher, in
welchen das Datenobjekt erfolgreich geschrieben wurde, zu löschen; und
um nachfolgend das dienstanfordernde Gerät bzw. den Clienten zu warnen,
dass der Versuch fehlschlug, das Datenobjekt in die Datenbank zu
schreiben.
-
Gemäß einem
dritten Aspekt der Erfindung wird ein Computerprogrammprodukt angegeben, welches
ein computerlesbares Medium mit einer hierauf ausgebildeten computerlesbaren
Programmcode-Einrichtung für
eine Datenbank eines direkten Verarbeitungssystems aufweist, das
eine Vielzahl von Cache- und eine Vielzahl von Disk-Speicher hat, wobei
das Computerprogrammprodukt Anweisungen bzw. Befehle für folgende
Operationen aufweist:
Empfang einer Speicheraktualisierungs-Anforderung von
einem dienstanfordernden Gerät
bzw. Clienten;
Versuch, die Cache-Speicher zu aktualisieren;
Versuch,
die Disk-Speicher zu aktualisieren;
Überprüfen der Versuche, die Cache-
und Disk-Speicher zu aktualisieren, und Ermitteln eines Ergebnisses
der Speicheraktualisierungs-Anforderung basierend auf der Überprüfung;
Benachrichtigen
des dienstanfordernden Gerätes bzw.
des Clienten hinsichtlich einer erfolgreichen Speicheraktualisierung
der Datenbank basierend auf der Ermittlung, dass ein erster Cache-Speicher,
der sich dem Aktualisierungsversuch unterzog, und zumindest einer
der Disk-Speicher erfolgreich aktualisiert wurden;
Kennzeichnen
der Cache- und Disk-Speicher als nicht harmonierend bzw. nicht synchronisiert,
die nicht erfolgreich aktualisiert wurden, und
nachfolgende
Ermittlung, dass die Datenbank nicht erfolgreich aktualisiert wurde;
nachfolgender Versuch, die Daten, die zu der Speicheraktualisierung gehören, in
jedem der Cache- und Disk-Speicher zu löschen, welche erfolgreich aktualisiert
wurden; und nachfolgende Benachrichtigung des anfragenden Clienten
hinsichtlich einer nicht erfolgreichen Speicheraktualisierung bei
Ermittlung während
der Ermittlung, dass die Datenbank nicht erfolgreich aktualisiert
wurde.
-
In
dem Fall, wenn der Primary-Cache die einzige Speichervorrichtung
war, die erfolgreich aktualisiert wurde, hat die angeforderte Transaktion
fehlgeschlagen. Das dienstanfordernde Gerät bzw. der Client wird hinsichtlich
der Fehlfunktion benachrichtigt. Zusätzlich wird das aktualisierte
Datenobjekt hiervon gelöscht,
da der Primary-Cache-Speicher
erfolgreich mit dem Datenobjekt aktualisiert wurde. Das nächste Mal,
wenn von der Datenbank auf das Datenobjekt zugegriffen wird, wird
das Datenobjekt von dem Primary-Disk-Speicher genommen und in den
Primary-Cache- Speicher
kopiert. In dem Fall, wenn das Datenobjekt nicht erfolgreich von
dem Primary-Cache-Speicher gelöscht
wurde, wird der Primary-Cache-Speicher als nicht harmonierend bzw.
nicht synchronisiert gekennzeichnet, und der Secondary-Cache-Speicher wird als
Primary-Cache-Speicher ausersehen.
-
In
dem Fall, wenn lediglich der Primary-Cache-Speicher und nur eine
der Disk-Speicher erfolgreich mit dem Datenobjekt aktualisiert wurden,
gilt die Transaktion als erfolgreich vollendet. Das dienstanfordernde
Gerät bzw.
der Client wird hinsichtlich einer erfolgreichen Einspeicherung
benachrichtigt. Der Secondary-Cache-Speicher und der Disk-Speicher, die nicht
aktualisiert werden konnten, werden beide gekennzeichnet, dass sie
nicht harmonierend bzw. nicht synchronisiert sind.
-
In
dem Fall, wenn lediglich der Secondary-Cache-Speicher nicht erfolgreich
aktualisiert wurde, gilt die Transaktion als erfolgreich vollendet.
Das dienstanfordernde Gerät
bzw. der Client wird hinsichtlich der erfolgreichen Einspeicherung
benachrichtigt. Der Secondary-Cache-Speicher wird gekennzeichnet,
dass er nicht harmonierend bzw. nicht synchronisiert ist.
-
In
dem Fall, wenn sowohl der Primary- als auch die Secondary-Disk-Speicher nicht
erfolgreich aktualisiert wurden, gilt die Transaktion als nicht
erfolgreich vollendet. Das dienstanfordernde Gerät bzw. der Client wird hinsichtlich
der nicht erfolgreichen Einspeicherung benachrichtigt. Das Datenobjekt
wird von dem Primary- und dem Secondary-Cache-Speicher gelöscht. Wenn das Datenobjekt
nicht erfolgreich von einem der Cache-Speicher gelöscht wurde,
wird der entsprechende Cache-Speicher gekennzeichnet, dass er nicht
harmonierend bzw. nicht synchronisiert ist.
-
In
dem Fall, wenn nur einer der Disk-Speicher nicht erfolgreich mit
dem Datenobjekt aktualisiert wurde, gilt die Transaktion als erfolgreich
vollendet. Das dienstanfordernde Gerät bzw. der Client wird hinsichtlich
der erfolgreichen Einspeicherung benachrichtigt. Der Disk-Speicher,
der nicht erfolgreich aktualisiert wurde, wird gekennzeichnet, dass er
nicht harmonierend bzw. nicht synchronisiert ist.
-
Wenn
das Datenobjekt in jeden der Cache-Speicher und Disk-Speicher erfolgreich
geladen wurde, wird das dienstanfordernde Gerät bzw. der Client hinsichtlich
der erfolgreich vollendeten Transaktion benachrichtigt.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Ein
besseres Verständnis
der vorliegenden Erfindung wird unter Hinzunahme der folgenden detaillierten
Beschreibung erreicht, wenn sie in Verbindung mit den beigefügten Zeichnungen
gelesen wird, in welchen:
-
1 ein Blockdiagramm des
Verarbeitungssystems gemäß der vorliegenden
Erfindung ist; und
-
2 ein Ablaufdiagramm ist,
welches die Betriebsweise der vorliegenden Erfindung darstellt.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN, BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
-
Die
vorliegende Erfindung wird nachfolgend nun umfangreicher unter Hinzunahme
der beigefügten
Zeichnungen beschrieben, in welchen bevorzugte Ausführungsformen
der Erfindung gezeigt werden. Diese Erfindung kann jedoch in vielen
verschiedenen Gestalten ausgeführt
werden und sollte nicht dahingehend ausgelegt werden, dass sie auf
die hierin dargelegten Ausführungsformen
beschränkt
ist. Vielmehr sind diese Ausführungsformen
vorgesehen, damit diese Offenbarung gründlich und vollständig wird, und
dass die Offenbarung dem Fachmann die Lehren der Erfindung vollständig vermitteln
werden.
-
Unter
Bezugnahme auf 1 wird
ein dezentralisiertes, direktes Verarbeitungsdatenbanksystem 1 gemäß der vorliegenden
Erfindung gezeigt. Das System weist in bevorzugter Weise eine dezentralisierte
Datenbank 2 auf, die Daten an einer Anzahl von dienstanfordernden
Geräten
bzw. Clienten 3 bereitstellt. Die dezentralisierte Datenbank 2 weist
in bevorzugter Weise Disk-Speicher 4 und 5 auf,
die für das
dezentralisierte Verarbeitungssystem jeweils als Primary-Disk-Speicher und
Secondary-Disk-Speicher dienen. Es wird verstanden, dass das dezentralisierte
Verarbeitungssystem 1 das Leistungsvermögen besitzt, während der
Systemoperation entweder den Disk-Speicher 4 oder den Disk-Speicher 5 als Primary-Disk-Speicher
bzw. Secondary-Disk-Speicher auszuersehen. Nur als Beispiel wird
der Disk-Speicher 4 als Primary-Disk-Speicher und der Disk-Speicher 5 als
Secondary-Disk-Speicher
ausersehen. Der Primary-Disk-Speicher 4 und der Secondary-Disk-Speicher 5 sind
in bevorzugter Weise jeweils operativ zu Disk-Manager-Prozessoren 6 und 7 zugehörig. Der
Disk-Manager-Prozessor 6 dient in bevorzugter Weise als
Primary-Disk-Manager-Prozessor zur Steuerung des Zugriffes auf den
Primary-Disk-Speicher 4. Auf ähnliche Weise dient der Disk-Manager-Prozessor 7 in
bevorzugter Weise für den
Secondary-Disk-Speicher 5 als Secondary-Disk-Manager-Prozessor 7 zur
Steuerung des Zugriffes hierauf.
-
Die
dezentralisierte Datenbank 2 weist in bevorzugter Weise
ferner einen Primary-Cache-Speicher 8 und einen Secondary-Cache-Speicher 9 auf, wobei
jeder von ihnen operativ mit dem Primary-Disk-Speicher 4 und
dem Secondary-Disk-Speicher 5 verbunden ist, um als Speicher
zu dienen, der eine relativ schnelle Zugriffszeit zum Speichern
der Daten hat, auf die am direktesten zugegriffen werden. Die dezentralisierte
Datenbank 2 weist in bevorzugter Weise ferner Client-Prozessoren 10 und 11 auf,
die jeweils operativ zu dem Primary-Cache-Speicher 8 und
dem Secondary-Cache-Speicher 9 zugehören. Der Client-Prozessor 10 dient
in bevorzugter Weise für
den Primary-Cache-Speicher 8 als Cache-Manager-Prozessor
durch die Steuerung des Zugriffes hierauf. Auf ähnliche Weise dient der Client-Prozessor 11 in
bevorzugter Weise für
den Secondary-Cache-Speicher 9 als Cache-Manager-Prozessor
durch die Steuerung des Zugriffes hierauf. Auf diese Weise werden
Daten zwischen den Cache- 8 und 9 und den Disk-Speichern 4 und 5 über die
Cache-Manager-Prozessoren 10 und 11 und Disk-Manager-Prozessoren 6 und 7 übertragen,
wie es in 1 dargestellt
ist. Durch das Einschließen
von doppelten Cache-Speichern 8 und 9 und
doppelten Disk-Speichern 4 und 5 sichert das vorliegende
dezentralisierte, direkte Verarbeitungssystem 1 im Wesentlichen
die Datenverfügbarkeit
an die dienstanfordernden Geräte
bzw. Clienten 3.
-
Der
Primary-Cache-Speicher 8 und der Secondary-Cache-Speicher 9 sind
in bevorzugter Weise derart ausgelegt, vielfache Versionen eines
hierin gespeicherten Datenobjektes zu verwalten. Im Einzelnen weisen
die Cache-Speicher 8 und 9 in bevorzugter Weise
Indexregister 12 und 13 auf, oder sie sind andersartig
mit den Indexregistern 12 und 13 operativ verbunden.
Die Indexregister 12 und 13 sind in bevorzugter
Weise in der Lage, auf verschiedene Versionen der gleichen, in den
jeweiligen Caches 8 und 9 gespeicherten Datenobjekten
hinzuweisen, und von daher ermöglichen
sie einen simultanen Zugriff von mehr als einem dienstanfordernden
Gerät oder
Clienten 3 hierauf. Die Indexregister 12 und 13 werden
abgeändert,
um auf eine neue Version eines Datenobjektes hinzuweisen, wenn das
Datenobjekt jeweils in die Cache-Speicher 8 und 9 geschrieben wird
und wenn das Datenobjekt hiervon entfernt wird. Wenn ein Datenobjekt
von den Cache-Speichern 8 und 9 entfernt
wird, dann werden die Indexregister 12 und 13 so
abgeändert,
um ihre Referenz bzw. ihren Hinweis zu der Version des Datenobjektes,
welches entfernt werden muss, zu entfernen. Die Referenzzählung für ein Datenobjekt
hilft sicherzustellen, dass das Datenobjekt weiterhin in den Cache-Speicher 8 oder 9 verbleibt.
Ein Datenobjekt gilt als in einem Cache-Speicher 8 oder 9 verdrahtet,
wenn die Referenzzählung
hierfür
Eins oder mehr ist.
-
Die
dezentralisierte Datenbank 2 weist ferner Prozesse 14–15 und 14'–15' auf, die durch
dienstanfordernde Geräte
bzw. Clienten 3 gesteuert werden, und welche als Lese-
und Schreibeprozesse für
die dienstanfordernden Geräte
bzw. Clienten zum Durchführen
eines Speicherzugriffes innerhalb der Datenbank 2 dienen.
Die Überführung von
Daten zwischen den Speichervorrichtungen innerhalb der Datenbank 2 und
dem dienstanfordernden Gerät 3 wird mittels
eines Steuer- und Schnittstellenprozessors 16 gesteuert.
-
Wie
obig erwähnt,
ermöglicht
es die vorliegende Erfindung dem Verarbeitungssystem 1 und/oder
der Datenbank 2, trotz einer Fehlfunktion, die in einer
oder mehreren Speichervorrichtungen (Cache- 8 und 9 und
Disk-Speicher 4 und 5) auftritt, eine Transaktion
erfolgreich durchzuführen,
wie etwa eine Anforderung zum Schreiben oder Aktualisieren eines
Datenobjektes in der Datenbank 2. Im Einzelnen führt die
vorliegende Erfindung eine Datenreplizierungs-Prozedur aus, die
es der Datenbank 2 gestattet, trotz des Auftretens von
Speichervorrichtungs-Fehlfunktionen, weiterhin zu funktionieren.
-
Unter
Bezugnahme auf 2 ist
die Betriebsweise des direkten Verarbeitungssystems 1 wie folgt.
Wenn die Datenbank 2 eine externe Transaktion von einem
dienstanfordernden Gerät 3,
wie etwa eine Anforderung, eine Speicheraktualisierung durchzuführen, empfängt, verwaltet
der Schnittstellen- und Steuerprozessor 16 die Speicheraktualisierung.
Weil alle vier Speichervorrichtungen mit dem neuen Datenobjekt (oder
mit einer Version hiervon) aktualisiert werden müssen, um zwischen ihnen die Konsistenz
beizubehalten, initiiert der Schnittstellen- und Steuerprozessor 16 eine
Datenreplizierungsprozedur innerhalb der Datenbank 2. Anfänglich wird
ein Bereich der Datenbank 2 durch den Datenreplizierungsprozess
unzugänglich
bzw. unerreichbar gemacht. Der unzugänglich gemachte Datenbankbereich,
kann die Seite in den Speichervorrichtungen sein, die das neue Datenobjekt
enthalten (nachdem es dort hineingeschrieben wurde) oder aber auch
das neue Datenobjekt selbst. Als nächstes wird ein Versuch gemacht,
beim Schritt 20 den Primary-Cache-Speicher 8 zu
aktualisieren, gefolgt von einem Versuch, beim Schritt 21 den
Secondary-Cache-Speicher 9 zu aktualisieren. Als nächstes versucht
die Datenbank 2, den Primary-Disk-Speicher 4 zu
aktualisieren (Schritt 22), und dann versucht sie, den
Secondary-Disk-Speicher 5 zu aktualisieren (Schritt 23).
Der Status von jedem der vier Versuche, die Speichervorrichtungen
zu aktualisieren, wird durch den Schnittstellen- und Steuerprozessor 16 verwaltet.
Es sei darauf hingewiesen, dass die spezielle Sequenz bzw. Abfolge
der Speicheraktualisierungen wichtig ist, um die Konsistenz während der Datenreplikationsprozedur
sicherzustellen. Beispielsweise stellt das anfängliche Aktualisieren der Cache-Speicher 8 und 9 sicher,
dass das neue Datenobjekt für
das System 1 während
der Zeit, wenn die Disk-Speicher 4 und 5 aktualisiert
werden, zugänglich
sind.
-
Nachfolgend
der Vollendung der vier Versuche, die Cache- 8 und 9 und
die Disk-Speicher 4 und 5 zu aktualisieren, prüft der Schnittstellen-
und Steuerprozessor 16 in bevorzugter Weise den Status
eines jeden Versuches und ermittelt basierend auf dieser Überprüfung, ob
er die externe Transaktion (die Anforderung der Speicheraktualisierung) übergibt.
-
In
dem Fall, wenn der Primary-Cache-Speicher 8 erfolgreich
aktualisiert wurde, während
der Secondary-Cache-Speicher 9, der Primary-Disk-Speicher 4 und
der Secondary-Disk-Speicher 5 nicht erfolgreich aktualisiert
wurden, bestimmt dann der Schnittstellen- und Steuerprozessor 16,
dass die externe Transaktion (die Anforderung der Speicheraktualisierung)
beim Schritt 24 fehlgeschlagen hat. Der Schnittstellen-
und Steuerprozessor 16 gibt dann ein Erwiderungssignal
an den anfragenden Clienten 3 ab, dass die Durchführung der
Anforderung fehlgeschlagen ist.
-
Zusätzlich wird
ein Versuch gemacht, beim Schritt 25 das Datenobjekt von
dem Primary-Cache-Speicher 8 zu löschen, um die Konsistenz zwischen
den Speichervorrichtungen beizubehalten. Diese Lösch-Operation wird durch Abänderung
bzw. Modifizierung des zu dem Primary-Cache-Speicher 8 zugehörigen Indexregisters 12 ausgeführt, so
dass der Indexregister 12 nicht länger auf das neue Datenobjekt
hinweist. Wenn die Lösch-Operation
nicht erfolgreich war, erzeugt der Schnittstellen- und Steuerprozessor 16 bei
Schritt 26 ein Alarmsignal und kennzeichnet den Primary-Cache-Speicher 8 als
nicht harmonierend bzw. als nicht synchronisiert. An diesem Punkt
wird der als Secondary-Cache-Speicher 9 identifizierte
Cache-Speicher als Primary-Cache-Speicher
für das
System ausersehen.
-
Hinsichtlich
des Primary-Cache-Speichers 8, der als nicht harmonierend
bzw. als nicht synchronisiert identifiziert ist, kann das vorliegende
System 1 in bevorzugter Weise bei einem späteren Zeitpunkt
eine automatische Re-Synchronisierungs-Operation des Primary-Cache-Speichers 8 gestatten.
Beispielsweise kann die Datenbank 2 ein Protokoll 17 enthalten, welches
eine Auflistung der Datenobjekte enthalten kann, die nicht erfolgreich
in dem Primary-Cache-Speicher 8, dem Secondary-Cache-Speicher 9, dem
Primary-Disk-Speicher 4 und dem Secondary-Disk-Speicher 5 aktualisiert
wurden. Gelegentlich, wie etwa auf einer periodischen Basis, wird
in bevorzugter Weise ein Versuch unternommen, die Datenobjekte zu
replizieren, die zuvor nicht erfolgreich in den Datenvorrichtungen
aktualisiert wurden. In dem Fall, wenn eine Speichervorrichtung,
wie ein Primary-Cache-Speicher 8, erfolgreich mit diesen
Datenobjekten aktualisiert wird, welche zuvor dort nicht erfolgreich
aktualisiert wurden, wird die Speichervorrichtung wieder synchronisiert
und vollkommen einsatzbereit.
-
In
dem Fall, wenn nur der Primary-Cache-Speicher 8 und einer
der Disk-Speicher 4 und 5 erfolgreich mit dem
Datenobjekt aktualisiert wurden, ermittelt bei Schritt 27 der
Schnittstellen- und Steuerprozessor 16 dann, dass die externe
Transaktion erfolgreich abgeschlossen wurde. Der Schnittstellen- und
Steuerprozessor 16 gibt dann eine Erwiderung an den anfragenden
Clienten 3 ab, dass die Durchführung erfolgreich war. Der
Secondary-Cache-Speicher 9 und der Disk-Speicher 4 oder 5,
bei denen die Aktualisierung ebenso fehlschlug, werden bei Schritt 28 als
nicht harmonierend bzw. nicht synchronisiert gekennzeichnet.
-
In
dem Fall, wenn nur der Secondary-Cache-Speicher 9 erfolgreich
aktualisiert wurde (Schritt 29), bestimmt dann der Schnittstellen-
und Steuerprozessor 16, dass die Transaktion erfolgreich
vollendet wurde (Schritt 30). Der anfragende Client 3 sendet
ein Signal, welches die erfolgreiche Leistung bestätigt. Ferner
wird ein Alarm erzeugt, wenn es fehlschlug, den Secondary-Cache-Speicher 9 zu
aktualisieren, und der Secondary-Cache-Speicher 9 wird
als nicht harmonierend bzw. nicht synchronisiert gekennzeichnet
(Schritt 31).
-
In
dem Fall, wenn sowohl der Primary-Disk-Speicher 4 als auch
der Secondary-Disk-Speicher 5 nicht erfolgreich aktualisiert
wurden, während
beide Cache-Speicher 8 und 9 erfolgreich aktualisiert
wurden, bestimmt der Schnittstellen- und Steuerprozessor 16,
dass die externe Transaktion fehlgeschlagen hat (Schritt 32).
Der anfragende Client 3 wird von dieser nicht erfolgreichen
Durchführung
benachrichtigt (Schritt 33). Als nächstes wird ein Versuch gemacht,
das neue Datenobjekt von sowohl dem Primary-Cache-Speicher 8 als
auch dem Secondary-Cache-Speicher 9 zu löschen (Schritt 33).
Wenn das neue Datenobjekt nicht erfolgreich von entweder einem oder
beiden Cache-Speicher 8 oder 9 gelöscht wird,
dann wird der Cache-Speicher, welcher einer fehlgeschlagenen Lösch-Operation entspricht,
als nicht harmonierend bzw. nicht synchronisiert gekennzeichnet
(Schritt 34).
-
In
dem Fall, wenn lediglich einer der Disk-Speicher 4 oder 5 nicht
erfolgreich mit dem Datenobjekt aktualisiert wurde, während die
verbleibenden Speichervorrichtungen erfolgreich aktualisiert wurden,
bestimmt der Schnittstellen- und Steuerprozessor 16, dass
die externe Transaktion erfolgreich ausgeführt worden ist (Schritt 35).
Der Client bzw. das dienstanfordernde Gerät wird dann hinsichtlich des
Auftretens der erfolgreichen Ausführung benachrichtigt. Der Disk-Speicher 4 oder 5,
der nicht erfolgreich aktualisiert wurde, wird als nicht harmonierend bzw.
nicht synchronisiert gekennzeichnet (Schritt 36).
-
In
dem Fall, wenn jede Speichervorrichtung (Primary-Cache-Speicher 8,
Secondary-Cache-Speicher 9, Primary-Disk-Speicher 4 und
Secondary-Disk-Speicher 5) erfolgreich aktualisiert wurde,
bestimmt der Schnittstellen- und Steuerprozessor 16 dann,
dass die Aktualisierung erfolgreich war und gibt ein Signal hinsichtlich
des Ereignisses an den anfragenden Clienten 3 ab (Schritt 35).
-
Es
sei darauf hingewiesen, dass sämtliche anderen
Zugriffsszenarien, die nicht obig beschrieben werden, in der externen
Transaktion, die nicht erfolgreich ausgeführt wird, resultieren.
-
Die
obig beschriebene Prozedur zur Datenreplikation in einem direkten
Verarbeitungssystem mit hoher Verfügbarkeit basiert teilweise
auf Cache-Indexregister 12 und 13, die im wesentlichen
im gleichen Zeitintervall ablaufend mit der jeweiligen Aktualisierung
der Cache-Speicher 8 und 9 aktualisiert werden,
um auf das neue Datenobjekt hinzuweisen. Es wird verstanden, dass
die Indexregister 12 und 13 nach dem erfolgreichen
Beschreiben jeder Speichervorrichtung, und nur, nachdem eine erfolgreiche
Ermittlung gemacht wird, dass die angeforderte externe Transaktion
erfolgreich vollende wurde, alternativ aktualisiert werden können. Auf
diese Weise werden dienstanfordernde Geräte bzw. Clienten daran gehindert,
auf die neue Datenobjektversion zuzugreifen, die später aufgrund
des Fehlschlagens der Durchführung
der externen Transaktion gelöscht
werden müssen.
In diesem alternativen Verfahren werden die Indexregister 12 und 13 nicht
korrigiert, wenn die externe Transaktion fehlschlägt. Tatsächlich gibt
der einzige Schritt, welcher der Ermittlung der externen Transaktionsleistungsfehler
notwendigerweise nachfolgt, den Speicherplatz frei, der durch das
neue Datenobjekt in den Cache-Speichern 8 und 9 besetzt wird.
-
Obwohl
die bevorzugten Ausführungsformen des
Systems und des Verfahrens der vorliegenden Erfindung anhand der
beigefügten
Zeichnungen dargestellt werden und in der vorhergehenden detaillierten
Beschreibung beschrieben wurden, ist es so zu verstehen, dass die
Erfindung nicht auf die offenbarten Ausführungsformen beschränkt sondern
auf eine Vielzahl von Anordnungen, Modifikationen und Ersetzungen
anwendbar ist, ohne von dem Umfang der Erfindung, wie sie durch
die nachfolgenden Patentansprüche
ausgeführt
und definiert wird, abzuweichen.