-
Transaktionsverarbeitungssysteme
sind Computer-Hardware- und
-Software-Systeme, die eine gleichzeitige Ausführung von mehreren Transaktionsprogrammen
unterstützen,
während
sie die Bewahrung von sogenannten ACID-Eigenschaften sicherstellen,
die Atomizität,
Konsistenz, Isolation und Dauerhaftigkeit umfassen (ACID = Atomicity, Consistency,
Isolation and Durability). Ein Transaktionsprogramm ist eine Spezifikation
von Operationen, die gegen den Anwendungszustand angewendet werden,
einschließlich
der Reihenfolge, in der die Operationen angewendet werden müssen und Gleichzeitigkeitssteuerungen,
die ausgeführt
werden müssen,
damit die Transaktion korrekt ausgeführt wird. Die üblichste
Gleichzeitigkeits-Steuerungsoperation ist die Verriegelung, wodurch
der Prozess, der dem Transaktionsprogramm entspricht, entweder eine
gemeinschaftliche oder eine exklusive Verriegelung auf den Daten
erwirbt, die er liest oder schreibt. Eine Transaktion bezieht sich
auf eine Sammlung von Operationen auf dem physischen und abstrakten Anwendungszustand, üblicherweise
dargestellt in einer Datenbank. Eine Transaktion stellt die Ausführung eines
Transaktionsprogramms dar. Operationen umfassen das Lesen und Schreiben
eines Gemeinschaftszustands.
-
Im
Hinblick auf die ACID-Eigenschaften bezieht sich Atomizität auf Transaktionen,
die ein Alles-Oder-Nichts-Verhalten
aufweisen, insofern, dass eine Transaktion entweder vollständig ausgeführt wird
oder überhaupt
nicht. Eine Transaktion, die abgeschlossen wird, wird als ausgeführt angesehen;
eine, die während
der Ausführung
eingestellt wird, wird als abgebrochen angesehen; eine, die die
Ausfüh rung
begonnen hat, aber weder zweckgebunden noch abgebrochen ist, ist
in Betrieb.
-
Konsistenz
bezieht sich auf die erfolgreiche Fertigstellung einer Transaktion,
die den Anwendungszustand konsistent gegenüber allen Integritätseinschränkungen
lässt,
die spezifiziert wurden.
-
Isolation,
ebenfalls bekannt als Serialisierbarkeit, garantiert, dass jede
korrekte gleichzeitige Ausführung
eines Stroms aus Transaktionen einer Gesamtreihenfolge bezüglich der
Transaktionen entspricht, die den Strom bilden. In diesem Sinn,
im Hinblick auf eine ausgeführte
Transaktion, sind die Wirkungen jeder zweiten Transaktion in dem
Strom die selben, als wenn dieselbe direkt davor oder direkt danach
ausgeführt
würde.
Eine starke Serialisierbarkeit bezieht sich auf den Grad, mit dem
die Ausführung von
gleichzeitigen Transaktionen eingeschränkt ist und unterschiedliche
Isolationspegel bei Transaktionsverarbeitungssystemen erzeugt. In
dem Kontext des aktuellen Dokuments ist das Problem am größten im
Hinblick auf Transaktionsverarbeitungssysteme, die die stärksten Isolationsformen
aufweisen, bei denen die Aktualisierungen, die durch eine Transaktion
gemacht werden, niemals verloren gehen, und wiederholte Leseoperationen
innerhalb einer Transaktion dasselbe Ergebnis erzeugen.
-
Dauerhaftigkeit
bezieht sich auf die Eigenschaft, derart, dass sobald eine Transaktion
ausgeführt
wurde, ihre Änderungen
an dem Anwendungszustand Ausfälle überleben,
die das Transaktionsverarbeitungssystem betreffen.
-
Eine
Herausforderung bei Transaktionsverarbeitungssystemen bezieht sich
auf das Reduzieren der Zeit, die benötigt wird, um Transaktionen
auszuführen.
Dementsprechend entstand diese Erfindung aus Problemen, die dem
Bereitstellen von Systemen und Verfahren zugeordnet sind, die die
Zeit reduzieren, die benötigt
wird, um Transaktionen auszuführen.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Transaktionsverarbeitungs-System
und ein -Verfahren mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Transaktionsverarbeitungssystem gemäß Anspruch
1 und 6 und durch ein Verfahren gemäß Anspruch 14, 21 und 26 gelöst.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
exemplarisches Transaktionsverarbeitungssystem, dessen Komponenten
in Verbindung mit einem oder mehreren Ausführungsbeispielen verwendet
werden können;
-
2 eine
Implementierung des Transaktionsverarbeitungssystems aus 1;
-
3 ein
exemplarisches Ausführungsbeispiel
einer Nicht-Platten-Dauerspeichereinheit;
-
4 ein
exemplarisches Ausführungsbeispiel
einer Nicht-Platten-Dauerspeichereinheit;
-
5 ein
anderes exemplarisches Ausführungsbeispiel
einer Nicht-Platten-Dauerspeichereinheit;
-
6 ein
exemplarisches Transaktionsverarbeitungssystem, das Nicht-Platten-Dauerspeichereinheiten
gemäß einem
oder mehreren Ausführungsbeispielen
verwendet;
-
7 ein
Flussdiagramm, das Schritte in einem Verfahren gemäß einem
Ausführungsbeispiel beschreibt;
und
-
8 ein
exemplarisches Computersystem, das verwendet werden kann, um eines
oder mehrere der hierin beschriebenen Ausführungsbeispiele zu praktizieren.
-
Überblick
-
Verschiedene
hierin beschriebene Ausführungsbeispiele
verwenden einen Nicht-Platten-Dauerspeicher in Verbindung mit Transaktionsverarbeitungssystemen.
Durch Verwenden eines Nicht-Platten-Dauerspeichers zum Ausführen von
Transaktionen kann die Zeit, die dem Ausführen von Transaktionen zugeordnet
ist, reduziert werden, wodurch der Bedarf nach Ressourcen innerhalb
des Transaktionsverarbeitungssystems verringert wird und der Transaktionsverarbeitungsdurchsatz
erhöht
wird.
-
Exemplarisches
allgemeines Transaktionsverarbeitungssystem
-
1 zeigt
ein exemplarisches Transaktionsverarbeitungssystem 100,
dessen Komponenten verwendet werden können, um die erfinderischen Prinzipien
zu implementieren, die hierin beschrieben werden. Bei dem beschriebenen
Ausführungsbeispiel
weist das Transaktionsverarbeitungssystem 100 einen Datenbankschreiber 102,
eine Transaktionsüberwachungseinrichtung 104 und
einen Protokollschreiber 106 auf.
-
Der
Datenbankschreiber 102 ist konfiguriert, um Daten zu verändern, die
auf Datenvolumen gespeichert sind (d. h. Platten oder Sammlungen
von Platten), wenn er Operationen ausführt, die durch die Transaktionsprogramme
spezifiziert sind. Es ist nicht besonders relevant für die Erörterung
hier, wie er die ACID-Eigenschaften bewahrt, außer der Dauerhaftigkeit. Für die Dauerhaftigkeit
stellt der Datenbankschreiber sicher, dass die Änderungen, die durch ihn an
der Datenbank durchgeführt
werden, auf einem dauerhaften Medium aufgezeichnet werden. Bei einer
Online-Transaktionsverarbeitung
neigen die Daten, die durch diese Änderungen beeinträchtigt werden,
dazu, beliebig auf Datenvolumen verteilt zu werden. Da ein beliebiger
Zugriff auf Plattenlaufwerke äußerst ineffizient
ist, werden diese Änderungen nicht
direkt auf die Platte geschrieben. Statt dessen senden die Datenbankschreiber 102 ihre Änderungen
zu dem Protokollschreiber 106, der nachfolgend beschrieben
wird, der die Änderungen
rechtzeitig für eine
Transaktionsausführung
dauerhaft macht.
-
Der
Transaktionsüberwacher 104 verfolgt
die Transaktionen, wenn sie in das System eintreten und dasselbe
verlassen. Der Transaktionsüberwacher verfolgt
das Verändern
der Datenbank durch die Datenbankschreiber 102 für eine Transaktion,
und stellt sicher, dass jegliche Datenvolumenänderungen, die sich auf diese
Transaktion beziehen, durch den Datenbankschreiber 102 zu
dem Protokollschreiber 106 gesendet werden, auf ein permanentes
Medium gespielt werden, bevor die Transaktion ausgeführt wird. Die
Transaktionsüberwachungseinrichtung 104 notiert
ebenfalls Transaktionszustände
(z. B. Ausführen oder
Abbrechen) in einem Transaktionsprotokoll.
-
Der
Protokollschreiber 106 behält eine Datenbankprüfspur bei,
die genau die Änderungen
aufzeichnet, die an der Datenbank durch jede Transaktion durchgeführt werden,
und zeichnet implizit die serielle Reihenfolge auf, in der die Transaktionen
ausgeführt
werden. Wiederum Bezug nehmend auf die Dauerhaftigkeitseigenschaft,
bevor eine Transaktion ausgeführt
werden kann, müssen
die Änderungen, die
durch die Transaktion gemacht wurden, auf einem dauerhaften Medium
aufgezeichnet werden. Der Protokollschreiber 106 erzwingt
diese Einschränkung;
er empfängt
von dem Datenbankschreiber 102 Prüfungsaufzeichnungen, die Zustandsände rungen beschreiben,
und koordiniert dessen Aufzeichnungsaktionen mit dem Rest der nachfolgend
beschriebenen Transaktionsausführungs-Infrastruktur.
-
Wie
Fachleuten auf dem Gebiet bekannt ist, können eine oder mehrere der
obigen Entitäten
unter Verwendung mehrerer Prozesse oder Teilprozesse realisiert
werden.
-
2 zeigt
eine Implementierung des Transaktionsverarbeitungssystems aus 1 allgemein bei 200 und
weist Datenbankschreiber 202, Transaktionsüberwachungseinrichtungen 204 und
Protokollschreiber 206 auf.
-
Bei
diesem Beispiel wird jede der oben beschriebenen Komponenten unter
Verwendung eines Prozesspaares implementiert. Somit umfasst jedes Prozesspaar
einen primären
Prozess (markiert als „pri") und einen Sicherungsprozess
(markiert als „bak"). Bei diesem Beispiel,
bevor mit einer anderen Komponente des Transaktionsverarbeitungssystems kommuniziert
wird, prüft
jeder Primärprozess
die relevanten Teile seines Zustands punktmäßig für den Sicherungsprozess; in
dem Fall, dass der Primärprozess
ausfällt,
kann der Sicherungsprozess schnell übernehmen. Das Übernahmeintervall
ist relativ kurz (dauert von wenigen Millisekunden bis einige Sekunden),
während
dem In-Betrieb-Transaktionen abgebrochen und möglicherweise neu gestartet
werden. Die Prozesse und Bibliotheken, die die Elemente der Transaktionsverarbeitungsarchitektur
in 2 realisieren, können über CPUs verteilt sein.
-
Bei
diesem Beispiel sind Datenbankschreiber 202 markiert als „DP2" (für „Plattenprozess 2"; DP = Disk Process)
und Protokollschreiber 206 sind markiert als „ADP" (für „Prüfplattenprozess"; ADP = Audit Disk
Process). Die Transaktionsüberwachungseinrichtungen 204 werden
unter Verwendung einer verteilten Sammlung von Prozessen und Systembibliotheken
implementiert, genannt TMF (TMF = „Transaction Monitoring Facility" = Transaktionsüberwachungseinrich tung).
Die Transaktionsüberwachungseinrichtungen 204 sind
markiert als „TMP" (TMP = „Transaction
Monitor Process" =
Transaktionsüberwachungsprozess)
und koordinieren den Start und die Ausführung von Transaktionen. Die TMF
verwendet eine Betriebssystemeinrichtung, genannt TMFlib (TMF-Bibliothek) an jeder
CPU in der Gruppe. Diese Bibliothek ermöglicht, dass sich die DP2-Prozesse
bei der TMF registrieren, wenn sie ihre Arbeit beginnen und beenden,
bezüglich
jeder gegebenen Transaktion. Die TMFlib-Instanzen kommunizieren
miteinander und mit dem TMP-Prozesspaar, um eine Transaktionsausführung zu
koordinieren, wie nachfolgend in dem Abschnitt mit dem Titel „Transaktionen
ausführen" beschrieben ist.
-
Transaktionen
ausführen
-
Bezug
nehmend auf 2 beschreibt das Nachfolgende
exemplarische Schritte, die beim Ausführen einer Transaktion umfasst
sind, in dem Fall, wenn ein einzelnes Protokollvolumen (oder Prüfspur-Plattenvolumen) 208 in
dem Transaktionsverarbeitungssystem vorliegt. Üblicherweise trifft ein Klient 210 auf
eine Transaktion Beginnen oder eine ähnliche Operation, die den
Beginn einer Transaktion anzeigt. Die TMFlib auf der CPU, die den
Klientenprozess abspielt, benachrichtigt den Transaktionsüberwachungsprozess
oder TMP über
das Ereignis Transaktion Beginnen. Der TMP weist der neuen Transaktion
eine Transaktions-ID (TID) zu. Die TID wird dann zu einem Datenbankschreiber 202 verteilt und
insbesondere zu allen Plattenprozessen DP2, die für die Transaktion
arbeiten. Der einfache Fall, gezeigt in 2, umfasst
nur einen einzelnen Datenbankschreiber (der ein Paar von DP2-Prozessen
aufweist). In einem allgemeineren Fall können mehrere DP2-Prozesspaare
beim Verarbeiten einer Transaktion umfasst sein.
-
Wenn
der Datenbankschreiber 202 den Datenbankzustand modifiziert,
verteilen die DP2-Prozesse eine Aufzeichnung der Zustandsänderungen zu
den Protokollschreibern 206 und insbesondere zu dem ADP-Prozess.
Der ADP-Prozess puffert Zustandsänderungen
in dem Speicher, bis entweder eine Schwelle bezüglich dem Betrag von gepufferten Prüfdaten überschritten
wird (was zu einem sogenannten Höflichkeitsschreiben
führt),
oder früher, wenn
er zum Ausführen
gezwungen wird, durch eine Nachricht von dem Transaktionsüberwachungsprozess 204 (was
zu einem sogenannten gezwungenen Schreiben führt).
-
Zu
einem nachfolgenden Zeitpunkt trifft der Klient dann auf eine Transaktion
Ende oder eine ähnliche
Operation, die das Ende einer bestimmten Transaktion anzeigt. Bevor
der Transaktionsüberwachungsprozess 204 die
Transaktion ausführen
kann, muss er sicherstellen, wie vorangehend erklärt wurde,
dass die Datenbankzustandsänderungen,
die zu dem Protokollschreiber 206 für die Transaktion gesendet
wurden, dauerhaft gemacht wurden. Um dies zu erreichen, sendet der
TMP eine Aussende-Nachricht für
diese bestimmte Transaktion zu dem Protokollschreiber oder dem ADP
und wartet dann auf eine Nachricht von dem ADP, die bestätigt, dass
die erforderlichen Zustandsänderungen
und die Ausführungsaufzeichnung
von den nicht-dauerhaften Systempuffern zu den Plattentreibern ausgesendet
wurden. Nachdem die Transaktionsüberwachungseinrichtung 204 die
Bestätigung
empfangen hat, sendet sie eine Transaktionsausführungsaufzeichnung zu dem ADP,
und sobald die Ausführungsaufzeichnung auf
ein dauerhaftes Medium geschrieben wurde, benachrichtigt sie den
Klienten, dass die Transaktion ausgeführt wurde.
-
Aus
dem Vorangehenden ist offensichtlich, dass das Warten auf die Zustandsänderungen
und Ausführungsaufzeichnungen
zum Aussenden zu Platten einen großen Teil der Verzögerung beim
Ausführen
von TMF-Transaktionen ausmacht, wie Fachleute auf dem Gebiet erkennen
werden. Da Platten mechanische Medien sind, verbessern sich Plattenlatenzzeiten
nicht so schnell wie Prozessor- und Speicher-Geschwindigkeiten, reichen
TMF-Transaktionsausführzeiten
häufig
von wenigen Millisekunden bis zu vielen Sekunden.
-
Während einige
Anwendungen lange Ansprechzeiten tolerieren können, tun dies viele andere nicht.
Mit hohen TMF-Transaktionsansprechzeiten besteht
eine zweite nachteilige Auswirkung auf den Transaktionsverarbeitungsdurchsatz,
aufgrund der Tatsache, dass eine durchschnittliche Transaktion länger in
dem System bleibt, wodurch ein größerer Bedarf an Ressourcen
innerhalb des Transaktionsverarbeitungssystems verursacht wird,
was indirekt den Transaktionsverarbeitungsdurchsatz unter finiten
Ressourcen einschränkt.
-
Dauerspeicher im Allgemeinen
-
Gemäß den hierin
beschriebenen Ausführungsbeispielen
wird ein Nicht-Platten-Dauerspeicher in Verbindung mit einem Transaktionsverarbeitungssystem
verwendet, um Transaktionsausführungszeiten
zu reduzieren.
-
Ein
Dauerspeicher ist ein Architekturkonzept, wie Fachleute auf dem
Gebiet erkennen werden. Gemäß den beschriebenen
Ausführungsbeispielen
gibt es viele mögliche
Implementierungen eines Nicht-Platten-Dauerspeichers, die verwendet werden
können.
Als solches ist es nicht die Absicht dieses Dokuments, auf ein bestimmtes
Ausführungsbeispiel
eines Nicht-Platten-Dauerspeichers beschränkt zu sein.
-
Um
dem Leser beim Erkennen von Architekturprinzipien zu helfen, die
einem Nicht-Platten-Dauerspeicher zugeordnet sind, beschreibt die
nachfolgende Erörterung
Charakteristika, die Nicht-Platten-Dauerspeichersysteme aufweisen
können,
um ihre Verwendung in den erfinderischen Transaktionsverarbeitungssystemen
zu ermöglichen.
In dieser Erörterung
werden einige nicht-einschränkende
Beispiele von Nicht-Platten-Dauerspeichersystemen
bereitgestellt.
-
Ein
Nicht-Platten-Dauerspeicher, wie er in diesem Dokument definiert
ist, sollte die nachfolgenden Eigenschaften aufweisen: Dauerhaftigkeit,
Konnektivität
und Zugriff.
-
Die
Dauerhaftigkeit bezieht sich auf einen Nicht-Platten-Dauerspeicher, der
dauerhaft ist, ohne Auffrischung, und der den Verlust von Systemleistung überleben
kann. Er sollte zusätzlich
dazu dauerhafte, selbsterhaltende Metadaten aufweisen, um einen
fortgesetzten Zugriff auf die Daten sicherzustellen, die auf dem
Nicht-Platten-Dauerspeicher gespeichert sind, nach einem Leistungsverlust
oder weichen Ausfällen.
-
Im
Hinblick auf die Konnektivität
sei folgendes berücksichtigt.
Ein Nicht-Platten-Dauerspeicher kann an Speichersteuerungen angebracht
werden, die mit herkömmlichen
Chipsätzen
verfügbar
sind. Während
Spezialzweck-Speichersteuerungen möglicherweise entworfen sein
können,
um die Dauerhaftigkeit eines Nicht-Platten-Dauerspeichers auf eindeutige
Weise auszunutzen, ist ihre Existenz nicht erforderlich. In jenen
Fällen,
wo eine direkte Konnektivität
zu einer Speichersteuerung einer CPU nicht wünschenswert ist – möglicherweise
aufgrund von Fehlertoleranzimplikationen, Verpackungsbetrachtungen,
Physischer-Schlitz-Einschränkungen
oder Elektrische-Last-Grenzen – ist
eine IO-Anbringung eines Nicht-Platten-Dauerspeichers auf erster
Ebene ermöglicht.
Zum Beispiel kann der Nicht-Platten-Dauerspeicher an die PCI oder
andere Erste-Ebene-I/O-Verbindungen angebracht sein, wie z. B. PCI-Express,
RDMA über
IP, InfiniBand, Virtual Interface over Fibre Channel (FC-VI; Virtuelle
Schnittstelle über
Faserkanal) oder ServerNet. Solche Verbindungen unterstützen sowohl
Speicherabbildungs- als auch Speichersemantik-Zugriff. Dieses Ausführungsbeispiel
eines Nicht-Platten-Dauerspeichers wird als eine Kommunikationsverknüpfungs-Angebrachte
Dauerspeichereinheit (CPMU; CPMU = Communication-link Attached Persistent
Memory Unit) bezeichnet.
-
Speicherungskonnektivität (z. B.
SCSI) – oder
tatsächlich
eine andere Zweite-Ebene-I/O-Konnektivität – ist nicht wünschenswert
für einen
Dauerspeicher, aufgrund von Verhaltensbetrachtungen, die nachfolgend
identifiziert werden.
-
In
Bezug auf Zugriff wird nachfolgendes betrachtet. Auf einen Nicht-Platten-Dauerspeicher
kann von Benutzerprogrammen aus zugegriffen werden, wie von einem
normalen virtuellen Speicher, wenn auch an speziell zugewiesenen
virtuellen Prozessadressen, unter Verwendung der Speicheranweisungen
(laden und speichern) der CPU. Auf bestimmten Systembereichs-Netzen
(d. h. SANs), die Speichersemantik-Operationen unterstützen, kann
der Nicht-Platten-Dauerspeicher als eine Netzwerk-Ressource implementiert
sein, auf die unter Verwendung eines Entfernter-DMA (RDMA) oder
einer ähnlichen Semantik
zugegriffen wird. Zum Beispiel zeigt 3 ein System 300,
das einen netzwerk-angebrachten Nicht-Platten-Dauerspeicher verwendet,
der eine kommunikationsverknüpfungs-angebrachte Nicht-Platten-Dauerspeichereinheit
(CPMU) 310 aufweist, auf die durch einen oder mehrere Prozessorknoten 302 durch
ein RDMA-freigegebenes Systembereichsnetz (SAN) 306 zugegriffen
werden kann. Um auf den Nicht-Platten-Dauerspeicher der CPMU 310 zuzugreifen,
initiiert die Software, die auf dem Prozessorknoten 302 läuft, entfernte
Lese- oder Schreib-Operationen durch die Netzwerkschnittstelle (NI;
NI = Network Interface) 304 des Prozessorknotens. Auf diese
Weise werden Lese- oder Schreib-Befehle auf einem RDMA-fähigen SAN 306 zu
der Netzwerkschnittstelle (NI) der CPMU 308 getragen. Dementsprechend,
nach dem Verarbeiten, werden die geeigneten Daten über das
RDMA-fähige SAN 306 kommuniziert.
-
Zusätzlich zu
den RDMA-Datenbewegungs-Operationen kann die CPMU 310 konfiguriert sein,
um auf verschiedene Verwaltungsbefehle zu antworten. Bei einer Schreiboperation,
initiiert durch den Prozessorknoten 302, werden Daten z.
B., nachdem sie erfolgreich in die CPMU gespeichert wurden, dauerhaft,
und überleben
einen Leistungsausfall oder einen Prozessorknotenausfall 302.
Genauer gesagt werden Speicherinhalte beibehalten, solange die CPMU
weiterhin korrekt funktioniert, sogar nachdem die Leistung für eine verlängerte Zeitperiode
abgetrennt wurde, oder das Betriebssystem auf dem Prozessorknoten 302 neu
gestartet wurde. Bei diesem Beispiel ist der Prozessorknoten 302 ein
Computersystem, das aus zumindest einer zentralen Verarbeitungseinheit
(CPU) und einem Speicher besteht, wobei die CPU konfiguriert ist,
um ein Betriebssystem zu betreiben. Der Prozessorknoten 302 ist zusätzlich konfiguriert,
um eine Anwendungs-Software zu betreiben, wie z. B. Datenbanken.
Der Prozessorknoten 302 verwendet das SAN 306,
um mit anderen Prozessorknoten 302 sowie mit den Vorrichtungen
zu kommunizieren, wie z. B. der CPMU 310 und I/O-Steuerungen
(nicht gezeigt).
-
Bei
einer Implementierung dieses Beispiels ist ein RDMA-fähiges SAN ein Netzwerk, das
in der Lage ist, Byte-Ebenen-Speicheroperationen
durchzuführen,
wie z. B. Kopier-Operationen,
entweder zwischen einem Initiator-Prozessorknoten 302 und einem
Zielprozessorknoten 302 oder zwischen einem Initiatorprozessorknoten 302 und
einer Vorrichtung 310, ohne die CPU des Zielprozessorknotens 302 zu
benachrichtigen. In diesem Fall ist das SAN 306 konfiguriert,
um eine Virtuell-zu-Physisch-Adressübersetzung durchzuführen, um
die Abbildung von zusammenhängenden
virtuellen Netzwerkadressräumen
auf getrennte physische Adressräume
zu ermöglichen.
Dieser Typ einer Adressübersetzung
ermöglicht
eine dynamische Verwaltung einer CPMU 310. Handelsüblich erhältliche
SANs 306 mit einer RDMA-Fähigkeit umfassen, sind jedoch nicht
beschränkt
auf, ServerNet, RDMA über
IP, Infiniband und alle SANs, die der Virtual Interface Architecture
(virtuelle Schnittstellenarchitektur) entsprechen.
-
Prozessorknoten 302 sind
allgemein an ein SAN 306 durch die NI 304 angebracht,
es sind jedoch viele Variationen möglich. Allgemeiner ausgedrückt muss
ein Prozessorknoten jedoch nur mit einer Vorrichtung zum Kommunizieren
von Lese- und Schreib-Operationen verbunden sein. Zum Beispiel sind
bei einer anderen Implementierung dieses Beispiels Prozessorknoten 302 verschiedene
CPUs auf einer Hauptplatine und, anstelle ein SAN zu verwenden,
wird ein Eingangs-/Ausgangs-Bus
verwendet, z. B. ein PCI-Bus. Es wird darauf hingewiesen, dass die vorliegenden
Lehren aufwärts
oder abwärts
skaliert werden können,
um nach Bedarf größere oder
kleinere Implementierungen zu berücksichtigen.
-
Die
Netzwerkschnittstelle (NI) 308 ist kommunikativ mit der
CPMU 310 gekoppelt, um einen Zugriff auf den Nicht-Platten-Dauerspeicher zu
ermöglichen,
der innerhalb der CPMU 310 enthalten ist. Viele Techniken
sind für
die verschiedenen Komponenten aus 3 verfügbar, einschließlich dem
Typ einer Speichertechnik, der in der CPMU 310 verwendet wird.
Dementsprechend ist das Ausführungsbeispiel aus 3,
sowie die anderen, die in diesem Dokument beschrieben sind, nicht
auf eine spezifische Technik zum Realisieren des Nicht-Platten-Dauerspeichers
beschränkt.
Tatsächlich
sind Mehrfach-Speichertechniken, einschließlich einem Magnetdirektzugriffspeicher
(MRAM; MRAM = Magnetic Random Access Memory), einem magnetoresistiven Direktzugriffsspeicher
(MRRAM), einem Polymer-Ferroelektrik-Direktzugriffsspeicher (PFRAM), einem
Ovonik-Einheitsspeicher (OUM; OUM = Ovonics Unified Memory), einem
batterie-unterstützten dynamischen
Zugriffsspeicher (BBDRAM) und FLASH-Speicher aller Arten geeignet.
-
Wo
ein SAN 306 verwendet wird, sollte der Speicher schnell
genug für
einen RDMA-Zugriff sein. Auf diese Weise werden RDMA-Lese- und -Schreib-Operationen über das
SAN 306 möglich
gemacht. Wo ein anderer Typ einer Kommunikationsvorrichtung verwendet
wird, sollte die Zugriffsgeschwindigkeit des verwendeten Speichers
ebenfalls schnell genug sein, um die Kommunikationsvorrichtung unterzubringen.
Es sollte darauf hingewiesen werden, dass die Dauerinformationen
bereitgestellt werden, zu dem Ausmaß, zu dem der verwendete Nicht-Platten-Dauerspeicher
Daten halten kann. Zum Beispiel kann bei vielen Anwendungen der Nicht-Platten-Dauerspeicher
erforderlich sein, um Daten unabhängig von der Zeitdauer zu speichern, für die die
Leistung verloren ist; wohingegen bei einer anderen Anwendung der
Nicht-Platten-Dauerspeicher nur für einige Minuten oder Stunden
erforderlich sein kann.
-
In
Verbindung mit diesem Lösungsansatz wird
die Speicherverwaltungsfunktionalität zum Erzeugen einzelner oder
mehrerer unabhängiger
indirekt adressierter Speicherregionen bereitgestellt. Ferner werden
CPMU-Metadaten für
eine Speicherwiedergewinnung nach einem Leistungsverlust oder einem
Prozessorausfall bereitgestellt. Metadaten oder Informationen umfassen
z. B. die Inhalte und das Layout der geschützten Speicherregionen innerhalb
einer CPMU. Auf diese Weise speichert die CPMU die Daten und die
Art und Weise der Datenverwendung. Wenn der Bedarf entsteht, kann
die CPMU dann eine Wiedergewinnung aus einem Leistungs- oder System-Ausfall
ermöglichen.
-
In 4 weist
die CPMU einen nicht-flüchtigen
Nicht-Platten-Speicher 402 und
eine Netzwerkschnittstelle oder NI 404 auf, die zusammen über eine
Datenkommunikationsverknüpfung
gekoppelt sind, wie z. B. einen Bus. Hier kann der nicht-flüchtige Nicht-Plattenspeicher 402 z.
B. ein MRAM oder ein Flash-Speicher sein. Die NI 404 initiiert
nicht ihre eigenen RDMA-Anforderungen, sondern statt dessen empfängt die
NI 404 Verwaltungsbefehle von dem Netzwerk und führt die
angeforderten Verwaltungsoperationen aus. Genauer gesagt übersetzt
die CPMU 400 die Adresse auf jeder eingehenden Speicherzugriffsanforderung
und initiiert dann intern die angeforderte Speicher-Operation über die
Datenkommunikationsverknüpfung
zwischen der NI 404 und dem nicht-flüchtigen Speicher 402.
-
In 5 verwendet
ein anderes Ausführungsbeispiel
einer CPMU 500 eine Kombination aus flüchtigem Nicht-Plattenspeicher 502 mit
Batterie 510 und einem nicht flüchtigen Sekundärspeicher 508. Bei
diesem Ausführungsbeispiel,
wenn die Leistung ausfällt,
werden die Daten innerhalb des flüchtigen Nicht-Plattenspeichers 502 unter
Verwendung der Leistung der Batterie 510 bewahrt, bis solche
Daten auf einen nicht-flüchtigen
Sekundärspeicher 508 gespeichert
werden können.
Der nicht-flüchtige
Sekundärspeicher
kann z. B. eine Magnetplatte oder ein langsamer Flash-Speicher sein.
Damit die CPMU 500 ordnungsgemäß arbeitet, sollte die Übertragung der
Daten von dem flüchtigen
Speicher 502 zu dem nicht-flüchtigen Sekundärspeicher 508 ohne
externen Eingriff oder jegliche weitere Leistung auftreten, abgesehen
von der der Batterie 510. Dementsprechend sollten jegliche
erforderlichen Aufgaben fertiggestellt sein, bevor die Batterie 510 entladen
werden kann. Wie gezeigt ist, umfasst die CPMU 500 eine optionale
CPU 504, die ein eingebettetes Betriebssystem betreibt.
-
Dementsprechend
kann die Sicherheitsaufgabe (d. h. Datenübertragung von einem flüchtigen Nicht-Plattenspeicher 502 zu
einem nicht-flüchtigen Sekundärspeicher 508)
durch eine Software durchgeführt
werden, die auf der CPU 504 läuft. Die umfasste NI 504 kann
durch die Software verwendet werden, die auf der CPU 504 läuft, um
RDMA-Anforderungen zu initiieren oder Nachrichten zu anderen Entitäten auf
dem SAN 306 zu senden. Hier wiederum empfängt die
CPU 504 Verwaltungsbefehle von dem Netzwerk durch die NI 506 und
führt die
angeforderte Verwaltungsoperation aus.
-
Ein
beliebiges Ausführungsbeispiel
der CPMU, wie z. B. die CPMU 400 oder 500, muss
zum Zweck der Dauerspeicher-Zuordnung
und -Gemeinschaftsverwendung verwaltet werden. Bei diesem Beispiel
wird die CPMU-Verwaltung durch einen Dauerspeicherverwalter (PMM;
PMM = Persistent Memory Manager) ausgeführt. Der PMM kann innerhalb
der CPMU oder außerhalb
der CPMU angeordnet sein, wie z. B. auf einem der vorangehend beschriebenen
Prozessorknoten 302. Wenn ein Prozessorknoten 302 einen
Nicht-Platten-Dauerspeicher in der CPMU 310 zuordnen oder
die desselben Zuordnung aufheben soll, oder wenn derselbe unter Verwendung
einer existierenden Region eines Nicht-Platten-Dauerspeichers in
demselben starten oder stoppen muss, sollte der Prozessorknoten
zuerst mit dem PMM kommunizieren, um angeforderte Verwaltungsaufgaben
auszuführen.
Es ist wichtig, da die Speicherinhalte der CPMU 310 dauerhaft
sind (wie die Plattenlaufwerke), dass die Metadaten, die sich auf
die Nicht-Platten-Dauerspeicherregionen
innerhalb dieser CPMU beziehen, ebenfalls dauerhaft, konsistent
beibehalten mit diesen Regionen und vorzugsweise gespeichert der
CPMU selbst innerhalb sein müssen
(so wie Dateisystem-Metadaten auf Plattenlaufwerken). Der PMM muss
daher Verwaltungsaufgaben auf eine Weise ausführen, die die Metadaten der
CPMU 310 immer konsistent mit den Inhalten ihres Nicht-Platten-Dauerspeichers beibehält. Somit
können
die Daten, die in der CPMU 310 gespeichert sind, bedeutungsvoll
wiedergewonnen werden, unter Verwendung der gespeicherten Metadaten,
sogar nach einem möglichen
Leistungsverlust, einem Systemausfall oder einem anderen Ausfall, der
einen oder mehrere des PMM, der CPMU 310 und der Prozessorknoten 302 beeinflusst.
Nach einem Bedarf zur Wiedergewinnung ist das System 300 unter
Verwendung der CPMU 310 somit in der Lage, sich zu erholen
und seine Operation aus dem Speicherzustand wiederaufzunehmen, in
dem ein Leistungsausfall oder ein Betriebssystemzusammenbruch aufgetreten
ist.
-
Bei
diesen Systemen 300, wo es nicht machbar ist, Laden- und Speichern-Speicheranweisungen von
Verarbeitungsknoten 302 zu verwenden, zum direkten oder
indirekten Initiieren von RDMA-Datenübertragungen über das
SAN 306, erfordert das Lesen und Schreiben von Inhalten
der CPMU 310, dass Anwendungen, die auf den Verarbeitungsknoten 302 laufen,
den RDMR unter Verwendung einer Anwendungsprogrammierungsschnittstelle
oder API initiieren.
-
Wie
offensichtlich sein sollte, ist einer der Gründe, dass ein Nicht-Platten-Dauerspeicher
reizvoll ist, dass er feinerkörnige
(was bedeutet kleiner in der Zugriffsgröße) Lese- und Schreib-Operationen gegen
dauerhaft gespeicherte Daten unterstützt, als es Plattenlaufwerke
tun. Diese feine Körnung
trifft sowohl auf die Zugriffsgröße (wie
viele Bytes gelesen oder geschrieben werden) als auf die Zugriffsausrichtung
(den Versatz innerhalb einer Nicht-Platten-Dauerspeicherregion des ersten
Bytes, das gelesen oder geschrieben wird) zu. Datenstrukturen innerhalb
einer Nicht-Platten-Dauerspeicherregion können frei ausgerichtet sein,
wodurch eine effizientere und wirksamere Verwendung der Kapazität ermöglicht wird als
bei Platten. Ein anderer Vorteil relativ zu einer blockorientierten
Plattenspeicherung und Flash-Speichern ist, dass es nicht notwendig
ist, zuerst einen großen
Datenblock zu lesen, bevor ein kleines Stück desselben modifiziert und
zurückgeschrieben
werden kann; statt dessen kann eine Schreiboperation einfach nur
jene Bytes modifizieren, die geändert
werden müssen.
Die Rohgeschwindigkeit eines Nicht-Platten-Dauerspeichers ist ebenfalls
reizvoll. Die Zugriffslatenzzeit ist eine Größenordnung besser als die von
Plattenlaufwerken. Die relativ einfache Verwendung eines Nicht-Platten-Dauerspeichers
im Vergleich zu Plattenlaufwerken ist bedeutend, ebenfalls aufgrund
der Tatsache, dass zeigerreiche Datenstrukturen in einen Nicht-Platten-Dauerspeicher
gespeichert werden können,
ohne zuerst alle Zeiger zur Zeit des Schreibens in relative Byte-Adressen
umwandeln zu müssen
und dann die relativen Byte-Adressen zur Zeit des Lesens zurück in Zeiger
umwandeln zu müssen. Dieser
sogenannte Ordnung-Ordnungsauflösung-Mehraufwand
kann relativ bedeutend für
komplexe Datenstrukturen sein. Alle der obigen Faktoren können es
Anwendungsprogrammierern ermöglichen,
nicht nur den Zugriff und die Manipulation der Datenstrukturen zu
beschleunigen, die sie bereits dauerhaft machen, sondern ferner
das Herstellen dauerhafter bestimmter Datenstrukturen zu berücksichtigen,
die sie nicht zum dauerhaften Herstellen berücksichtigt hätten, mit
langsameren Speicherungsvorrichtungen, wie z. B. Plattenlaufwerken
und FLASH-Speicher.
Je größer der
Grad an Beständigkeit
in einem Informationsverarbeitungssystem, desto einfacher und schneller
ist es, sich von Ausfällen zu
erholen, aufgrund des geringeren Informationsverlusts. Eine schnellere
Wiedergewinnung impliziert eine größere Systemverfügbarkeit.
Der Nettovorteil der beschriebenen Ausführungsbeispiele liegt daher nicht
nur im Verhalten sondern auch in der besseren Verfügbarkeit.
Bei missionskritischen Transaktionsverarbeitungssystemen, wo hohe
Kosten mit einem Fehlen an Systemverfügbarkeit zugeordnet sind, sind
die Verfügbarkeitsvorteile
der beschriebenen Ausführungsbeispiele
tatsächlich
wahrscheinlich von einem größeren Wert
als die Verhaltensvorteile. Ferner können neue oder verbesserte
Datenbankmerkmale möglich
werden, durch die Verwendung der beschriebenen Ausführungsbeispiele,
wie z. B. einer Im-Speicher-Operation.
Andere Anwendungen als Datenbanken können ebenfalls das verbesserte
Verhalten und die Verfügbarkeit
des Systems 300 ausnutzen, um neue Kundenfähigkeiten
zu liefern. Obwohl sie hier zu zahlreich sind, um sie aufzulisten, sind
viele dieser Anwendungen für
Fachleute auf dem Gebiet offensichtlich. Eine solche Anwendung wird
nachfolgend beschrieben.
-
Verwenden
eines Nicht-Platten-Dauerspeichers zum Reduzieren von Transaktionsausführungszeiten
-
Im
Hinblick auf das Transaktionsverarbeitungssystem 100 aus 1,
in Abwesenheit eines Nicht-Platten-Dauerspeichers, müssen zwei
Dinge passieren, bevor die Transaktionsüberwachungseinrichtung 104 eine
Datenbank-Transaktion ausführen kann.
Zuerst muss der Protokollschreiber 106 zu einem dauerhaften
Medium alle Prüfinformationen aussenden
(oder vollständig
schreiben), die diese Transaktion betreffen, die von den Datenbankschreibern 102 empfangen
werden. Nachfolgend muss die Transaktionsüberwachungseinrichtung 104 ferner die
Ausführungsaufzeichnung
für diese
Transaktion auf das dauerhafte Medium schreiben. Gemäß den beschriebenen
Ausführungsbeispielen
kann das Verwenden eines Nicht-Platten-Dauerspeichers
ermöglichen,
dass Transaktionen ausgeführt
werden, nachdem diese Informationselemente ausschließlich auf den
Nicht-Platten-Dauerspeicher geschrieben wurden. Zu dem Ausmaß, dass
der Nicht-Platten-Dauerspeicher
eine niedrigere Latenzzeit für
Schreiboperationen aufweist als die Plattenspeicherung, können Transaktionslatenzzeiten
entsprechend gekürzt
werden (und der TMF-Transaktionsdurchsatz
kann möglicherweise
verbessert werden).
-
Insbesondere
im Hinblick auf 2 können die ADPs 206 nach
dem Empfangen einer Aussendnachricht von dem TMP 204 synchron
ungeschriebene Zustandsänderungen
und Transaktionsausführungsaufzeichnungen
um eine Größenordnung schneller
aussenden, wenn auf den Nicht-Platten-Dauerspeicher geschrieben
wird, als wenn auf die Plattenspeicherung geschrieben wird. Die
schnelleren Schreiboperationen ermöglichen es dem TMP, die Transaktion
früher
auszuführen,
wenn die ADPs 206 den Nicht-Platten-Dauerspeicher verwenden,
als wenn sie Platten verwenden würden.
-
Als
Beispiel wird 6 betrachtet, die ein Transaktionsverarbeitungssystem
gemäß einem Ausführungsbeispiel
allgemein bei 600 zeigt. Das System weist einen Datenbankschreiber 602,
eine Transaktionsüberwachungseinrichtung 604 und
einen Protokollschreiber 606 auf.
-
Gemäß dem beschriebenen
Ausführungsbeispiel
weist der Protokollschreiber 606 einen primären Prüfplattenprozess 608 und
einen Sicherungsplattenprozess 610 auf. Ein Paar von Nicht-Platten-Dauerspeichereinheiten
wird bereitgestellt und weist eine primäre Nicht-Platten-Dauerspeichereinheit 612 (ebenfalls
bezeichnet als eine „CPMU") und eine Spiegel-Nicht-Platten-Dauerspeichereinheit 614 auf
(ebenfalls bezeichnet als eine „CPMU"). Eine primäre Prüfprotokollplatte 616 und eine
Spiegelprüfprotokollplatte 618 werden
zu Zwecken bereitgestellt, die nachfolgend offensichtlich werden.
-
Bei
dem dargestellten und beschriebenen Ausführungsbeispiel werden Daten
sowohl auf die primäre
Nicht-Platten-Dauerspeichereinheit 612 als auf
die Spiegel-Nicht-Platten-Dauerspeichereinheit 614 geschrieben.
Bei einigen Ausführungsbeispielen können Daten
gleichzeitig auf die primäre
und Spiegel-Einheit geschrieben werden. Alternativ müssen bei
einigen Ausführungsbeispielen
Daten nicht gleichzeitig auf die primäre und Spiegel-Einheit geschrieben
werden. Wenn das System vollständig funktionsfähig ist,
werden bei einigen Ausführungsbeispielen
Informationen entweder von der primären Nicht-Platten-Dauerspeichereinheit 612 oder
der Spiegel-Nicht-Platten-Dauerspeichereinheit 614 gelesen.
Wenn nur eine der Nicht-Platten-Dauerspeichereinheiten (612, 614)
ausfallen sollte, dann werden die Daten von der überlebenden Nicht-Platten-Dauerspeichereinheit
gelesen. Sobald eine ausgefallene primäre Nicht-Platten-Dauerspeichereinheit
bereit ist, um zurück
in den Dienst gesetzt zu werden, werden ihre Inhalte von der überlebenden Nicht-Platten-Dauerspeichereinheit
wiederhergestellt.
-
Bei
dem dargestellten und beschriebenen Ausführungsbeispiel wird eine Region
pro Prüfspur innerhalb
jeder der Nicht-Platten-Dauerspeichereinheiten 612, 614 zugeordnet,
und das Prüfplattenprozesspaar 608, 610 behält einen
Seitenschreibpuffer (bezeichnet als „WAB"; WAB = Write-Aside Buffer) innerhalb
jeder dieser Regionen bei. Obwohl jede geeignete Seitenschreibpufferkonfiguration
verwendet werden kann, ist bei dem vorliegenden Beispiel der Seitenschreibpuffer
als ein Ringpuffer konfiguriert, wie Fachleuten auf dem Gebiet bekannt
ist. Wenn der primäre
Prüfplattenprozess 608 den
Satz aus Änderungen
von dem Datenbankschreiber 602 empfängt, verwendet er die Nicht-Platten-Dauerspeichereinheiten 612, 614 zum
sehr schnellen Ausführen dieser Änderungen.
Genauer gesagt, bei dem dargestellten Beispiel, wenn der ADP 608 den
Satz von Änderungen
empfängt,
fügt er
die Informationen in den WAB der CPMU 612 an der Endadresse
dieses WAB hinzu und bewegt dann die Endadresse des WAB weiter,
um an dem Ende der zuletzt geschriebenen Informati onen vorbeizuzeigen.
Er wiederholt dann die Operation mit dem WAB der CPMU 614.
Fachleute auf dem Gebiet sind in der Lage, den Grad an Gleichzeitigkeit
zwischen den Schreiboperationen auf die CPMU 612, 614 zu
variieren.
-
Gemäß dem beschriebenen
Ausführungsbeispiel
werden Schreiboperationen auf eine Nicht-Platten-Dauerspeicherregion
unterbrochen, und der WAB wird als voll markiert, wenn das Fertigstellen
einer angeforderten Schreiboperation den Endzeiger an einer Anfangsblockadresse
in dem WAB vorbei bewegen würde.
Algorithmen zum Weiterbewegen der Anfangsblock- und End-Adresse
des WAB ähneln
dem Paradelösungsansatz
zum Implementieren von ringförmigen
Warteschlangendatenstrukturen, außer dass die Anfangsblockadressen und
die Endadressen eines WAB beide ebenfalls innerhalb derselben Nicht-Platten-Dauerspeicherregion
gespeichert und aktualisiert werden, die den ringförmigen Puffer
des WAB enthält,
wie Fachleuten auf dem Gebiet bekannt ist.
-
Bei
einem kosteneffektiven Nicht-Platten-Dauerspeicher kann ein langsamerer
Platten-I/O vollständig
aus dem Transaktionsausführungsprozess
beseitigt werden, wenn Protokollvolumen vollständig unter Verwendung der Dauerspeichervorrichtungen
mit schnellerer Geschwindigkeit anstelle von Platten realisiert
werden. Jedoch ist es gegenwärtig und
in der nahen Zukunft wahrscheinlich, dass Plattenkapazitäten weiterhin
die Nicht-Platten-Dauerspeicherkapazitäten bedeutend überschreiten,
und dass die Kosten pro Byte einer Plattenspeicherung weiterhin
wesentlich niedriger sein werden als die Kosten pro Byte bei einem
Nicht-Platten-Dauerspeicher.
In diesem Fall werden Nicht-Platten-Dauerspeichereinheiten mit relativ gesehen
kleinerer Kapazität verwendet,
um WABs für
Plattenlaufwerke mit relativ gesehen größerer Kapazität zu implementieren.
Bei solchen Anordnungen und bei ähnlichen
Entwürfen werden
synchron geschriebene Prüfinformationen langsam
und asynchron auf die Platten geschrieben. Eine Vielzahl von Techniken
zum Auswählen,
welche Informationen in dem Nicht-Platten- Dauerspeicher gehalten werden sollen
und welche zur Platte ausgesendet werden, sind für Fachleute auf dem Gebiet des
Speicherhierarchieentwurfs offensichtlich.
-
Ferner
kann bei einer solchen kosteneingeschränkten Nicht-Platten-Dauerspeichertechnik, die soeben
beschrieben wurde, der ADP 608 das Verwenden von Plattenschreiboperationen
fortsetzen, aber er muss nicht darauf warten, dass diese Plattenoperationen
fertiggestellt sind, bevor er dem TMP 604 erlauben kann,
Transaktionen auszuführen.
Statt dessen wird der ADP 608 fleißig und synchron alle Prüfinformationen
auf Nicht-Platten-Dauerspeichervorrichtungen 612, 614 schreiben,
die von den Datenbankschreibern 602 empfangen werden, auch wenn
die Option ausgeführt
wird, die Informationen aus mehreren Nachrichten, die in einem geeignet ausgewählten Zeitintervall
empfangen werden, zu kombinieren. Da die Plattenoperationen nicht
mehr so lange bedient werden wie oben beschrieben, kann der ADP 608 nun
mehr Daten pro Plattenoperation schreiben, wodurch weniger I/O-verwandte Mehraufwände verursacht
werden, durch Durchführen
von weniger Operationen insgesamt für die selbe Menge von Prüfspurdaten.
Dies verbessert den Plattendurchsatz von Prüfplatten 616, 618 und
verbessert ebenfalls die CPU-Verwendung
für die
CPUs, die ADPs 608 betreiben. Daher, wenn der ADP 608 eine Anforderung
von dem TMP 604 empfängt,
um dessen Prüfspur
auszusenden, schreibt er zuerst diese Informationen in die CPMUs 612, 614.
Er puffert diese Informationen ferner in den WAB, so dass die Informationen
auf die Prüfprotokollplatten 616, 618 auf eine
sogenannte langsame Art und Weise geschrieben werden können. Sobald
eine vorbestimmte Bedingung erfüllt
wird, z. B. eine bestimmte Schwelle von gepufferten Informationen überschritten
wird, oder an einem maximal festgelegten Zeitintervall, geben die
ADPs 608 Plattenschreiboperationen aus, unabhängig davon,
ob eine Aussendnachricht von dem TMP 604 empfangen wurde
oder nicht. Im Gegensatz zu dem herkömmlichen Fall können Transaktionen
jedoch ausgeführt
werden bevor die Prüfinformationen
auf die Platten 616, 618 geschrieben wurden, aber
nachdem dieselben auf die CPMUs 612, 614 geschrieben
wurden.
-
Wenn
langsam ausgegebene sequentielle Schreiboperationen auf Prüfplatten 616, 618 fertiggestellt
sind, werden einige der Informationen, die in den WABs gespeichert
waren, geeignet zum Überschreiben.
Dann werden die Anfangsblockadressen in den geeigneten Regionen
der CPMUs 612, 614 an dem letzten Byte vorbeibewegt,
das erfolgreich zurückgeschrieben
wurde. Wenn die Nicht-Platten-Dauerspeichereinheit mit „voll" markiert wurde wäre, bevor
die Platten-I/O-Fertigstellung
durch den ADP 608 empfangen wurde, wird sie dann als „nicht voll" markiert. Der ADP
kann dann wiederum die Verwendung des WAB wiederaufnehmen. Immer
wenn der ADP 608 seine Verwendung des WAB unterbricht,
kehrt er zurück
zum Warten auf ausstehende Platten-I/Os zum Protokollieren von Volumen 616, 618 vor
dem Ausführen
von Transaktionen. In solch einem Umstand wird die Größe der Schreib-I/O-Operationen üblicherweise
auf einen Wert eingestellt (z. B. 4 KB bis 128 KB, abhängig von
der Menge von Prüfungen,
die zwischen Ausführungsaufzeichnungen
gesammelt wurden), der kleiner ist als der, der einen optimalen
Plattendurchsatz ergibt (z. B. 128 KB bis 1 MB), um die Auswirkung
der Platten-I/O-Latenzzeit auf die Transaktionsansprechzeit einzuschränken. Bei
dem Nicht-Platten-Dauerspeicher warten Transaktionen nicht auf das
Fertigstellen der Platten-I/O, so dass der ADP 608 warten
kann, bis mehr Prüfdaten
zum Schreiben gepuffert sind. Er ist daher in der Lage, größere Plattenschreib-I/O-Größen zu verwenden
(z. B. 512 KB), um einen annähernd
optimalen Durchsatz zum Protokollieren von Volumen 616, 618 und
zum wesentlichen Reduzieren des Mehraufwands der -I/O auf der CPU
zu erhalten, die den ADP 608 betreibt.
-
Ähnliche
Entwurfsmodifikationen können verwendet
werden, um einen Seitenschreibpuffer zu erzeugen, unter Verwendung
eines Nicht-Platten-Dauerspeichers für eine andere Anwen dung, deren
Verhalten gegenteilig durch das Warten auf Plattenschreiboperationen
beeinträchtigt
wird.
-
Andere
Variationen an dem Entwurf sind für Fachleute auf dem Gebiet
offensichtlich. Zum Beispiel, anstatt auf die primäre Nicht-Platten-
und Spiegel-Nicht-Platten-Dauerspeichereinheiten
seriell zu schreiben, eine nach der anderen, können Anwendungen auswählen, gleichzeitig
auf dieselben zu schreiben.
-
Exemplarisches
Verfahren
-
7 stellt
Schritte in einem Verfahren gemäß einem
Ausführungsbeispiel
dar. Bei dem dargestellten und beschriebenen Ausführungsbeispiel kann
das Verfahren in einer geeigneten Hardware, Software, Firmware oder
einer Kombination derselben implementiert sein. Zusätzlich dazu
kann das Verfahren unter Verwendung einer geeignet konfigurierten
Nicht-Platten-Dauerspeicherarchitektur implementiert sein. Spezifische
nicht-einschränkende
Beispiele von Nicht-Platten-Dauerspeicherarchitekturen sind
in diesem Dokument gezeigt und beschrieben.
-
Schritt 700 empfängt Daten,
die transaktionsinduzierten Zustandsänderungen zugeordnet sind.
Solche Daten können
Datenbankzustandsänderungen
beschreiben, die als Ergebnis der Transaktion verursacht werden.
Bei dem dargestellten und beschriebenen Ausführungsbeispiel werden diese Daten
von einer Datenbankschreiberkomponente empfangen, wie z. B. jenen,
die oben beschrieben sind. Schritt 702 schreibt die Daten
in den Nicht-Platten-Dauerspeicher. Wie erwähnt wurde, kann jede geeignete
Nicht-Platten-Dauerspeicherarchitektur verwendet werden. Zum Beispiel
werden bei dem Beispiel aus 6 primäre Nicht-Platten-
und Spiegel-Nicht-Platten-Dauerspeichereinheiten
verwendet. Schritt 704 stellt sicher, ob eine Nicht-Platten-Dauerspeichereinheit-Schwelle erreicht
wurde. Wenn nicht, kehrt das Verfahren zu Schritt 702 zurück. Wenn
andererseits die Nicht-Platten- Dauerspeichereinheits-Schwelle
erreicht wurde, dann schreibt Schritt 706 die Daten in
den Nicht-Platten-Dauerspeicher
auf die Prüfprotokollplatte,
wie z. B. die Prüfprotokollplatte 616 in 6.
Bei dem Beispiel von 6 wird das Schreiben auf die
Prüfprotokollplatte
auf diese Weise derart bezeichnet, dass es auf eine langsame Weise
durchgeführt
wird.
-
Exemplarisches
Computersystem
-
Bei
einem Ausführungsbeispiel
können
die oben beschriebenen Systeme auf einem Computersystem 800 praktiziert
werden, wie z. B. einem, das in 8 gezeigt
ist. Das Computersystem 800, oder verschiedene Kombinationen
seiner Teilkomponenten, können
verwendet werden, um die oben beschriebenen Systeme zu implementieren,
einschließlich
der Prozessorknoten, sowie der verschiedenen Nicht-Platten-Dauerspeichereinheiten.
-
Bezug
nehmend auf 8 ist ein exemplarisches Computersystem 800 (z.
B. Personalcomputer, Arbeitsstation, Mainframe, etc.) mit einem
Datenbus 814 konfiguriert, der verschiedene Komponenten kommunikativ
koppelt. Wie in 8 gezeigt ist, ist ein Prozessor 802 mit
dem Bus 814 zum Verarbeiten von Informationen und Anweisungen
gekoppelt. Ein computerlesbarer flüchtiger Speicher, wie z. B.
der RAM 804, ist ebenfalls mit dem Bus 814 gekoppelt,
zum Speichern von Informationen und Anweisungen für den Prozessor 802.
Ferner ist der computerlesbare Nur-Lese-Speicher (ROM) 806 ebenfalls
mit dem Bus 814 gekoppelt, zum Speichern von statischen
Informationen und Anweisungen für
den Prozessor 802. Eine Datenspeicherungsvorrichtung 808,
wie z. B. ein magnetisches oder optisches Plattenmedium, ist ebenfalls
mit dem Bus 814 gekoppelt. Die Datenspeicherungsvorrichtung 808 wird
zum Speichern großer
Mengen von Informationen und Anweisungen verwendet. Eine alphanumerische
Eingabevorrichtung 810, die alphanumerische und Funktions-Tasten umfasst,
ist mit dem Bus 814 zum Kommunizieren von Informations-
und Befehls-Auswahlen zu dem Prozessor 802 gekoppelt. Eine
Cursor-Steuerungsvorrichtung 812, wie z. B. eine Maus,
ist mit dem Bus 814 zum Kommunizieren von Benutzereingabe-Informationen und
Befehlsauswahlen zu dem zentralen Prozessor 802 gekoppelt.
Das Eingabe-/Ausgabe-Kommunikationstor 816 ist mit dem
Bus 814 zum Kommunizieren mit zum Beispiel einem Netzwerk, anderen
Computern oder anderen Prozessoren gekoppelt. Die Anzeige 818 ist
mit dem Bus 814 zum Anzeigen von Informationen an einen
Computerbenutzer gekoppelt. Die Anzeigevorrichtung 818 kann eine
Flüssigkristallvorrichtung,
eine Kathodenstrahlröhre
oder eine andere Anzeigevorrichtung sein, die geeignet zum Erzeugen
von graphischen Bildern und alphanumerischen Zeichen ist, die vom
Benutzer erkennbar sind. Die alphanumerische Eingabe 810 und die
Cursor-Steuerungsvorrichtung 812 ermöglichen es dem Computerbenutzer,
dynamisch die zweidimensionale Bewegung eines sichtbaren Symbols (Zeiger)
auf der Anzeige 818 zu signalisieren. Eine Nicht-Platten-Dauerspeichereinheit 820 ist
vorgesehen und kann eines der Ausführungsbeispiele aufweisen,
die oben beschrieben wurden, sowie andere Nicht-Platten-Dauerspeicherarchitekturen,
die die oben beschriebenen Verhalten aufweisen, wie Fachleuten auf
dem Gebiet bekannt ist.
-
Schlussfolgerung
-
Viele
oben beschriebene Ausführungsbeispiele
verwenden einen Nicht-Platten-Dauerspeicher in Verbindung mit Transaktionsverarbeitungssystemen.
Durch Verwenden eines Nicht-Platten-Dauerspeichers
zum Ausführen
von Transaktionen kann die Zeit, die dem Ausführen von Transaktionen zugeordnet
ist, reduziert werden. Somit kann der Bedarf nach Ressourcen in
dem Transaktionsverarbeitungssystem reduziert werden, was den Durchsatz
von Transaktionsverarbeitungssystemen erhöhen kann.
-
Obwohl
die Erfindung in einer Sprache beschrieben wurde, die spezifisch
für strukturelle
Merkmale und/oder methodische Schritte ist, wird darauf hingewiesen,
dass die in den beiliegenden Ansprüchen definierte Erfindung nicht
notwendigerweise auf die spezifischen beschriebenen Merkmale oder Schritte
beschränkt
ist. Statt dessen werden die spezifischen Merkmale und Schritte
als bevorzuge Formen zum Implementieren der beanspruchten Erfindung
offenbart.