[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE102005006176A1 - Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden - Google Patents

Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden Download PDF

Info

Publication number
DE102005006176A1
DE102005006176A1 DE102005006176A DE102005006176A DE102005006176A1 DE 102005006176 A1 DE102005006176 A1 DE 102005006176A1 DE 102005006176 A DE102005006176 A DE 102005006176A DE 102005006176 A DE102005006176 A DE 102005006176A DE 102005006176 A1 DE102005006176 A1 DE 102005006176A1
Authority
DE
Germany
Prior art keywords
disk
persistent storage
storage unit
data
transaction
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
DE102005006176A
Other languages
English (en)
Inventor
Pankaj San Jose Mehra
Sam Palo Alto Fineberg
Gary S. Auburn Smith
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102005006176A1 publication Critical patent/DE102005006176A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1492Generic software techniques for error detection or fault masking by run-time replication performed by the application software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Bei zumindest einem Ausführungsbeispiel weisen Transaktionsverarbeitungssysteme einen Nicht-Platten-Dauerspeicher auf, der zum Ausführen von Transaktionen verwendet wird.

Description

  • 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.

Claims (26)

  1. Transaktionsverarbeitungssystem (600), das folgende Merkmale aufweist: einen Datenbankschreiber (602), der zum Verarbeiten von Daten gemäß einer oder mehreren Transaktionen innerhalb des Datenverarbeitungssystems konfiguriert ist; eine Transaktionsüberwachungseinrichtung (604) zum Überwachen von Transaktionen innerhalb des Transaktionsverarbeitungssystems; einen Protokollschreiber (606) zum Beibehalten von Prüfspurdaten, die Transaktionen innerhalb des Transaktionsverarbeitungssystems zugeordnet sind; und eine oder mehrere Nicht-Platten-Dauerspeichereinheiten (612, 614), die dem Protokollschreiber zugeordnet sind und konfiguriert sind, um von dem Protokollschreiber Prüfspurdaten zu empfangen.
  2. Transaktionsverarbeitungssystem (600) gemäß Anspruch 1, bei dem der Protokollschreiber (606) einen primären Prüfplattenprozess (608) und einen Sicherungs-Prüfplattenprozess (610) aufweist.
  3. Transaktionsverarbeitungssystem (600) gemäß Anspruch 1 oder 2, bei dem die eine oder die mehreren Nicht-Platten-Dauerspeichereinheiten (612, 614) eine primäre Nicht-Platten-Dauerspeichereinheit und eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweisen.
  4. Transaktionsverarbeitungssystem (600) gemäß einem der Ansprüche 1 bis 3, bei dem die eine oder die mehreren Nicht-Platten-Dauerspeichereinheiten (612, 614) eine primäre Nicht-Platten-Dauerspeichereinheit und eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweisen, und bei der der Protokollschreiber (606) konfiguriert ist, um zuerst Prüfspurdaten auf die primäre Nicht-Platten-Dauerspeichereinheit zu schreiben und dann die Prüfspurdaten auf die Spiegel-Nicht-Platten-Dauerspeichereinheit zu schreiben.
  5. Transaktionsverarbeitungssystem (600) gemäß einem der Ansprüche 1 bis 4, bei dem die eine oder die mehreren Nicht-Platten-Dauerspeichereinheiten einen Seitenschreibpuffer aufweisen, der konfiguriert ist, um die Prüfspurdaten zu empfangen, wobei der Seitenschreibpuffer als ein Ringpuffer konfiguriert ist.
  6. Transaktionsverarbeitungssystem (600), das folgende Merkmale aufweist: einen Datenbankschreiber (602), der zum Verarbeiten von Daten gemäß einer oder mehreren Transaktionen innerhalb des Datenverarbeitungssystems konfiguriert ist; eine Transaktionsüberwachungseinrichtung (604) zum Überwachen von Transaktionen innerhalb des Transaktionsverarbeitungssystems; einen Protokollschreiber (606) zum Beibehalten von Prüfspurdaten, die Transaktionen innerhalb des Transaktionsverarbeitungssystems zugeordnet sind; und eine oder mehrere Nicht-Platten-Dauerspeichereinheiten (612, 614), die dem Protokollschreiber zugeordnet sind und konfiguriert sind, um von dem Protokollschreiber Prüfspurdaten zu empfangen; und eine oder mehrere Prüfprotokollplatten, die konfiguriert sind, um Prüfspurdaten zu empfangen, die zuerst durch eine oder mehrere der Nicht-Platten-Dauerspeichereinheiten empfangen werden.
  7. System (600) gemäß Anspruch 6, bei dem der Protokollschreiber (606) konfiguriert ist, um zu verursachen, dass die Prüfspurdaten bei der einen oder den mehreren Nicht-Platten-Dauerspeichereinheiten auf die eine oder die mehreren Prüfprotokollplatten geschrieben werden, wenn eine Nicht-Platten-Dauerspeichereinheit-Schwelle erreicht wird oder überschritten wird.
  8. System (600) gemäß Anspruch 6 oder 7, bei dem das Transaktionsverarbeitungssystem konfiguriert ist, um Transaktionen auszuführen, bevor zugeordnete Prüfspurdaten auf die eine oder die mehreren Prüfprotokollplatten geschrieben werden.
  9. System gemäß einem der Ansprüche 6 bis 8, bei dem das Transaktionsverarbeitungssystem (600) konfiguriert ist, um Transaktionen auszuführen, nachdem zugeordnete Prüfspurdaten von der einen oder den mehreren Nicht-Platten-Dauerspeichereinheiten empfangen werden und bevor die zugeordneten Prüfspurdaten auf die eine oder die mehreren Prüfprotokollplatten geschrieben werden.
  10. System gemäß einem der Ansprüche 6 bis 9, bei dem der Protokollschreiber einen primären Prüfplattenprozess und einen Sicherungs-Prüfplattenprozess aufweist.
  11. System gemäß einem der Ansprüche 6 bis 10, bei dem die eine oder die mehreren Nicht-Platten-Dauerspeichereinheiten eine primäre Nicht-Platten-Dauerspeichereinheit und eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweisen.
  12. System gemäß einem der Ansprüche 6 bis 11, bei dem die eine oder die mehreren Nicht-Platten-Dauerspeichereinheiten eine primäre Nicht-Platten-Dauerspeichereinheit und eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweisen, und bei dem der Protokollschreiber konfiguriert ist, um zuerst Prüfspurdaten auf die primäre Nicht-Platten-Dauerspeichereinheit zu schreiben und dann die Prüfspurdaten auf die Spiegel-Nicht-Platten-Dauerspeichereinheit zu schreiben.
  13. System gemäß einem der Ansprüche 6 bis 12, bei dem die eine oder die mehreren Nicht-Platten-Dauerspeichereinheiten einen Seitenschreibpuffer aufweisen, der konfiguriert ist, um die Prüfspurdaten zu empfangen, wobei der Seitenschreibpuffer als ein Ringpuffer konfiguriert ist.
  14. Verfahren, das folgende Schritte aufweist: Empfangen (700) von Daten, die transaktionsinduzierten Zustandsänderungen zugeordnet sind; und Schreiben (702) der empfangenen Daten auf den Nicht-Platten-Dauerspeicher, der ausreichend ist, um eine zugeordnete Transaktion auszuführen.
  15. Verfahren gemäß Anspruch 14, bei dem die Aktion des Schreibens (702) das Schreiben der empfangenen Daten auf die erste und zweite Nicht-Platten-Dauerspeichereinheit aufweist, wobei die erste Nicht-Platten-Dauerspeichereinheit eine primäre Nicht-Platten-Dauerspeichereinheit aufweist, wobei die zweite Nicht-Platten-Dauerspeichereinheit eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweist.
  16. Verfahren gemäß Anspruch 14 oder 15, bei dem die Aktion des Schreibens (702) das Schreiben der empfangenen Daten auf eine erste und zweite Nicht-Platten- Dauerspeichereinheit aufweist, wobei die erste Nicht-Platten-Dauerspeichereinheit eine primäre Nicht-Platten-Dauerspeichereinheit aufweist, wobei die zweite Nicht-Platten-Dauerspeichereinheit eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweist, wobei die Aktion des Schreibens zuerst das Schreiben der empfangenen Daten auf die primäre Nicht-Platten-Dauerspeichereinheit und dann das Schreiben der empfangenen Daten auf die Spiegel-Nicht-Platten-Dauerspeichereinheit aufweist.
  17. Verfahren gemäß einem der Ansprüche 14 bis 16, bei dem die Aktion des Schreibens (702) das Schreiben der empfangenen Daten auf die erste und zweite Nicht-Platten-Dauerspeichereinheit aufweist, wobei die erste Nicht-Platten-Dauerspeichereinheit eine primäre Nicht-Platten-Dauerspeichereinheit aufweist, wobei die zweite Nicht-Platten-Dauerspeichereinheit eine Spiegel-Nicht-Platten-Dauerspeichereinheit aufweist, wobei die Aktion des Schreibens das gleichzeitige Schreiben der empfangenen Daten auf die primäre Nicht-Platten-Dauerspeichereinheit und die Spiegel-Nicht-Platten-Dauerspeichereinheit aufweist.
  18. Verfahren gemäß einem der Ansprüche 14 bis 17, bei dem die Aktion des Empfangens durch einen Protokollschreiber durchgeführt wird, der einen primären und Sicherungs-Prüfplattenprozess aufweist.
  19. Verfahren gemäß einem der Ansprüche 14 bis 18, das ferner nach dem Schreiben der empfangenen Daten auf dem Nicht-Platten-Dauerspeicher das Schreiben der transaktionsinduzierten Zustandsänderungsdaten auf eine oder mehrere Prüfprotokollplatten aufweist.
  20. Verfahren gemäß einem der Ansprüche 14 bis 19, das ferner nach dem Schreiben der empfangenen Daten auf den Nicht-Platten-Dauerspeicher das Schreiben der transaktionsinduzierten Zustandsänderungsdaten auf eine oder mehrere Prüfprotokollplatten aufweist, wobei die Aktion des Schreibens der transaktionsinduzierten Zustandsänderungsdaten auf die eine oder die mehreren Prüfprotokollplatten das Durchführen desselben ansprechend darauf ausführt, dass eine Schwelle, die dem Nicht-Platten-Dauerspeicher zugeordnet ist, erreicht oder überschritten wird.
  21. Verfahren, das folgende Schritte aufweist: Beibehalten von zumindest zwei Seitenschreibpuffern in dem Nicht-Platten-Dauerspeicher, wobei ein erster der Puffer einen primären Puffer aufweist, wobei ein zweiter der Puffer einen Spiegelpuffer aufweist; synchrones Aussenden von Prüfdaten, die einer oder mehreren Transaktionen zugeordnet sind, zu zumindest zwei Seitenschreibpuffern; und wenn eine vorbestimmte Bedingung erfüllt wird, Schreiben der Prüfdaten in die Seitenschreibpuffer auf eine oder mehrere Prüfprotokollplatten.
  22. Verfahren gemäß Anspruch 21, bei dem die Aktion des Beibehaltens das Beibehalten der Puffer als Ringpuffer aufweist.
  23. Verfahren gemäß Anspruch 21 oder 22, bei dem die vorbestimmte Bedingung eine Schwellenbedingung aufweist.
  24. Verfahren gemäß einem der Ansprüche 21 bis 23, bei dem die Aktion des synchronen Aussendens ausreichend ist, um eine zugeordnete Transaktion auszuführen.
  25. Verfahren gemäß einem der Ansprüche 21 bis 24, bei dem die Aktionen durch ein Transaktionsverarbeitungssystem durchgeführt werden, das eine Datenbankschreiberkomponente, eine Transaktionsüberwachungseinrichtungskomponente und eine Protokollschreiberkomponente aufweist, wobei jede Komponente als ein Primär-Sicherungsprozesspaar implementiert ist.
  26. Verfahren, das das Verwenden eines Nicht-Platten-Dauerspeichers zum Ausführen von Transaktionen aufweist.
DE102005006176A 2004-03-09 2005-02-10 Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden Ceased DE102005006176A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/797,258 2004-03-09
US10/797,258 US7383290B2 (en) 2004-03-09 2004-03-09 Transaction processing systems and methods utilizing non-disk persistent memory

Publications (1)

Publication Number Publication Date
DE102005006176A1 true DE102005006176A1 (de) 2005-10-06

Family

ID=34920006

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005006176A Ceased DE102005006176A1 (de) 2004-03-09 2005-02-10 Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden

Country Status (4)

Country Link
US (1) US7383290B2 (de)
JP (1) JP2005259136A (de)
DE (1) DE102005006176A1 (de)
TW (1) TW200602863A (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6961804B2 (en) * 2001-07-20 2005-11-01 International Business Machines Corporation Flexible techniques for associating cache memories with processors and main memory
US20050203974A1 (en) * 2004-03-09 2005-09-15 Smith Gary S. Checkpoint methods and systems utilizing non-disk persistent memory
US8918367B2 (en) * 2004-04-30 2014-12-23 Sap Se Two phase commit emulation for non distributed transactions
US8688800B2 (en) * 2005-10-05 2014-04-01 Hewlett-Packard Development Company, L.P. Remote configuration of persistent memory system ATT tables
JP4973844B2 (ja) * 2006-09-19 2012-07-11 株式会社デンソー オブジェクト指向型車両用制御装置
US8706687B2 (en) * 2007-01-24 2014-04-22 Hewlett-Packard Development Company, L.P. Log driven storage controller with network persistent memory
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US20090158242A1 (en) * 2007-12-18 2009-06-18 Kabira Technologies, Inc., Library of services to guarantee transaction processing application is fully transactional
US20090158246A1 (en) * 2007-12-18 2009-06-18 Kabira Technologies, Inc. Method and system for building transactional applications using an integrated development environment
US8732386B2 (en) 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US20090260011A1 (en) * 2008-04-14 2009-10-15 Microsoft Corporation Command line transactions
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8868487B2 (en) * 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8677055B2 (en) 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8549504B2 (en) 2010-09-25 2013-10-01 Intel Corporation Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8676968B2 (en) * 2011-08-09 2014-03-18 Hewlett-Packard Development Company, L.P. Determining information about a computing system
US9116761B2 (en) * 2011-09-29 2015-08-25 Oracle International Corporation System and method for preventing single-point bottleneck in a transactional middleware machine environment
US9690638B2 (en) 2011-09-29 2017-06-27 Oracle International Corporation System and method for supporting a complex message header in a transactional middleware machine environment
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
CN104583989A (zh) * 2012-08-28 2015-04-29 惠普发展公司,有限责任合伙企业 高性能持久性存储器
US9081606B2 (en) * 2012-11-13 2015-07-14 International Business Machines Corporation Asynchronous persistent stores for transactions
US9003228B2 (en) 2012-12-07 2015-04-07 International Business Machines Corporation Consistency of data in persistent memory
KR102275706B1 (ko) 2014-06-30 2021-07-09 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US9747174B2 (en) 2015-12-11 2017-08-29 Microsoft Technology Licensing, Llc Tail of logs in persistent main memory
US10318295B2 (en) 2015-12-22 2019-06-11 Intel Corporation Transaction end plus commit to persistence instructions, processors, methods, and systems
US9965538B2 (en) 2016-01-19 2018-05-08 Microsoft Technology Licensing, Llc Early thread return with secondary event writes
US10140150B2 (en) 2016-02-08 2018-11-27 Microsoft Technology Licensing, Llc Thread diversion awaiting log call return
US10204022B2 (en) 2016-08-15 2019-02-12 Oracle International Corporation Efficient memory management for persistent memory
US9794366B1 (en) 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
US11740928B2 (en) 2019-08-26 2023-08-29 International Business Machines Corporation Implementing crash consistency in persistent memory
US11928497B2 (en) 2020-01-27 2024-03-12 International Business Machines Corporation Implementing erasure coding with persistent memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2960297B2 (ja) 1994-03-16 1999-10-06 株式会社東芝 データベースシステム及び負荷分散制御方法
US5561795A (en) * 1994-05-13 1996-10-01 Unisys Corporation Method and apparatus for audit trail logging and data base recovery
DE19819205A1 (de) 1998-04-29 1999-11-04 Siemens Ag Datenhaltungssystem für persistente Daten
US6272607B1 (en) * 1998-08-28 2001-08-07 International Business Machines Corporation Method and apparatus for transactional writing of data into a persistent memory
US6493837B1 (en) 1999-07-16 2002-12-10 Microsoft Corporation Using log buffers to trace an event in a computer system
US6578160B1 (en) 2000-05-26 2003-06-10 Emc Corp Hopkinton Fault tolerant, low latency system resource with high level logging of system resource transactions and cross-server mirrored high level logging of system resource transactions
US6813623B2 (en) * 2001-06-15 2004-11-02 International Business Machines Corporation Method and apparatus for chunk based transaction logging with asynchronous input/output for a database management system
US6910160B2 (en) 2002-01-10 2005-06-21 International Business Machines Corporation System, method, and computer program product for preserving trace data after partition crash in logically partitioned systems
US7624112B2 (en) * 2003-04-03 2009-11-24 Oracle International Corporation Asynchronously storing transaction information from memory to a persistent storage
US20050203974A1 (en) * 2004-03-09 2005-09-15 Smith Gary S. Checkpoint methods and systems utilizing non-disk persistent memory

Also Published As

Publication number Publication date
JP2005259136A (ja) 2005-09-22
TW200602863A (en) 2006-01-16
US20050203961A1 (en) 2005-09-15
US7383290B2 (en) 2008-06-03

Similar Documents

Publication Publication Date Title
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE112020002526B4 (de) Blockmodusumschaltung in datenspeichersystem
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE602004011181T2 (de) Speicherplattenanordnungsgerät
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE202010017665U1 (de) Datenverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE102017128952A1 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112020002834T5 (de) Spiegeln von schreiboperationen zwischen datenspeichereinheiten

Legal Events

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